##
# $Id$
# 
# Copyright (c) 2018 Network Appliance, Inc.
# All rights reserved.
# 
# This file was generated at Feb 27, 2018 1:49:17 AM
##

package OCUMClassicAPI;

use strict;

use constant FIELD_SCALAR => 0x0;
use constant FIELD_TYPEDEF => 0x1;
use constant FIELD_ARRAY => 0x2;
use constant FIELD_OPTIONAL => 0x4;
use constant FIELD_ENCRYPTED => 0x8;

my $APIS = {
    'aggregate-list-info-iter-end' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'aggregate-list-info-iter-next' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'aggregates' => {
                'type' => 'aggregate-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'aggregate-list-info-iter-start' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'aggregate-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'block-type' => {
                'type' => 'file-system-block-type',
                'flags' => 4,
                'scope' => [],
            },
            'include-dataset-space-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-direct-member-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-unprotected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'rbac-operation' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-filter' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'volumes-to-migrate' => {
                'type' => 'object-name-or-id',
                'flags' => 6,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'aggregate-modify' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'aggregate-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'aggregate-space-management-add-operation' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'space-management-operation-info' => {
                'type' => 'space-management-operation-info',
                'flags' => 1,
                'scope' => [],
            },
            'space-management-session-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'aggregate-diff-space-infos' => {
                'type' => 'aggregate-space-info',
                'flags' => 3,
                'scope' => [],
            },
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'aggregate-space-management-begin' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'aggregate-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'space-management-session-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'aggregate-space-management-commit' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'space-management-session-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'aggregate-space-infos' => {
                'type' => 'aggregate-space-info',
                'flags' => 7,
                'scope' => [],
            },
            'space-management-results' => {
                'type' => 'space-management-result-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'aggregate-space-management-remove-operation' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'space-management-op-type' => {
                'type' => 'space-management-op-type',
                'flags' => 0,
                'scope' => [],
            },
            'space-management-session-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'aggregate-diff-space-infos' => {
                'type' => 'aggregate-space-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'aggregate-space-management-rollback' => {
        'category' => 'aggregate',
        'family' => [],
        'inputs' => {
            'space-management-session-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'alarm-create' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
            'alarm-info' => {
                'type' => 'alarm-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'alarm-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'alarm-destroy' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
            'alarm-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'alarm-get-defaults' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'alarm-defaults' => {
                'type' => 'alarm-defaults',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'alarm-list-info-iter-end' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'alarm-list-info-iter-next' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'alarm-list' => {
                'type' => 'alarm-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'alarm-list-info-iter-start' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
            'alarm-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'alarm-modify' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
            'alarm-info' => {
                'type' => 'alarm-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'alarm-test' => {
        'category' => 'alarm',
        'family' => [],
        'inputs' => {
            'alarm-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'api-proxy' => {
        'category' => 'api',
        'family' => [],
        'inputs' => {
            'request' => {
                'type' => 'request',
                'flags' => 1,
                'scope' => [],
            },
            'target' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'timeout' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'username' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'response' => {
                'type' => 'response',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'application-policy-copy' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'application-policy-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'application-policy-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'source-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'application-policy-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-policy-create' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'application-policy-info' => {
                'type' => 'application-policy-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'application-policy-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-policy-destroy' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'application-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'application-policy-edit-begin' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'application-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-policy-edit-commit' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'application-policy-edit-rollback' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'application-policy-list-iter-end' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'application-policy-list-iter-next' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'application-policies' => {
                'type' => 'application-policy-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-policy-list-iter-start' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'application-policy-type' => {
                'type' => 'application-policy-type',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-policy-modify' => {
        'category' => 'application-policy',
        'family' => [],
        'inputs' => {
            'application-policy-info' => {
                'type' => 'application-policy-info',
                'flags' => 1,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'audit-log-add-entry' => {
        'category' => 'audit',
        'family' => [],
        'inputs' => {
            'audit-application-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'audit-interface' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'audit-ip-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'audit-message' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'audit-priority' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'audit-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'cifs-domain-list-info-iter-end' => {
        'category' => 'cifs',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'cifs-domain-list-info-iter-next' => {
        'category' => 'cifs',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'cifs-domain-list' => {
                'type' => 'cifs-domain-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'cifs-domain-list-info-iter-start' => {
        'category' => 'cifs',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'client-registry-destroy' => {
        'category' => 'client',
        'family' => [],
        'inputs' => {
            'application-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'match' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'option' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'client-registry-get' => {
        'category' => 'client',
        'family' => [],
        'inputs' => {
            'application-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'match' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'option' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'options' => {
                'type' => 'client-option-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'client-registry-set' => {
        'category' => 'client',
        'family' => [],
        'inputs' => {
            'application-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'options' => {
                'type' => 'client-option-info',
                'flags' => 3,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'comment-field-create' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'comment-field-info' => {
                'type' => 'comment-field-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'comment-field-id' => {
                'type' => 'comment-field-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'comment-field-destroy' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'comment-field-name-or-id' => {
                'type' => 'comment-field-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'comment-field-list-info-iter-end' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'comment-field-list-info-iter-next' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'comment-fields' => {
                'type' => 'comment-field-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'comment-field-list-info-iter-start' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'comment-field-name-or-id' => {
                'type' => 'comment-field-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'comment-field-object-types' => {
                'type' => 'comment-field-object-type',
                'flags' => 6,
                'scope' => [],
            },
            'show-system-comments' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'comment-field-modify' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'comment-field-name-or-id' => {
                'type' => 'comment-field-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'comment-field-object-types' => {
                'type' => 'comment-field-object-type',
                'flags' => 6,
                'scope' => [],
            },
            'new-comment-field-name' => {
                'type' => 'comment-field-name',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'comment-field-values-list-info-iter-end' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'comment-field-values-list-info-iter-next' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'comment-field-values' => {
                'type' => 'comment-field-value',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'comment-field-values-list-info-iter-start' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'comment-field-name-or-id' => {
                'type' => 'comment-field-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'comment-field-object-types' => {
                'type' => 'comment-field-object-type',
                'flags' => 6,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'comment-set-object-value' => {
        'category' => 'comment',
        'family' => [],
        'inputs' => {
            'comment-field-name-or-id' => {
                'type' => 'comment-field-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'comment-value' => {
                'type' => 'comment-value',
                'flags' => 0,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-add-member' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-member-parameters' => {
                'type' => 'dataset-member-parameter',
                'flags' => 3,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-existing-member-ok' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-add-member-by-dynamic-reference' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-dynamic-reference-parameters' => {
                'type' => 'dataset-dynamic-reference-parameter',
                'flags' => 3,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-add-resourcepool' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-add-to-exclusion-list' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-excluded-member-ok' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'objects-to-be-added' => {
                'type' => 'obj-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-begin-failover' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-begin-failover-script-test' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-change-dr-state' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'allow-internal-transitions' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'dr-state' => {
                'type' => 'dr-state',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-compute-usage-metric' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'compute-io-usage-metric' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'compute-space-usage-metric' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-conform-begin' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'assume-confirmation' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-create' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'application-info' => {
                'type' => 'application-info',
                'flags' => 5,
                'scope' => [],
            },
            'application-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-access-details' => {
                'type' => 'dataset-access-details',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-metadata' => {
                'type' => 'dfm-metadata-field',
                'flags' => 7,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'is-application-data' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-suspended' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-suspended' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'online-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'primary-volume-name-format' => {
                'type' => 'primary-volume-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'requires-non-disruptive-restore' => {
                'type' => 'requires-non-disruptive-restore',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-qtree-name-format' => {
                'type' => 'secondary-qtree-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-volume-name-format' => {
                'type' => 'secondary-volume-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-name-format' => {
                'type' => 'snapshot-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'timezone-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'volume-qtree-name-prefix' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-destroy' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'cancel-edit-sessions' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-dynamic-reference-list-info-iter-end' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-dynamic-reference-list-info-iter-next' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dataset-dynamic-references' => {
                'type' => 'dataset-dynamic-reference-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-dynamic-reference-list-info-iter-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'dynamic-reference-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'storageset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'suppress-status-refresh' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-edit-begin' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-edit-commit' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'assume-confirmation' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'include-dry-run-reason-details' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'conformance-alerts' => {
                'type' => 'conformance-alert',
                'flags' => 7,
                'scope' => [],
            },
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'is-provisioning-failure' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'job-ids' => {
                'type' => 'job-info',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'dataset-edit-rollback' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-exclusion-list-info-iter-end' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-exclusion-list-info-iter-next' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'exclusion-list' => {
                'type' => 'excluded-object-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-exclusion-list-info-iter-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-io-metric-list-info-iter-end' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-io-metric-list-info-iter-next' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dataset-io-metrics' => {
                'type' => 'dataset-io-metric-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-io-metric-list-info-iter-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'day' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'month' => {
                'type' => 'month',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'year' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-list-info-iter-end' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-list-info-iter-next' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'datasets' => {
                'type' => 'dataset-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-list-info-iter-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'application-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'application-resource-namespace' => {
                'type' => 'application-resource-namespace',
                'flags' => 4,
                'scope' => [],
            },
            'application-server-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dr-state' => {
                'type' => 'dr-state',
                'flags' => 4,
                'scope' => [],
            },
            'has-application-policy' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'has-protection' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'has-protection-policy' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-can-contain-application-resources-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-can-contain-storage-resources-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-conformance-check-results' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-conformance-run-reason-details' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-export-settings' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-metadata' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-migration-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-protection-status-problems' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-application-data' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dr-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-protected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'requires-non-disruptive-restore' => {
                'type' => 'requires-non-disruptive-restore',
                'flags' => 4,
                'scope' => [],
            },
            'suppress-status-refresh' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'volume-qtree-name-prefix' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-member-dedupe-abort' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dataset-member-dedupe-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'dedupe-member-request-info' => {
                'type' => 'dedupe-member-request-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-member-delete-snapshots' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'delete-snapshots-request-info' => {
                'type' => 'delete-snapshots-request-info',
                'flags' => 1,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-member-list-info-iter-end' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-member-list-info-iter-next' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dataset-members' => {
                'type' => 'dataset-member-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-member-list-info-iter-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-exports-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-indirect' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-space-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'member-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'member-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'member-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storageset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'suppress-status-refresh' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-member-undedupe-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'undedupe-member-request-info' => {
                'type' => 'undedupe-member-request-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-missing-member-list-info-iter-end' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-missing-member-list-info-iter-next' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'missing-members' => {
                'type' => 'missing-member-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-missing-member-list-info-iter-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-modify' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'application-info' => {
                'type' => 'application-info',
                'flags' => 5,
                'scope' => [],
            },
            'application-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'check-protection-policy-on-commit' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-metadata' => {
                'type' => 'dfm-metadata-field',
                'flags' => 7,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-application-data' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-suspended' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-suspended' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'primary-volume-name-format' => {
                'type' => 'primary-volume-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'requires-non-disruptive-restore' => {
                'type' => 'requires-non-disruptive-restore',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-qtree-name-format' => {
                'type' => 'secondary-qtree-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-volume-name-format' => {
                'type' => 'secondary-volume-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-name-format' => {
                'type' => 'snapshot-name-format',
                'flags' => 4,
                'scope' => [],
            },
            'volume-qtree-name-prefix' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-modify-node' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-access-details' => {
                'type' => 'dataset-access-details',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-export-info' => {
                'type' => 'dataset-export-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'online-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'relinquish-vfiler' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'timezone-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-provision-member' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'provision-member-request-info' => {
                'type' => 'provision-member-request-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-remove-from-exclusion-list' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'objects-to-be-removed' => {
                'type' => 'obj-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-remove-member' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-member-parameters' => {
                'type' => 'dataset-member-parameter',
                'flags' => 3,
                'scope' => [],
            },
            'destroy' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-remove-member-by-dynamic-reference' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-dynamic-reference-parameters' => {
                'type' => 'dataset-dynamic-reference-parameter',
                'flags' => 3,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-remove-resourcepool' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-replace-primary-members' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'cancel-edit-sessions' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'replace-results' => {
                'type' => 'replace-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'dataset-resize-member' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'resize-member-request-info' => {
                'type' => 'resize-member-request-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-set' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'is-allow-custom-settings' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-enable-write-guarantee-checks' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-none-guaranteed-provision' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-skip-autosize-conformance' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'maximum-luns-per-volume' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'maximum-qtrees-per-volume' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-set-storageset' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-space-metric-list-info-iter-end' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-space-metric-list-info-iter-next' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dataset-space-metrics' => {
                'type' => 'dataset-space-metric-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-space-metric-list-info-iter-start' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'day' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'month' => {
                'type' => 'month',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'year' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-update-dr-status' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dataset-update-protection-status' => {
        'category' => 'dataset',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-about' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'include-directory-size-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'cpu-count' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dfm-directories' => {
                'type' => 'directory-info',
                'flags' => 3,
                'scope' => [],
            },
            'edition' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'install-dir' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'installed-plugins' => {
                'type' => 'plugin',
                'flags' => 3,
                'scope' => [],
            },
            'licensed-features' => {
                'type' => 'feature',
                'flags' => 3,
                'scope' => [],
            },
            'mode' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'node-limit' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'operating-system' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'prot-mgr-node-limit' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'prov-mgr-node-limit' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'serial-number' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'system-memory' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'system-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-backup-schedule-disable' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
        },
    },
    'dfm-backup-schedule-enable' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
        },
    },
    'dfm-backup-schedule-get' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'backup-type' => {
                'type' => 'backup-type',
                'flags' => 0,
                'scope' => [],
            },
            'day' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'hour' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'is-schedule-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'repeat-interval' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-backup-schedule-set' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'backup-type' => {
                'type' => 'backup-type',
                'flags' => 4,
                'scope' => [],
            },
            'day' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'hour' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'is-schedule-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'minute' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'repeat-interval' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-backup-start' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'backup-type' => {
                'type' => 'backup-type',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-backup-status' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'backup-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-get-api-statistics' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'clear-api-stats' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'api-statistics' => {
                'type' => 'api-stat',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-get-resource-property-values' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'resource-property' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'resource-property-values' => {
                'type' => 'resource-property-values',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-monitor-timestamp-list' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dfm-monitoring-timestamps' => {
                'type' => 'dfm-monitoring-timestamp',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-object-refresh' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'child-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'monitor-names' => {
                'type' => 'monitor-name',
                'flags' => 6,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-objects-get-status' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'objects' => {
                'type' => 'obj-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
        },
        'outputs' => {
            'objects-status' => {
                'type' => 'obj-status-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-related-objects-list-info' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'include-indirect' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'child-count-list' => {
                'type' => 'child-count',
                'flags' => 7,
                'scope' => [],
            },
            'parent-dataset-list' => {
                'type' => 'parent-dataset',
                'flags' => 7,
                'scope' => [],
            },
            'parent-group-list' => {
                'type' => 'parent-group',
                'flags' => 7,
                'scope' => [],
            },
            'parent-object-list' => {
                'type' => 'parent-object',
                'flags' => 7,
                'scope' => [],
            },
            'parent-resourcepool-list' => {
                'type' => 'parent-resourcepool',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'dfm-server-list-diagnostic-info' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'diag-info' => {
                'type' => 'dfm-diag-counter-group',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-snmp-setting-add' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'host-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'network-address' => {
                'type' => 'network-address',
                'flags' => 4,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'prefix-length',
                'flags' => 0,
                'scope' => [],
            },
            'privacy-password' => {
                'type' => 'string',
                'flags' => 12,
                'scope' => [],
            },
            'snmp-authentication-login' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-authentication-password' => {
                'type' => 'string',
                'flags' => 12,
                'scope' => [],
            },
            'snmp-authentication-protocol' => {
                'type' => 'snmp-authentication-protocol',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-community-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-version' => {
                'type' => 'snmp-version',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'snmp-id' => {
                'type' => 'snmp-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-snmp-setting-delete' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'host-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'network-address' => {
                'type' => 'network-address',
                'flags' => 4,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'prefix-length',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-id' => {
                'type' => 'snmp-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-snmp-setting-modify' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'prefix-length' => {
                'type' => 'prefix-length',
                'flags' => 4,
                'scope' => [],
            },
            'privacy-password' => {
                'type' => 'string',
                'flags' => 12,
                'scope' => [],
            },
            'snmp-authentication-login' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-authentication-password' => {
                'type' => 'string',
                'flags' => 12,
                'scope' => [],
            },
            'snmp-authentication-protocol' => {
                'type' => 'snmp-authentication-protocol',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-community-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-id' => {
                'type' => 'snmp-id',
                'flags' => 0,
                'scope' => [],
            },
            'snmp-version' => {
                'type' => 'snmp-version',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-snmp-settings-list-info' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
            'host-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'network-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snmp-id' => {
                'type' => 'snmp-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'network-snmp-credentials' => {
                'type' => 'network-snmp-credential-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-user-priv-get' => {
        'category' => 'dfm',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'privilege' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-content-get' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-create' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-daily-add' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-content' => {
                'type' => 'daily-info',
                'flags' => 1,
                'scope' => [],
            },
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-daily-delete' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-daily-modify' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-content' => {
                'type' => 'daily-info',
                'flags' => 1,
                'scope' => [],
            },
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-dependency' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-assignees' => {
                'type' => 'schedule-assignee',
                'flags' => 3,
                'scope' => [],
            },
            'schedule-in-use' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-destroy' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-hourly-add' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-content' => {
                'type' => 'hourly-info',
                'flags' => 1,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-hourly-delete' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-hourly-modify' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-content' => {
                'type' => 'hourly-info',
                'flags' => 1,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-list' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-list' => {
                'type' => 'schedule-id-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-list-info-iter-end' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-list-info-iter-next' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-content-list' => {
                'type' => 'schedule-content-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-list-info-iter-start' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-modify' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-monthly-add' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'monthly-content' => {
                'type' => 'monthly-info',
                'flags' => 1,
                'scope' => [],
            },
            'monthly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-monthly-delete' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'monthly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-monthly-modify' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'monthly-content' => {
                'type' => 'monthly-info',
                'flags' => 1,
                'scope' => [],
            },
            'monthly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-monthly-subschedule-set' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'monthly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'subschedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-monthly-subschedule-unset' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'monthly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-rename' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'new-schedule-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-weekly-add' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-content' => {
                'type' => 'weekly-info',
                'flags' => 1,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-weekly-delete' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-weekly-modify' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-content' => {
                'type' => 'weekly-info',
                'flags' => 1,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-weekly-subschedule-add' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'end-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'start-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-schedule-weekly-subschedule-delete' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-schedule-weekly-subschedule-modify' => {
        'category' => 'dfm-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'end-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'start-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'disk-list-info-iter-end' => {
        'category' => 'disk',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'disk-list-info-iter-next' => {
        'category' => 'disk',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'disks' => {
                'type' => 'disk-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'disk-list-info-iter-start' => {
        'category' => 'disk',
        'family' => [],
        'inputs' => {
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-content-list-iter-end' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-backup-content-list-iter-next' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'backup-contents' => {
                'type' => 'dp-backup-content-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-content-list-iter-start' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'primary-snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'root-object-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'sub-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'suppress-child-count' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-get-location' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'paths' => {
                'type' => 'dp-backup-path-info',
                'flags' => 3,
                'scope' => [],
            },
        },
        'outputs' => {
            'backup-locations' => {
                'type' => 'backup-location-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-backup-list-iter-end' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-backup-list-iter-next' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'backups' => {
                'type' => 'dp-backup-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-list-iter-start' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'application-resource-namespace' => {
                'type' => 'application-resource-namespace',
                'flags' => 4,
                'scope' => [],
            },
            'backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'has-application-resources-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'has-storage-resources-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-backup-graph-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-metadata' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-metadata-host-service' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'is-mounted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-root-object-restorable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'root-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'search-keys' => {
                'type' => 'search-key',
                'flags' => 6,
                'scope' => [],
            },
            'snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'sub-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-mount-start' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'mount-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-start' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-destination' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-destination-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-members' => {
                'type' => 'obj-name-or-id',
                'flags' => 6,
                'scope' => [],
            },
            'backup-script' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'hyperv-backup-settings-info' => {
                'type' => 'hyperv-backup-schedule-settings-info',
                'flags' => 5,
                'scope' => [],
            },
            'retention-duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 4,
                'scope' => [],
            },
            'vmware-backup-settings-info' => {
                'type' => 'vmware-backup-schedule-settings-info',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-unmount-start' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'mount-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-version-create' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-metadata' => {
                'type' => 'dfm-metadata',
                'flags' => 7,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'is-adding-members' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-complete' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-for-propagation' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-native' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storageset-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'version-members' => {
                'type' => 'version-member-info',
                'flags' => 7,
                'scope' => [],
            },
            'version-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-version-delete' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'allow-deferred-delete' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'delete-multiple-backups' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-backup-version-list-iter-end' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-backup-version-list-iter-next' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'backup-versions' => {
                'type' => 'dp-backup-version-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-version-list-iter-start' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-metadata' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'root-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'sub-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-version-modify' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'backup-metadata' => {
                'type' => 'dfm-metadata',
                'flags' => 7,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'dp-backup-transfer-info' => {
                'type' => 'dp-backup-transfer-info',
                'flags' => 5,
                'scope' => [],
            },
            'is-adding-members' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-complete' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'node-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'version-members' => {
                'type' => 'version-member-info',
                'flags' => 7,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-get-dataset-backup-jobs-data' => {
        'category' => 'dp-backup',
        'family' => [],
        'inputs' => {
            'backup-destination' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dp-jobs-data' => {
                'type' => 'dp-job-data',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-dashboard-get-dr-dataset-counts' => {
        'category' => 'dp-dashboard',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dr-state-status-counts' => {
                'type' => 'dr-state-status-count',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-dashboard-get-lagged-datasets' => {
        'category' => 'dp-dashboard',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'max-datasets' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dp-datasets' => {
                'type' => 'dp-dataset-lag-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-dashboard-get-lagged-relationships' => {
        'category' => 'dp-dashboard',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'is-external-relationship' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'max-relationships' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dp-relationships' => {
                'type' => 'dp-relationship-lag-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-dashboard-get-protected-data-counts' => {
        'category' => 'dp-dashboard',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'ignored-dataset-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'ignored-ossv-directory-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'ignored-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'ignored-volume-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-dataset-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-ossv-directory-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-volume-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-dataset-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-ossv-directory-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-volume-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-dashboard-get-protected-data-counts-2' => {
        'category' => 'dp-dashboard',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'ignored-dataset-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'ignored-ossv-directory-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'ignored-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'ignored-volume-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-dataset-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-ossv-directory-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-volume-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-application-resources' => {
                'type' => 'application-resource-info',
                'flags' => 7,
                'scope' => [],
            },
            'unprotected-dataset-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-volume-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-job-abort' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-job-cleanup' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-job-list-iter-end' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-job-list-iter-next' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'jobs' => {
                'type' => 'dp-job-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-job-list-iter-start' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'job-context-application-resource-namespace' => {
                'type' => 'application-resource-namespace',
                'flags' => 4,
                'scope' => [],
            },
            'job-context-application-resources-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'job-context-obj-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'job-state' => {
                'type' => 'dp-job-state',
                'flags' => 4,
                'scope' => [],
            },
            'job-type' => {
                'type' => 'dp-job-type',
                'flags' => 4,
                'scope' => [],
            },
            'job-types' => {
                'type' => 'job-type',
                'flags' => 6,
                'scope' => [],
            },
            'max-jobs' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'started-timestamp-from' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'started-timestamp-to' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-job-progress-event-list-iter-end' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-job-progress-event-list-iter-next' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'progress-events' => {
                'type' => 'dp-job-progress-event-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-job-progress-event-list-iter-start' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'connection-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'end-time' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'history' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'job-type' => {
                'type' => 'dp-job-type',
                'flags' => 4,
                'scope' => [],
            },
            'job-types' => {
                'type' => 'job-type',
                'flags' => 6,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-job-purge' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'completed-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'purge-jobs-completed-with-error' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-job-schedule-get-last-changed' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'last-changed-timestamp' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-job-schedule-list-iter-end' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-job-schedule-list-iter-next' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'scheduled-jobs' => {
                'type' => 'dp-scheduled-job',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-job-schedule-list-iter-start' => {
        'category' => 'dp-job',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'from-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'to-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-application-list-info-iter-end' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-ossv-application-list-info-iter-next' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'ossv-application-list' => {
                'type' => 'ossv-application-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-application-list-info-iter-start' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'ossv-application-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ossv-host-name-or-id' => {
                'type' => 'ossv-host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-application-restore-destination-list-info-iter-end' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-ossv-application-restore-destination-list-info-iter-next' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'ossv-application-restore-destination-list' => {
                'type' => 'ossv-application-restore-destination-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-application-restore-destination-list-info-iter-start' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'application-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-add' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'directory-path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'ossv-host-name-or-id' => {
                'type' => 'ossv-host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'directory-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-browse-iter-end' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-ossv-directory-browse-iter-next' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'subdirectories' => {
                'type' => 'dp-ossv-directory-name',
                'flags' => 2,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-browse-iter-start' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'directory-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ossv-host-name-or-id' => {
                'type' => 'ossv-host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-discovered-iter-end' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-ossv-directory-discovered-iter-next' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'directories' => {
                'type' => 'dp-ossv-directory-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-discovered-iter-start' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-backup-relationship' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-modify' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'dp-ossv-directory-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-ossv-directory-roots-iter-end' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-ossv-directory-roots-iter-next' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'roots' => {
                'type' => 'dp-ossv-directory-root-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-roots-iter-start' => {
        'category' => 'dp-ossv-directory',
        'family' => [],
        'inputs' => {
            'fs-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'ossv-host-name-or-id' => {
                'type' => 'ossv-host-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-copy' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'dp-policy-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dp-policy-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'template-dp-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'template-dp-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dp-policy-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-destroy' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-policy-edit-begin' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'dp-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-edit-commit' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'dp-policy-edit-rollback' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-policy-get-default-property-values' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'backup-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'backup-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'backup-script-path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'backup-script-run-as' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'daily-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'daily-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'failover-script-path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'failover-script-run-as' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-lag-error-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-lag-warning-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'lag-error-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'lag-warning-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'mirror-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'mirror-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'monthly-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'monthly-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'throttle-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'throttle-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-list-iter-end' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-policy-list-iter-next' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dp-policy-infos' => {
                'type' => 'dp-policy-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-list-iter-start' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'dp-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'is-dr-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-modify' => {
        'category' => 'dp-policy',
        'family' => [],
        'inputs' => {
            'dp-policy-content' => {
                'type' => 'dp-policy-content',
                'flags' => 1,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-relationship-list-info-iter-end' => {
        'category' => 'dp-relationship',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-relationship-list-info-iter-next' => {
        'category' => 'dp-relationship',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dp-relationships' => {
                'type' => 'dp-relationship-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-relationship-list-info-iter-start' => {
        'category' => 'dp-relationship',
        'family' => [],
        'inputs' => {
            'connection-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'destination-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'destination-type' => {
                'type' => 'relationship-endpoint-type',
                'flags' => 4,
                'scope' => [],
            },
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-managed' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-migration-relationship' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'operational-statuses' => {
                'type' => 'operational-status',
                'flags' => 6,
                'scope' => [],
            },
            'relationship-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'relationship-states' => {
                'type' => 'relationship-state',
                'flags' => 6,
                'scope' => [],
            },
            'relationship-type' => {
                'type' => 'relationship-type',
                'flags' => 4,
                'scope' => [],
            },
            'source-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'source-or-destination-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'source-type' => {
                'type' => 'relationship-endpoint-type',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-relationship-modify' => {
        'category' => 'dp-relationship',
        'family' => [],
        'inputs' => {
            'is-dp-imported' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-managed' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'relationship-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-restore-to-new-path' => {
        'category' => 'dp-restore',
        'family' => [],
        'inputs' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'check-overwrite' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'check-space-status' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'members' => {
                'type' => 'dp-recover-member-info',
                'flags' => 3,
                'scope' => [],
            },
            'migrate-relationship' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'overwrite-results' => {
                'type' => 'overwrite-result',
                'flags' => 7,
                'scope' => [],
            },
            'space-status-results' => {
                'type' => 'space-status-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'dp-restore-to-primary' => {
        'category' => 'dp-restore',
        'family' => [],
        'inputs' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'check-overwrite' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'check-space-status' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'paths' => {
                'type' => 'dp-path-info',
                'flags' => 3,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'overwrite-results' => {
                'type' => 'overwrite-result',
                'flags' => 7,
                'scope' => [],
            },
            'space-status-results' => {
                'type' => 'space-status-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'dp-restore-vi-start' => {
        'category' => 'dp-restore',
        'family' => [],
        'inputs' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dp-vi-restore-objects' => {
                'type' => 'dp-vi-restore-object',
                'flags' => 3,
                'scope' => [],
            },
            'dp-vi-restore-settings' => {
                'type' => 'dp-vi-restore-settings',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-content-get' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'dp-schedule-create' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-daily-add' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-content' => {
                'type' => 'daily-info',
                'flags' => 1,
                'scope' => [],
            },
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-daily-delete' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-daily-modify' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-content' => {
                'type' => 'daily-info',
                'flags' => 1,
                'scope' => [],
            },
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-dependency' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-assignees' => {
                'type' => 'schedule-assignee',
                'flags' => 3,
                'scope' => [],
            },
            'schedule-in-use' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-destroy' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-hourly-add' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-content' => {
                'type' => 'hourly-info',
                'flags' => 1,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-hourly-delete' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-hourly-modify' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-content' => {
                'type' => 'hourly-info',
                'flags' => 1,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-list' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'schedule-list' => {
                'type' => 'schedule-id-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-schedule-list-info-iter-end' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-list-info-iter-next' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-content-list' => {
                'type' => 'schedule-content-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-schedule-list-info-iter-start' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-modify' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-monthly-add' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'monthly-content' => {
                'type' => 'monthly-info',
                'flags' => 1,
                'scope' => [],
            },
            'monthly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-monthly-delete' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'monthly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-monthly-modify' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'monthly-content' => {
                'type' => 'monthly-info',
                'flags' => 1,
                'scope' => [],
            },
            'monthly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-monthly-subschedule-set' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'monthly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'subschedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-monthly-subschedule-unset' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'monthly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-rename' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'new-schedule-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-weekly-add' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'weekly-content' => {
                'type' => 'weekly-info',
                'flags' => 1,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-weekly-delete' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-weekly-modify' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'weekly-content' => {
                'type' => 'weekly-info',
                'flags' => 1,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-weekly-subschedule-add' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'end-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'start-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-schedule-weekly-subschedule-delete' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-schedule-weekly-subschedule-modify' => {
        'category' => 'dp-schedule',
        'family' => [],
        'inputs' => {
            'daily-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'end-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'start-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-schedule-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-throttle-create' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'throttle-content' => {
                'type' => 'throttle-content',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'throttle-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-throttle-dependency' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'throttle-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'throttle-assignees' => {
                'type' => 'throttle-assignee',
                'flags' => 3,
                'scope' => [],
            },
            'throttle-in-use' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-throttle-destroy' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'throttle-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-throttle-item-add' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'throttle-item-content' => {
                'type' => 'throttle-item-info',
                'flags' => 1,
                'scope' => [],
            },
            'throttle-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-throttle-item-delete' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'throttle-item-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'throttle-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-throttle-list-info-iter-end' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-throttle-list-info-iter-next' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'throttle-list' => {
                'type' => 'throttle-content',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-throttle-list-info-iter-start' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'throttle-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-throttle-modify' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'throttle-content' => {
                'type' => 'throttle-content',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dp-throttle-rename' => {
        'category' => 'dp-throttle',
        'family' => [],
        'inputs' => {
            'new-throttle-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'throttle-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'event-acknowledge' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'event-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'event-id-list' => {
                'type' => 'event-id-type',
                'flags' => 6,
                'scope' => [],
            },
        },
        'outputs' => {
            'event-acknowledged' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'events-acknowledged-list' => {
                'type' => 'event-action-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'event-delete' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'event-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'event-id-list' => {
                'type' => 'event-id-type',
                'flags' => 6,
                'scope' => [],
            },
        },
        'outputs' => {
            'event-deleted' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'events-deleted-list' => {
                'type' => 'event-action-info',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'event-generate' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'event-message' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'event-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'source' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'timestamp' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'event-list-iter-end' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'event-list-iter-next' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'events' => {
                'type' => 'event-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-list-iter-start' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'event-application-list' => {
                'type' => 'event-application-type',
                'flags' => 6,
                'scope' => [],
            },
            'event-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'event-severities' => {
                'type' => 'obj-status',
                'flags' => 6,
                'scope' => [],
            },
            'event-source-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'event-type-filter-list' => {
                'type' => 'event-type-filter',
                'flags' => 7,
                'scope' => [],
            },
            'greater-than-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'include-dataset-resource-status-events' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-deleted-objects' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-event-arguments' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-related' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-acknowledged' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-history' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-most-severe-first' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-oldest-first' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'max-events' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'time-range' => {
                'type' => 'event-timestamp-range',
                'flags' => 5,
                'scope' => [],
            },
            'timeout' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-status-change-list-iter-end' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'event-status-change-list-iter-next' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'events' => {
                'type' => 'event-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-status-change-list-iter-start' => {
        'category' => 'event',
        'family' => [],
        'inputs' => {
            'max-events' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'time-range' => {
                'type' => 'event-timestamp-range',
                'flags' => 1,
                'scope' => [],
            },
            'timeout' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'eventclass-add-custom' => {
        'category' => 'eventclass',
        'family' => [],
        'inputs' => {
            'about-message' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-class-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-names' => {
                'type' => 'event-name-info',
                'flags' => 3,
                'scope' => [],
            },
            'event-namespace-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-allow-duplicates' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-multi-current' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'event-class-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'eventclass-delete-custom' => {
        'category' => 'eventclass',
        'family' => [],
        'inputs' => {
            'event-class-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'eventclass-list' => {
        'category' => 'eventclass',
        'family' => [],
        'inputs' => {
            'event-class-objects' => {
                'type' => 'event-class-object',
                'flags' => 7,
                'scope' => [],
            },
        },
        'outputs' => {
            'event-classes' => {
                'type' => 'event-class-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'eventclass-list-iter-end' => {
        'category' => 'eventclass',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'eventclass-list-iter-next' => {
        'category' => 'eventclass',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'event-classes' => {
                'type' => 'event-class-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'eventclass-list-iter-start' => {
        'category' => 'eventclass',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'fcp-target-list-info-iter-end' => {
        'category' => 'fcp-target',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'fcp-target-list-info-iter-next' => {
        'category' => 'fcp-target',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'targets' => {
                'type' => 'target-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'fcp-target-list-info-iter-start' => {
        'category' => 'fcp-target',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'graph-data-list-info' => {
        'category' => 'graph',
        'family' => [],
        'inputs' => {
            'end-date' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'graph-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'graph-period' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-object' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-object' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'start-date' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'graph-line-values' => {
                'type' => 'graph-line-value-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'graph-list-info-iter-end' => {
        'category' => 'graph',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'graph-list-info-iter-next' => {
        'category' => 'graph',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'graphs' => {
                'type' => 'graph-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'graph-list-info-iter-start' => {
        'category' => 'graph',
        'family' => [],
        'inputs' => {
            'graph-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-add-member' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'member-name-or-id' => {
                'type' => 'object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-copy' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'new-group-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'parent-group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'group-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-create' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'parent-group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'group-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-delete-member' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'member-name-or-id' => {
                'type' => 'object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-destroy' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-get-options' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'group-option-info' => {
                'type' => 'group-option-info',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'group-get-status' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'group-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-is-member-of' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'is-member' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-list-iter-end' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-list-iter-next' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'group-list' => {
                'type' => 'group-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-list-iter-start' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'list-subgroups' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'rbac-operation' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-move' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'new-group-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'parent-group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-rename' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'new-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-set-options' => {
        'category' => 'group',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'group-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'group-option-info' => {
                'type' => 'group-option-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-member-list-iter-end' => {
        'category' => 'group_member',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'group-member-list-iter-next' => {
        'category' => 'group_member',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'group-member-list' => {
                'type' => 'group-member-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-member-list-iter-start' => {
        'category' => 'group_member',
        'family' => [],
        'inputs' => {
            'groups' => {
                'type' => 'group',
                'flags' => 6,
                'scope' => [],
            },
            'hide-subgroup-members' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-add' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'add-network' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'admin-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'block-cmode' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'host-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'agent-id' => {
                'type' => 'host-id',
                'flags' => 4,
                'scope' => [],
            },
            'appliance-id' => {
                'type' => 'host-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-add-license' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-license' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'suppress-inuse-error' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-add-ossv' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'ndmp-credentials' => {
                'type' => 'full-ndmp-credentials',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ossv-id' => {
                'type' => 'host-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-agent-ossv-service-start' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'agent-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'timeout' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-agent-ossv-service-stop' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'agent-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'timeout' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-capability-list-iter-end' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-capability-list-iter-next' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'capabilities' => {
                'type' => 'capability',
                'flags' => 2,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-capability-list-iter-start' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-create-ndmpuser' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'ndmp-username' => {
                'type' => 'ndmp-username',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-delete' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'ignore-host-in-use' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-domainuser-add' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-domainuser-name-or-id-or-sid' => {
                'type' => 'domainuser-name-or-id-or-sid',
                'flags' => 0,
                'scope' => [],
            },
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-usergroup-names-or-ids' => {
                'type' => 'host-usergroup-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-domainuser-id' => {
                'type' => 'access-object-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-domainuser-list-iter-end' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-domainuser-list-iter-next' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-domainusers' => {
                'type' => 'host-domainuser-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-domainuser-list-iter-start' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-domainuser-name-or-id-or-sid' => {
                'type' => 'domainuser-name-or-id-or-sid',
                'flags' => 4,
                'scope' => [],
            },
            'host-usergroup-name-or-id' => {
                'type' => 'usergroup-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'verbose' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-domainuser-push' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-domainuser-name-or-id-or-sid' => {
                'type' => 'domainuser-name-or-id-or-sid',
                'flags' => 0,
                'scope' => [],
            },
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-domainuser-remove' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-domainuser-name-or-id-or-sid' => {
                'type' => 'domainuser-name-or-id-or-sid',
                'flags' => 0,
                'scope' => [],
            },
            'host-usergroup-names-or-ids' => {
                'type' => 'host-usergroup-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-get-defaults' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'host-defaults' => {
                'type' => 'host-defaults',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'host-list-info-iter-end' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-list-info-iter-next' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'hosts' => {
                'type' => 'host-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-list-info-iter-start' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'expand-filer-to-vfilers' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'host-dp-filter-info' => {
                'type' => 'host-dp-filter-info',
                'flags' => 5,
                'scope' => [],
            },
            'host-types' => {
                'type' => 'host-type',
                'flags' => 6,
                'scope' => [],
            },
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-migration-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-perf-space-details' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-direct-member-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'license-filter' => {
                'type' => 'license',
                'flags' => 6,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'query-host' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-ipspace' => {
                'type' => 'vfiler-ipspace',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-modify' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-modify-info' => {
                'type' => 'host-modify-info',
                'flags' => 1,
                'scope' => [],
            },
            'host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-modify-agent-credentials' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'agent-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'management-password' => {
                'type' => 'host-password',
                'flags' => 4,
                'scope' => [],
            },
            'os-password' => {
                'type' => 'host-password',
                'flags' => 0,
                'scope' => [],
            },
            'os-username' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-role-create' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-role' => {
                'type' => 'host-role-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-role-id' => {
                'type' => 'access-object-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-role-delete' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-role-name-or-id' => {
                'type' => 'access-object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-role-list-iter-end' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-role-list-iter-next' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-roles' => {
                'type' => 'host-role-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-role-list-iter-start' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-role-name-or-id' => {
                'type' => 'access-object-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'verbose' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-role-modify' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-role' => {
                'type' => 'host-role-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-role-push' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-role-name-or-id' => {
                'type' => 'access-object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-set-option' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-option-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-option-value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-user-add' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-user' => {
                'type' => 'host-user-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-user-id' => {
                'type' => 'access-object-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-user-delete' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-user-name-or-id' => {
                'type' => 'access-object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-user-list-iter-end' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-user-list-iter-next' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-users' => {
                'type' => 'host-user-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-user-list-iter-start' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-user-name-or-id' => {
                'type' => 'access-object-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-usergroup-name-or-id' => {
                'type' => 'usergroup-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'verbose' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-user-modify' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-user' => {
                'type' => 'host-user-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-user-modify-password' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-user-name-or-id' => {
                'type' => 'access-object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'new-password' => {
                'type' => 'host-user-password',
                'flags' => 0,
                'scope' => [],
            },
            'old-password' => {
                'type' => 'host-user-password',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-user-push' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-user-name-or-id' => {
                'type' => 'access-object-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'password' => {
                'type' => 'host-user-password',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-usergroup-create' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-usergroup' => {
                'type' => 'host-usergroup-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-usergroup-id' => {
                'type' => 'access-object-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-usergroup-delete' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-usergroup-name-or-id' => {
                'type' => 'usergroup-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-usergroup-list-iter-end' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-usergroup-list-iter-next' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-usergroups' => {
                'type' => 'host-usergroup-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-usergroup-list-iter-start' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-usergroup-name-or-id' => {
                'type' => 'usergroup-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'verbose' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-usergroup-modify' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-usergroup' => {
                'type' => 'host-usergroup-info',
                'flags' => 1,
                'scope' => [],
            },
            'new-usergroup-name' => {
                'type' => 'usergroup-name',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-usergroup-push' => {
        'category' => 'host',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-usergroup-name-or-id' => {
                'type' => 'usergroup-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-service-authorize' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'host-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'run-discovery' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-service-configure' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'dfm-server-ip-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'storage-systems-configuration' => {
                'type' => 'storage-system-configuration',
                'flags' => 7,
                'scope' => [],
            },
            'vcenter-ip-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'vcenter-password' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'vcenter-username' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-discover' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'host-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'resource-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'resource-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'track-progress' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-service-list-info-iter-end' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-service-list-info-iter-next' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-services' => {
                'type' => 'host-service-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-list-info-iter-start' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'obj-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-modify' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'access-protocol' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'admin-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'ip-address' => {
                'type' => 'ip-address',
                'flags' => 4,
                'scope' => [],
            },
            'mgmt-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'update-service-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-service-package-delete' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'package-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-service-package-list' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'package-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-service-packages' => {
                'type' => 'host-service-package-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'host-service-register' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'admin-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dfm-server-ip-address' => {
                'type' => 'ip-address',
                'flags' => 4,
                'scope' => [],
            },
            'mgmt-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'name-or-ip-address' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'suppress-registered-error' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'is-authorized' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-hyperv-cluster-host-service' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-storage-system-list-info-iter-end' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'host-service-storage-system-list-info-iter-next' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'storage-systems' => {
                'type' => 'storage-system-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'host-service-storage-system-list-info-iter-start' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'host-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-unregister' => {
        'category' => 'host-service',
        'family' => [],
        'inputs' => {
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'ifc-list-info-iter-end' => {
        'category' => 'ifc',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'ifc-list-info-iter-next' => {
        'category' => 'ifc',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'ifcs' => {
                'type' => 'ifc-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'ifc-list-info-iter-start' => {
        'category' => 'ifc',
        'family' => [],
        'inputs' => {
            'ipspace' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'ldap-server-add' => {
        'category' => 'ldap',
        'family' => [],
        'inputs' => {
            'ldap-server' => {
                'type' => 'ldap-server',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'ldap-server-delete' => {
        'category' => 'ldap',
        'family' => [],
        'inputs' => {
            'ldap-server' => {
                'type' => 'ldap-server',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'ldap-server-list-info' => {
        'category' => 'ldap',
        'family' => [],
        'inputs' => {
            'ldap-server' => {
                'type' => 'ldap-server',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
            'ldap-servers' => {
                'type' => 'ldap-server-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'lun-destroy' => {
        'category' => 'lun',
        'family' => [],
        'inputs' => {
            'lun-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'lun-list-info-iter-end' => {
        'category' => 'lun',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'lun-list-info-iter-next' => {
        'category' => 'lun',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'luns' => {
                'type' => 'lun-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'lun-list-info-iter-start' => {
        'category' => 'lun',
        'family' => [],
        'inputs' => {
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'rbac-operation' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'lun-resize' => {
        'category' => 'lun',
        'family' => [],
        'inputs' => {
            'lun-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'new-size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'resize-underlying-volume' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'migrate-cancel' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'migrate-change-state' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'new-migration-status' => {
                'type' => 'migration-status',
                'flags' => 0,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'migrate-cleanup' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'migrate-complete' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'max-cutover-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'migrate-offline' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'persistent-migrated-routes' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'route-migration-mode' => {
                'type' => 'route-migration-mode',
                'flags' => 4,
                'scope' => [],
            },
            'run-dedupe-scan' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'migrate-fix' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'migrate-rollback' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'max-cutover-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'migrate-offline' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'persistent-migrated-routes' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'route-migration-mode' => {
                'type' => 'route-migration-mode',
                'flags' => 4,
                'scope' => [],
            },
            'run-dedupe-scan' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'migrate-start' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'bandwidth-throttle' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'ip-bindings' => {
                'type' => 'ip-binding-info',
                'flags' => 7,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'online-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'perform-cutover' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'persistent-migrated-routes' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'resource-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'route-migration-mode' => {
                'type' => 'route-migration-mode',
                'flags' => 4,
                'scope' => [],
            },
            'run-dedupe-scan' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'volume-aggregate-map' => {
                'type' => 'volume-aggregate-pair',
                'flags' => 7,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'migrate-update' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'migrate-volume' => {
        'category' => 'migrate',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'migration-request-info' => {
                'type' => 'migration-request-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'migration-dry-run-results' => {
                'type' => 'migration-dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'migration-jobs' => {
                'type' => 'migration-job-info',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'netif-ip-interface-list-info' => {
        'category' => 'netif',
        'family' => [],
        'inputs' => {
            'community-string' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'hostname' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'timeout' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'interfaces' => {
                'type' => 'netif-ip-interface-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-network-add' => {
        'category' => 'networks',
        'family' => [],
        'inputs' => {
            'network-address' => {
                'type' => 'network-address',
                'flags' => 0,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'prefix-length',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'network-id' => {
                'type' => 'network-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-network-delete' => {
        'category' => 'networks',
        'family' => [],
        'inputs' => {
            'network-address' => {
                'type' => 'network-address',
                'flags' => 4,
                'scope' => [],
            },
            'network-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'dfm-network-list-info' => {
        'category' => 'networks',
        'family' => [],
        'inputs' => {
            'network-id' => {
                'type' => 'network-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'networks' => {
                'type' => 'network-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dfm-network-modify' => {
        'category' => 'networks',
        'family' => [],
        'inputs' => {
            'network-id' => {
                'type' => 'network-id',
                'flags' => 0,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'prefix-length',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-assoc-view-list-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-assoc-view-list-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'views' => {
                'type' => 'perf-view',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-assoc-view-list-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'assoc-obj-type' => {
                'type' => 'perf-assoc-obj-type',
                'flags' => 4,
                'scope' => [],
            },
            'include-empty-views' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'verbose' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'view-type' => {
                'type' => 'view-type',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-client-stats-list-info-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-client-stats-list-info-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'hosts-client-stats' => {
                'type' => 'host-client-stats',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-client-stats-list-info-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'end-time' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'last-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'stat-id' => {
                'type' => 'stat-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-client-stats-purge' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'end-time' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'stat-id' => {
                'type' => 'stat-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'deleted-stats-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-collect-client-operation-statistics' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'collection-period' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'errors' => {
                'type' => 'client-stat-error',
                'flags' => 7,
                'scope' => [],
            },
            'stat-id' => {
                'type' => 'stat-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-copy-counter-configuration' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'destination-objects' => {
                'type' => 'obj-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
            'preview' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'source-host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'src-is-default' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'copy-result' => {
                'type' => 'destination-host-info',
                'flags' => 3,
                'scope' => [],
            },
            'missing-host-object-counters' => {
                'type' => 'perf-missing-host-object-counter',
                'flags' => 7,
                'scope' => [],
            },
            'purged-host-object-counters' => {
                'type' => 'perf-purged-host-object-counter',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'perf-counter-group-create' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'counter-group' => {
                'type' => 'perf-counter-group',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-counter-group-destroy' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-counter-group-get-data' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'data-group' => {
                'type' => 'perf-data-group',
                'flags' => 1,
                'scope' => [],
            },
            'end-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'sample-rate' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'time-consolidation-method' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'counter-data' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'unit' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-counter-group-get-dynamic-data-sources' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dynamic-data-sources' => {
                'type' => 'perf-dynamic-data-sources',
                'flags' => 1,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'data-sources' => {
                'type' => 'perf-data-source',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-counter-group-list-info' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'consolidate-hosts' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-info-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'custom-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'disabled-counter-info-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'include-calculated-stats' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'meta-data-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'counter-groups' => {
                'type' => 'perf-counter-group',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-counter-group-list-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-counter-group-list-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'counter-groups' => {
                'type' => 'perf-counter-group',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-counter-group-list-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'custom-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'meta-data-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-counter-group-modify' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group' => {
                'type' => 'perf-counter-group',
                'flags' => 1,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-counter-group-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-counter-group-stop' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-diag-troubleshoot' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'end-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'categories' => {
                'type' => 'perf-diag-category',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-disable-data-collection' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'is-async' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-persistent' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-disable-object-update' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
        },
    },
    'perf-enable-data-collection' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
        },
    },
    'perf-enable-object-update' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
        },
    },
    'perf-get-counter-data' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'direction' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'end-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'instance-counter-info' => {
                'type' => 'instance-counter-info',
                'flags' => 1,
                'scope' => [],
            },
            'number-samples' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'sample-rate' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'time-consolidation-method' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'time-filter' => {
                'type' => 'time-filter',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
            'invalid-counter-instances' => {
                'type' => 'invalid-counter-instance',
                'flags' => 7,
                'scope' => [],
            },
            'perf-instances' => {
                'type' => 'perf-instance-counter-data',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'perf-get-counter-dependents' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'counters' => {
                'type' => 'perf-object-counter',
                'flags' => 3,
                'scope' => [],
            },
            'host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'base-counters' => {
                'type' => 'perf-object-counter',
                'flags' => 7,
                'scope' => [],
            },
            'dependent-counters' => {
                'type' => 'perf-object-counter',
                'flags' => 7,
                'scope' => [],
            },
            'reports' => {
                'type' => 'perf-report',
                'flags' => 7,
                'scope' => [],
            },
            'threshold-templates' => {
                'type' => 'threshold-template',
                'flags' => 7,
                'scope' => [],
            },
            'thresholds' => {
                'type' => 'perf-threshold',
                'flags' => 7,
                'scope' => [],
            },
            'views' => {
                'type' => 'perf-view',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'perf-get-counter-list-not-in-view' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'object-counter-list' => {
                'type' => 'perf-object-counter-info',
                'flags' => 3,
                'scope' => [],
            },
        },
        'outputs' => {
            'orphan-object-counter-list' => {
                'type' => 'perf-object-counter-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-get-default-view' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-get-server-status' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'perf-server-status' => {
                'type' => 'perf-server-status',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'perf-object-counter-list-info' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'include-calculated-stats' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'counters' => {
                'type' => 'perf-counter',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-object-dependent-counter-list-info' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dependent-counters' => {
                'type' => 'perf-dependent-counter-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-object-instance-list-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-object-instance-list-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'instances' => {
                'type' => 'perf-instance',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-object-instance-list-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-object-list-info' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'objects' => {
                'type' => 'perf-object',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-set-default-view' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-status-get' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'host-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'data-unavailable-reason' => {
                'type' => 'perf-status-error',
                'flags' => 7,
                'scope' => [],
            },
            'is-data-available' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-create' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'threshold-info' => {
                'type' => 'threshold-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'threshold-id' => {
                'type' => 'threshold-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-create2' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'threshold-info2' => {
                'type' => 'threshold-info2',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'threshold-id' => {
                'type' => 'threshold-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-delete' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'threshold-id' => {
                'type' => 'threshold-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-list-info-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-list-info-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'attributes-list' => {
                'type' => 'threshold-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-list-info-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'query' => {
                'type' => 'threshold-info',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-list-info2-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-list-info2-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'attributes-list' => {
                'type' => 'threshold-info2',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-list-info2-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-id' => {
                'type' => 'threshold-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-modify' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'attributes' => {
                'type' => 'threshold-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-modify2' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'threshold-info2' => {
                'type' => 'threshold-info2',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-template-attach-objects' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'new-objects' => {
                'type' => 'object-info',
                'flags' => 7,
                'scope' => [],
            },
            'template-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-template-create' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'member-thresholds' => {
                'type' => 'threshold-info2',
                'flags' => 7,
                'scope' => [],
            },
            'template-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'template-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'template-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-template-delete' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'template-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'template-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'template-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-template-detach-objects' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'objects' => {
                'type' => 'object-info',
                'flags' => 7,
                'scope' => [],
            },
            'template-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-template-list-info-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-threshold-template-list-info-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'threshold-templates' => {
                'type' => 'threshold-template-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-threshold-template-list-info-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'include-objects' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-thresholds' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'template-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold-template-modify' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'is-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'member-thresholds' => {
                'type' => 'threshold-info2',
                'flags' => 7,
                'scope' => [],
            },
            'template-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'template-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'template-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-view-associated-objects-list' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'objects' => {
                'type' => 'object-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-view-create' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'data-sources' => {
                'type' => 'perf-data-source',
                'flags' => 7,
                'scope' => [],
            },
            'real-time' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'view' => {
                'type' => 'perf-view',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-view-destroy' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-counter-group-also-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-view-get-data' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'direction' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dynamic-object-info' => {
                'type' => 'perf-dynamic-data-sources',
                'flags' => 5,
                'scope' => [],
            },
            'end-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'instance' => {
                'type' => 'perf-counter-instance',
                'flags' => 5,
                'scope' => [],
            },
            'is-dynamic' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'number-samples' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'sample-rate' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'time-consolidation-method' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'counter-data' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dynamic-data' => {
                'type' => 'dynamic-data',
                'flags' => 7,
                'scope' => [],
            },
            'unit' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-view-list-iter-end' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-view-list-iter-next' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'views' => {
                'type' => 'perf-view',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-view-list-iter-start' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'custom-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'include-empty-views' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'instance-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-view-modify' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'view' => {
                'type' => 'perf-view',
                'flags' => 1,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-view-object-association-add' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'perf-view-object-association-delete' => {
        'category' => 'perf',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'provisioning-policy-copy' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'provisioning-policy-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'source-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-create' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'provisioning-policy-info' => {
                'type' => 'provisioning-policy-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-destroy' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'provisioning-policy-edit-begin' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-edit-commit' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-edit-rollback' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'provisioning-policy-list-iter-end' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'provisioning-policy-list-iter-next' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'provisioning-policies' => {
                'type' => 'provisioning-policy-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-list-iter-start' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'is-policy-readonly' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-type' => {
                'type' => 'provisioning-policy-type',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-modify' => {
        'category' => 'provisioning-policy',
        'family' => [],
        'inputs' => {
            'edit-lock-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'provisioning-policy-info' => {
                'type' => 'provisioning-policy-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'qtree-list-info-iter-end' => {
        'category' => 'qtree',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'qtree-list-info-iter-next' => {
        'category' => 'qtree',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'qtrees' => {
                'type' => 'qtree-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'qtree-list-info-iter-start' => {
        'category' => 'qtree',
        'family' => [],
        'inputs' => {
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-direct-member-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-direct-vfiler-child' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapvault-secondary-qtrees' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-unprotected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'rbac-operation' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'sort-results' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'qtree-modify' => {
        'category' => 'qtree',
        'family' => [],
        'inputs' => {
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'qtree-rename' => {
        'category' => 'qtree',
        'family' => [],
        'inputs' => {
            'qtree-name-new' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'qtree-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'qtree-start-monitoring' => {
        'category' => 'qtree',
        'family' => [],
        'inputs' => {
            'qtree-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'qtree-stop-monitoring' => {
        'category' => 'qtree',
        'family' => [],
        'inputs' => {
            'qtree-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-access-check' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'admin-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'operation' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'resource' => {
                'type' => 'resource-identifier',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'global-usergroup-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'local-usergroup-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'result' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'rbac-admin-list-info-iter-end' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-admin-list-info-iter-next' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'admins' => {
                'type' => 'admin-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'rbac-admin-list-info-iter-start' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'admin-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'rbac-admin-role-add' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'admin-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'admin-name-or-id' => {
                'type' => 'rbac-admin-name-or-id',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'rbac-admin-role-info-list' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'admin-list' => {
                'type' => 'rbac-admin-or-usergroup',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'rbac-admin-role-remove' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'admin-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'delete-all' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-operation-add' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'operation' => {
                'type' => 'rbac-operation',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-operation-delete' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'operation' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-operation-info-list' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'operation' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'operation-list' => {
                'type' => 'rbac-operation',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'rbac-role-add' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'owner-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'role-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'role-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'rbac-role-admin-info-list' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'admin-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'follow-role-inheritance' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'admin-name-or-id' => {
                'type' => 'rbac-admin-name-or-id',
                'flags' => 1,
                'scope' => [],
            },
            'global-usergroup-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'local-usergroup-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'role-list' => {
                'type' => 'rbac-role-resource',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'rbac-role-capability-add' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'operation' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'resource' => {
                'type' => 'resource-identifier',
                'flags' => 1,
                'scope' => [],
            },
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-role-capability-remove' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'delete-all' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'operation' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resource' => {
                'type' => 'resource-identifier',
                'flags' => 5,
                'scope' => [],
            },
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-role-delete' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-role-disinherit' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'disinherit-all' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'disinherited-role-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-role-info-list' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'follow-role-inheritance' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'role-attributes' => {
                'type' => 'role-attributes-identifier',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'rbac-role-inherit' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'inherited-role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'role-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'rbac-role-modify' => {
        'category' => 'rbac',
        'family' => [],
        'inputs' => {
            'role-description-new' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'role-name-new' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'role-name-or-id-old' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-category-list' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'category-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'category-provenance' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'category-list' => {
                'type' => 'category-list-info',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'report-designer-list' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'category-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'report-provenance' => {
                'type' => 'report-provenance',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'report-list' => {
                'type' => 'report-list-info',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'report-designer-schedule-add' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-info' => {
                'type' => 'report-schedule-info',
                'flags' => 1,
                'scope' => [],
            },
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'report-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-designer-schedule-delete' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-designer-schedule-modify' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-info' => {
                'type' => 'report-schedule-info',
                'flags' => 5,
                'scope' => [],
            },
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-content-info' => {
                'type' => 'schedule-content-info',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-designer-share' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'email-address-list' => {
                'type' => 'email-address-list',
                'flags' => 0,
                'scope' => [],
            },
            'output-format' => {
                'type' => 'report-output-format',
                'flags' => 4,
                'scope' => [],
            },
            'report-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'subject-field' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'target-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-graph-list-info-iter-end' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-graph-list-info-iter-next' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'graph-list' => {
                'type' => 'graph-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-graph-list-info-iter-start' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-application' => {
                'type' => 'report-application',
                'flags' => 4,
                'scope' => [],
            },
            'report-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'target-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-list-info-iter-end' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-list-info-iter-next' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'report-list' => {
                'type' => 'report-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'report-list-info-iter-start' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-application' => {
                'type' => 'report-application',
                'flags' => 4,
                'scope' => [],
            },
            'report-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'report-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-output-delete' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-output-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-output-list-info-iter-end' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-output-list-info-iter-next' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'report-output-list' => {
                'type' => 'report-output-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'report-output-list-info-iter-start' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'is-successful' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'report-application' => {
                'type' => 'report-application',
                'flags' => 4,
                'scope' => [],
            },
            'report-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'report-output-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'target-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-output-read' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'length' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'offset' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'report-output-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'file-data' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'length' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'output-format' => {
                'type' => 'report-output-format',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-schedule-add' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-info' => {
                'type' => 'report-schedule-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'report-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-schedule-delete' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-schedule-disable' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-schedule-enable' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-schedule-list-info-iter-end' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-schedule-list-info-iter-next' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'report-schedule-list' => {
                'type' => 'report-schedule-content-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'report-schedule-list-info-iter-start' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'is-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'report-application' => {
                'type' => 'report-application',
                'flags' => 4,
                'scope' => [],
            },
            'report-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'target-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-schedule-modify' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-info' => {
                'type' => 'report-schedule-info',
                'flags' => 1,
                'scope' => [],
            },
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'report-schedule-run' => {
        'category' => 'report',
        'family' => [],
        'inputs' => {
            'report-schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'report-output-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'resourcepool-add-member' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'member-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'move-if-exists' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'resource-tag' => {
                'type' => 'resource-tag',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'resourcepool-create' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'resourcepool' => {
                'type' => 'resourcepool-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'resourcepool-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'resourcepool-destroy' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'resourcepool-get-defaults' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'resourcepool-defaults' => {
                'type' => 'resourcepool-defaults',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'resourcepool-list-info-iter-end' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'resourcepool-list-info-iter-next' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepools' => {
                'type' => 'resourcepool-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'resourcepool-list-info-iter-start' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'check-licenses' => {
                'type' => 'license',
                'flags' => 6,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'include-free-space' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'resource-tag' => {
                'type' => 'resource-tag',
                'flags' => 4,
                'scope' => [],
            },
            'storage-reliability' => {
                'type' => 'storage-reliability',
                'flags' => 5,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'resourcepool-member-list-info-iter-end' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'resourcepool-member-list-info-iter-next' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepool-members' => {
                'type' => 'resourcepool-member-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'resourcepool-member-list-info-iter-start' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'include-dataset-space-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-indirect' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'member-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'provision-member-request-info' => {
                'type' => 'provision-member-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-member-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'run-provisioning-checks' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'resourcepool-modify' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'resourcepool' => {
                'type' => 'resourcepool-info',
                'flags' => 1,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'resourcepool-modify-member' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'member-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'resource-tag' => {
                'type' => 'resource-tag',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'resourcepool-remove-member' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'member-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepool-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'resourcepool-update-free-space-status' => {
        'category' => 'resourcepool',
        'family' => [],
        'inputs' => {
            'resourcepool-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'snapshot-get-reclaimable-info' => {
        'category' => 'snapshot',
        'family' => [],
        'inputs' => {
            'snapshots' => {
                'type' => 'snapshot',
                'flags' => 3,
                'scope' => [],
            },
            'volume-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'reclaimable-size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-shared-data' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'snapshot-list-info-iter-end' => {
        'category' => 'snapshot',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'snapshot-list-info-iter-next' => {
        'category' => 'snapshot',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'snapshots' => {
                'type' => 'snapshot-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'snapshot-list-info-iter-start' => {
        'category' => 'snapshot',
        'family' => [],
        'inputs' => {
            'include-backup-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'srm-file-type-add' => {
        'category' => 'srm',
        'family' => [],
        'inputs' => {
            'srm-file-type-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'srm-file-type-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'srm-file-type-delete' => {
        'category' => 'srm',
        'family' => [],
        'inputs' => {
            'srm-file-type-name-or-id-list' => {
                'type' => 'object-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'srm-file-type-list-info' => {
        'category' => 'srm',
        'family' => [],
        'inputs' => {
            'srm-file-type-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'srm-file-types' => {
                'type' => 'srm-file-type-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'storage-service-create' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'group-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-node-list' => {
                'type' => 'storage-service-node-attributes',
                'flags' => 3,
                'scope' => [],
            },
            'storage-service-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'storage-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'storage-service-dataset-list-iter-end' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'storage-service-dataset-list-iter-next' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-datasets-info' => {
                'type' => 'storage-service-dataset-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'storage-service-dataset-list-iter-start' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'storage-service-dataset-modify' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'assume-confirmation' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-dry-run-reason-details' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'operation-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-node-list' => {
                'type' => 'storage-service-node-attributes',
                'flags' => 7,
                'scope' => [],
            },
        },
        'outputs' => {
            'conformance-alerts' => {
                'type' => 'conformance-alert',
                'flags' => 7,
                'scope' => [],
            },
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'storage-service-dataset-provision' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'application-info' => {
                'type' => 'application-info',
                'flags' => 5,
                'scope' => [],
            },
            'assume-confirmation' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-metadata' => {
                'type' => 'dfm-metadata-field',
                'flags' => 7,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'include-dry-run-reason-details' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-application-data' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-suspended' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'online-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provision-member' => {
                'type' => 'provision-member-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'requires-non-disruptive-restore' => {
                'type' => 'requires-non-disruptive-restore',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'storage-set-details' => {
                'type' => 'storage-set-info',
                'flags' => 7,
                'scope' => [],
            },
            'volume-qtree-name-prefix' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'conformance-alerts' => {
                'type' => 'conformance-alert',
                'flags' => 7,
                'scope' => [],
            },
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'storage-service-destroy' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'force' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'storage-service-list-info-iter-end' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'storage-service-list-info-iter-next' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'storage-services' => {
                'type' => 'storage-service-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'storage-service-list-info-iter-start' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'is-dr-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'storage-service-modify' => {
        'category' => 'storage-service',
        'family' => [],
        'inputs' => {
            'assume-confirmation' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-dry-run-reason-details' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-node-list' => {
                'type' => 'storage-service-node-attributes',
                'flags' => 7,
                'scope' => [],
            },
            'storage-service-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'conformance-alerts' => {
                'type' => 'conformance-alert',
                'flags' => 7,
                'scope' => [],
            },
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'timezone-get-defaults' => {
        'category' => 'timezone',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'timezone-defaults' => {
                'type' => 'timezone-defaults',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'timezone-list-info-iter-end' => {
        'category' => 'timezone',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'timezone-list-info-iter-next' => {
        'category' => 'timezone',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'timezones' => {
                'type' => 'timezone-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'timezone-list-info-iter-start' => {
        'category' => 'timezone',
        'family' => [],
        'inputs' => {
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'timezone-validate' => {
        'category' => 'timezone',
        'family' => [],
        'inputs' => {
            'timezone' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'utc-offset' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'user-favorite-report-delete' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'user-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'user-favorite-report-list-info-iter-end' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'user-favorite-report-list-info-iter-next' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'favorites' => {
                'type' => 'user-report-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'user-favorite-report-list-info-iter-start' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'user-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'user-recent-report-delete' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'user-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'user-recent-report-list-info-iter-end' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'user-recent-report-list-info-iter-next' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'recent-viewed' => {
                'type' => 'user-report-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'user-recent-report-list-info-iter-start' => {
        'category' => 'user_report_profile',
        'family' => [],
        'inputs' => {
            'user-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vfiler-create' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'allowed-protocols' => {
                'type' => 'protocol',
                'flags' => 6,
                'scope' => [],
            },
            'dry-run' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'ip-address' => {
                'type' => 'ip-address',
                'flags' => 4,
                'scope' => [],
            },
            'ipspace' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'resource-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'filer-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'filer-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'root-volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'root-volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'vfiler-destroy' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'vfiler-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vfiler-setup' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'allowed-protocols' => {
                'type' => 'protocol',
                'flags' => 6,
                'scope' => [],
            },
            'cifs-domain-password' => {
                'type' => 'string',
                'flags' => 12,
                'scope' => [],
            },
            'cifs-domain-user' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'cifs-workgroup-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ip-bindings' => {
                'type' => 'ip-binding-info',
                'flags' => 7,
                'scope' => [],
            },
            'root-password' => {
                'type' => 'string',
                'flags' => 12,
                'scope' => [],
            },
            'run-cifs-setup' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-template-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vfiler-template-copy' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'vfiler-template-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-template-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'vfiler-template-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vfiler-template-create' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'vfiler-template' => {
                'type' => 'vfiler-template-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
            'vfiler-template-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vfiler-template-delete' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'vfiler-template-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vfiler-template-list-info-iter-end' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vfiler-template-list-info-iter-next' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-templates' => {
                'type' => 'vfiler-template-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'vfiler-template-list-info-iter-start' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'vfiler-template-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vfiler-template-modify' => {
        'category' => 'vfiler',
        'family' => [],
        'inputs' => {
            'vfiler-template' => {
                'type' => 'vfiler-template-info',
                'flags' => 1,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vi-datacenter-list-info-iter-end' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vi-datacenter-list-info-iter-next' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'datacenters' => {
                'type' => 'datacenter',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-datacenter-list-info-iter-start' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-unprotected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'obj-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-datastore-list-info-iter-end' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vi-datastore-list-info-iter-next' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'datastores' => {
                'type' => 'datastore',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-datastore-list-info-iter-start' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-unprotected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'obj-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-hypervisor-list-info-iter-end' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vi-hypervisor-list-info-iter-next' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'hypervisors' => {
                'type' => 'hypervisor-info',
                'flags' => 3,
                'scope' => [],
            },
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-hypervisor-list-info-iter-start' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'obj-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'virtual-infrastructure-type' => {
                'type' => 'virtual-infrastructure-type',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-virtual-center-list-info-iter-end' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vi-virtual-center-list-info-iter-next' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-centers' => {
                'type' => 'virtual-center',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'vi-virtual-center-list-info-iter-start' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'obj-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-virtual-disk-list-info-iter-end' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vi-virtual-disk-list-info-iter-next' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-disks' => {
                'type' => 'virtual-disk',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'vi-virtual-disk-list-info-iter-start' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'obj-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vi-virtual-machine-list-info-iter-end' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'vi-virtual-machine-list-info-iter-next' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-machines' => {
                'type' => 'virtual-machine',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'vi-virtual-machine-list-info-iter-start' => {
        'category' => 'virtual-infrastructure',
        'family' => [],
        'inputs' => {
            'include-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-unprotected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'obj-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'virtual-infrastructure-type' => {
                'type' => 'virtual-infrastructure-type',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-dedupe' => {
        'category' => 'volume',
        'family' => [],
        'inputs' => {
            'dedupe-request-info' => {
                'type' => 'dedupe-request-info',
                'flags' => 1,
                'scope' => [],
            },
            'volume-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-destroy' => {
        'category' => 'volume',
        'family' => [],
        'inputs' => {
            'volume-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-list-info-iter-end' => {
        'category' => 'volume',
        'family' => [],
        'inputs' => {
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'volume-list-info-iter-next' => {
        'category' => 'volume',
        'family' => [],
        'inputs' => {
            'maximum' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'volumes' => {
                'type' => 'volume-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'volume-list-info-iter-start' => {
        'category' => 'volume',
        'family' => [],
        'inputs' => {
            'block-type' => {
                'type' => 'file-system-block-type',
                'flags' => 4,
                'scope' => [],
            },
            'include-is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-migration-info' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'include-next-scheduled-backup-time' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-direct-member-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-sis-volume' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapmirror-primary-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapmirror-secondary-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapvault-primary-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapvault-secondary-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-unprotected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-management-filter' => {
                'type' => 'object-management-interface',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'rbac-operation' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'snapvault-secondary-schedule-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'volume-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
        'outputs' => {
            'records' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'tag' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-modify' => {
        'category' => 'volume',
        'family' => [],
        'inputs' => {
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'volume-name-or-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
        },
    },
    'volume-resize' => {
        'category' => 'volume',
        'family' => [],
        'inputs' => {
            'resize-volume-request-info' => {
                'type' => 'resize-volume-request-info',
                'flags' => 1,
                'scope' => [],
            },
            'volume-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
        'outputs' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
};

my $TYPEDEFS = {
    'aggregate-info' => {
        'category' => 'aggregate',
        'fields' => {
            'aggregate-full-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-nearly-full-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-nearly-overcommitted-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-overcommitted-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-perf-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'aggregate-size' => {
                'type' => 'aggregate-size',
                'flags' => 1,
                'scope' => [],
            },
            'aggregate-space-status' => {
                'type' => 'object-space-status',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'aggregate-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'block-type' => {
                'type' => 'file-system-block-type',
                'flags' => 0,
                'scope' => [],
            },
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'datasets-space-info' => {
                'type' => 'dataset-space-info',
                'flags' => 7,
                'scope' => [],
            },
            'filer-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'filer-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-flash-pool-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepool-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'time-to-full' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'aggregate-size' => {
        'category' => 'aggregate',
        'fields' => {
            'size-available' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'size-total' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'size-used' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'space-total-committed' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'aggregate-space-info' => {
        'category' => 'aggregate',
        'fields' => {
            'aggregate-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'committed-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'used-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'backup-deletion-request-info' => {
        'category' => 'aggregate',
        'fields' => {
            'backup-ids' => {
                'type' => 'backup-id',
                'flags' => 2,
                'scope' => [],
            },
        },
    },
    'backup-id' => {
        'category' => 'aggregate',
        'fields' => {
        },
    },
    'cleanup-stale-storage' => {
        'category' => 'aggregate',
        'fields' => {
        },
    },
    'dedupe-request-info' => {
        'category' => 'aggregate',
        'fields' => {
            'full-volume-dedupe' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'object-management-interface' => {
        'category' => 'aggregate',
        'fields' => {
        },
    },
    'resize-volume-request-info' => {
        'category' => 'aggregate',
        'fields' => {
            'maximum-capacity' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'new-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snap-reserve' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'snapshot-deletion-request-info' => {
        'category' => 'aggregate',
        'fields' => {
            'snapshots' => {
                'type' => 'snapshot',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'space-management-op-type' => {
        'category' => 'aggregate',
        'fields' => {
        },
    },
    'space-management-operation-info' => {
        'category' => 'aggregate',
        'fields' => {
            'backup-deletion-request-info' => {
                'type' => 'backup-deletion-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'dedupe-request-info' => {
                'type' => 'dedupe-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'resize-volume-request-info' => {
                'type' => 'resize-volume-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'snapshot-deletion-request-info' => {
                'type' => 'snapshot-deletion-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'space-management-op-type' => {
                'type' => 'space-management-op-type',
                'flags' => 0,
                'scope' => [],
            },
            'volume-migration-request-info' => {
                'type' => 'volume-migration-request-info',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'space-management-result-info' => {
        'category' => 'aggregate',
        'fields' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'space-management-op-type' => {
                'type' => 'space-management-op-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-migration-request-info' => {
        'category' => 'aggregate',
        'fields' => {
            'cleanup-stale-storage' => {
                'type' => 'cleanup-stale-storage',
                'flags' => 4,
                'scope' => [],
            },
            'destination-aggregate-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 4,
                'scope' => [],
            },
            'run-dedupe-scan' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'run-on-demand-update' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'admin-name' => {
        'category' => 'alarm',
        'fields' => {
        },
    },
    'alarm-defaults' => {
        'category' => 'alarm',
        'fields' => {
            'group-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-disabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-repeat-notify' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'repeat-interval' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'trap-port' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'alarm-info' => {
        'category' => 'alarm',
        'fields' => {
            'admin-login-names' => {
                'type' => 'admin-name',
                'flags' => 6,
                'scope' => [],
            },
            'alarm-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'alarm-script' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'alarm-script-runas' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'email-addresses' => {
                'type' => 'email-address',
                'flags' => 6,
                'scope' => [],
            },
            'event-class' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'event-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'event-severity' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'group-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'group-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-disabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-repeat-notify' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'pager-admin-login-names' => {
                'type' => 'admin-name',
                'flags' => 6,
                'scope' => [],
            },
            'pager-email-addresses' => {
                'type' => 'email-address',
                'flags' => 6,
                'scope' => [],
            },
            'repeat-interval' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'time-from' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'time-to' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'trap-destinations' => {
                'type' => 'trap-destination',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'email-address' => {
        'category' => 'alarm',
        'fields' => {
        },
    },
    'trap-destination' => {
        'category' => 'alarm',
        'fields' => {
            'trap-community' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'trap-host' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'trap-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'request' => {
        'category' => 'api',
        'fields' => {
            'args' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'response' => {
        'category' => 'api',
        'fields' => {
            'errno' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'reason' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'results' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-backup-operation-info' => {
        'category' => 'application-policy',
        'fields' => {
            'backup-schedules' => {
                'type' => 'application-backup-schedule-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'application-backup-schedule-info' => {
        'category' => 'application-policy',
        'fields' => {
            'hyperv-backup-schedule-settings-info' => {
                'type' => 'hyperv-backup-schedule-settings-info',
                'flags' => 5,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'simple-schedule-info' => {
                'type' => 'simple-schedule-info',
                'flags' => 1,
                'scope' => [],
            },
            'start-remote-backup-after-local-backup' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'vmware-backup-schedule-settings-info' => {
                'type' => 'vmware-backup-schedule-settings-info',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'application-policy-info' => {
        'category' => 'application-policy',
        'fields' => {
            'application-backup-operation-info' => {
                'type' => 'application-backup-operation-info',
                'flags' => 1,
                'scope' => [],
            },
            'application-policy-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'application-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'application-policy-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'application-policy-settings-info' => {
                'type' => 'application-policy-settings-info',
                'flags' => 1,
                'scope' => [],
            },
            'application-policy-type' => {
                'type' => 'application-policy-type',
                'flags' => 0,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'application-policy-settings-info' => {
        'category' => 'application-policy',
        'fields' => {
            'backup-script' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'daily-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'daily-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'hourly-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-lag-error-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-lag-warning-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'lag-error-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'lag-warning-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'monthly-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'monthly-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-retention-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-retention-duration' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-policy-type' => {
        'category' => 'application-policy',
        'fields' => {
        },
    },
    'day-of-month' => {
        'category' => 'application-policy',
        'fields' => {
        },
    },
    'day-of-week' => {
        'category' => 'application-policy',
        'fields' => {
        },
    },
    'hyperv-backup-schedule-settings-info' => {
        'category' => 'application-policy',
        'fields' => {
            'allow-saved-state-backup' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'simple-schedule-info' => {
        'category' => 'application-policy',
        'fields' => {
            'days-of-month' => {
                'type' => 'day-of-month',
                'flags' => 6,
                'scope' => [],
            },
            'days-of-week' => {
                'type' => 'day-of-week',
                'flags' => 6,
                'scope' => [],
            },
            'times-of-day-info' => {
                'type' => 'times-of-day-info',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'time-of-day-info' => {
        'category' => 'application-policy',
        'fields' => {
            'hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'times-of-day-info' => {
        'category' => 'application-policy',
        'fields' => {
            'end-time' => {
                'type' => 'time-of-day-info',
                'flags' => 5,
                'scope' => [],
            },
            'frequency' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'time-of-day-info',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'vmware-backup-schedule-settings-info' => {
        'category' => 'application-policy',
        'fields' => {
            'create-vmware-snapshot' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'include-independent-disks' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'cifs-domain-info' => {
        'category' => 'cifs',
        'fields' => {
            'cifs-dns-domain-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'cifs-domain-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'cifs-domain-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'client-option-info' => {
        'category' => 'client',
        'fields' => {
            'option' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'comment-field-id' => {
        'category' => 'comment',
        'fields' => {
        },
    },
    'comment-field-info' => {
        'category' => 'comment',
        'fields' => {
            'comment-field-id' => {
                'type' => 'comment-field-id',
                'flags' => 4,
                'scope' => [],
            },
            'comment-field-name' => {
                'type' => 'comment-field-name',
                'flags' => 0,
                'scope' => [],
            },
            'comment-field-object-types' => {
                'type' => 'comment-field-object-type',
                'flags' => 6,
                'scope' => [],
            },
            'is-system-comment' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'comment-field-name' => {
        'category' => 'comment',
        'fields' => {
        },
    },
    'comment-field-name-or-id' => {
        'category' => 'comment',
        'fields' => {
        },
    },
    'comment-field-object-type' => {
        'category' => 'comment',
        'fields' => {
        },
    },
    'comment-field-value' => {
        'category' => 'comment',
        'fields' => {
            'comment-field-id' => {
                'type' => 'comment-field-id',
                'flags' => 0,
                'scope' => [],
            },
            'comment-field-name' => {
                'type' => 'comment-field-name',
                'flags' => 0,
                'scope' => [],
            },
            'comment-value' => {
                'type' => 'comment-value',
                'flags' => 0,
                'scope' => [],
            },
            'object-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'comment-value' => {
        'category' => 'comment',
        'fields' => {
        },
    },
    'application-info' => {
        'category' => 'dataset',
        'fields' => {
            'application-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'application-server-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'application-version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'carry-primary-backup-retention' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-application-managing-primary-backup-retention' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-application-responsible-for-primary-backup' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-resource-namespace' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'cifs-permission' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'cifs-share-info' => {
        'category' => 'dataset',
        'fields' => {
            'cifs-share-name' => {
                'type' => 'cifs-share-name',
                'flags' => 0,
                'scope' => [],
            },
            'cifs-share-permissions' => {
                'type' => 'cifs-share-permission',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'cifs-share-name' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'cifs-share-permission' => {
        'category' => 'dataset',
        'fields' => {
            'cifs-username' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'permission' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'conformance-alert' => {
        'category' => 'dataset',
        'fields' => {
            'conformance-alert-effect' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'conformance-alert-reason' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'conformance-alert-severity' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'conformance-alert-suggestion' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'conformance-alert-type' => {
                'type' => 'conformance-alert-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'conformance-alert-type' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'conformance-run-result' => {
        'category' => 'dataset',
        'fields' => {
            'conformance-job-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'conformance-run-action' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'conformance-run-effect' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'conformance-run-reason' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'conformance-run-reason-details' => {
                'type' => 'result-detail',
                'flags' => 7,
                'scope' => [],
            },
            'conformance-run-severity' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'conformance-run-suggestion' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dataset-access-details' => {
        'category' => 'dataset',
        'fields' => {
            'ip-address' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'netmask' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-cifs-export-setting' => {
        'category' => 'dataset',
        'fields' => {
            'cifs-domain' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-cifs-share-permissions' => {
                'type' => 'dataset-cifs-share-permission',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'dataset-cifs-share-permission' => {
        'category' => 'dataset',
        'fields' => {
            'cifs-username' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'permission' => {
                'type' => 'cifs-permission',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-dynamic-reference-info' => {
        'category' => 'dataset',
        'fields' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'dynamic-reference-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dynamic-reference-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'dynamic-reference-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'dynamic-reference-subtype' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dynamic-reference-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'storageset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storageset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-dynamic-reference-parameter' => {
        'category' => 'dataset',
        'fields' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-export-info' => {
        'category' => 'dataset',
        'fields' => {
            'dataset-cifs-export-setting' => {
                'type' => 'dataset-cifs-export-setting',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-export-protocol' => {
                'type' => 'dataset-export-protocol',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-lun-mapping-info' => {
                'type' => 'dataset-lun-mapping-info',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-nfs-export-setting' => {
                'type' => 'dataset-nfs-export-setting',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'dataset-export-protocol' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'dataset-info' => {
        'category' => 'dataset',
        'fields' => {
            'application-info' => {
                'type' => 'application-info',
                'flags' => 5,
                'scope' => [],
            },
            'application-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'application-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'application-resource-namespaces' => {
                'type' => 'application-resource-namespace',
                'flags' => 6,
                'scope' => [],
            },
            'can-contain-application-resources' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'can-contain-storage-resources' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-access-details' => {
                'type' => 'dataset-access-details',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-export-info' => {
                'type' => 'dataset-export-info',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-map' => {
                'type' => 'dataset-map-entry',
                'flags' => 7,
                'scope' => [],
            },
            'dataset-metadata' => {
                'type' => 'dfm-metadata-field',
                'flags' => 7,
                'scope' => [],
            },
            'dataset-migration-info' => {
                'type' => 'dataset-migration-info',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-status' => {
                'type' => 'dataset-status',
                'flags' => 1,
                'scope' => [],
            },
            'dr-state' => {
                'type' => 'dr-state',
                'flags' => 4,
                'scope' => [],
            },
            'dynamic-reference-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'has-protection' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'has-protection-policy' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-allow-custom-settings' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-application-data' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-suspended' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dr-capable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-enable-write-guarantee-checks' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-none-guaranteed-provision' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-protected' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-skip-autosize-conformance' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-suspended' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-vfiler-created-for-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'maximum-luns-per-volume' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'maximum-qtrees-per-volume' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'member-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'online-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'primary-volume-name-format' => {
                'type' => 'primary-volume-name-format',
                'flags' => 0,
                'scope' => [],
            },
            'protection-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'requires-non-disruptive-restore' => {
                'type' => 'requires-non-disruptive-restore',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepool-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepools' => {
                'type' => 'dataset-resourcepool-info',
                'flags' => 7,
                'scope' => [],
            },
            'secondary-qtree-name-format' => {
                'type' => 'secondary-qtree-name-format',
                'flags' => 0,
                'scope' => [],
            },
            'secondary-volume-name-format' => {
                'type' => 'secondary-volume-name-format',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-name-format' => {
                'type' => 'snapshot-name-format',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'storageset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storageset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'storageset-timezone' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'volume-qtree-name-prefix' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-io-metric-info' => {
        'category' => 'dataset',
        'fields' => {
            'dataset-node' => {
                'type' => 'metric-dataset-node-info',
                'flags' => 1,
                'scope' => [],
            },
            'io-measurement' => {
                'type' => 'io-measurement',
                'flags' => 1,
                'scope' => [],
            },
            'is-io-data-partial' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-overcharge' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-lun-mapping-info' => {
        'category' => 'dataset',
        'fields' => {
            'igroup-os-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'lun-mapping-initiators' => {
                'type' => 'lun-mapping-initiator',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dataset-map-entry' => {
        'category' => 'dataset',
        'fields' => {
            'dataset-access-details' => {
                'type' => 'dataset-access-details',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-export-info' => {
                'type' => 'dataset-export-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 0,
                'scope' => [],
            },
            'is-dr-capable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-vfiler-created-for-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepools' => {
                'type' => 'dataset-resourcepool-info',
                'flags' => 7,
                'scope' => [],
            },
            'storageset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storageset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'storageset-timezone' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dataset-member-info' => {
        'category' => 'dataset',
        'fields' => {
            'cifs-share-names' => {
                'type' => 'cifs-share-name',
                'flags' => 6,
                'scope' => [],
            },
            'cifs-shares-info' => {
                'type' => 'cifs-share-info',
                'flags' => 3,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-deleted' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'lun-igroups-info' => {
                'type' => 'lun-igroup-info',
                'flags' => 7,
                'scope' => [],
            },
            'member-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'member-perf-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'member-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'member-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'nfs-export-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'nfs-export-rules' => {
                'type' => 'nfs-export-rules',
                'flags' => 1,
                'scope' => [],
            },
            'space-info' => {
                'type' => 'space-info',
                'flags' => 5,
                'scope' => [],
            },
            'storageset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storageset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-member-parameter' => {
        'category' => 'dataset',
        'fields' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-migration-info' => {
        'category' => 'dataset',
        'fields' => {
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'destination-filer-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'destination-filer-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'destination-vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'destination-vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'migration-status' => {
                'type' => 'migration-status',
                'flags' => 0,
                'scope' => [],
            },
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'source-filer-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'source-filer-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'source-vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'source-vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-nfs-export-setting' => {
        'category' => 'dataset',
        'fields' => {
            'anonymous-access-user' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'disable-setuid' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-readonly-for-all-hosts' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-readwrite-for-all-hosts' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'nfs-export-ro-hosts' => {
                'type' => 'nfs-export-host',
                'flags' => 7,
                'scope' => [],
            },
            'nfs-export-root-hosts' => {
                'type' => 'nfs-export-host',
                'flags' => 7,
                'scope' => [],
            },
            'nfs-export-rw-hosts' => {
                'type' => 'nfs-export-host',
                'flags' => 7,
                'scope' => [],
            },
            'nfs-protocol-version' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'nfs-security-flavors' => {
                'type' => 'nfs-security-flavor',
                'flags' => 6,
                'scope' => [],
            },
        },
    },
    'dataset-node-info' => {
        'category' => 'dataset',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-node-effective-primary' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-resourcepool-info' => {
        'category' => 'dataset',
        'fields' => {
            'resourcepool-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'resourcepool-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-space-metric-info' => {
        'category' => 'dataset',
        'fields' => {
            'avg-space-measurement' => {
                'type' => 'space-measurement',
                'flags' => 1,
                'scope' => [],
            },
            'dataset-node' => {
                'type' => 'metric-dataset-node-info',
                'flags' => 1,
                'scope' => [],
            },
            'is-overcharge' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-space-data-partial' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'max-space-measurement' => {
                'type' => 'space-measurement',
                'flags' => 1,
                'scope' => [],
            },
            'timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-status' => {
        'category' => 'dataset',
        'fields' => {
            'conformance-check-results' => {
                'type' => 'conformance-run-result',
                'flags' => 7,
                'scope' => [],
            },
            'conformance-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dr-protection-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dr-status' => {
                'type' => 'dr-status',
                'flags' => 4,
                'scope' => [],
            },
            'dr-status-problems' => {
                'type' => 'dr-status-problem',
                'flags' => 7,
                'scope' => [],
            },
            'performance-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'protection-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'protection-status-problems' => {
                'type' => 'protection-status-problem',
                'flags' => 7,
                'scope' => [],
            },
            'resource-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'space-status' => {
                'type' => 'space-status',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dedupe-member-request-info' => {
        'category' => 'dataset',
        'fields' => {
            'full-volume-dedupe' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'delete-snapshots-request-info' => {
        'category' => 'dataset',
        'fields' => {
            'snapshots' => {
                'type' => 'snapshot',
                'flags' => 3,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dfm-metadata-field' => {
        'category' => 'dataset',
        'fields' => {
            'field-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'field-value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dr-state' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'dr-status' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'dr-status-problem' => {
        'category' => 'dataset',
        'fields' => {
            'dr-status-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dr-status-severity' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dry-run-result' => {
        'category' => 'dataset',
        'fields' => {
            'dry-run-action' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dry-run-effect' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dry-run-reason' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dry-run-reason-details' => {
                'type' => 'result-detail',
                'flags' => 7,
                'scope' => [],
            },
            'dry-run-severity' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'dry-run-suggestion' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'excluded-object-info' => {
        'category' => 'dataset',
        'fields' => {
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'object-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'initiator-id' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'io-measurement' => {
        'category' => 'dataset',
        'fields' => {
            'data-read' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'data-written' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'job-info' => {
        'category' => 'dataset',
        'fields' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'lun-igroup-info' => {
        'category' => 'dataset',
        'fields' => {
            'igroup-initiators' => {
                'type' => 'lun-mapping-initiator',
                'flags' => 7,
                'scope' => [],
            },
            'igroup-lun-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'igroup-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'igroup-os-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'igroup-protocol' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'lun-mapping-initiator' => {
        'category' => 'dataset',
        'fields' => {
            'hostname' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'initiator-id' => {
                'type' => 'initiator-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'metric-dataset-node-info' => {
        'category' => 'dataset',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'migration-status' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'missing-member-info' => {
        'category' => 'dataset',
        'fields' => {
            'aggregate-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'cifs-share-names' => {
                'type' => 'cifs-share-name',
                'flags' => 6,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'hostname' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'member-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'member-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'nfs-export-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'quota-hard-limit' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'quota-soft-limit' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'space-guarantee' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'total-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'nfs-export-host' => {
        'category' => 'dataset',
        'fields' => {
            'hostname' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-an-exception' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'nfs-export-rules' => {
        'category' => 'dataset',
        'fields' => {
            'anonymous-access-user' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'disable-setuid' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-readonly-for-all-hosts' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-readwrite-for-all-hosts' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'nfs-export-ro-hosts' => {
                'type' => 'nfs-export-host',
                'flags' => 7,
                'scope' => [],
            },
            'nfs-export-root-hosts' => {
                'type' => 'nfs-export-host',
                'flags' => 7,
                'scope' => [],
            },
            'nfs-export-rw-hosts' => {
                'type' => 'nfs-export-host',
                'flags' => 7,
                'scope' => [],
            },
            'nfs-security-flavors' => {
                'type' => 'nfs-security-flavor',
                'flags' => 6,
                'scope' => [],
            },
        },
    },
    'nfs-security-flavor' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'primary-volume-name-format' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'protection-status-job-detail' => {
        'category' => 'dataset',
        'fields' => {
            'protection-status-job-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'protection-status-job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protection-status-job-status' => {
                'type' => 'dp-job-overall-status',
                'flags' => 0,
                'scope' => [],
            },
            'protection-status-job-type' => {
                'type' => 'dp-job-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'protection-status-problem' => {
        'category' => 'dataset',
        'fields' => {
            'protection-status-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'protection-status-job-details' => {
                'type' => 'protection-status-job-detail',
                'flags' => 7,
                'scope' => [],
            },
            'protection-status-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'provision-member-comment' => {
        'category' => 'dataset',
        'fields' => {
            'comment-field-name-or-id' => {
                'type' => 'comment-field-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'comment-value' => {
                'type' => 'comment-value',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'provision-member-request-info' => {
        'category' => 'dataset',
        'fields' => {
            'comments' => {
                'type' => 'provision-member-comment',
                'flags' => 7,
                'scope' => [],
            },
            'create-new-vfiler' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-export-info' => {
                'type' => 'dataset-export-info',
                'flags' => 5,
                'scope' => [],
            },
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'initial-snapshot-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'maximum-data-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'maximum-snapshot-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'online-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'resource-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'replace-result' => {
        'category' => 'dataset',
        'fields' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'member-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'new-primary-member-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'new-primary-member-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'old-primary-member-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'old-primary-member-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'replace-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'secondary-member-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'secondary-member-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'requires-non-disruptive-restore' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'resize-member-request-info' => {
        'category' => 'dataset',
        'fields' => {
            'maximum-capacity' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'member-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'new-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snap-reserve' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'result-detail' => {
        'category' => 'dataset',
        'fields' => {
            'action' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'effect' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'reason' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'severity' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'suggestion' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'secondary-qtree-name-format' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'secondary-volume-name-format' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'snapshot-name-format' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'space-condition' => {
        'category' => 'dataset',
        'fields' => {
            'condition' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'reason' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'severity' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'suggestion' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'space-info' => {
        'category' => 'dataset',
        'fields' => {
            'available-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'space-conditions' => {
                'type' => 'space-condition',
                'flags' => 7,
                'scope' => [],
            },
            'space-status' => {
                'type' => 'space-status',
                'flags' => 4,
                'scope' => [],
            },
            'total-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'used-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'space-measurement' => {
        'category' => 'dataset',
        'fields' => {
            'effective-used-data-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'guaranteed-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'physical-used-data-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-reserve' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'total-data-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'total-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'used-snapshot-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'space-status' => {
        'category' => 'dataset',
        'fields' => {
        },
    },
    'undedupe-member-request-info' => {
        'category' => 'dataset',
        'fields' => {
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'api-stat' => {
        'category' => 'dfm',
        'fields' => {
            'api-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'call-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'cpu-max-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'cpu-mean-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'cpu-min-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'db-max-calls' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'db-max-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'db-mean-calls' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'db-mean-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'db-min-calls' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'db-min-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'max-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'mean-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'min-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'backup-type' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'child-count' => {
        'category' => 'dfm',
        'fields' => {
            'count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-diag-counter-group' => {
        'category' => 'dfm',
        'fields' => {
            'group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'histogram' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'last-updated' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dfm-monitoring-timestamp' => {
        'category' => 'dfm',
        'fields' => {
            'last-monitoring-timestamp' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'monitor-name' => {
                'type' => 'monitor-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'directory-info' => {
        'category' => 'dfm',
        'fields' => {
            'disk-free-space' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'disk-free-space-percent' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'file-count' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'email-address-list' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'feature' => {
        'category' => 'dfm',
        'fields' => {
            'is-license-expired' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'summary' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'file-system-block-type' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'host-service-unique-id' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'ip-address' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'key-value-pair' => {
        'category' => 'dfm',
        'fields' => {
            'key' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'monitor-name' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'network-address' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'network-snmp-credential-info' => {
        'category' => 'dfm',
        'fields' => {
            'host-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-snmp-privacy-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'network-address' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'snmp-authentication-login' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'snmp-authentication-protocol' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'snmp-community-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'snmp-id' => {
                'type' => 'snmp-id',
                'flags' => 0,
                'scope' => [],
            },
            'snmp-version' => {
                'type' => 'snmp-version',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'obj-full-name' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'obj-id' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'obj-name' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'obj-name-or-id' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'obj-status' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'obj-status-info' => {
        'category' => 'dfm',
        'fields' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-perf-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'object-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'parent-dataset' => {
        'category' => 'dfm',
        'fields' => {
            'id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'parent-group' => {
        'category' => 'dfm',
        'fields' => {
            'full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'parent-object' => {
        'category' => 'dfm',
        'fields' => {
            'full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'parent-resourcepool' => {
        'category' => 'dfm',
        'fields' => {
            'id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'plugin' => {
        'category' => 'dfm',
        'fields' => {
            'plugin-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'product-version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'special-build' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'prefix-length' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'resource-property-values' => {
        'category' => 'dfm',
        'fields' => {
            'resource-property' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'values' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'snmp-authentication-protocol' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'snmp-id' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'snmp-version' => {
        'category' => 'dfm',
        'fields' => {
        },
    },
    'daily-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'item-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'start-minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'hourly-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'end-hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'end-minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'frequency' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'start-minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'monthly-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'day-of-month' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'day-of-week' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'start-minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'week-of-month' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'monthly-subschedule-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'subschedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'subschedule-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'schedule-assignee' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'assignee-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'assignee-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'assignee-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'schedule-content-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'daily-list' => {
                'type' => 'daily-info',
                'flags' => 7,
                'scope' => [],
            },
            'hourly-list' => {
                'type' => 'hourly-info',
                'flags' => 7,
                'scope' => [],
            },
            'is-modifiable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'monthly-list' => {
                'type' => 'monthly-info',
                'flags' => 7,
                'scope' => [],
            },
            'monthly-subschedule-list' => {
                'type' => 'monthly-subschedule-info',
                'flags' => 7,
                'scope' => [],
            },
            'schedule-category' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'weekly-list' => {
                'type' => 'weekly-info',
                'flags' => 7,
                'scope' => [],
            },
            'weekly-subschedule-list' => {
                'type' => 'weekly-subschedule-info',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'schedule-id-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'weekly-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'start-minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'weekly-subschedule-info' => {
        'category' => 'dfm-schedule',
        'fields' => {
            'end-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-day-of-week' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'subschedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'subschedule-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'disk-info' => {
        'category' => 'disk',
        'fields' => {
            'aggregate-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'aggregate-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'disk-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'disk-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'disk-size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'disk-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'disk-uid-or-wwn' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'plex-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'raidgroup-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'application-backup-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'application-backup-properties' => {
                'type' => 'property-info',
                'flags' => 3,
                'scope' => [],
            },
            'application-resource-namespace' => {
                'type' => 'application-resource-namespace',
                'flags' => 0,
                'scope' => [],
            },
            'backup-graph-info' => {
                'type' => 'backup-graph-info',
                'flags' => 5,
                'scope' => [],
            },
            'host-service-backup-id' => {
                'type' => 'host-service-unique-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'application-object-type' => {
        'category' => 'dp-backup',
        'fields' => {
        },
    },
    'backup-graph-edge-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'from-resource-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'to-resource-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'backup-graph-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'graph-edges' => {
                'type' => 'backup-graph-edge-info',
                'flags' => 3,
                'scope' => [],
            },
            'graph-resources' => {
                'type' => 'backup-graph-resource-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'backup-graph-resource-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'application-resource-properties' => {
                'type' => 'property-info',
                'flags' => 3,
                'scope' => [],
            },
            'host-service-object-id' => {
                'type' => 'host-service-unique-id',
                'flags' => 0,
                'scope' => [],
            },
            'is-restorable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'object-name-when-backed-up' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'resource-type' => {
                'type' => 'application-object-type',
                'flags' => 0,
                'scope' => [],
            },
            'snapshots' => {
                'type' => 'snapshot-member-info',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'backup-location-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'member-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'path-found' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'primary-snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-qtree-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-qtree-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storage-system-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'storage-system-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'backup-mount-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'mount-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'mount-job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'mount-state' => {
                'type' => 'mount-state',
                'flags' => 0,
                'scope' => [],
            },
            'mounted-by' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'unmount-job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dfm-metadata' => {
        'category' => 'dp-backup',
        'fields' => {
            'field-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'field-value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-backup-content-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'dp-file-info' => {
                'type' => 'dp-file-info',
                'flags' => 5,
                'scope' => [],
            },
            'primary-snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'root-object-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'root-object-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'root-object-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-backup-id-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'backup-metadata' => {
                'type' => 'dfm-metadata',
                'flags' => 7,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-backup-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'application-backup-infos' => {
                'type' => 'application-backup-info',
                'flags' => 7,
                'scope' => [],
            },
            'backup-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'backup-metadata' => {
                'type' => 'dfm-metadata',
                'flags' => 7,
                'scope' => [],
            },
            'backup-mount-infos' => {
                'type' => 'backup-mount-info',
                'flags' => 7,
                'scope' => [],
            },
            'backup-transfer-infos' => {
                'type' => 'dp-backup-transfer-info',
                'flags' => 3,
                'scope' => [],
            },
            'backup-transfer-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'is-adding-members' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-backup-destination-node' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-for-propagation' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-mirror-destination-node' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'node-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'retention-duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 0,
                'scope' => [],
            },
            'supports-non-disruptive-restore' => {
                'type' => 'requires-non-disruptive-restore',
                'flags' => 0,
                'scope' => [],
            },
            'version-members' => {
                'type' => 'version-member-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-backup-path-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'member-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-backup-retention-type' => {
        'category' => 'dp-backup',
        'fields' => {
        },
    },
    'dp-backup-transfer-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'backup-transfer-needed' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'backup-transfer-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'connection-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'destination-backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'destination-node-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'destination-node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'destination-storageset-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'source-backup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'source-node-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'source-node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'source-storageset-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-backup-version-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'backup-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-id-infos' => {
                'type' => 'dp-backup-id-info',
                'flags' => 3,
                'scope' => [],
            },
            'backup-transfer-infos' => {
                'type' => 'dp-backup-transfer-info',
                'flags' => 3,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'is-fully-propagated' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 0,
                'scope' => [],
            },
            'version-members' => {
                'type' => 'version-member-info',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'dp-file-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'child-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'file-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'file-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'file-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-empty' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'last-modified-timestamp' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-job-data' => {
        'category' => 'dp-backup',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dp-job-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dp-local-snapshot-job-data' => {
                'type' => 'dp-local-snapshot-job-data',
                'flags' => 5,
                'scope' => [],
            },
            'dp-snapmirror-transfer-job-data' => {
                'type' => 'dp-snapmirror-transfer-job-data',
                'flags' => 5,
                'scope' => [],
            },
            'dp-snapvault-transfer-job-data' => {
                'type' => 'dp-snapvault-transfer-job-data',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'mount-state' => {
        'category' => 'dp-backup',
        'fields' => {
        },
    },
    'property-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'property-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'property-value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'search-key' => {
        'category' => 'dp-backup',
        'fields' => {
        },
    },
    'snapshot-member-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'primary-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'primary-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-host-service-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-qtree-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-qtree-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'secondary-qtree-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'version-member-info' => {
        'category' => 'dp-backup',
        'fields' => {
            'host-address' => {
                'type' => 'ip-address',
                'flags' => 4,
                'scope' => [],
            },
            'host-fqdn' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-contents' => {
                'type' => 'snapshot-member-info',
                'flags' => 3,
                'scope' => [],
            },
            'snapshot-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'application-resource-info' => {
        'category' => 'dp-dashboard',
        'fields' => {
            'application-object-type' => {
                'type' => 'application-object-type',
                'flags' => 0,
                'scope' => [],
            },
            'application-resource-namespace' => {
                'type' => 'application-resource-namespace',
                'flags' => 0,
                'scope' => [],
            },
            'count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-dataset-lag-info' => {
        'category' => 'dp-dashboard',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'lag-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'worst-lag' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-relationship-lag-info' => {
        'category' => 'dp-dashboard',
        'fields' => {
            'lag' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-source' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-state' => {
                'type' => 'relationship-state',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-type' => {
                'type' => 'relationship-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dr-state-status-count' => {
        'category' => 'dp-dashboard',
        'fields' => {
            'count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dr-state' => {
                'type' => 'dr-state',
                'flags' => 0,
                'scope' => [],
            },
            'dr-status' => {
                'type' => 'dr-status',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'cifs-acl' => {
        'category' => 'dp-job',
        'fields' => {
            'access-rights' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'user-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'destroy-member-request-info' => {
        'category' => 'dp-job',
        'fields' => {
            'member-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'member-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-job-info' => {
        'category' => 'dp-job',
        'fields' => {
            'abort-requested-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'bytes-transferred' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'completed-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'destination-node-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'destination-node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'job-context-application-resource-namespaces' => {
                'type' => 'application-resource-namespace',
                'flags' => 6,
                'scope' => [],
            },
            'job-context-obj-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'job-context-obj-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'job-context-obj-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'job-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'job-overall-status' => {
                'type' => 'dp-job-overall-status',
                'flags' => 0,
                'scope' => [],
            },
            'job-progress' => {
                'type' => 'dp-job-progress',
                'flags' => 0,
                'scope' => [],
            },
            'job-state' => {
                'type' => 'dp-job-state',
                'flags' => 0,
                'scope' => [],
            },
            'job-type' => {
                'type' => 'dp-job-type',
                'flags' => 0,
                'scope' => [],
            },
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'object-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'policy-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'policy-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'provision-request-info' => {
                'type' => 'provision-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'source-node-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'source-node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'started-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'submitted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-job-overall-status' => {
        'category' => 'dp-job',
        'fields' => {
        },
    },
    'dp-job-progress' => {
        'category' => 'dp-job',
        'fields' => {
        },
    },
    'dp-job-progress-event-info' => {
        'category' => 'dp-job',
        'fields' => {
            'dp-progress-backup-info' => {
                'type' => 'dp-progress-backup-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-progress-failover-info' => {
                'type' => 'dp-progress-failover-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-progress-job-abort-info' => {
                'type' => 'dp-progress-job-abort-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-progress-relationship-info' => {
                'type' => 'dp-progress-relationship-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-progress-restore-info' => {
                'type' => 'dp-progress-restore-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-progress-snapmirror-info' => {
                'type' => 'dp-progress-snapmirror-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-progress-snapshot-info' => {
                'type' => 'dp-progress-snapshot-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-progress-snapvault-info' => {
                'type' => 'dp-progress-snapvault-info',
                'flags' => 5,
                'scope' => [],
            },
            'error-message' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'event-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'event-message' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'event-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'event-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'job-type' => {
                'type' => 'dp-job-type',
                'flags' => 0,
                'scope' => [],
            },
            'progress-aggregate-info' => {
                'type' => 'progress-aggregate-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-cifs-share-info' => {
                'type' => 'progress-cifs-share-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-host-service-info' => {
                'type' => 'progress-host-service-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-igroup-config-info' => {
                'type' => 'progress-igroup-config-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-igroup-info' => {
                'type' => 'progress-igroup-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-lun-info' => {
                'type' => 'progress-lun-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-lun-map-info' => {
                'type' => 'progress-lun-map-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-nfsexport-info' => {
                'type' => 'progress-nfsexport-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-qtree-info' => {
                'type' => 'progress-qtree-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-quota-info' => {
                'type' => 'progress-quota-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-resource-pool-info' => {
                'type' => 'progress-resource-pool-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-script-run-info' => {
                'type' => 'progress-script-run-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-storage-service-info' => {
                'type' => 'progress-storage-service-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-storage-system-info' => {
                'type' => 'progress-storage-system-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-vfiler-info' => {
                'type' => 'progress-vfiler-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-vfiler-storage-info' => {
                'type' => 'progress-vfiler-storage-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-volume-dedupe-info' => {
                'type' => 'progress-volume-dedupe-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-volume-info' => {
                'type' => 'progress-volume-info',
                'flags' => 5,
                'scope' => [],
            },
            'progress-volume-option-info' => {
                'type' => 'progress-volume-option-info',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'dp-job-state' => {
        'category' => 'dp-job',
        'fields' => {
        },
    },
    'dp-job-type' => {
        'category' => 'dp-job',
        'fields' => {
        },
    },
    'dp-local-snapshot-job-data' => {
        'category' => 'dp-job',
        'fields' => {
            'is-confirmation-data' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-progress-backup-info' => {
        'category' => 'dp-job',
        'fields' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'retention' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-progress-failover-info' => {
        'category' => 'dp-job',
        'fields' => {
            'destination-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'environment-variable-list' => {
                'type' => 'environment-variable-info',
                'flags' => 7,
                'scope' => [],
            },
            'relationship-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'script-exit-status' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'script-run-as' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'script-summary' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-progress-job-abort-info' => {
        'category' => 'dp-job',
        'fields' => {
            'aborted-by' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-progress-relationship-info' => {
        'category' => 'dp-job',
        'fields' => {
            'bytes-transferred' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'destination-volume-or-qtree-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'destination-volume-or-qtree-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'source-volume-or-qtree-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'source-volume-or-qtree-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-progress-restore-info' => {
        'category' => 'dp-job',
        'fields' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'bytes-transferred' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'destination-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'member-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-progress-snapmirror-info' => {
        'category' => 'dp-job',
        'fields' => {
            'bytes-transferred' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'destination-volume-or-qtree-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'destination-volume-or-qtree-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'source-volume-or-qtree-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'source-volume-or-qtree-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-progress-snapshot-info' => {
        'category' => 'dp-job',
        'fields' => {
            'snapshot-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-progress-snapvault-info' => {
        'category' => 'dp-job',
        'fields' => {
            'bytes-transferred' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'destination-qtree-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'destination-qtree-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'source-qtree-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'source-qtree-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-scheduled-job' => {
        'category' => 'dp-job',
        'fields' => {
            'dataset-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dp-local-snapshot-job-data' => {
                'type' => 'dp-local-snapshot-job-data',
                'flags' => 5,
                'scope' => [],
            },
            'dp-snapmirror-transfer-job-data' => {
                'type' => 'dp-snapmirror-transfer-job-data',
                'flags' => 5,
                'scope' => [],
            },
            'dp-snapvault-transfer-job-data' => {
                'type' => 'dp-snapvault-transfer-job-data',
                'flags' => 5,
                'scope' => [],
            },
            'scheduled-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-snapmirror-transfer-job-data' => {
        'category' => 'dp-job',
        'fields' => {
            'connection-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-snapvault-transfer-job-data' => {
        'category' => 'dp-job',
        'fields' => {
            'connection-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-timestamp' => {
        'category' => 'dp-job',
        'fields' => {
        },
    },
    'environment-variable-info' => {
        'category' => 'dp-job',
        'fields' => {
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'job-type' => {
        'category' => 'dp-job',
        'fields' => {
        },
    },
    'progress-aggregate-info' => {
        'category' => 'dp-job',
        'fields' => {
            'aggregate-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-cifs-share-info' => {
        'category' => 'dp-job',
        'fields' => {
            'cifs-acl-list' => {
                'type' => 'cifs-acl',
                'flags' => 7,
                'scope' => [],
            },
            'cifs-share-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'vol-or-qtree-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'vol-or-qtree-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-host-service-info' => {
        'category' => 'dp-job',
        'fields' => {
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-service-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'operation-id' => {
                'type' => 'host-service-unique-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-igroup-config-info' => {
        'category' => 'dp-job',
        'fields' => {
            'igroup-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'igroup-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'initiators' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-igroup-info' => {
        'category' => 'dp-job',
        'fields' => {
            'igroup-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'igroup-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-lun-info' => {
        'category' => 'dp-job',
        'fields' => {
            'lun-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'lun-path-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-lun-map-info' => {
        'category' => 'dp-job',
        'fields' => {
            'igroup-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'igroup-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'lun-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'lun-path-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-nfsexport-info' => {
        'category' => 'dp-job',
        'fields' => {
            'path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'qtree-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'qtree-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-qtree-info' => {
        'category' => 'dp-job',
        'fields' => {
            'qtree-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'qtree-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-quota-info' => {
        'category' => 'dp-job',
        'fields' => {
            'default-group-quota' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'default-user-quota' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'qtree-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'tree-quota' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'progress-resource-pool-info' => {
        'category' => 'dp-job',
        'fields' => {
            'resource-pool-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'resource-pool-members' => {
                'type' => 'resource-pool-member',
                'flags' => 3,
                'scope' => [],
            },
            'resource-pool-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-script-run-info' => {
        'category' => 'dp-job',
        'fields' => {
            'script-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-storage-service-info' => {
        'category' => 'dp-job',
        'fields' => {
            'storage-service-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-storage-system-info' => {
        'category' => 'dp-job',
        'fields' => {
            'storage-system-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storage-system-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-vfiler-info' => {
        'category' => 'dp-job',
        'fields' => {
            'filer-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'filer-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'ipaddress' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'ipspace' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-vfiler-storage-info' => {
        'category' => 'dp-job',
        'fields' => {
            'vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-volume-dedupe-info' => {
        'category' => 'dp-job',
        'fields' => {
            'dedupe-progress' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dedupe-schedule' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dedupe-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-volume-info' => {
        'category' => 'dp-job',
        'fields' => {
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'progress-volume-option-info' => {
        'category' => 'dp-job',
        'fields' => {
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'volume-options' => {
                'type' => 'volume-option',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'provision-request-info' => {
        'category' => 'dp-job',
        'fields' => {
            'dedupe-member-request-info' => {
                'type' => 'dedupe-member-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'delete-snapshots-request-info' => {
                'type' => 'delete-snapshots-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'destroy-member-request-info' => {
                'type' => 'destroy-member-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'provision-member-request-info' => {
                'type' => 'provision-member-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'resize-member-request-info' => {
                'type' => 'resize-member-request-info',
                'flags' => 5,
                'scope' => [],
            },
            'undedupe-member-request-info' => {
                'type' => 'undedupe-member-request-info',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'resource-pool-member' => {
        'category' => 'dp-job',
        'fields' => {
            'resource-pool-member-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'resource-pool-member-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-option' => {
        'category' => 'dp-job',
        'fields' => {
            'option-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'option-value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dataset-reference' => {
        'category' => 'dp-ossv-directory',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-info' => {
        'category' => 'dp-ossv-directory',
        'fields' => {
            'dataset-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'dir-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-browsable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-in-backup-relationship' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-ossv-directory-name' => {
        'category' => 'dp-ossv-directory',
        'fields' => {
        },
    },
    'dp-ossv-directory-root-info' => {
        'category' => 'dp-ossv-directory',
        'fields' => {
            'filesystem-device' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'filesystem-state' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'filesystem-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'root-path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'ossv-application-info' => {
        'category' => 'dp-ossv-directory',
        'fields' => {
            'can-backup' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-leaf' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'ossv-application-restore-destination-info' => {
        'category' => 'dp-ossv-directory',
        'fields' => {
            'host-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'ossv-host-name-or-id' => {
        'category' => 'dp-ossv-directory',
        'fields' => {
        },
    },
    'dp-policy-connection-info' => {
        'category' => 'dp-policy',
        'fields' => {
            'backup-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'backup-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'from-node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'from-node-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-dr-capable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-lag-error-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-lag-warning-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'lag-error-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'lag-warning-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'mirror-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'mirror-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'throttle-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'throttle-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'to-node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'to-node-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-content' => {
        'category' => 'dp-policy',
        'fields' => {
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dp-policy-connections' => {
                'type' => 'dp-policy-connection-info',
                'flags' => 7,
                'scope' => [],
            },
            'dp-policy-nodes' => {
                'type' => 'dp-policy-node-info',
                'flags' => 3,
                'scope' => [],
            },
            'name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-info' => {
        'category' => 'dp-policy',
        'fields' => {
            'dp-policy-content' => {
                'type' => 'dp-policy-content',
                'flags' => 1,
                'scope' => [],
            },
            'id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'is-application-compatible' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-modifiable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-non-disruptive-restore-compatible' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-policy-node-info' => {
        'category' => 'dp-policy',
        'fields' => {
            'backup-script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'backup-script-run-as' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'daily-retention-count' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'daily-retention-duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'failover-script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'failover-script-run-as' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'hourly-retention-count' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'hourly-retention-duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'is-lag-error-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-lag-warning-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'lag-error-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'lag-warning-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'monthly-retention-count' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'monthly-retention-duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'weekly-retention-count' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'weekly-retention-duration' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-policy-node-name' => {
        'category' => 'dp-policy',
        'fields' => {
        },
    },
    'dp-relationship-info' => {
        'category' => 'dp-relationship',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'destination-aggregate-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'destination-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'destination-host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'destination-host-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'destination-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'destination-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'destination-storageset-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'destination-type' => {
                'type' => 'relationship-endpoint-type',
                'flags' => 0,
                'scope' => [],
            },
            'destination-volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'discovered-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-imported' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-managed' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-orphan' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-redundant' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'lag' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'lag-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'operational-status' => {
                'type' => 'operational-status',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-state' => {
                'type' => 'relationship-state',
                'flags' => 0,
                'scope' => [],
            },
            'relationship-type' => {
                'type' => 'relationship-type',
                'flags' => 0,
                'scope' => [],
            },
            'source-aggregate-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'source-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'source-host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'source-host-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'source-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'source-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'source-storageset-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'source-type' => {
                'type' => 'relationship-endpoint-type',
                'flags' => 0,
                'scope' => [],
            },
            'source-volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'operational-status' => {
        'category' => 'dp-relationship',
        'fields' => {
        },
    },
    'relationship-endpoint-type' => {
        'category' => 'dp-relationship',
        'fields' => {
        },
    },
    'relationship-state' => {
        'category' => 'dp-relationship',
        'fields' => {
        },
    },
    'relationship-type' => {
        'category' => 'dp-relationship',
        'fields' => {
        },
    },
    'dp-path-info' => {
        'category' => 'dp-restore',
        'fields' => {
            'member-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'primary-snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'restore-configuration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-recover-member-info' => {
        'category' => 'dp-restore',
        'fields' => {
            'destination-host' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'destination-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'destination-path-skip-extra-directory' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'member-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'primary-snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'primary-snapshot-unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'restore-configuration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-vi-hyperv-restore-settings' => {
        'category' => 'dp-restore',
        'fields' => {
            'start-vm-after-restore' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-vi-object-restore-settings' => {
        'category' => 'dp-restore',
        'fields' => {
            'dp-vi-vmware-object-restore-settings' => {
                'type' => 'dp-vi-vmware-object-restore-settings',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'dp-vi-restore-object' => {
        'category' => 'dp-restore',
        'fields' => {
            'dp-vi-object-restore-settings' => {
                'type' => 'dp-vi-object-restore-settings',
                'flags' => 5,
                'scope' => [],
            },
            'restore-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dp-vi-restore-settings' => {
        'category' => 'dp-restore',
        'fields' => {
            'dp-vi-hyperv-restore-settings' => {
                'type' => 'dp-vi-hyperv-restore-settings',
                'flags' => 5,
                'scope' => [],
            },
            'dp-vi-vmware-restore-settings' => {
                'type' => 'dp-vi-vmware-restore-settings',
                'flags' => 5,
                'scope' => [],
            },
            'restore-script' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-vi-vmware-object-restore-settings' => {
        'category' => 'dp-restore',
        'fields' => {
            'destination-datastore-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dp-vi-vmware-restore-settings' => {
        'category' => 'dp-restore',
        'fields' => {
            'esx-server-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'start-vm-after-restore' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'overwrite-result' => {
        'category' => 'dp-restore',
        'fields' => {
            'dest-host' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'file-path' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'overwrite-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'space-status-result' => {
        'category' => 'dp-restore',
        'fields' => {
            'avail-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dest-host' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dest-vol' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'req-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'day-info' => {
        'category' => 'dp-throttle',
        'fields' => {
            'day' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'throttle-assignee' => {
        'category' => 'dp-throttle',
        'fields' => {
            'assignee-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'assignee-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'throttle-content' => {
        'category' => 'dp-throttle',
        'fields' => {
            'is-modifiable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'throttle-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'throttle-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'throttle-item-list' => {
                'type' => 'throttle-item-info',
                'flags' => 7,
                'scope' => [],
            },
            'throttle-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'throttle-item-info' => {
        'category' => 'dp-throttle',
        'fields' => {
            'day-list' => {
                'type' => 'day-info',
                'flags' => 7,
                'scope' => [],
            },
            'end-hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'end-minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'item-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-hour' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'start-minute' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'throughput' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-action-info' => {
        'category' => 'event',
        'fields' => {
            'error-code' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'error-message' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'event-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'timestamp' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'event-application-type' => {
        'category' => 'event',
        'fields' => {
        },
    },
    'event-id-type' => {
        'category' => 'event',
        'fields' => {
        },
    },
    'event-info' => {
        'category' => 'event',
        'fields' => {
            'event-about' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-acknowledged' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'event-acknowledged-user' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-arguments' => {
                'type' => 'key-value-pair',
                'flags' => 7,
                'scope' => [],
            },
            'event-condition' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-deleted' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'event-deleted-user' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'event-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-originating-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'event-severity' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'event-source-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'event-source-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-source-node-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'event-source-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'event-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-deleted' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-timestamp-range' => {
        'category' => 'event',
        'fields' => {
            'end-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-type-filter' => {
        'category' => 'event',
        'fields' => {
            'event-filter' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-class-info' => {
        'category' => 'eventclass',
        'fields' => {
            'about-message' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-class-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'event-class-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-names' => {
                'type' => 'event-name-info',
                'flags' => 3,
                'scope' => [],
            },
            'is-allow-duplicates' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-multi-current' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-class-object' => {
        'category' => 'eventclass',
        'fields' => {
            'event-class-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'event-name-info' => {
        'category' => 'eventclass',
        'fields' => {
            'event-name-pretty' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'event-name-short' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'severity' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'target-info' => {
        'category' => 'fcp-target',
        'fields' => {
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'target-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'target-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'target-port-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'target-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'graph-line-value-info' => {
        'category' => 'graph',
        'fields' => {
            'sample-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'sample-values' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-info' => {
        'category' => 'group',
        'fields' => {
            'group-perf-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'group-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'has-privilege' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'parent-group-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'short-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'subgroup-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'group-name-or-id' => {
        'category' => 'group',
        'fields' => {
        },
    },
    'group-option-info' => {
        'category' => 'group',
        'fields' => {
            'chargeback-rate' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'group-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'group-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'srm-max-large-files' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'srm-max-new-mtime-files' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'srm-max-old-atime-files' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'srm-max-old-mtime-files' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'object-name-or-id' => {
        'category' => 'group',
        'fields' => {
        },
    },
    'group' => {
        'category' => 'group_member',
        'fields' => {
        },
    },
    'group-member-attribute' => {
        'category' => 'group_member',
        'fields' => {
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'value' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'group-member-info' => {
        'category' => 'group_member',
        'fields' => {
            'group-member-attributes' => {
                'type' => 'group-member-attribute',
                'flags' => 7,
                'scope' => [],
            },
            'id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'perf-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'sub-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'access-object-description' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'access-object-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'access-object-name' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'access-object-name-or-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'capability' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'domainuser-name' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'domainuser-name-or-id-or-sid' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'full-ndmp-credentials' => {
        'category' => 'host',
        'fields' => {
            'ndmp-password' => {
                'type' => 'host-password',
                'flags' => 0,
                'scope' => [],
            },
            'ndmp-port' => {
                'type' => 'ip-port-number',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-username' => {
                'type' => 'ndmp-username',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-defaults' => {
        'category' => 'host',
        'fields' => {
            'admin-port-agent' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'admin-port-cache-http' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'admin-port-cache-https' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'admin-port-host' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'admin-port-host-http' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'admin-port-host-https' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'admin-transport-agent' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'admin-transport-cache' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'admin-transport-host' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'ndmp-port' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'perf-advisor-transport-host' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'snapvault-max-backup-threads' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'timeout' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'use-hosts-equiv' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-domainuser-info' => {
        'category' => 'host',
        'fields' => {
            'SID' => {
                'type' => 'sid',
                'flags' => 4,
                'scope' => [],
            },
            'capabilities' => {
                'type' => 'capability',
                'flags' => 6,
                'scope' => [],
            },
            'host-domainuser-id' => {
                'type' => 'access-object-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-domainuser-name' => {
                'type' => 'domainuser-name',
                'flags' => 0,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'host-role-ids' => {
                'type' => 'host-role-id',
                'flags' => 6,
                'scope' => [],
            },
            'host-role-names' => {
                'type' => 'host-role-name',
                'flags' => 6,
                'scope' => [],
            },
            'host-usergroup-ids' => {
                'type' => 'host-usergroup-id',
                'flags' => 6,
                'scope' => [],
            },
            'host-usergroup-names' => {
                'type' => 'host-usergroup-name',
                'flags' => 6,
                'scope' => [],
            },
        },
    },
    'host-dp-filter-info' => {
        'category' => 'host',
        'fields' => {
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-resourcepool' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapmirrored-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapvault-primary-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapvault-secondary-only' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-unprotected' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-dp-info' => {
        'category' => 'host',
        'fields' => {
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'host-dataset' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'host-resourcepool' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'is-agent-ossv-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-linux-primary' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-ndmp-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-nearstore' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapmirror-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapmirror-host' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapvault-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-snapvault-primary' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapvault-secondary' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-unix-primary' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-windows-ofm-primary' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-windows-primary' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-access-specifier' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'snapmirror-access-specifier' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'snapvault-access-specifier' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'snapvault-max-backup-threads' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-dp-modify-info' => {
        'category' => 'host',
        'fields' => {
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'snapvault-max-backup-threads' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-info' => {
        'category' => 'host',
        'fields' => {
            'admin-port' => {
                'type' => 'ip-port-number',
                'flags' => 0,
                'scope' => [],
            },
            'admin-transport' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'cifs-domain-info' => {
                'type' => 'cifs-domain-info',
                'flags' => 5,
                'scope' => [],
            },
            'host-address' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-communication-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-credentials-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-dp-info' => {
                'type' => 'host-dp-info',
                'flags' => 5,
                'scope' => [],
            },
            'host-fqdn' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'host-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-model' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-obj-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'host-os' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-perf-info' => {
                'type' => 'host-perf-info',
                'flags' => 5,
                'scope' => [],
            },
            'host-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-type' => {
                'type' => 'host-type',
                'flags' => 0,
                'scope' => [],
            },
            'host-username' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'licenses' => {
                'type' => 'license',
                'flags' => 2,
                'scope' => [],
            },
            'ndmp-agent-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-communication-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-communication-timestamp' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-credentials' => {
                'type' => 'ndmp-credentials',
                'flags' => 5,
                'scope' => [],
            },
            'ndmp-credentials-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-timestamp' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'other-host-id' => {
                'type' => 'host-id',
                'flags' => 4,
                'scope' => [],
            },
            'partner-storage-system-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'partner-storage-system-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'perf-advisor-transport' => {
                'type' => 'perf-advisor-transport',
                'flags' => 4,
                'scope' => [],
            },
            'service-statuses' => {
                'type' => 'service-status',
                'flags' => 3,
                'scope' => [],
            },
            'use-hosts-equiv' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-info' => {
                'type' => 'vfiler-info',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'host-modify-info' => {
        'category' => 'host',
        'fields' => {
            'admin-port' => {
                'type' => 'ip-port-number',
                'flags' => 4,
                'scope' => [],
            },
            'admin-transport' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-dp-modify-info' => {
                'type' => 'host-dp-modify-info',
                'flags' => 5,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'host-password' => {
                'type' => 'host-password',
                'flags' => 4,
                'scope' => [],
            },
            'host-username' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-credentials' => {
                'type' => 'ndmp-credentials',
                'flags' => 5,
                'scope' => [],
            },
            'perf-advisor-transport' => {
                'type' => 'perf-advisor-transport',
                'flags' => 4,
                'scope' => [],
            },
            'use-hosts-equiv' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-name-or-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-password' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-perf-info' => {
        'category' => 'host',
        'fields' => {
            'data-unavailable-reason' => {
                'type' => 'perf-status-error',
                'flags' => 7,
                'scope' => [],
            },
            'host-perf-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'is-cluster-config-shared' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-data-available' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'last-client-stats-collection-time' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'percentage-space-consumed' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'space-consumed' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'space-projected' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-role-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-role-info' => {
        'category' => 'host',
        'fields' => {
            'capabilities' => {
                'type' => 'capability',
                'flags' => 6,
                'scope' => [],
            },
            'description' => {
                'type' => 'access-object-description',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'host-role-id' => {
                'type' => 'access-object-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-role-name' => {
                'type' => 'access-object-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-role-name' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-type' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-user-info' => {
        'category' => 'host',
        'fields' => {
            'capabilities' => {
                'type' => 'capability',
                'flags' => 6,
                'scope' => [],
            },
            'description' => {
                'type' => 'access-object-description',
                'flags' => 4,
                'scope' => [],
            },
            'full-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'host-role-ids' => {
                'type' => 'host-role-id',
                'flags' => 6,
                'scope' => [],
            },
            'host-role-names' => {
                'type' => 'host-role-name',
                'flags' => 6,
                'scope' => [],
            },
            'host-user-id' => {
                'type' => 'access-object-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-user-name' => {
                'type' => 'access-object-name',
                'flags' => 4,
                'scope' => [],
            },
            'host-usergroup-ids' => {
                'type' => 'host-usergroup-id',
                'flags' => 6,
                'scope' => [],
            },
            'host-usergroup-names' => {
                'type' => 'host-usergroup-name',
                'flags' => 6,
                'scope' => [],
            },
            'maximum-password-age' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'minimum-password-age' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'password' => {
                'type' => 'host-user-password',
                'flags' => 4,
                'scope' => [],
            },
            'status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-user-password' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-usergroup-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-usergroup-info' => {
        'category' => 'host',
        'fields' => {
            'capabilities' => {
                'type' => 'capability',
                'flags' => 6,
                'scope' => [],
            },
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'host-role-ids' => {
                'type' => 'host-role-id',
                'flags' => 6,
                'scope' => [],
            },
            'host-role-names' => {
                'type' => 'host-role-name',
                'flags' => 6,
                'scope' => [],
            },
            'host-usergroup-id' => {
                'type' => 'access-object-id',
                'flags' => 4,
                'scope' => [],
            },
            'host-usergroup-name' => {
                'type' => 'usergroup-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-usergroup-name' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'host-usergroup-name-or-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'ip-port-number' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'license' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'ndmp-credentials' => {
        'category' => 'host',
        'fields' => {
            'ndmp-password' => {
                'type' => 'host-password',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-port' => {
                'type' => 'ip-port-number',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-username' => {
                'type' => 'ndmp-username',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'ndmp-username' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'perf-advisor-transport' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'service-status' => {
        'category' => 'host',
        'fields' => {
            'service' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'sid' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'usergroup-name' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'usergroup-name-or-id' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'vfiler-info' => {
        'category' => 'host',
        'fields' => {
            'hosting-filer-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'hosting-filer-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-allowed-protocols' => {
                'type' => 'protocol',
                'flags' => 6,
                'scope' => [],
            },
            'vfiler-ipspace' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-migration-info' => {
                'type' => 'vfiler-migration-info',
                'flags' => 1,
                'scope' => [],
            },
            'vfiler-network-resources' => {
                'type' => 'vfiler-network-resource',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'vfiler-ipspace' => {
        'category' => 'host',
        'fields' => {
        },
    },
    'vfiler-migration-info' => {
        'category' => 'host',
        'fields' => {
            'destination-filer-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'destination-filer-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'destination-vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'destination-vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'migration-status' => {
                'type' => 'migration-status',
                'flags' => 0,
                'scope' => [],
            },
            'source-filer-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'source-filer-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'source-vfiler-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'source-vfiler-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'vfiler-network-resource' => {
        'category' => 'host',
        'fields' => {
            'interface-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'interface-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'ip-address' => {
                'type' => 'ip-address',
                'flags' => 0,
                'scope' => [],
            },
            'mtu-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-info' => {
        'category' => 'host-service',
        'fields' => {
            'admin-port' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'deleted-by' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-service-ip-address' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-service-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-service-plugins' => {
                'type' => 'host-service-plugin-info',
                'flags' => 3,
                'scope' => [],
            },
            'host-service-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-service-version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-authorized' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'last-discovery-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'mgmt-port' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'needs-upgrade' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'timezone-info' => {
                'type' => 'timezone-info',
                'flags' => 1,
                'scope' => [],
            },
            'update-service-port' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'update-service-version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-package-info' => {
        'category' => 'host-service',
        'fields' => {
            'package-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'package-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'package-version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-service-plugin-info' => {
        'category' => 'host-service',
        'fields' => {
            'plugin-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'plugin-version' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'storage-system-configuration' => {
        'category' => 'host-service',
        'fields' => {
            'login-protocol' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'push-credentials' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'storage-system-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'storage-system-info' => {
        'category' => 'host-service',
        'fields' => {
            'access-protocol' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'login-status-from-dfm' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'login-status-from-hs' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-cred-status-from-dfm' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ndmp-username' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storage-system-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storage-system-ip-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storage-system-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'storage-system-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storage-system-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'storage-system-username' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'ifc-info' => {
        'category' => 'ifc',
        'fields' => {
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'ifc-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'ifc-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'ip-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'ip-address-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'ipspace' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-vlan-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'mtu-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'netmask' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'partner-interface-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'partner-interface-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'ldap-server' => {
        'category' => 'ldap',
        'fields' => {
            'ldap-server-addr' => {
                'type' => 'network-address',
                'flags' => 0,
                'scope' => [],
            },
            'ldap-server-port' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'ldap-server-info' => {
        'category' => 'ldap',
        'fields' => {
            'last-failed-time' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'last-used-time' => {
                'type' => 'timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'ldap-server' => {
                'type' => 'ldap-server',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'igroup-reference' => {
        'category' => 'lun',
        'fields' => {
            'igroup-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'igroup-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'lun-info' => {
        'category' => 'lun',
        'fields' => {
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'igroups' => {
                'type' => 'igroup-reference',
                'flags' => 7,
                'scope' => [],
            },
            'is-lun-space-reserved' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'lun-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'lun-path' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'lun-serial-number' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'lun-size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'lun-used-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'object-perf-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'object-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'migration-dry-run-result' => {
        'category' => 'migrate',
        'fields' => {
            'dry-run-results' => {
                'type' => 'dry-run-result',
                'flags' => 3,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'migration-job-info' => {
        'category' => 'migrate',
        'fields' => {
            'job-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'migration-request-info' => {
        'category' => 'migrate',
        'fields' => {
            'cleanup-stale-storage' => {
                'type' => 'cleanup-stale-storage',
                'flags' => 4,
                'scope' => [],
            },
            'destination-aggregate-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'retention-type' => {
                'type' => 'dp-backup-retention-type',
                'flags' => 4,
                'scope' => [],
            },
            'run-dedupe-scan' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'run-on-demand-update' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'volumes' => {
                'type' => 'obj-name-or-id',
                'flags' => 2,
                'scope' => [],
            },
        },
    },
    'route-migration-mode' => {
        'category' => 'migrate',
        'fields' => {
        },
    },
    'volume-aggregate-pair' => {
        'category' => 'migrate',
        'fields' => {
            'aggregate' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'netif-ip-interface-info' => {
        'category' => 'netif',
        'fields' => {
            'administrative-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'bytes-in' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'bytes-out' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'discards-in' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'discards-out' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'errors-in' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'errors-out' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'ip-addresses' => {
                'type' => 'string',
                'flags' => 2,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'operational-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'packets-in' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'packets-out' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'physical-address' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'speed' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'network-id' => {
        'category' => 'networks',
        'fields' => {
        },
    },
    'network-info' => {
        'category' => 'networks',
        'fields' => {
            'hop-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'last-searched-time' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'network-address' => {
                'type' => 'network-address',
                'flags' => 0,
                'scope' => [],
            },
            'network-id' => {
                'type' => 'network-id',
                'flags' => 0,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'prefix-length',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'cifs-op-stats' => {
        'category' => 'perf',
        'fields' => {
            'other-operations' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'read-operations' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'write-operations' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'client-stat-error' => {
        'category' => 'perf',
        'fields' => {
            'cifs-error' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'nfs-error' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'client-stats' => {
        'category' => 'perf',
        'fields' => {
            'cifs-op-stats' => {
                'type' => 'cifs-op-stats',
                'flags' => 5,
                'scope' => [],
            },
            'client-name-or-ip' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'nfs-op-stats' => {
                'type' => 'nfs-op-stats',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'counter-threshold-info' => {
        'category' => 'perf',
        'fields' => {
            'perf-object-counter' => {
                'type' => 'perf-object-counter',
                'flags' => 1,
                'scope' => [],
            },
            'threshold-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-unit' => {
                'type' => 'counter-unit',
                'flags' => 0,
                'scope' => [],
            },
            'threshold-value' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'counter-unit' => {
        'category' => 'perf',
        'fields' => {
        },
    },
    'day' => {
        'category' => 'perf',
        'fields' => {
        },
    },
    'destination-host-info' => {
        'category' => 'perf',
        'fields' => {
            'error-reason' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'dynamic-data' => {
        'category' => 'perf',
        'fields' => {
            'hostname' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'instance-name' => {
                'type' => 'perf-instance',
                'flags' => 5,
                'scope' => [],
            },
            'obj-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'host-client-stats' => {
        'category' => 'perf',
        'fields' => {
            'collection-period' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'stat-id' => {
                'type' => 'stat-id',
                'flags' => 0,
                'scope' => [],
            },
            'stats' => {
                'type' => 'client-stats',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'instance-counter-info' => {
        'category' => 'perf',
        'fields' => {
            'counter-info' => {
                'type' => 'perf-object-counter',
                'flags' => 3,
                'scope' => [],
            },
            'instance-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'invalid-counter-instance' => {
        'category' => 'perf',
        'fields' => {
            'counter-info' => {
                'type' => 'perf-object-counter',
                'flags' => 1,
                'scope' => [],
            },
            'err-code' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'err-reason' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'instance-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'metric' => {
        'category' => 'perf',
        'fields' => {
            'id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'metric-result' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'period' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'slide' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'value' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'month' => {
        'category' => 'perf',
        'fields' => {
        },
    },
    'nfs-op-stats' => {
        'category' => 'perf',
        'fields' => {
            'other-operations' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'read-operations' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'write-operations' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'object-info' => {
        'category' => 'perf',
        'fields' => {
            'object-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'object-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-assoc-obj-type' => {
        'category' => 'perf',
        'fields' => {
        },
    },
    'perf-chart' => {
        'category' => 'perf',
        'fields' => {
            'chart-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'dynamic-data-sources' => {
                'type' => 'perf-dynamic-data-sources',
                'flags' => 5,
                'scope' => [],
            },
            'lines' => {
                'type' => 'perf-line',
                'flags' => 7,
                'scope' => [],
            },
            'maximum-y' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-counter' => {
        'category' => 'perf',
        'fields' => {
            'base-counter' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'desc' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-display' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'labels' => {
                'type' => 'perf-label',
                'flags' => 7,
                'scope' => [],
            },
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'privilege-level' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'properties' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'unit' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-counter-data' => {
        'category' => 'perf',
        'fields' => {
            'counter-data' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'counter-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'label-names' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'metrics' => {
                'type' => 'metric',
                'flags' => 7,
                'scope' => [],
            },
            'object-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'unit' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-counter-group' => {
        'category' => 'perf',
        'fields' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'counter-info' => {
                'type' => 'perf-object-counter',
                'flags' => 7,
                'scope' => [],
            },
            'data-sources' => {
                'type' => 'perf-data-source',
                'flags' => 7,
                'scope' => [],
            },
            'data-sources-to-be-disabled' => {
                'type' => 'perf-data-source',
                'flags' => 7,
                'scope' => [],
            },
            'end-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-default' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-disable-all' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-stopped' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'number-records' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'perf-file-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'real-time' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'sample-buffer' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'sample-rate' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'space-consumed' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'space-projected' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'start-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-counter-instance' => {
        'category' => 'perf',
        'fields' => {
            'counter-info' => {
                'type' => 'perf-object-counter',
                'flags' => 1,
                'scope' => [],
            },
            'instance-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-data-group' => {
        'category' => 'perf',
        'fields' => {
            'data-group-method' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'data-sources' => {
                'type' => 'perf-data-source',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-data-source' => {
        'category' => 'perf',
        'fields' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'instance-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'label-names' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'object-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-dependent-counter-info' => {
        'category' => 'perf',
        'fields' => {
            'counter-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'object-counters' => {
                'type' => 'perf-object-counter',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'perf-diag-category' => {
        'category' => 'perf',
        'fields' => {
            'category-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'category-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'health-checks' => {
                'type' => 'perf-health-check',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-dynamic-data-sources' => {
        'category' => 'perf',
        'fields' => {
            'color' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'data-source' => {
                'type' => 'perf-data-source',
                'flags' => 5,
                'scope' => [],
            },
            'maximum-instances' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'select-all-instances' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'sort-order' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'time-interval' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-health-check' => {
        'category' => 'perf',
        'fields' => {
            'health-check-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'health-check-status' => {
                'type' => 'obj-status',
                'flags' => 0,
                'scope' => [],
            },
            'observation' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'recommendation' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-instance' => {
        'category' => 'perf',
        'fields' => {
            'instance-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-instance-counter-data' => {
        'category' => 'perf',
        'fields' => {
            'counters' => {
                'type' => 'perf-counter-data',
                'flags' => 3,
                'scope' => [],
            },
            'instance-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'object-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-label' => {
        'category' => 'perf',
        'fields' => {
            'label-names' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-line' => {
        'category' => 'perf',
        'fields' => {
            'color' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'data-group' => {
                'type' => 'perf-data-group',
                'flags' => 1,
                'scope' => [],
            },
            'line-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-missing-host-object-counter' => {
        'category' => 'perf',
        'fields' => {
            'host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'missing-object-counters' => {
                'type' => 'perf-object-counter',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-object' => {
        'category' => 'perf',
        'fields' => {
            'assoc-obj-type' => {
                'type' => 'perf-assoc-obj-type',
                'flags' => 0,
                'scope' => [],
            },
            'object-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-object-counter' => {
        'category' => 'perf',
        'fields' => {
            'counter-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'counter-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-calculated-stats' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'label-names' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'metrics' => {
                'type' => 'metric',
                'flags' => 7,
                'scope' => [],
            },
            'object-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'perf-labels' => {
                'type' => 'perf-label',
                'flags' => 7,
                'scope' => [],
            },
            'time-consolidation-method' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'perf-object-counter-info' => {
        'category' => 'perf',
        'fields' => {
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'perf-object-counter' => {
                'type' => 'perf-object-counter',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'perf-purged-host-object-counter' => {
        'category' => 'perf',
        'fields' => {
            'host-name-or-id' => {
                'type' => 'host-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'purged-object-counters-details' => {
                'type' => 'perf-purged-object-counters-details',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-purged-object-counters-details' => {
        'category' => 'perf',
        'fields' => {
            'current-retention-period' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'new-retention-period' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'purged-object-counters' => {
                'type' => 'perf-object-counter',
                'flags' => 3,
                'scope' => [],
            },
        },
    },
    'perf-report' => {
        'category' => 'perf',
        'fields' => {
            'report-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-server-status' => {
        'category' => 'perf',
        'fields' => {
            'data-collection-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'object-update-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'server-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-status-error' => {
        'category' => 'perf',
        'fields' => {
            'error' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-threshold' => {
        'category' => 'perf',
        'fields' => {
            'perf-threshold-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'perf-view' => {
        'category' => 'perf',
        'fields' => {
            'appliance-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'are-events-shown' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'assoc-obj-type' => {
                'type' => 'perf-assoc-obj-type',
                'flags' => 6,
                'scope' => [],
            },
            'charts' => {
                'type' => 'perf-chart',
                'flags' => 7,
                'scope' => [],
            },
            'counter-group-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'group-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-default' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-stopped' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'sample-buffer' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'sample-rate' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'view-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'view-type' => {
                'type' => 'view-type',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'resource-property-condition' => {
        'category' => 'perf',
        'fields' => {
            'name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'stat-id' => {
        'category' => 'perf',
        'fields' => {
        },
    },
    'threshold-id' => {
        'category' => 'perf',
        'fields' => {
        },
    },
    'threshold-info' => {
        'category' => 'perf',
        'fields' => {
            'is-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'object-full-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
            'object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'perf-object-counter' => {
                'type' => 'perf-object-counter',
                'flags' => 5,
                'scope' => [],
            },
            'threshold-id' => {
                'type' => 'threshold-id',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-interval' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-unit' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-value' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'threshold-info2' => {
        'category' => 'perf',
        'fields' => {
            'counter-thresholds' => {
                'type' => 'counter-threshold-info',
                'flags' => 3,
                'scope' => [],
            },
            'is-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-indirect' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'objects-info' => {
                'type' => 'object-info',
                'flags' => 7,
                'scope' => [],
            },
            'resource-property-conditions' => {
                'type' => 'resource-property-condition',
                'flags' => 7,
                'scope' => [],
            },
            'template-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'template-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-event-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'threshold-id' => {
                'type' => 'threshold-id',
                'flags' => 4,
                'scope' => [],
            },
            'threshold-interval' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'threshold-template' => {
        'category' => 'perf',
        'fields' => {
            'template-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'threshold-template-info' => {
        'category' => 'perf',
        'fields' => {
            'applied-objects' => {
                'type' => 'object-info',
                'flags' => 3,
                'scope' => [],
            },
            'is-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'member-thresholds' => {
                'type' => 'threshold-info2',
                'flags' => 7,
                'scope' => [],
            },
            'template-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'template-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'template-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'time-filter' => {
        'category' => 'perf',
        'fields' => {
            'days' => {
                'type' => 'day',
                'flags' => 6,
                'scope' => [],
            },
            'months' => {
                'type' => 'month',
                'flags' => 6,
                'scope' => [],
            },
            'time-ranges' => {
                'type' => 'time-range',
                'flags' => 7,
                'scope' => [],
            },
        },
    },
    'time-range' => {
        'category' => 'perf',
        'fields' => {
            'from' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'to' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'view-type' => {
        'category' => 'perf',
        'fields' => {
        },
    },
    'advanced-option-info' => {
        'category' => 'provisioning-policy',
        'fields' => {
            'option-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'option-value' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'custom-provisioning-script-settings' => {
        'category' => 'provisioning-policy',
        'fields' => {
            'script-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dataset-member-used-space-thresholds' => {
        'category' => 'provisioning-policy',
        'fields' => {
            'full-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'nearly-full-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'nas-container-settings' => {
        'category' => 'provisioning-policy',
        'fields' => {
            'auto-delete-snapshots' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'auto-grow-capacity' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'default-group-quota' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'default-user-quota' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-reserve' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'space-on-demand' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'storage-container-type' => {
                'type' => 'storage-container-type',
                'flags' => 4,
                'scope' => [],
            },
            'thin-provision' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-info' => {
        'category' => 'provisioning-policy',
        'fields' => {
            'advanced-options' => {
                'type' => 'advanced-option-info',
                'flags' => 7,
                'scope' => [],
            },
            'custom-provisioning-script-settings' => {
                'type' => 'custom-provisioning-script-settings',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-member-used-space-thresholds' => {
                'type' => 'dataset-member-used-space-thresholds',
                'flags' => 5,
                'scope' => [],
            },
            'dedupe-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'dedupe-schedule' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-policy-readonly' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'nas-container-settings' => {
                'type' => 'nas-container-settings',
                'flags' => 5,
                'scope' => [],
            },
            'provisioning-policy-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'provisioning-policy-type' => {
                'type' => 'provisioning-policy-type',
                'flags' => 4,
                'scope' => [],
            },
            'resource-tag' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'san-container-settings' => {
                'type' => 'san-container-settings',
                'flags' => 5,
                'scope' => [],
            },
            'storage-reliability' => {
                'type' => 'storage-reliability',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'provisioning-policy-type' => {
        'category' => 'provisioning-policy',
        'fields' => {
        },
    },
    'san-container-settings' => {
        'category' => 'provisioning-policy',
        'fields' => {
            'guarantee-writes' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'storage-container-type' => {
                'type' => 'storage-container-type',
                'flags' => 4,
                'scope' => [],
            },
            'thin-provision' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'thin-provisioning-configuration' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'storage-container-type' => {
        'category' => 'provisioning-policy',
        'fields' => {
        },
    },
    'storage-reliability' => {
        'category' => 'provisioning-policy',
        'fields' => {
            'controller-failure' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'disk-failure' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'sub-system-failure' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'qtree-info' => {
        'category' => 'qtree',
        'fields' => {
            'dataset-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'filer-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'filer-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-direct-vfiler-child' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapvault-secondary-qtree' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'qtree-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'qtree-size' => {
                'type' => 'qtree-size-info',
                'flags' => 1,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'qtree-size-info' => {
        'category' => 'qtree',
        'fields' => {
            'files-limit' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'files-used' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'hard-limit' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-perf-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'soft-limit' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'space-used' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'admin-info' => {
        'category' => 'rbac',
        'fields' => {
            'admin-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'admin-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'email-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'pager-address' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'aggregate-name-or-id' => {
        'category' => 'rbac',
        'fields' => {
            'aggregate-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'aggregate-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'aggregate-resource' => {
        'category' => 'rbac',
        'fields' => {
            'aggregate-resource-name-or-id' => {
                'type' => 'aggregate-name-or-id',
                'flags' => 1,
                'scope' => [],
            },
            'filer-identifier' => {
                'type' => 'filer-resource',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'dataset-resource' => {
        'category' => 'rbac',
        'fields' => {
            'dataset-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'filer-resource' => {
        'category' => 'rbac',
        'fields' => {
            'filer-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'filer-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'group-resource' => {
        'category' => 'rbac',
        'fields' => {
            'group-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'group-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'host-resource' => {
        'category' => 'rbac',
        'fields' => {
            'host-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'lun-name-or-id' => {
        'category' => 'rbac',
        'fields' => {
            'lun-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'lun-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'lun-resource' => {
        'category' => 'rbac',
        'fields' => {
            'host-identifier' => {
                'type' => 'host-resource',
                'flags' => 5,
                'scope' => [],
            },
            'lun-identifier-name-or-id' => {
                'type' => 'lun-name-or-id',
                'flags' => 1,
                'scope' => [],
            },
            'volume-identifier' => {
                'type' => 'volume-resource',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'policy-resource' => {
        'category' => 'rbac',
        'fields' => {
            'policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'qtree-name-or-id' => {
        'category' => 'rbac',
        'fields' => {
            'qtree-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'qtree-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'qtree-resource' => {
        'category' => 'rbac',
        'fields' => {
            'host-identifier' => {
                'type' => 'host-resource',
                'flags' => 5,
                'scope' => [],
            },
            'qtree-identifier-name-or-id' => {
                'type' => 'qtree-name-or-id',
                'flags' => 1,
                'scope' => [],
            },
            'volume-identifier' => {
                'type' => 'volume-resource',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'rbac-admin-name-or-id' => {
        'category' => 'rbac',
        'fields' => {
            'admin-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'admin-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'rbac-admin-or-usergroup' => {
        'category' => 'rbac',
        'fields' => {
            'admin-or-usergroup-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'admin-or-usergroup-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'rbac-operation' => {
        'category' => 'rbac',
        'fields' => {
            'operation-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'operation-name-details' => {
                'type' => 'rbac-operation-name-details',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'rbac-operation-name-details' => {
        'category' => 'rbac',
        'fields' => {
            'operation-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'operation-synopsis' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'resource-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'rbac-resource-operation' => {
        'category' => 'rbac',
        'fields' => {
            'operation' => {
                'type' => 'rbac-operation',
                'flags' => 1,
                'scope' => [],
            },
            'resource' => {
                'type' => 'resource-identifier',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'rbac-role-resource' => {
        'category' => 'rbac',
        'fields' => {
            'rbac-role-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'rbac-role-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'resource-identifier' => {
        'category' => 'rbac',
        'fields' => {
            'aggregate' => {
                'type' => 'aggregate-resource',
                'flags' => 5,
                'scope' => [],
            },
            'dataset' => {
                'type' => 'dataset-resource',
                'flags' => 5,
                'scope' => [],
            },
            'filer' => {
                'type' => 'filer-resource',
                'flags' => 5,
                'scope' => [],
            },
            'group' => {
                'type' => 'group-resource',
                'flags' => 5,
                'scope' => [],
            },
            'host' => {
                'type' => 'host-resource',
                'flags' => 5,
                'scope' => [],
            },
            'lun' => {
                'type' => 'lun-resource',
                'flags' => 5,
                'scope' => [],
            },
            'policy' => {
                'type' => 'policy-resource',
                'flags' => 5,
                'scope' => [],
            },
            'qtree' => {
                'type' => 'qtree-resource',
                'flags' => 5,
                'scope' => [],
            },
            'rbac-role' => {
                'type' => 'rbac-role-resource',
                'flags' => 5,
                'scope' => [],
            },
            'resource-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resource-pool' => {
                'type' => 'resource-pool-resource',
                'flags' => 5,
                'scope' => [],
            },
            'storage-service' => {
                'type' => 'storage-service-resource',
                'flags' => 5,
                'scope' => [],
            },
            'vfiler' => {
                'type' => 'vfiler-resource',
                'flags' => 5,
                'scope' => [],
            },
            'vfiler-template' => {
                'type' => 'vfiler-template-resource',
                'flags' => 5,
                'scope' => [],
            },
            'volume' => {
                'type' => 'volume-resource',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'resource-pool-resource' => {
        'category' => 'rbac',
        'fields' => {
            'resource-pool-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resource-pool-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'role-attributes-identifier' => {
        'category' => 'rbac',
        'fields' => {
            'capabilities' => {
                'type' => 'rbac-resource-operation',
                'flags' => 3,
                'scope' => [],
            },
            'description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'inherited-roles' => {
                'type' => 'rbac-role-resource',
                'flags' => 3,
                'scope' => [],
            },
            'role-name-and-id' => {
                'type' => 'rbac-role-resource',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'storage-service-resource' => {
        'category' => 'rbac',
        'fields' => {
            'storage-service-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'vfiler-resource' => {
        'category' => 'rbac',
        'fields' => {
            'vfiler-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-name-or-uuid' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'vfiler-template-resource' => {
        'category' => 'rbac',
        'fields' => {
            'vfiler-template-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-template-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'volume-name-or-id' => {
        'category' => 'rbac',
        'fields' => {
            'volume-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'volume-resource' => {
        'category' => 'rbac',
        'fields' => {
            'aggregate-identifier' => {
                'type' => 'aggregate-resource',
                'flags' => 5,
                'scope' => [],
            },
            'host-identifier' => {
                'type' => 'host-resource',
                'flags' => 5,
                'scope' => [],
            },
            'vfiler-identifier' => {
                'type' => 'vfiler-resource',
                'flags' => 5,
                'scope' => [],
            },
            'volume-identifier-name-or-id' => {
                'type' => 'volume-name-or-id',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'category-list-info' => {
        'category' => 'report',
        'fields' => {
            'category-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'category-list' => {
                'type' => 'category-list-info',
                'flags' => 7,
                'scope' => [],
            },
            'category-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-category-custom' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'graph-info' => {
        'category' => 'report',
        'fields' => {
            'deprecated-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'graph-lines' => {
                'type' => 'graph-line-info',
                'flags' => 7,
                'scope' => [],
            },
            'graph-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'graph-pretty-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-default' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-deprecated' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'graph-line-info' => {
        'category' => 'report',
        'fields' => {
            'sample-format' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'sample-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'sample-pretty-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'sample-suffix' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-application' => {
        'category' => 'report',
        'fields' => {
        },
    },
    'report-info' => {
        'category' => 'report',
        'fields' => {
            'deprecated-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'display-tab' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-deprecated' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'output-format-list' => {
                'type' => 'report-output-format',
                'flags' => 2,
                'scope' => [],
            },
            'rbac-operation' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-application' => {
                'type' => 'report-application',
                'flags' => 0,
                'scope' => [],
            },
            'report-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'report-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-pretty-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-list-info' => {
        'category' => 'report',
        'fields' => {
            'category-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'is-interval-allowed' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'report-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'report-design-file-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'report-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-pretty-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-provenance' => {
                'type' => 'report-provenance',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-output-format' => {
        'category' => 'report',
        'fields' => {
        },
    },
    'report-output-info' => {
        'category' => 'report',
        'fields' => {
            'failure-reason' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'graph-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'report-application' => {
                'type' => 'report-application',
                'flags' => 0,
                'scope' => [],
            },
            'report-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'report-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-output-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'report-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'report-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'run-by' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'run-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'run-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'target-object-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'target-object-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-provenance' => {
        'category' => 'report',
        'fields' => {
        },
    },
    'report-schedule-content-info' => {
        'category' => 'report',
        'fields' => {
            'archival-format' => {
                'type' => 'report-output-format',
                'flags' => 0,
                'scope' => [],
            },
            'email-address-list' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'graph-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'include-deleted-objects' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-enabled' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-successful' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'last-run-time' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'report-application' => {
                'type' => 'report-application',
                'flags' => 0,
                'scope' => [],
            },
            'report-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'report-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'report-schedule-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'report-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'save-all-fields' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'schedule-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'target-object-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'target-object-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'report-schedule-info' => {
        'category' => 'report',
        'fields' => {
            'archival-format' => {
                'type' => 'report-output-format',
                'flags' => 4,
                'scope' => [],
            },
            'email-address-list' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'graph-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'include-deleted-objects' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'report-application' => {
                'type' => 'report-application',
                'flags' => 4,
                'scope' => [],
            },
            'report-name-or-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'report-schedule-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'save-all-fields' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'schedule-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'target-object-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'dataset-space-info' => {
        'category' => 'resourcepool',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-capable-of-migration' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-dp-node-effective-primary' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'used-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'resource-tag' => {
        'category' => 'resourcepool',
        'fields' => {
        },
    },
    'resourcepool-defaults' => {
        'category' => 'resourcepool',
        'fields' => {
            'resourcepool-full-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-nearly-full-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'resourcepool-info' => {
        'category' => 'resourcepool',
        'fields' => {
            'aggregate-nearly-overcommitted-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'aggregate-overcommitted-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resource-tag' => {
                'type' => 'resource-tag',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-contact' => {
                'type' => 'email-address-list',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-free-vfilers' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-full-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-is-provisionable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-kbytes-available' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-kbytes-total' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-kbytes-used' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-member-count' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-nearly-full-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-owner' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-perf-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-space-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepool-timezone' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'resourcepool-member-info' => {
        'category' => 'resourcepool',
        'fields' => {
            'datasets-space-info' => {
                'type' => 'dataset-space-info',
                'flags' => 7,
                'scope' => [],
            },
            'member-committed-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'member-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'member-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'member-size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'member-space-status' => {
                'type' => 'object-space-status',
                'flags' => 4,
                'scope' => [],
            },
            'member-status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'member-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'member-used-space' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'provisioning-checks-passed' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'resource-tag' => {
                'type' => 'resource-tag',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'backup-info' => {
        'category' => 'snapshot',
        'fields' => {
            'backup-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'backup-version' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'dp-backup-expiry-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dp-node-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-application-backup' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'snapshot' => {
        'category' => 'snapshot',
        'fields' => {
            'snapshot-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'unique-id' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'snapshot-dependency' => {
        'category' => 'snapshot',
        'fields' => {
        },
    },
    'snapshot-info' => {
        'category' => 'snapshot',
        'fields' => {
            'backups' => {
                'type' => 'backup-info',
                'flags' => 7,
                'scope' => [],
            },
            'creation-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 0,
                'scope' => [],
            },
            'cumulative-percentage-of-total-blocks' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'dependencies' => {
                'type' => 'snapshot-dependency',
                'flags' => 6,
                'scope' => [],
            },
            'is-busy' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-part-of-backup-version' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'percentage-of-total-blocks' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'snapshot-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'unique-id' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'srm-file-type-info' => {
        'category' => 'srm',
        'fields' => {
            'srm-file-type-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'srm-file-type-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'resourcepool-name-or-id' => {
        'category' => 'storage-service',
        'fields' => {
        },
    },
    'storage-service-dataset-info' => {
        'category' => 'storage-service',
        'fields' => {
            'dataset-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'storage-service-info' => {
        'category' => 'storage-service',
        'fields' => {
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 7,
                'scope' => [],
            },
            'is-dr-capable' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'protection-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'storage-service-contact' => {
                'type' => 'email-address-list',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'storage-service-nodes' => {
                'type' => 'storage-service-node-info',
                'flags' => 3,
                'scope' => [],
            },
            'storage-service-owner' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'storage-service-node-attributes' => {
        'category' => 'storage-service',
        'fields' => {
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'old-dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepools' => {
                'type' => 'resourcepool-name-or-id',
                'flags' => 6,
                'scope' => [],
            },
            'vfiler-template-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'storage-service-node-info' => {
        'category' => 'storage-service',
        'fields' => {
            'dp-node-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'provisioning-policy-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'provisioning-policy-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'resourcepools' => {
                'type' => 'resourcepool-info',
                'flags' => 7,
                'scope' => [],
            },
            'vfiler-template-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-template-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'storage-set-info' => {
        'category' => 'storage-service',
        'fields' => {
            'dataset-access-details' => {
                'type' => 'dataset-access-details',
                'flags' => 5,
                'scope' => [],
            },
            'dataset-export-info' => {
                'type' => 'dataset-export-info',
                'flags' => 5,
                'scope' => [],
            },
            'dp-node-name' => {
                'type' => 'dp-policy-node-name',
                'flags' => 4,
                'scope' => [],
            },
            'server-name-or-id' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'timezone-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'timezone-defaults' => {
        'category' => 'timezone',
        'fields' => {
            'default-timezone' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'server-timezone-description' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'timezone-info' => {
        'category' => 'timezone',
        'fields' => {
            'timezone-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'user-report-info' => {
        'category' => 'user_report_profile',
        'fields' => {
            'count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'user-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'ip-binding-info' => {
        'category' => 'vfiler',
        'fields' => {
            'interface' => {
                'type' => 'obj-name-or-id',
                'flags' => 0,
                'scope' => [],
            },
            'ip-address' => {
                'type' => 'ip-address',
                'flags' => 0,
                'scope' => [],
            },
            'mtu-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'netmask' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'partner-interface' => {
                'type' => 'obj-name-or-id',
                'flags' => 4,
                'scope' => [],
            },
            'prefix-length' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'vlan-identifier' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'protocol' => {
        'category' => 'vfiler',
        'fields' => {
        },
    },
    'vfiler-template-info' => {
        'category' => 'vfiler',
        'fields' => {
            'administrative-host-ip-address' => {
                'type' => 'ip-address',
                'flags' => 4,
                'scope' => [],
            },
            'cifs-auth-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'cifs-domain' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'cifs-security-style' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'description' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dns-domain' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dns-servers' => {
                'type' => 'ip-address',
                'flags' => 6,
                'scope' => [],
            },
            'nis-domain' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'nis-servers' => {
                'type' => 'ip-address',
                'flags' => 6,
                'scope' => [],
            },
            'vfiler-template-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'vfiler-template-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'datacenter' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'datacenter-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'datacenter-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'deleted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'is-protected' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-center-reference' => {
                'type' => 'virtual-center-reference',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'datacenter-reference' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'datacenter-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'datacenter-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'datastore' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'allocated-capacity' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'datacenter-reference' => {
                'type' => 'datacenter-reference',
                'flags' => 1,
                'scope' => [],
            },
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'datastore-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'datastore-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'datastore-on-ontap' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'datastore-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'deleted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'is-protected' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'nfs-export-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'used-capacity' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-center-reference' => {
                'type' => 'virtual-center-reference',
                'flags' => 1,
                'scope' => [],
            },
        },
    },
    'datastore-reference' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'datastore-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'datastore-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'hypervisor-info' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'datacenter-reference' => {
                'type' => 'datacenter-reference',
                'flags' => 5,
                'scope' => [],
            },
            'deleted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'domain-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'hypervisor-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'hypervisor-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'ip-address' => {
                'type' => 'ip-address',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-center-reference' => {
                'type' => 'virtual-center-reference',
                'flags' => 5,
                'scope' => [],
            },
            'virtual-infrastructure-type' => {
                'type' => 'virtual-infrastructure-type',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'hypervisor-reference' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'hypervisor-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'hypervisor-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'virtual-center' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'deleted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-center-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-center-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'virtual-center-reference' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'virtual-center-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-center-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'virtual-disk' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'datastore-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'datastore-name' => {
                'type' => 'obj-name',
                'flags' => 4,
                'scope' => [],
            },
            'datastore-reference' => {
                'type' => 'datastore-reference',
                'flags' => 5,
                'scope' => [],
            },
            'deleted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'vhd-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'virtual-disk-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-disk-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-infrastructure-type' => {
                'type' => 'virtual-infrastructure-type',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-machine-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-machine-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-machine-reference' => {
                'type' => 'virtual-machine-reference',
                'flags' => 5,
                'scope' => [],
            },
        },
    },
    'virtual-infrastructure-type' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
        },
    },
    'virtual-machine' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'datacenter-reference' => {
                'type' => 'datacenter-reference',
                'flags' => 5,
                'scope' => [],
            },
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'deleted-by' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'deleted-timestamp' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'dns-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'guest-os-type' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'host-service-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'hypervisor-reference' => {
                'type' => 'hypervisor-reference',
                'flags' => 1,
                'scope' => [],
            },
            'ip-address-list' => {
                'type' => 'ip-address',
                'flags' => 6,
                'scope' => [],
            },
            'is-protected' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'status' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-center-reference' => {
                'type' => 'virtual-center-reference',
                'flags' => 5,
                'scope' => [],
            },
            'virtual-infrastructure-type' => {
                'type' => 'virtual-infrastructure-type',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-machine-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-machine-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'virtual-machine-reference' => {
        'category' => 'virtual-infrastructure',
        'fields' => {
            'virtual-machine-id' => {
                'type' => 'obj-id',
                'flags' => 0,
                'scope' => [],
            },
            'virtual-machine-name' => {
                'type' => 'obj-name',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'migration-incompatibility-reason' => {
        'category' => 'volume',
        'fields' => {
        },
    },
    'object-space-status' => {
        'category' => 'volume',
        'fields' => {
        },
    },
    'timestamp' => {
        'category' => 'volume',
        'fields' => {
        },
    },
    'volume-dedupe-info' => {
        'category' => 'volume',
        'fields' => {
            'dedupe-progress' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'dedupe-space-savings' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dedupe-space-savings-percentage' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dedupe-status' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'is-dedupe-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'last-dedupe-begin-timestamp' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'last-dedupe-end-timestamp' => {
                'type' => 'timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'last-dedupe-error' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'last-dedupe-scanned-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
    'volume-info' => {
        'category' => 'volume',
        'fields' => {
            'aggregate-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'aggregate-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'block-type' => {
                'type' => 'file-system-block-type',
                'flags' => 0,
                'scope' => [],
            },
            'dataset-id' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'dataset-nodes' => {
                'type' => 'dataset-node-info',
                'flags' => 7,
                'scope' => [],
            },
            'datasets' => {
                'type' => 'dataset-reference',
                'flags' => 3,
                'scope' => [],
            },
            'host-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'host-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'is-available' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-capable-of-migration' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-dp-ignored' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'is-in-dataset' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-readonly-volume' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapmirror-primary-capable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapmirror-primary-volume' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapmirror-secondary-capable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapmirror-secondary-volume' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapvault-primary-capable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapvault-primary-volume' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapvault-secondary-capable' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-snapvault-secondary-volume' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'is-vsm-secondary-volume' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'junction-path' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'junction-path-active' => {
                'type' => 'boolean',
                'flags' => 4,
                'scope' => [],
            },
            'migration-incompatibility-reasons' => {
                'type' => 'migration-incompatibility-reason',
                'flags' => 6,
                'scope' => [],
            },
            'next-scheduled-backup-time' => {
                'type' => 'dp-timestamp',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-volume-id' => {
                'type' => 'obj-id',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-volume-name' => {
                'type' => 'obj-full-name',
                'flags' => 4,
                'scope' => [],
            },
            'snapvault-lag-warning-threshold' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snapvault-secondary-schedule-name' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'space-guarantee' => {
                'type' => 'string',
                'flags' => 4,
                'scope' => [],
            },
            'volume-dedupe-info' => {
                'type' => 'volume-dedupe-info',
                'flags' => 5,
                'scope' => [],
            },
            'volume-full-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'volume-id' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'volume-name' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'volume-nearly-full-threshold' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'volume-perf-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'volume-qtree' => {
                'type' => 'volume-qtree',
                'flags' => 5,
                'scope' => [],
            },
            'volume-size' => {
                'type' => 'volume-size',
                'flags' => 1,
                'scope' => [],
            },
            'volume-space-status' => {
                'type' => 'object-space-status',
                'flags' => 0,
                'scope' => [],
            },
            'volume-state' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
            'volume-status' => {
                'type' => 'obj-status',
                'flags' => 4,
                'scope' => [],
            },
            'volume-type' => {
                'type' => 'string',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-qtree' => {
        'category' => 'volume',
        'fields' => {
            'protected-data-size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'protected-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'total-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-data-size' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'unprotected-qtree-count' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
        },
    },
    'volume-size' => {
        'category' => 'volume',
        'fields' => {
            'actual-volume-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'afs-avail' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'afs-data' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'afs-total' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'afs-used' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'afs-used-per-day' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'hole-reserve' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'is-autosize-enabled' => {
                'type' => 'boolean',
                'flags' => 0,
                'scope' => [],
            },
            'maximum-size' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'overwrite-reserve-avail' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'overwrite-reserve-total' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'overwrite-reserve-used' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-reserve-avail' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-reserve-total' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'snapshot-reserve-used' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
            'space-allocated-from-aggr' => {
                'type' => 'integer',
                'flags' => 0,
                'scope' => [],
            },
            'total' => {
                'type' => 'integer',
                'flags' => 4,
                'scope' => [],
            },
        },
    },
};

sub new {
    my $self = {'apis' => $APIS, 'typedefs' => $TYPEDEFS};
    bless $self;
    return $self;
}
sub GetApi {
    my ($self, $name) = @_;
    my $type = ref($self) || die "$self is not an object";
    my $api = $self->{apis}->{$name} || die "No definition for API $name found";
    return $api;
}
sub GetTypedef {
    my ($self, $name) = @_;
    my $type = ref($self) || die "$self is not an object";
    my $api = $self->{typedefs}->{$name} || die "No definition for typedef $name found";
    return $api;
}
sub IsTypedefFlag {
    my ($self, $flag) = @_;
    return ($flag & FIELD_TYPEDEF) == FIELD_TYPEDEF;
}

sub IsArrayFlag {
    my ($self, $flag) = @_;
    return ($flag & FIELD_ARRAY) == FIELD_ARRAY;
}

sub IsEncryptedFlag {
    my ($self, $flag) = @_;
    return ($flag & FIELD_ENCRYPTED) == FIELD_ENCRYPTED;
}

1;


__END__

=head1 NAME

OCUMClassicAPI - Contains the definitions and description of API Bindings for OnCommand Unified Manager server 5.2 or earlier

=head1 SYNOPSIS

	 my $s = NaServer->new($server, 1, 0); # create NaServer (server context)
	 $s->set_admin_user('admin', 'password'); # provide username and password
	 $s->set_server_type('DFM'); # set the server type to DFM for OnCommand Unified Manager 5.2 or earlier

	 eval{ 
		 my $output = $s->dfm_about(); # use binding for dfm-about API
		 print "OCUM server version is: $output->{version}\n"; # extract the required parameter from output

	 };
	 if($@) { # check for any exception
		 my ($error_reason, $error_code) = $@ =~ /(.+)\s\((\d+)\)/;  # parse out error reason and error code
		 print "Error Reason: $error_reason  Code: $error_code\n"
	 }

=head1 DESCRIPTION

NetApp Manageability SDK 5.5 provides support for Perl API bindings for both Data ONTAP APIs and OnCommand Unified Manager APIs.
The Perl API bindings libraries contain interfaces to establish a connection with either the Data ONTAP server or the OnCommand Unified Manager server.
By using these libraries, you can create Perl applications to access and manage the Data ONTAP server or OnCommand Unified Manager server.

NetApp Manageability SDK 5.5 Perl API bindings provide a runtime library NaServer.pm, which is available at <installation_folder>/lib/perl/NetApp.
This library file enables you to establish a server connection, send requests and receive responses, and interpret error messages.
Each binding can be called as a subroutine of NaServer module which in turn invokes the corresponding Data ONTAP or OnCommand Unified Manager API.



=head1 API BINDINGS



=head2 aggregate_list_info_iter_end



=begin html

The aggregate-list-info-iter-* set of APIs are used to retrieve the list of aggregates. aggregate-list-info-iter-end is used to tell the DFM station that the temporary store used by DFM to support the aggregate-list-info-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 aggregate_list_info_iter_next



=begin html

For more documentation please check aggregate-list-info-iter-start. The aggregate-list-info-iter-next API is used to iterate over the members of the aggregates stored in the temporary store created by the aggregate-list-info-iter-start API.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous aggregate-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by aggregate-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<aggregates>  =>   B<L<"aggregate-info">[]>

=begin html

<br>List of aggregates.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 aggregate_list_info_iter_start



=begin html

The aggregate-list-info-iter-* set of APIs are used to retrieve the list of aggregates in DFM. The aggregate-list-info-iter-start API is used to load the list of aggregates 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 aggregates in the temporary store. If aggregate-list-info-iter-start is invoked twice, then two distinct temporary stores are created. If neither aggregate-name-or-id or aggr-group-name-or-id are provided, all aggregates will be listed. If either, but not both are provided, the aggregate or all aggregates in the group will be listed respectively. If aggregate-name-or-id and aggr-group-name-or-id are provided, the aggregate will be listed only if it is under the specified group.

=end html



B<Inputs>

=over 2

=item * I<aggregate-type>  =>   B<string, optional>

=begin html

<br>Filter by type of aggregate. Possible values are: <ul> <li> traditional <li> aggregate <li> striped </ul> If no aggregate-type input is supplied, all types of aggregates will be listed.

=end html

=back



=over 2

=item * I<block-type>  =>   B<file-system-block-type, optional>

=begin html

<br>Filter by file system block type of the aggregate. If no block-type input is supplied, all types of aggregates will be listed.

=end html

=back



=over 2

=item * I<include-dataset-space-info>  =>   B<boolean, optional>

=begin html

<br>If true, a list of datasets that consume space from this aggregate and the actual space consumed is returned in datasets-space-info. Default value: false.

=end html

=back



=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each aggregate which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<is-direct-member-only>  =>   B<boolean, optional>

=begin html

<br>If true, only return the aggregates that are direct members of the specified resource group. Default value is false. This field is meaningful only if a resource group name or id is given for the object-name-or-id field.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>If true, only list aggregates that have been set to be ignored for purposes of data protection. If false, only list aggregates that have not been set to be ignored for purposes of data protection. If not specified, list all aggregates without taking into account whether they have been ignored or not.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean, optional>

=begin html

<br>If true, only list aggregates which only contain data which is protected by a dataset. If false, only list aggregates containing data which is not protected by a dataset. If not specified, list all aggregates whether they are in a dataset or not.

=end html

=back



=over 2

=item * I<is-unprotected>  =>   B<boolean, optional>

=begin html

<br>If true, only list aggregates that are not protected, which means the aggregate is: <ul> <li> 1. not in any resource pool. <li> 2. not a child of a host that is a member of any resource pool. <li> and 3. not a member of a node in a dataset with protection policy assigned. </ul> If false or not set, list all aggregates.

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or identifier of an object to list aggregates for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Resource Pool <li> Dataset <li> Storage Set <li> Host <li> Aggregate <li> Volume <li> Qtree <li> GenericAppObject </ul> If object-name-or-id identifies an aggregate, that single aggregate will be returned. If object-name-or-id resolves to more than one aggregate, all of them will be returned. If no object-name-or-id is provided, all aggregates will be listed.

=end html

=back



=over 2

=item * I<rbac-operation>  =>   B<string, optional>

=begin html

<br>Name of an RBAC operation. If specified, only return aggregates for which authenticated admin has the required capability. A capability is an operation/resource pair. The resource is the volume where the aggregate lives. The possible values that can be specified for operation can be obtained by calling rbac-operation-info-list. If operation is not specified, then it defaults to DFM.Database.Read. For more information about operations, capabilities and user roles, see the RBAC APIs.

=end html

=back



=over 2

=item * I<resourcepool-filter>  =>   B<string, optional>

=begin html

<br>Possible Value: 'in_rpool', 'not_in_rpool', 'all'. If set to 'in_rpool', only list aggregates that are in a resource pool. If set to 'not_in_rpool', only list aggregates that are not in a resource pool. If set to 'all', then list all aggregates. If a value is not specified, then 'all' will be the default. An aggregate is said to be in a resource pool if either the aggregate or the storage system containing the aggregate is a member of a resource pool.

=end html

=back



=over 2

=item * I<volumes-to-migrate>  =>   B<object-name-or-id[], optional>

=begin html

<br>This is a filter to return a list of candidate destination aggregates where the volumes in volumes-to-migrate can be migrated to. An ordered list of candidate aggregates are returned based on free space. Each object-name-or-id in volumes-to-migrate input should be the identifier or full name of a volume and they should all belong to the same source aggregate. Returning the list of candidate aggregates for migration can potentially take some time to compute.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with aggregate-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to aggregate-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 aggregate_modify



=begin html

Modify an aggregate's information. If modifying of one property fails, nothing will be changed. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified aggregate. <li> EINVALIDINPUT - When invalid input specified. <li> EOBJECTNOTFOUND - When the aggregate-name-or-id does not correspond to an aggregate. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<aggregate-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the aggregate to modify.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to ignore this object for purposes of data protection.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 aggregate_space_management_add_operation



=begin html

Add a space management operation as part of this space management session. The actual operation is not carried out unless aggregate-space-management-commit is called. If this operation cannot be carried out, then ESPACEMGMTCONFLICTOP will be returned The following rules apply when adding an operation to the session. <ul> <li> A session cannot have 2 operations of same type for a give volume. For example two volume resize operations cannot be added for the same volume to a session. If this check fails the api will return ESPACEMGMTCONFLICTOP error. <li> If a volume migration operation is added to a session then other session management operations cannot be added to the session. Similarly a volume migration cannot be added to a session if other type of operation is already added to session. If this check fails the api will return ESPACEMGMTCONFLICTOP error. </ul> If this operation leads to errors in dry-run-results that are returned, then this operation is not added to the session.

=end html



B<Inputs>

=over 2

=item * I<space-management-operation-info>  =>   B<L<"space-management-operation-info">>

=begin html

<br>Details of a space management operation to be added to the session.

=end html

=back



=over 2

=item * I<space-management-session-id>  =>   B<integer>

=begin html

<br>Identifier of the space management session on an aggregate to which this space management operation has to be added. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<aggregate-diff-space-infos>  =>   B<L<"aggregate-space-info">[]>

=begin html

<br>Returns the difference in aggregate space consumption (i.e used space and committed space) due to this space management operation only on the session aggregate as well as other aggregates affected by this operation (for example volume migration affects both session aggregate and destination aggregate.) The values returned in aggregate-space-info can be positive or negetive depending on whether the operation consumes or frees up space on the aggregates. For example volume migration frees up space on the source aggregate and consumes space on the destination aggregate.

=end html

=back



=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action.

=end html

=back



=head2 aggregate_space_management_begin



=begin html

Open a space management session to run space management operations on an aggregate.<P> This allows adding a set of space management operations in a session, getting the difference in space consumption due to these set of operations and then committing all the operations. A space management session must be started before invoking the following ZAPIs: <UL> <LI>aggregate-space-management-add-operation <LI>aggregate-space-management-remove-operation <LI>aggregate-space-management-commit <LI>aggregate-space-management-rollback </UL> Use aggregate-space-management-commit to commit the changes and to start jobs which will carry out the space management operations. <P> Use aggregate-space-management-rollback to rollback the session. This will not submit any jobs for space management operations. <P> After 24 hours, a session can be opened on the same aggregate by another client without the force option. This will cause any space management operations that were part of the session to be discarded.

=end html



B<Inputs>

=over 2

=item * I<aggregate-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the aggregate on which to open the space management session.

=end html

=back



=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>By default, force is false. If true, and a space management session is already in progress on the specified aggregate the previous space management session is rolled back and a new edit session is begun.

=end html

=back



B<Outputs>

=over 2

=item * I<space-management-session-id>  =>   B<integer>

=begin html

<br>Identifier of the space management session. Range: [1..2^31-1]

=end html

=back



=head2 aggregate_space_management_commit



=begin html

Commit the space management operations added as part of this space management session. <P> The session that was opened on the aggregate will be released once all the space management jobs that were part of the session are queued to be executed eventually.<P> This will not wait for the jobs to be executed.<P> Use the <b>dry-run</b> option to test the commit. It returns a set of dry-run results for each space management operation that was added as part of this session. <p> dry-run-results is a set of steps that the server will take to carry out the space management operation <p>When dry-run is true, it also returns the projected used and committed space of the aggregate on which the space management session was opened and other dependent aggregates in case of migration operations. <p> If <b>dry-run</b> is false, then before the call returns, the system submits jobs to the provisioning engine to execute.

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return the dry-run-results list for each space management operation and aggregate-space-infos which gives the projected used and committed space of the aggregate(s) as a result of space management operations added to the session. <p> The dry-run-results list contains actions that would be taken should the changes be committed without actually committing the changes. <p> The session is not released after a dry run. By default, dry-run is false.

=end html

=back



=over 2

=item * I<space-management-session-id>  =>   B<integer>

=begin html

<br>Identifier of the space management session on an aggregate Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<aggregate-space-infos>  =>   B<L<"aggregate-space-info">[], optional>

=begin html

<br>Returns overall effect of space management operations added to the session on the used and committed space of all affected aggregates (i.e aggregate on which the space management session is started and the aggregates affected by space management operations added to the session. For example migration effects two aggregates, session aggregate and destination aggregate). <P> The space effect is calculated by obtaining the space freed or consumed by each operation and by adding or subtracting it from the current used and committed space of the aggregate. <P> Returned only if dry-run is true.

=end html

=back



=over 2

=item * I<space-management-results>  =>   B<L<"space-management-result-info">[]>

=begin html

<br>Results of a commit operation for each space management operation that was added in this session.

=end html

=back



=head2 aggregate_space_management_remove_operation



=begin html

Remove a space management operation that was added as part of this space management session.

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Object whose space management operation has to be removed from this session.

=end html

=back



=over 2

=item * I<space-management-op-type>  =>   B<space-management-op-type>

=begin html

<br>Type of space management operation to be removed for the object from this session.

=end html

=back



=over 2

=item * I<space-management-session-id>  =>   B<integer>

=begin html

<br>Identifier of the space management session on an aggregate from which this space management operation has to be removed. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<aggregate-diff-space-infos>  =>   B<L<"aggregate-space-info">[]>

=begin html

<br>Returns difference in aggregate space consumption (i.e used space and committed space) caused by removing this space magagement operation from the session. The values returned here are same as the values returned by aggregate-space-management-add-operation zapi (called when adding this operation to the session) but with the signs reversed.

=end html

=back



=head2 aggregate_space_management_rollback



=begin html

Release the session opened for space management on an aggregate. All the space management operations that were submitted as part of the space management session would be discarded.

=end html



B<Inputs>

=over 2

=item * I<space-management-session-id>  =>   B<integer>

=begin html

<br>Identifier of the space management session on an aggregate to be rolled back. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 alarm_create



=begin html

Create a DFM alarm. The alarm-info element specifies all the parameters of the new alarm. <P> Note that it is possible to specify a combination of the event-name, event-severity and event-class such that this alarm will never be triggered. It is the user's responsibility to verify these settings are useful. <P> Error Conditions: <ul> <li> EINVALIDEMAILADDR - If the email address has spaces, semi-colons or unprintable characters. <li> EINVALIDEVENTSEVERITY - If the event-severity specified is not one of 'normal', 'information', 'unknown', 'warning', 'error', 'critical', 'emergency'. <li> EINVALIDEVENTCLASSEXP - If the regular expression specified for the event-class is not a valid POSIX.1 regular expression. <li> EINVALIDALARMTIME - If the time-specified for time-from or time-to is greater than 86399 ((24 * 60 * 60) - 1) seconds or if only one of time-from and time-to values are specified. <li> EINVALIDTRAPADDR - If the trap host specified is not reachable or when the port is greater than 65535 (2^15 - 1) <li> ENOSUCHEVENT - If the event name specified is not a valid event-name of DFM. <li> EGROUPDOESNOTEXIST - If the group specified in the alarm parameters is not a DFM resource group. <li> ENOTFOUNDUSER - If the administrator name specified in the alarm parameters is not a DFM administrator. <li> ERUNASUNSUPPORTED - If script-runas parameter is specified on a Windows DFM platform. <li> EINVALIDINPUT - If the event-severity value is less than the severity of the event-name event. <li> EDATABASEERROR - A database error occured during processing. <li> EACCESSDENIED - When the user does not have DFM.Event.Write capability on the resource group on which the alarm is being configured. It is also set when the user sets script-runas parameter for the alarm and he does not have global DFM.Database.Write capability. </ul>

=end html



B<Inputs>

=over 2

=item * I<alarm-info>  =>   B<L<"alarm-info">>

=begin html

<br>Parameters of the new alarm.

=end html

=back



B<Outputs>

=over 2

=item * I<alarm-id>  =>   B<integer>

=begin html

<br>ID of newly created alarm. Range: [1..2^15-1]

=end html

=back



=head2 alarm_destroy



=begin html

Delete an alarm. <P> Error Conditions: <ul> <li> EALARMDOESNOTEXIST - If an alarm by the specified id does not exist. <li> EDATABASEERROR - A database error occured during processing. <li> EACCESSDENIED - When the user does not have DFM.Event.Write capability on the resource group on which the alarm being destroyed is configured. </ul>

=end html



B<Inputs>

=over 2

=item * I<alarm-id>  =>   B<integer>

=begin html

<br>Identifier of the alarm. Range: [1..2^15-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 alarm_get_defaults



=begin html

Get the default values of attributes defined by this ZAPI set.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<alarm-defaults>  =>   B<L<"alarm-defaults">>

=begin html

<br>The default values of the attributes defined by this ZAPI.

=end html

=back



=head2 alarm_list_info_iter_end



=begin html

Ends listing of alarms.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag returned from alarm-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 alarm_list_info_iter_next



=begin html

Returns items from list generated by alarm-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in alarm-list-info-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<alarm-list>  =>   B<L<"alarm-info">[]>

=begin html

<br>Array of alarm information.

=end html

=back



=over 2

=item * I<records>  =>   B<integer, optional>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1].

=end html

=back



=head2 alarm_list_info_iter_start



=begin html

List all configured alarms.

=end html



B<Inputs>

=over 2

=item * I<alarm-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the alarm to list. Range: [1..2^15-1]. If alarm-id is not specified, list all alarms.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with alarm-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to alarm-list-info-iter-next or alarm-list-info-iter-end.

=end html

=back



=head2 alarm_modify



=begin html

Modify settings of a DFM alarm. <P> Error Conditions: <ul> <li> EALARMDOESNOTEXIST - If an alarm by the specified id does not exist. <li> EINVALIDEMAILADDR - If the email address has spaces, semi-colons or unprintable characters. <li> EINVALIDEVENTSEVERITY - If the event-severity specified is not one of 'normal', 'information', 'unknown', 'warning', 'error', 'critical', 'emergency'. <li> EINVALIDEVENTCLASSEXP - If the regular expression specified for the event-class is not a valid POSIX.1 regular expression. <li> EINVALIDALARMTIME - If the time-specified for time-from or time-to is greater than 86399 ((24 * 60 * 60) - 1) seconds or if only one of time-from and time-to values are specified. <li> EINVALIDTRAPADDR - If the trap host specified is not reachable or when the port is greater than 65535 (2^15 - 1) <li> ENOSUCHEVENT - If the event name specified is not a valid event-name of DFM. <li> EGROUPDOESNOTEXIST - If the group specified in the alarm parameters is not a DFM resource group. <li> ENOTFOUNDUSER - If the administrator name specified in the alarm parameters is not a DFM administrator. <li> ERUNASUNSUPPORTED - If script-runas parameter is specified on a Windows DFM platform. <li> EINVALIDINPUT - If the event-severity value is less than the severity of the event-name event. <li> EDATABASEERROR - A database error occured during processing. <li> EACCESSDENIED - When the user does not have DFM.Event.Write capability on the resource group on which the alarm is being configured. It is also set when the user sets script-runas parameter for the alarm and he does not have DFM.Database.Write capability at global level. </ul>

=end html



B<Inputs>

=over 2

=item * I<alarm-info>  =>   B<L<"alarm-info">>

=begin html

<br>Parameters to be modfied for the alarm. Any value specified in alarm-info replaces values configured for the alarm. Specifying any optional attributes with a blank value removes that setting from the alarm. Specifying an empty array for attributes that take an array will remove all the entries. Specifying an array element with values replaces the existing values. If an array element is not specified, then no change happens. If none of the optional parameters are specified, then this API does nothing. <P> Note that it is possible to specify a combination of the event-name, event-severity and event-class such that this alarm will never be triggered. It is the user's responsibility to verify these settings are useful.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 alarm_test



=begin html

Test an alarm by performing it's trigger actions. The test will be performed irrespective of whether the alarm is enabled or disabled. <P> Error Conditions: <ul> <li> EALARMDOESNOTEXIST - If an alarm by the specified id does not exist. <li> EALARMTESTFAILED - If there is an error sending the test alarm event to DataFabric Manager Event service. <li> EDATABASEERROR - A database error occured during processing. <li> EACCESSDENIED - When the user does not have DFM.Event.Write capability on the resource group on which the alarm is configured. </ul>

=end html



B<Inputs>

=over 2

=item * I<alarm-id>  =>   B<integer>

=begin html

<br>Identifier of the alarm. Range: [1..2^15-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 api_proxy



=begin html

Proxy an API request to a third party and return the API response.

=end html



B<Inputs>

=over 2

=item * I<request>  =>   B<L<"request">>

=begin html

<br>The request to be forwarded to another server.

=end html

=back



=over 2

=item * I<target>  =>   B<string>

=begin html

<br>The target host. May be a hostname (qualified or unqualified), a vfiler name or a host agent. If the target is not resolved during a capability check, EOBJECTAMBIGUOUS or EOBJECTNOTFOUND is returned.

=end html

=back



=over 2

=item * I<timeout>  =>   B<integer, optional>

=begin html

<br>Number of seconds that the proxy server should wait for a response before giving up.

=end html

=back



=over 2

=item * I<username>  =>   B<string, optional>

=begin html

<br>User account to use for executing the API. If none is specified, the highest privilege available will be attempted. The proxy server may have a security policy that restricts the accepted values for this field. Invalid values will cause EACCESSDENIED.

=end html

=back



B<Outputs>

=over 2

=item * I<response>  =>   B<L<"response">>

=begin html

<br>The response from the other server.

=end html

=back



=head2 application_policy_copy



=begin html

Create a new application policy by making a copy of an existing policy. The new policy created using this ZAPI has the same set of properties as the existing policy. <HR> Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to read the existing policy from the database, or create a new policy, or both. <LI> EOBJECTNOTFOUND - No existing policy was found that has the given name or ID. <LI> EOBJECTAMBIGUOUS - Multiple objects with the given name present in database. <LI> EPOLICYEXISTS - A policy with the given application-policy-name already exists. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EINVALIDINPUTERROR - Invalid input was provided. </UL>

=end html



B<Inputs>

=over 2

=item * I<application-policy-description>  =>   B<string, optional>

=begin html

<br>Description of the new policy. It may contain from 0 to 255 characters. If the length is greater than 255 characters, the ZAPI fails with error code EINVALIDINPUTERROR. The default value is the empty string "".

=end html

=back



=over 2

=item * I<application-policy-name>  =>   B<obj-name>

=begin html

<br>Name of the new policy. It must be unique across all application,provisioning and data protection policies.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Resource group to which the newly created application policy should be added to. User should have DFM.ApplicationPolicy.Write capability on the specified group. Default value: Global group.

=end html

=back



=over 2

=item * I<source-policy-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The name or ID of an existing policy that is copied to create the new policy.

=end html

=back



B<Outputs>

=over 2

=item * I<application-policy-id>  =>   B<obj-id>

=begin html

<br>An object ID for the newly created policy.

=end html

=back



=head2 application_policy_create



=begin html

This API creates a new application policy. Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to create policies. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EINVALIDINPUTERROR - Invalid input was provided. <LI> EPOLICYEXISTS - An application policy with given name already exists. </UL>

=end html



B<Inputs>

=over 2

=item * I<application-policy-info>  =>   B<L<"application-policy-info">>

=begin html

<br>Details of the new policy to be created.

=end html

=back



B<Outputs>

=over 2

=item * I<application-policy-id>  =>   B<obj-id>

=begin html

<br>Object ID of the newly created policy.

=end html

=back



=head2 application_policy_destroy



=begin html

Destroy a application policy. This removes it from the database. <P> If the policy has been applied to any dataset nodes, then the destroy operation fails; it must first be disassociated from all the dataset nodes to which it has been associated and then destroyed. Error conditions: <UL> <LI> EACCESSDENIED - User does not have DFM.Policy.Delete on the policy being destroyed. <LI> EOBJECTNOTFOUND - The specified application policy does not exist in the database. <LI> EAPPPOLICYINUSE - The policy is assigned to one or more datasets. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EOBJECTAMBIGUOUS - Multiple objects with the given name present in database. <LI> EEDITSESSIONINPROGRESS - The application policy being destroyed locked in an edit session. </UL>

=end html



B<Inputs>

=over 2

=item * I<application-policy-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the application policy being destroyed.

=end html

=back



=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>force delete even if there is an edit session in progress on the application policy.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 application_policy_edit_begin



=begin html

Create an edit session and obtain an edit lock on an application policy to begin modifying the policy. <P> An edit lock must be obtained before invoking application-policy-modify. <P> Use application-policy-edit-commit to end the edit session and commit the changes to the database. <P> Use application-policy-edit-rollback to end the edit session and discard any changes made to the policy. <P> 24 hours after an edit session on a policy begins, any subsequent call to application-policy-edit-begin for that same policy automatically rolls back the existing edit session and begins a new edit session, just as if the call had used the force option. If there is no such call, the existing edit session simply continues and retains the edit lock. <HR> Error conditions: <UL> <LI> EEDITINPROGRESS - Another edit session already has an edit lock on the specified application policy. <LI> EOBJECTNOTFOUND - No application policy was found that has the given name or ID. <LI> EACCESSDENIED - User does not have DFM.Policy.Write privilege on the policy. modify the application policy. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<application-policy-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of an application policy.

=end html

=back



=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>If true, and an edit session is already in progress on the specified policy, then the previous edit is rolled back and a new edit is begun. If false, and an edit is already in progress, then the call fails with error code EEDITINPROGRESS. Default value is false.

=end html

=back



B<Outputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. Range: [0..(2^31)-1]

=end html

=back



=head2 application_policy_edit_commit



=begin html

Commit changes made to an application policy during an edit session into the database.<P> If all the changes to the policy are performed successfully, the entire edit is committed and the edit lock on the policy is released.<P> If any of the changes to the policy are not performed successfully, then the edit is rolled back (none of the changes are committed) and the edit lock on the policy is released.<P> Use the dry-run option to test the commit. Using this option, the changes to the policy are not committed to the database. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have DFM.Policy.Write on the policy. <LI> EPOLICYEXISTS - The policy's name is being changed, and a policy with the new name already exists. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EAPPPOLICYNOTFOUND - An application policy was not found. </UL>

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return a list of the actions the system would take after committing the changes to the policy, but without actually committing the changes. In addition, the edit lock is not released. By default, dry-run is false.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by application-policy-edit-begin ZAPI.

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Only returned if dry-run is true.

=end html

=back



=head2 application_policy_edit_rollback



=begin html

Roll back changes made to an application policy. The edit lock on the policy will be released after the rollback. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have privileges to modify the policy. </UL>

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by application-policy-edit-begin ZAPI.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 application_policy_list_iter_end



=begin html

Terminate a list iteration that had been started by a call to application-policy-list-iter-start. This informs the server that it may now release any resources associated with the temporary store for the list iteration. <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to application-policy-list-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 application_policy_list_iter_next



=begin html

Retrieve the next series of policies that are present in a list iteration created by a call to application-policy-list-iter-start. The server maintains an internal cursor pointing to the last record returned. Subsequent calls to application-policy-list-iter-next return the next maximum records after the cursor, or all the remaining records, whichever is fewer. <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of policies to return. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to application-policy-list-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * I<application-policies>  =>   B<L<"application-policy-info">[]>

=begin html

<br>List of information about multiple application policies.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records actually returned in the output. Range:[0..2^31-1]

=end html

=back



=head2 application_policy_list_iter_start



=begin html

Begin a list iteration over application policies. <p> After calling application-policy-list-iter-start, you continue the iteration by calling application-policy-list-iter-next zero or more times, followed by a call to application-policy-list-iter-end to terminate the iteration. <HR> Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to read the specified policy. <LI> EOBJECTNOTFOUND - No policy or resource group was found that has the given name or ID. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<application-policy-type>  =>   B<application-policy-type, optional>

=begin html

<br>Filter application policies by type.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of a application policy or resource group. If a resource group is specified, only the application policies which are members of the group are returned. If application policy name or ID is specified, then application-policy-type filter is ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items present in the list iteration. Range:[0..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used to identify the list iteration. The list content resides in a temporary store in the server.

=end html

=back



=head2 application_policy_modify



=begin html

This ZAPI modifies the application policy settings of an existing policy in the database with the new values specified in the input. Note: type of application policy cannot be modified after creation. Before modifying the policy, an edit lock has to be obtained on the policy object. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EEDITSESSIONCONFLICTINGOP - current modification made conflicts with previous change in the edit session. <LI> EACCESSDENIED - User does not have privileges to modify the policy. <LI> EOBJECTNOTFOUND - The policy was already destroyed during this edit session. <LI> EOBJECTAMBIGUOUS - Multiple objects with the given name present in database. <LI> EINVALIDINPUT - The requested modification is not applicable to the policy being modified. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<application-policy-info>  =>   B<L<"application-policy-info">>

=begin html

<br>New values for application policy attributes. All the policy attributes are replaced by the new values. If an optional element is absent, then it gets replaced by its default value.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by application-policy-edit-begin.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 audit_log_add_entry



=begin html

Log an entry in the audit log file of DataFabric Manager

=end html



B<Inputs>

=over 2

=item * I<audit-application-name>  =>   B<string>

=begin html

<br>Name of the application which wants to log an entry in the audit log file.

=end html

=back



=over 2

=item * I<audit-interface>  =>   B<string, optional>

=begin html

<br>Specifies the interface of the event being logged. Possible values: web, command and log. Default value is log.

=end html

=back



=over 2

=item * I<audit-ip-address>  =>   B<string, optional>

=begin html

<br>Specifies the IP Address of the machine from which the operation is invoked.

=end html

=back



=over 2

=item * I<audit-message>  =>   B<string>

=begin html

<br>Application specific message for audit logging.

=end html

=back



=over 2

=item * I<audit-priority>  =>   B<string>

=begin html

<br>Specifies the priority of the audit log entry. Possible values: emergency, critical, error, warning and information

=end html

=back



=over 2

=item * I<audit-type>  =>   B<string>

=begin html

<br>Specifies the type of the event being logged. Possible values: input, error, action and output

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 cifs_domain_list_info_iter_end



=begin html

Terminate a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 cifs_domain_list_info_iter_next



=begin html

Returns items from a previous call to cifs-domain-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<cifs-domain-list>  =>   B<L<"cifs-domain-info">[]>

=begin html

<br>A list of cifs domains.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 cifs_domain_list_info_iter_start



=begin html

Initiates a query for a list of cifs domains on hosts discovered by DFM.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with cifs-domain-list-info-iter-next. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store. Used in subsequent calls to cifs-domain-list-info-iter-next. or cifs-domain-list-info-iter-end.

=end html

=back



=head2 client_registry_destroy



=begin html

Remove one or all name/value pairs from the persistent store.

=end html



B<Inputs>

=over 2

=item * I<application-name>  =>   B<string>

=begin html

<br>Unique name identifying the application requesting the data.

=end html

=back



=over 2

=item * I<match>  =>   B<string, optional>

=begin html

<br>Specify how the API should determine which name/value pairs to remove. Use "exact", the default, to specify that the option name must exactly match "option". The API returns ENAMENOTFOUND if an option by that name does not exist. Use "all" to indicate that the API should ignore the option name and return all name/value pairs. Use "regexp" to indicate that the API should interpret the option as an extended regular expression, and return all name/value pairs where the option name matches the pattern specified in "option". The API returns EINVALIDINPUTERROR if the "option" is not a valid regular expression.

=end html

=back



=over 2

=item * I<option>  =>   B<string, optional>

=begin html

<br>Name of the key to remove. See the description of the "match" parameter for more information.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 client_registry_get



=begin html

Retrieve one or all name/value string pairs.

=end html



B<Inputs>

=over 2

=item * I<application-name>  =>   B<string>

=begin html

<br>Unique name identifying the application requesting the data.

=end html

=back



=over 2

=item * I<match>  =>   B<string, optional>

=begin html

<br>Indicate how the API should find matching options. Use "exact", the default, to specify that the option name must exactly match "option". The API returns ENAMENOTFOUND if no option with that name exists for this application. Use "all" to indicate that the API should ignore the option name and return all name/value pairs. Use "regexp" to indicate that the API should interpret the option as an extended regular expression, and return all name/value pairs where the option name matches the pattern specified in "option". In the case of "regexp", the API returns EINVALIDINPUTERROR if the "option" is not a valid regular expression.

=end html

=back



=over 2

=item * I<option>  =>   B<string, optional>

=begin html

<br>Name of the registry key to fetch. See the description of the "match" parameter for more information.

=end html

=back



B<Outputs>

=over 2

=item * I<options>  =>   B<L<"client-option-info">[]>

=begin html

<br>An array of name/value pair objects.

=end html

=back



=head2 client_registry_set



=begin html

Store one or more name/value string pairs.

=end html



B<Inputs>

=over 2

=item * I<application-name>  =>   B<string>

=begin html

<br>Unique name identifying the application requesting storage.

=end html

=back



=over 2

=item * I<options>  =>   B<L<"client-option-info">[]>

=begin html

<br>An array of name/value pair objects.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 comment_field_create



=begin html

Create a comment field. <HR> Error conditions: <UL> <LI> ECOMMENTFIELDALREADYEXISTS - A comment field by the same name already exists. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EINVALIDINPUT - Invalid input was provided. </UL>

=end html



B<Inputs>

=over 2

=item * I<comment-field-info>  =>   B<L<"comment-field-info">>

=begin html

<br>Information about the comment field.

=end html

=back



B<Outputs>

=over 2

=item * I<comment-field-id>  =>   B<comment-field-id>

=begin html

<br>Identifier of the newly created comment field.

=end html

=back



=head2 comment_field_destroy



=begin html

Destroy a comment field. <HR> Error conditions: <UL> <LI> ECOMMENTFIELDDOESNOTEXIST - A comment field by the specified id does not exist. <LI> ESYSTEMCOMMENTFIELD - An attempt was made to destroy a system comment field. <LI> EDATABASEERROR - A database error occured while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<comment-field-name-or-id>  =>   B<comment-field-name-or-id>

=begin html

<br>Comment field to be destroyed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 comment_field_list_info_iter_end



=begin html

Terminate a list iteration that had been started by a call to comment-field-list-info-iter-start. This informs the server that it may now release any resources associated with the temporary store for the list iteration. <HR> Error conditions: <ul> <li> EINVALIDTAG - The specified tag does not exist. </ul>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to comment-field-list-info-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 comment_field_list_info_iter_next



=begin html

Get the next set of comment fields in the iteration started by comment-field-list-info-iter-start. <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of comment fields to return. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to comment-field-list-info-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * I<comment-fields>  =>   B<L<"comment-field-info">[]>

=begin html

<br>List of comment fields.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 comment_field_list_info_iter_start



=begin html

Starts iteration to list all comment fields. <HR> Error conditions: <UL> <LI> ECOMMENTFIELDDOESNOTEXIST - A comment field by the specified id or name does not exist. <LI> EDATABASEERROR - A database error occured while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<comment-field-name-or-id>  =>   B<comment-field-name-or-id, optional>

=begin html

<br>If specified, only the specified comment field is returned. Otherwise information about all comment fields are returned.

=end html

=back



=over 2

=item * I<comment-field-object-types>  =>   B<comment-field-object-type[], optional>

=begin html

<br>If specified, only the specified comment field with specified object type is returned. If not specified, then all comment fields will be returned.

=end html

=back



=over 2

=item * I<show-system-comments>  =>   B<boolean, optional>

=begin html

<br>Indicates whether system comment fields are returned. Default is true.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items present in the list iteration. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used to identify the list iteration. The list content resides in a temporary store in the server.

=end html

=back



=head2 comment_field_modify



=begin html

Modify a comment field. Currently only the name of the comment field can be modified. <HR> Error conditions: <UL> <LI> ECOMMENTFIELDDOESNOTEXIST - A comment field by the specified id does not exist. <LI> ECOMMENTFIELDALREADYEXISTS - A comment field by the same name already exists. <LI> ESYSTEMCOMMENTFIELD - An attempt was made to modify a system comment field. <LI> EDATABASEERROR - A database error occured while processing the request. <LI> EINVALIDINPUT - Invalid input was provided. </UL>

=end html



B<Inputs>

=over 2

=item * I<comment-field-name-or-id>  =>   B<comment-field-name-or-id>

=begin html

<br>Name or identifier of the comment field which has to be modified.

=end html

=back



=over 2

=item * I<comment-field-object-types>  =>   B<comment-field-object-type[], optional>

=begin html

<br>Object type(s) of the comment field to be modified. If an object type of the comment field does not exist, then the new object type will be associated with the comment field. Any existing object type of the comment field that is not specified in this input will be disassociated. If the input is empty, then all object types of the comment field will be disassociated.

=end html

=back



=over 2

=item * I<new-comment-field-name>  =>   B<comment-field-name, optional>

=begin html

<br>New name of the comment field. May be omitted if only changing the comment field object types.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 comment_field_values_list_info_iter_end



=begin html

Terminate a list iteration that had been started by a call to comment-field-values-list-info-iter-start. This informs the server that it may now release any resources associated with the temporary store for the list iteration. <HR> Error conditions: <ul> <li> EINVALIDTAG - The specified tag does not exist. </ul>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to comment-field-values-list-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 comment_field_values_list_info_iter_next



=begin html

Get the next set of comment field values in the iteration started by comment-field-values-list-iter-start <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of comment field values to return. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to comment-field-values-list-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * I<comment-field-values>  =>   B<L<"comment-field-value">[]>

=begin html

<br>Comment field values.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 comment_field_values_list_info_iter_start



=begin html

Start iteration on listing comment field values for objects. <HR> Error conditions: <ul> <li> ECOMMENTFIELDDOESNOTEXIST - A comment field by the specified id or name does not exist. <li> EDATABASEERROR - A database error occured while processing the request. <li> EACCESSDENIED - The user does not have DFM.Database.Read capability on the specified object. If the object is a dataset, then the user does not have DFM.Dataset.Read on the dataset. <li> EOBJECTNOTFOUND - The specified object was not found. <li> EOBJECTAMBIGUOUS - The specified object name could refer to more than a single object. Use object identifiers to disambiguate. </ul>

=end html



B<Inputs>

=over 2

=item * I<comment-field-name-or-id>  =>   B<comment-field-name-or-id, optional>

=begin html

<br>If specified, the values set for various objects for the specified comment field is returned. Otherwise, list the comment field values for all comment fields.

=end html

=back



=over 2

=item * I<comment-field-object-types>  =>   B<comment-field-object-type[], optional>

=begin html

<br>Object type(s) of the comment field to be returned.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the managed object. If specified all comment field values set for that object is returned. Otherwise list the comment field values for all objects.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items present in the list iteration. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used to identify the list iteration. The list content resides in a temporary store in the server.

=end html

=back



=head2 comment_set_object_value



=begin html

Set the value of a comment field for a specified managed object. <HR> Error conditions: <ul> <li> ECOMMENTFIELDDOESNOTEXIST - A comment field by the specified id or name does not exist. <li> EDATABASEERROR - A database error occured while processing the request. <li> EACCESSDENIED - The user does not have DFM.Database.Write capability on the specified object. <li> EINVALIDINPUT - The specified comment value is invalid. <li> EOBJECTNOTFOUND - The specified object was not found or the managed object was not a supported type for setting comments. <li> EOBJECTAMBIGUOUS - The specified object name could refer to more than a single object. Use object identifiers to disambiguate. </ul>

=end html



B<Inputs>

=over 2

=item * I<comment-field-name-or-id>  =>   B<comment-field-name-or-id>

=begin html

<br>Name or identifier of the comment field.

=end html

=back



=over 2

=item * I<comment-value>  =>   B<comment-value>

=begin html

<br>Value of the comment field. An empty string can be used to unset the value of the comment field for this object.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the managed object for which the value of the comment has to be set. The supported object types for which a comment value can be set are: <ul> <li>dataset <li>host <li>volume <li>qtree <li>lun_path <li>quota_user <li>resource_group <li>aggregate <li>srm_path <li>resource_pool <li>dp_policy <li>dp_schedule <li>dp_throttle <li>prov_policy <li>ossv_directory </ul>

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_add_member



=begin html

Add members to an existing dataset.<P> This API is for adding direct member objects to one or more storage sets in the dataset. Each storage set is identified by the data protection policy node associated with it. <P>The types of storage objects allowed to be added vary: <UL> <LI> Volumes, qtrees and OSSV directories are allowed in the storage set attached to a primary policy node. </LI> <LI> Only volumes are allowed in a storage sets attached to secondary/destination nodes. </LI> </UL> It is legal to add storage objects to multiple storage sets in a single call.

=end html



B<Inputs>

=over 2

=item * I<dataset-member-parameters>  =>   B<L<"dataset-member-parameter">[]>

=begin html

<br>List of members to add to the dataset.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<is-existing-member-ok>  =>   B<boolean, optional>

=begin html

<br>If specified, the call will not return an error if one or more objects being added is already a member of the specified node. If an ancestor or child of an object is already a member, an error will still be returned. By default, is-existing-member-ok is false.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_add_member_by_dynamic_reference



=begin html

Add dynamic reference to an existing dataset.<P> By adding a dynamic reference, the volumes, qtrees and ossv directories referred to by the dynamic reference become implicit (indirect) members of the dataset. A dynamic reference can be added to a particular storage set in the dataset by specifying the data protection policy node associated with it. If necessary a new storage set is first created automatically before adding storage objects to it.<P> The types of storage objects allowed to be added vary: <UL> <LI> Storage systems, vFiler units, aggregates, OSSV hosts, virtualization objects can be attached to a primary node. </LI> <LI> Storage systems, vFiler units and aggregates are allowed in storage sets attached to secondary/destination nodes. </LI> </UL> It is legal to add storage objects to multiple storage sets in a single call.

=end html



B<Inputs>

=over 2

=item * I<dataset-dynamic-reference-parameters>  =>   B<L<"dataset-dynamic-reference-parameter">[]>

=begin html

<br>List of dynamic-references to add to the dataset.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_add_resourcepool



=begin html

Add resource pool to a single storage set that is part of a dataset. The storage set is specified implicitly by the name of the policy node that maps to it.<P> Within the same edit session in which you call <b>dataset-add-resourcepool</b>, you may also add or remove members or dynamic references, or change the dataset's name, description, <b>is-dp-ignored</b>, <b>is-dp-suspended</b>, or <b>is-suspended</b>. You may not change the data set's protection policy or storage sets within the same edit session. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given identifier. <LI> EACCESSDENIED - User does not have permission to modify the storage set or does not have DFM.ResourcePool.Provision on the specified resource pool. <LI> EOBJECTAMBIGUOUS - The name given for the storage set or resource pool matches multiple storage sets or resource pools. <LI> EOBJECTNOTFOUND - No storage set or resource pool was found that has the given name or identifier. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> ESTORAGESETNOTINDATASET - The specified storage set is not a part of the dataset being edited. <LI> EDPPOLICYNODENOTFOUND - No DP policy node was found that has the given name. <LI> EEDITSESSIONCONFLICTINGOP - The requested modification conflicts with other changes performed during the edit session. <LI> EDSCONFLICTALREADYINDATASET - Object, its ancestor or descendent is already in dataset. <LI> EDSCONFLICTSRCDESTINSAMEAGGR - Source data and destination data are in the same aggregate. <LI> EDSCONFLICTALREADYINRESPOOL - Object, its ancestor or descendent is already in resource pool. </UL>

=end html



B<Inputs>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the node in the data protection policy that maps to the storage set. <b>dp-node-name</b> must match exactly the name of one of the nodes in the data protection policy that is currently assigned to the data set.<P> If <b>dp-node-name</b> is not specified, then the storage set associated with the root node is modified.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset that was obtained by an earlier call to <b>dataset-edit-begin</b>. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object identifier of a resource pool to add to the storage set.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_add_to_exclusion_list



=begin html

Add datastore objects to a dataset's exclusion list.<P> This API is for adding datastore objects to a dataset's exclusion list.<BR><BR> Users may want to exclude a datastore when adding a virtual machine to the dataset. Virtual Machine may be on multiple datastores and one of the datastores will contain swap files which don't need to be backed up. If a datastore is excluded, relationships and backups for that datastore will not be created. If a relationship already exists, it will be left alone and only the backups will stop. There is no impact on suspend/resume.

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<is-excluded-member-ok>  =>   B<boolean, optional>

=begin html

<br>If specified, the call will not return an error if one or more objects being added is already on the exclusion list. By default, is-excluded-member-ok is false.

=end html

=back



=over 2

=item * I<objects-to-be-added>  =>   B<obj-name-or-id[]>

=begin html

<br>List of datastore object names or IDs to be added to the exclusion list.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_begin_failover



=begin html

Begin failover of a dataset. <P>This API begins the process of failing over a dataset to its disaster recovery storage. The failover process will break any mirror relationships between the primary and DR storage objects and make the secondary storage available for use. <P>This API may only be invoked if the DR state of the data set is "ready". <P>Specifically, when the ZAPI runs, the following actions will take place: <ol> <li>The DR state of the dataset will immediately change to "failing_over". <li>Any pending conformance tasks will be cancelled. <li>Any jobs running against this dataset will be aborted. <li>A failover job will be started to break any mirrors between the primary storage set and the DR storage set <li>Finally, the DR state of the dataset will be updated to either "failed_over" or "failover_error" based on whether the failover job succeeded or not. </ol>

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of dataset.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of the failover job that is failing the dataset over to its DR secondary. If there was an error, the job id will be 0. Range: [1..2^31-1]

=end html

=back



=head2 dataset_begin_failover_script_test



=begin html

Begin test failover of a dataset that only runs the the failover scripts and does not dequeue tasks, abort jobs or change the dr-state.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of dataset.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of the failover job that is just running the DR scripts for the dataset. If there was an error, the job id will be 0. Range: [1..2^31-1]

=end html

=back



=head2 dataset_change_dr_state



=begin html

Change the disaster recovery state of a dataset. <P>This API sets the DR state of a dataset to a new value. Users may perform the following DR state transitions using this ZAPI: <ul> <li> From "failover_error" to "failed_over". <li> From "failover_error" to "ready". <li> From "failed_over" to "ready". </ul> <P>If the "allow-internal-transitions" element is present and true, the caller may make additional state transitions: <ul> <li> From "ready" to "failing_over" <li> From "failing_over" to "failed_over" <li> From "failing_over" to "failover_error" </ul> These state transitions are intended to be used by Protection Manager server processes as part of a failover or failback sequence. Any attempt to perform other state transition will fail with an error code of EDATASETWRONGDRSTATE. <P>The DR state of a dataset will also change in one special case: <ul> <li>The dataset is in a "failed_over" DR state <li>The caller changes the data protection policy <li>The caller maps the storage set for the DR node of the old policy to the root node of the new policy (using dataset-set-storageset) </ul> When the edit session with these modifications is committed, the DR state will be set back to "ready".

=end html



B<Inputs>

=over 2

=item * I<allow-internal-transitions>  =>   B<boolean, optional>

=begin html

<br>If present and true, allow server-only state transitions (e.g. from "failing_over" to "failed_over"). If not present or false, only allow user-initiated state transitions.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of dataset.

=end html

=back



=over 2

=item * I<dr-state>  =>   B<dr-state>

=begin html

<br>Desired DR state of dataset.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_compute_usage_metric



=begin html

This API computes space and/or IO usage metrics for a dataset. dataset-space-metric-list-info-iter-* set of APIs can be used to retrieve the computed space metrics and dataset-io-metric-list-info-iter-* set of APIs can be used to retrieve the computed IO metrics.

=end html



B<Inputs>

=over 2

=item * I<compute-io-usage-metric>  =>   B<boolean, optional>

=begin html

<br>If true, IO usage metric for the dataset will be computed. If not specified in input, it defaults to false.

=end html

=back



=over 2

=item * I<compute-space-usage-metric>  =>   B<boolean, optional>

=begin html

<br>If true, space usage metric for the dataset will be computed. If not specified in input, it defaults to false.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of a dataset for which the usage metric has to be computed.

=end html

=back



=over 2

=item * I<timestamp>  =>   B<dp-timestamp>

=begin html

<br>Time upto which usage metrics for the dataset needs to be computed. The timestamp value should not be in future. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_conform_begin



=begin html

Begin a conformance run on a dataset, to attempt to bring it into conformance with its data protection policy and provisioning policy. A conformance run consists of two main steps: <UL> <LI> Perform a <b>conformance check</b> to determine both the dataset's current conformance status, and the set of actions needed to bring the dataset into conformance. <LI> Perform the <b>conformance actions</b> needed to bring the dataset into conformance. </UL> In addition, the dataset's conformance status is updated at various points during the conformance run. Whenever the conformance status is updated, an event of type "dataset.conformance" is generated. <P> Successful completion of this ZAPI indicates that: the conformance check has completed successfully, the dataset's conformance status has been updated based on the results of the conformance check, and the system has begun to take any needed conformance actions. <P> After the ZAPI returns, the system continues to perform conformance actions in the background, until all actions complete. Once all actions have completed, the dataset's conformance status is again updated. Note that at present, there is no ZAPI interface for determining when all actions have completed. <P> If no policy has been assigned to the dataset, the conformance run completes immediately and performs no conformance actions. <HR> Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to access the dataset. <LI> EOBJECTNOTFOUND - No dataset was found that has the given name or ID. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<assume-confirmation>  =>   B<boolean, optional>

=begin html

<br>Value determining whether confirmation is given for all resolvable conformance actions that require user confirmation. One key and sometimes undesirable resolvable conformance action is the possible re-baseline of one or more relationships. If the value is true, all conformance actions which require user confirmation will be executed as if confirmation is already granted. If the value is false, all conformance actions which require user confirmation will not be executed. Default value is false.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object ID for the dataset.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_create



=begin html

Create a new, empty dataset.

=end html



B<Inputs>

=over 2

=item * I<application-info>  =>   B<L<"application-info">, optional>

=begin html

<br>If is-application-data is true, then this element will contain information about the application which manages this dataset.

=end html

=back



=over 2

=item * I<application-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the application policy to associate with this dataset.<BR> An application policy can only be attached to an empty dataset or a dataset containing only virtualization objects.<BR> Once an application policy is attached to a dataset, user can no longer assign volumes or qtrees to the root node of that dataset. <BR> Depending on the application policy type, 'vmware' or 'hyperv', only virtualization objects of that type can be added to the dataset. Vmware objects and Hyper-V objects can not be mixed in a single dataset.

=end html

=back



=over 2

=item * I<dataset-access-details>  =>   B<L<"dataset-access-details">, optional>

=begin html

<br>Data access details for a dataset that needs to be configured and provisioned in a way that it is capable of transparent migration. This enables all the storage in the primary node of the dataset to be migrated to a different physical resource without having to reconfigure the clients accessing this storage.<BR> This value will be ignored if application-policy-name-or-id is specified.

=end html

=back



=over 2

=item * I<dataset-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact for the dataset, such as the owner's e-mail address.

=end html

=back



=over 2

=item * I<dataset-description>  =>   B<string, optional>

=begin html

<br>Description of the new dataset, up to 255 characters long.

=end html

=back



=over 2

=item * I<dataset-metadata>  =>   B<L<"dfm-metadata-field">[], optional>

=begin html

<br>Opaque metadata for dataset. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of the new dataset. It cannot be all numeric. The allowed characters are a to z A to Z 0 to 9 ' ' (space) . (period) _ (underscore) - (hyphen) If any other characters are included, an error is returned.

=end html

=back



=over 2

=item * I<dataset-owner>  =>   B<string, optional>

=begin html

<br>Name of the owner of the dataset, up to 255 characters long.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Resource group to which the newly created dataset should be added to. User should have DFM.Dataset.Write capability on the specified group. Default value: Global group.

=end html

=back



=over 2

=item * I<is-application-data>  =>   B<boolean, optional>

=begin html

<br>If true, the dataset is an application dataset managed by an external application. The default value is false.

=end html

=back



=over 2

=item * I<is-dp-suspended>  =>   B<boolean, optional>

=begin html

<br>Flag indicating whether or not the dataset should be protected. This also indicates whether conformance checking of the dataset is to be done or not. Default is False. <P> Deprecated field. Retained for backward compatibility. This field is deprecated in favour of is-suspended, which suspends the dataset for all automated actions (data protection and conformance check of the dataset).

=end html

=back



=over 2

=item * I<is-suspended>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to suspend this dataset for all automated actions (data protection and conformance check of the dataset). Default is False. If present, this field takes precedence over is-dp-suspended.

=end html

=back



=over 2

=item * I<online-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates, that the dataset will be capable of non-disruptive migration. By default the migration will be disruptive. Default: false.

=end html

=back



=over 2

=item * I<primary-volume-name-format>  =>   B<primary-volume-name-format, optional>

=begin html

<br>Name format string for the primary volumes created by Provisioning Manager. This element is optional. If the value of this element is empty string "", then the global naming option will be used to create names for the primary volumes. Volume name can only be 60 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the volume name. Volume name can have ASCII alphabets, ASCII numbers and underscore '_'. Volume name cannot start with a number. All other characters will be converted to character 'x'. By default, the value of the option would be empty string.

=end html

=back



=over 2

=item * I<protection-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the protection policy to associate with this dataset. This legacy parameter is only used if protection-policy-name-or-id is not supplied. The dataprotection license is required for this input.

=end html

=back



=over 2

=item * I<protection-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the protection policy to associate with this dataset. This input is preferred over protection-policy-id and if supplied then do not supply protection-policy-id because protection-policy-id will be ignored. The dataprotection license is required for this input.

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the provisioning policy to be associated with the primary node of the dataset. The members of the primary node are provisioned based on this policy. Once the provisioning policy is associated with the dataset node, the storage in the node is periodically monitored for conformance with the policy.

=end html

=back



=over 2

=item * I<requires-non-disruptive-restore>  =>   B<requires-non-disruptive-restore, optional>

=begin html

<br>Specifies whether the dataset should be configured to enable non-disruptive restores from backup destinations.<BR> This value will be ignored if application-policy-name-or-id is specified. Non-disruptive-restore is not supported for datasets containing virtualization objects (virtual machines and datastores). <BR> Default value is false.

=end html

=back



=over 2

=item * I<secondary-qtree-name-format>  =>   B<secondary-qtree-name-format, optional>

=begin html

<br>Name format for the secondary qtrees created by Protection Manager. This element is optional. If the value of this element is empty string "", then the global naming option will be used to create names for qtrees Qtree name can only be 60 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the qtree name. Qtree name can have ASCII alphabets, ASCII numbers, hypen '-', dot '.' and underscore '_'. All other characters will be converted to character 'x'. By default, the value of the option would be empty string. This option does not apply to names of primary qtrees..

=end html

=back



=over 2

=item * I<secondary-volume-name-format>  =>   B<secondary-volume-name-format, optional>

=begin html

<br>Naming format string for the secondary volumes created by Protection Manager. This element is optional. If the value of this element is empty string "", then the global naming option will be used to create names for the secondary volumes. Volume name can only be 60 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the volume name. Volume name can have ASCII alphabets, ASCII numbers and underscore '_'. Volume name cannot start with a number. All other characters will be converted to character 'x'. By default, the value of the option would be empty string.

=end html

=back



=over 2

=item * I<snapshot-name-format>  =>   B<snapshot-name-format, optional>

=begin html

<br>Name format string for snapshots created by Protection Manager and Host Service's plug-ins. This element is optional. If the value of this element is empty string "", then the global naming option will be used to created names for snapshot. If %A is not specified as one of the substitution tokens in the format, plug-ins creating snapshots for application datasets will implicitly add %A at the end of the format string and the snapshot name will have application fields in them. Snapshot name length can only be 124 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the snapshots. Snapshot name can have ASCII alphabets, ASCII numbers, underscore '_', hyphen '-', plus sign '+' and a dot '.'. All other characters will be converted to character 'x'. By default, the value of the option is an empty string.

=end html

=back



=over 2

=item * I<timezone-name>  =>   B<string, optional>

=begin html

<br>Timezone to assign to the root node. If specified, the value must be a timezone-name returned by timezone-list-info-iter-next. If no timezone is assigned, then the default system timezone will be used.

=end html

=back



=over 2

=item * I<vfiler-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the vFiler unit to be attached to the primary node of the dataset. If a vFiler unit is attached, then all members provisioned into this node will be exported over this vFiler unit. If an application policy is assigned to this dataset, this parameter will be ignored.<BR> This value will be ignored if application-policy-name-or-id is specified.

=end html

=back



=over 2

=item * I<volume-qtree-name-prefix>  =>   B<string, optional>

=begin html

<br>Prefix for volume and qtree names, up to 60 characters long. The allowed characters are a to z A to Z 0 to 9 ' ' (space) . (period) _ (underscore) - (hyphen) If any other characters are included, an error is returned

=end html

=back



B<Outputs>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Identifier of the new dataset.

=end html

=back



=head2 dataset_destroy



=begin html

Destroy a dataset. The dataset must be empty unless the "force" option is used.

=end html



B<Inputs>

=over 2

=item * I<cancel-edit-sessions>  =>   B<boolean, optional>

=begin html

<br>Specifies if edit operations in progress on the dataset should be cancelled. <P> If true, any edit operations in progress on the dataset are rolled back before destroying the dataset. <P> If cancel-edit-sessions is false, dataset with pending edit operations cannot be destroyed. <P> Default is false.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset to destroy.

=end html

=back



=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>If true, allows destroying a dataset that has members or dynamic references. By default, only empty datasets can be destroyed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_dynamic_reference_list_info_iter_end



=begin html

Ends iteration of the dynamic references in the dataset.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-dynamic-reference-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_dynamic_reference_list_info_iter_next



=begin html

Get next records in the iteration started by dataset-dynamic-reference-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-dynamic-reference-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<dataset-dynamic-references>  =>   B<L<"dataset-dynamic-reference-info">[]>

=begin html

<br>List of the dynamic references in the dataset.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 dataset_dynamic_reference_list_info_iter_start



=begin html

Starts iteration to list the dynamic references in the dataset. Volumes are not considered dynamic references because they are members. (even though they can contain qtrees)

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of dataset whose dynamic references will be listed.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>List only the members in this policy node. If none is specified, then list members in all policy nodes. If both dp-node-name and storageset-name-or-id are specified, then the value of dp-node-name is ignored.

=end html

=back



=over 2

=item * I<dynamic-reference-type>  =>   B<string, optional>

=begin html

<br>Type of dynamic reference. Possible values are 'filer', 'vfiler', 'aggregate', 'ossv_host' or 'app_object'. If present, only dynamic references of the specified type are returned.

=end html

=back



=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, dynamic references which are marked as deleted in the database are also returned. Otherwise, deleted dynamic references are not returned.

=end html

=back



=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each member which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<storageset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>List only the members in this storage set. If none is specified, then list members in all storagesets mapped to this dataset's nodes. If both dp-node-name and storageset-name-or-id are specified, then the value of dp-node-name is ignored.

=end html

=back



=over 2

=item * I<suppress-status-refresh>  =>   B<boolean, optional>

=begin html

<br>If true, do not refresh the dynamic_reference status. If false or omitted, the status of all dynamic references will be refreshed before being returned.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items that have been saved for future retrieval with dataset-dynamic-reference-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dataset-dynamic-reference-list-info-iter-next.

=end html

=back



=head2 dataset_edit_begin



=begin html

Obtain an edit lock to start modifying a dataset. <P>Besides locking the dataset itself, all storage sets in the dataset are locked, as well as the data protection policy if one is assigned. <P>An edit lock must be obtained before invoking the following ZAPIs: <UL> <LI>dataset-add-member <LI>dataset-remove-member <LI>dataset-add-member-by-dynamic-reference <LI>dataset-remove-member-by-dynamic-reference <LI>dataset-set-storageset <LI>dataset-modify <LI>dataset-modify-node <LI>dataset-add-resourcepool <LI>dataset-remove-resourcepool <LI>dataset-provision-member <LI>dataset-resize-member <LI>dataset-member-delete-snapshots <LI>dataset-add-to-exclusion-list <LI>dataset-remove-from-exclusion-list </UL> Use dataset-edit-commit to commit the changes to the database. <P>Use dataset-edit-rollback to undo the changes made to the dataset. <P>After 24 hours, the lock can be taken by another client without the force option. This will cause any edits pending on the aborted session to be lost.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset to edit.

=end html

=back



=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>By default, force is false. If true, and an edit is already in progress on the specified dataset or an object the dataset is dependent on (such as a data protection policy), the previous edit session is rolled back and a new edit session is begun.

=end html

=back



B<Outputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the dataset. Range: [1..2^31-1]

=end html

=back



=head2 dataset_edit_commit



=begin html

Commit changes made to a dataset into the database.<P> The edit lock on the dataset will be released after the changes have been successfully committed.<P> Use the <b>dry-run</b> option to test the commit. It invokes the conformance checker to return a list of actions that would be taken should the changes be actually committed. The <b>dry-run</b> option also returns a list of high level alerts to notify the user of rebaseline operations or system level issues related to successful conformance. <P> If <b>dry-run</b> is false, then before the call returns, the system begins a <b>conformance run</b> on the dataset. (See <b>dataset-conform-begin</b> for a description of conformance runs.) If the system is to perform a <b>conformance run</b> on the dataset it will be done with the current dataset edit session value for assume-confirmation. The default value for assume-confirmation is initially true when the edit session begins, but may be altered by certain changes to the dataset made through the use of <b>dataset-modify</b>. The optional <b>assume-confirmation</b> option may be used to specify if user confirmation is to be assumed or not for this <b>dataset-edit-commit</b>. One key, and sometimes undesirable, resolvable action that requires user confirmation is the possible re-baseline of a relationship.

=end html



B<Inputs>

=over 2

=item * I<assume-confirmation>  =>   B<boolean, optional>

=begin html

<br>Value determining whether confirmation is given for all resolvable conformance actions that require user confirmation. If the value is true, all conformance actions which require user confirmation will be executed as if confirmation is already granted. If the value is false, all conformance actions which require user confirmation will not be executed. The default value is initially true when the edit session begins, but may be altered by certain changes to the dataset made through the use of <b>dataset-modify</b>. One key, and sometimes undesirable, resolvable action that requires user confirmation is the possible re-baseline of a relationship.

=end html

=back



=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return the dry-run-results list as well as the conformance-alerts list. The dry-run-results list contains actions that would be taken should the changes be committed without actually committing the changes. The conformance-alerts list contains high level alerts to notify a user of conditions that will impact any attempt to commit the changes. A conformance alert may warn that if the changes are committed, one or more rebaseline operations may be done. The conformance alerts may also warn of conditions that exist that may prevent the succesful conformance of datasets. The edit lock is not released after a dry run. By default, dry-run is false.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the dataset. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<include-dry-run-reason-details>  =>   B<boolean, optional>

=begin html

<br>If true or omitted, then include any possible <b>dry-run-reason-details</b> along with the associated <b>dry-run-result</b> element. Default value is true. If false, the <b>dry-run-reason-details</b> will not be returned.

=end html

=back



B<Outputs>

=over 2

=item * I<conformance-alerts>  =>   B<L<"conformance-alert">[], optional>

=begin html

<br>Alerts that apply to the conformance check. Each alert describes one type of condition that a user should be aware of before attempting to conform any more datasets. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<is-provisioning-failure>  =>   B<boolean, optional>

=begin html

<br>This element is returned only if dry-run is true and only when there was a provisioning request issued in the edit session. If the dry run shows errors for the provisioning request its value is TRUE, else FALSE. This element can be used by clients to distinguish the case where provisioning job will succeed, but the dry run contains dataset conformance related errors.

=end html

=back



=over 2

=item * I<job-ids>  =>   B<L<"job-info">[], optional>

=begin html

<br>Job identifiers of provisioning requests or dataset reexport jobs. This output element is present only if <ul> <li>1. There were any provisioning requests issued in the edit session. <li>2. The dataset is reexported due to change in provisioning policy. </ul> This is returned only if dry-run is false.

=end html

=back



=head2 dataset_edit_rollback



=begin html

Roll back changes made to a dataset. The edit lock on the dataset will be released after the rollback.

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the dataset. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_exclusion_list_info_iter_end



=begin html

Ends iteration of dataset exclusion list.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-exclusion-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_exclusion_list_info_iter_next



=begin html

Get next records in the iteration started by dataset-exclusion-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-exclusion-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<exclusion-list>  =>   B<L<"excluded-object-info">[]>

=begin html

<br>List of the objects in the dataset to exclude from being backed up.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 dataset_exclusion_list_info_iter_start



=begin html

Starts iteration to retrieve the backup exclusion list of the dataset.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset whose members will be listed.

=end html

=back



=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, members which are marked as deleted in the database are also returned. Otherwise, deleted members are not returned.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id in the DFM database, of a specific member of the dataset's exclusion list. If specified, details of only this object will be returned.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retieval with dataset-exclusion-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dataset-exclusion-list-info-iter-next.

=end html

=back



=head2 dataset_io_metric_list_info_iter_end



=begin html

Ends iteration to list dataset I/O usage metric.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-io-metric-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_io_metric_list_info_iter_next



=begin html

Get next few records in the iteration started by dataset-io-metric-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-io-metric-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<dataset-io-metrics>  =>   B<L<"dataset-io-metric-info">[]>

=begin html

<br>List of I/O usage measurement information of datasets.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1]

=end html

=back



=head2 dataset_io_metric_list_info_iter_start



=begin html

Starts iteration to list dataset's I/O usage measurements.

=end html



B<Inputs>

=over 2

=item * I<day>  =>   B<integer, optional>

=begin html

<br>The day for which the usage metric is required. The month element is required along with this input. When present, the usage metrics for the day is returned. Range: [1..31]

=end html

=back



=over 2

=item * I<month>  =>   B<month, optional>

=begin html

<br>The month for which the usage metric is required. If month is not specified, it defaults to the current month. If month element is provided without the day element in input, then the usage metrics available for the month is returned. If month and year element is not provided in input, then the usage measurements for the current month is returned. The start of the current month is determined by the <b>chargebackDayOfMonth</b> global option. Range: [1..12]

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of a dataset or resource group or storage service. If a resource group is given, usage measurement of the datasets which are direct members of the group are returned. If a storage service is given, usage measurement of datasets associated with the storage service is returned. If input is not given, usage measurement of all the datasets is returned.

=end html

=back



=over 2

=item * I<year>  =>   B<integer, optional>

=begin html

<br>The year for which the usage metric is required. If year element is not provided in input, then the current year is selected. Range: [1900..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retrieval with dataset-io-metric-list-info-iter-next. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dataset-io-metric-list-info-iter-next.

=end html

=back



=head2 dataset_list_info_iter_end



=begin html

Ends iteration to list datasets.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_list_info_iter_next



=begin html

Get next few records in the iteration started by dataset-list-info-iter-start. <p> If a dataset has a data protection policy assigned to it, the has-protection-policy field will be true. If the client has suspended the dataset, has-protection-policy is still true, but is-dp-suspended and is-suspended fields are also set to true to reflect this. When the client sets is-dp-ignored to true, nothing changes, except that, when the client requests the list of datasets which are not ignored, the ignored datasets will not be returned.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<datasets>  =>   B<L<"dataset-info">[]>

=begin html

<br>List of datasets.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 dataset_list_info_iter_start



=begin html

Starts iteration to list datasets.

=end html



B<Inputs>

=over 2

=item * I<application-name>  =>   B<string, optional>

=begin html

<br>Return only application datasets managed by a particular type of application. Up to 255 characters long.

=end html

=back



=over 2

=item * I<application-resource-namespace>  =>   B<application-resource-namespace, optional>

=begin html

<br>Namespace of the application resources in the dataset. If specified, then only datasets containing application resources, which belong to this namespace, are returned. Ignored, if include-can-contain-application-resources-only is false. If not specified, when include-can-contain-application-resources-only is true, then all datasets which can contain application resources, are returned.

=end html

=back



=over 2

=item * I<application-server-name>  =>   B<string, optional>

=begin html

<br>Return only application datasets managed by an application running on a particular server. Up to 255 characters long.

=end html

=back



=over 2

=item * I<dr-state>  =>   B<dr-state, optional>

=begin html

<br>Filter by dr-state value. If no dr-state input is supplied, all datasets will be listed.

=end html

=back



=over 2

=item * I<has-application-policy>  =>   B<boolean, optional>

=begin html

<br>If true, only list datasets which have an application policy assigned to them. If false, only list datasets which do not have any application policy assigned. If not set, list all datasets.

=end html

=back



=over 2

=item * I<has-protection>  =>   B<boolean, optional>

=begin html

<br>If true, only list datasets which have a data protection policy and at least 1 relationship associated with them or the policy has only 1 node. If false, only list datasets which do not have any associated policy or datasets which have policy with more than 1 node but do not have any associated relationship. If not set, list all datasets.

=end html

=back



=over 2

=item * I<has-protection-policy>  =>   B<boolean, optional>

=begin html

<br>If true, only list datasets which have a data protection policy assigned to them. If false, only list datasets which do not have any data protection policy assigned. If not set, list all datasets.

=end html

=back



=over 2

=item * I<include-can-contain-application-resources-only>  =>   B<boolean, optional>

=begin html

<br>If true, restricts returned datasets to only those to which application resources can be added. If false or not specified, this restriction is not applied. Default is false.

=end html

=back



=over 2

=item * I<include-can-contain-storage-resources-only>  =>   B<boolean, optional>

=begin html

<br>If true, restricts returned datasets to only those to which storage resources can be added. If false or not specified, this restriction is not applied. Default is false.

=end html

=back



=over 2

=item * I<include-conformance-check-results>  =>   B<boolean, optional>

=begin html

<br>If true, return the detailed conformance check results. If false or omitted, the conformance check results, which are expensive to retrieve, will not be returned.

=end html

=back



=over 2

=item * I<include-conformance-run-reason-details>  =>   B<boolean, optional>

=begin html

<br>If true or omitted and <b>include-conformance-check-results</b> is also true, then include any possible <b>conformance-run-reason-details</b> along with the associated <b>conformance-run-result</b> element. Default value is true. If false, the <b>conformance-run-reason-details</b>, will not be returned.

=end html

=back



=over 2

=item * I<include-export-settings>  =>   B<boolean, optional>

=begin html

<br>If true, the export settings for the dataset nodes will be present in the output of dataset-list-info-iter-next. Default value is false.

=end html

=back



=over 2

=item * I<include-metadata>  =>   B<boolean, optional>

=begin html

<br>If true, returns dataset's metadata. If false, metadata, which can be large in size, is not returned. Default is false.

=end html

=back



=over 2

=item * I<include-migration-info>  =>   B<boolean, optional>

=begin html

<br>If true, the migration information for the dataset is returned in dataset-list-info-iter-next. Default is false.

=end html

=back



=over 2

=item * I<include-protection-status-problems>  =>   B<boolean, optional>

=begin html

<br>If true, return the detailed protection-status-problems if the dataset does not have protection status as "protected". Setting include-protection-status-problems to true will generate an error unless only one dataset is specified from the other input parameters. If false or omitted, protection-status-problems, which can be expensive to retrieve, will not be returned.

=end html

=back



=over 2

=item * I<is-application-data>  =>   B<boolean, optional>

=begin html

<br>If true, return only datasets managed by an application. If false, return only datasets which are not managed by an application. By default, return all datasets.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>If true, only list datasets that have been set to be ignored for purposes of data protection. If false, only list datasets that have been not set to be ignored for purposes of data protection. If not specified, list all datasets without taking into account whether they have been ignored or not.

=end html

=back



=over 2

=item * I<is-dr-capable>  =>   B<boolean, optional>

=begin html

<br>If true, return only datasets with dp policies that are disaster recovery capable. If false, return only datasets with policies that are not disaster recovery capable. By default, return all datasets.

=end html

=back



=over 2

=item * I<is-protected>  =>   B<boolean, optional>

=begin html

<br>If true, only list datasets which have a data protection policy assigned to them. If false, only list datasets which do not have any data protection policy assigned. If not set, list all datasets. <P> Deprecated field. Retained for backward compatibility. This field is deprecated and to be replaced by has-protection-policy.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of a dataset or resource group or provisioning policy or storage service. If a resource group is given, only the datasets which are direct members of the group are returned. If a provisioning policy is given, only those datasets where one or more of its nodes is associated with the provisioning policy are returned. If storage service is given, only those datasets which are associated with the storage service are are returned.

=end html

=back



=over 2

=item * I<requires-non-disruptive-restore>  =>   B<requires-non-disruptive-restore, optional>

=begin html

<br>If true, return only datasets requiring non-disruptive restore. If false, return only datasets which do not require non-disruptive restore. By default, return all datasets.

=end html

=back



=over 2

=item * I<suppress-status-refresh>  =>   B<boolean, optional>

=begin html

<br>If true, do not refresh the dataset status. If false or omitted, the status of all queried datasets will be re-calculated before being returned.

=end html

=back



=over 2

=item * I<volume-qtree-name-prefix>  =>   B<string, optional>

=begin html

<br>Return only datasets with a particular type of custom name prefix. Up to 60 characters long.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retrieval with dataset-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dataset-list-info-iter-next.

=end html

=back



=head2 dataset_member_dedupe_abort



=begin html

Abort in-progress dedupe operation on the given volume member of the dataset.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of dataset.

=end html

=back



=over 2

=item * I<volume-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of a volume member of the dataset.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Id of the job that handles the deduplication operation. This is returned only if there is an on-demand deduplication job running and will not be present if the deduplication operation was triggered by the storage system. <BR> Range: [1..2^31-1]

=end html

=back



=head2 dataset_member_dedupe_start



=begin html

Start deduplication operation on specified volume member of the given dataset.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or Identifier of the dataset.

=end html

=back



=over 2

=item * I<dedupe-member-request-info>  =>   B<L<"dedupe-member-request-info">>

=begin html

<br>Details on member to be deduplicated.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Id of the job that handles the deduplication operation. <BR> Range: [1..2^31-1]

=end html

=back



=head2 dataset_member_delete_snapshots



=begin html

Delete Snapshot copies of a volume which is a member of the effective primary node of the dataset. <P>The effective primary node for a non disaster recovery capable dataset or a disaster recovery capable dataset not in the DR state of "failed_over" is the root node of the dataset. The effective primary of a disaster recovery dataset in the DR state of "failed_over" is the disaster recovery capable node of the dataset. <P>The deletion of Snapshot copies happens in the background. <P>A provisioning job id is returned in dataset-edit-commit zapi that represents the job which will delete the specified Snapshot copies. The status of the job can be checked using dp-job-list-iter ZAPIs with the given job-id. Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to delete Snapshot copies of the member. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EOBJECTNOTFOUND - No volume by the given name or identifier was found. <LI> ENOTINDATASET - Member is not in the primary node of the specified dataset. <LI> EOBJECTAMBIGUOUS - The specified member name could refer to two or more objects. Try again with the object identifier or object full name. <LI> EINVALIDINPUT - No Snapshot copies are specified for deletion or both volume-id and volume-name are not given in input or at least one of the Snapshot copies specified for deletion is marked busy. <LI> ESNAPSHOTNOTFOUND - At least one of the Snapshot copy specified is not found on the volume. <LI> EEDITSESSIONNOTFOUND - If the edit session specified in input is not found <LI> EEDITSESSIONOBJECTALREADYLOCKED - If the object being tried to lock in this operation is already locked by some other edit session <LI> EEDITSESSIONCONFLICTINGOP - If this snapshot deletion operation is conflicting with some other edit operation in the same edit session <LI> EDATASETNOTINSTABLEDRSTATE - The dataset is not in a stable disaster recovery state. </UL>

=end html



B<Inputs>

=over 2

=item * I<delete-snapshots-request-info>  =>   B<L<"delete-snapshots-request-info">>

=begin html

<br>Details on the volume and Snapshot copies to be deleted.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_member_list_info_iter_end



=begin html

Ends iteration of dataset members.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-member-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_member_list_info_iter_next



=begin html

Get next records in the iteration started by dataset-member-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-member-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<dataset-members>  =>   B<L<"dataset-member-info">[]>

=begin html

<br>List of the members of the dataset.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 dataset_member_list_info_iter_start



=begin html

Starts iteration to list members of the dataset. Dynamic references are not returned by this API, nor are objects only associated with the dataset by their inclusion in a dynamic reference.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset whose members will be listed.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>List only the members in this policy node. If none is specified, then list members in all policy nodes. If both dp-node-name and storageset-name-or-id are specified, then the value of dp-node-name is ignored.

=end html

=back



=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, members which are marked as deleted in the database are also returned. Otherwise, deleted members are not returned.

=end html

=back



=over 2

=item * I<include-exports-info>  =>   B<boolean, optional>

=begin html

<br>If true, the export information of members is included in output. If the member is exported over NFS, the NFS export name is retuned in nfs-export-name element in dataset-member-info. If the member is exported over CIFS, the share names are returned in cifs-share-names array in dataset-member-info. In case the members are accessed using both NFS and CIFS (i.e Mixed mode) then both NFS export name and CIFS share names are returned. Default value is false.

=end html

=back



=over 2

=item * I<include-indirect>  =>   B<boolean, optional>

=begin html

<br>If true, indirect members are included. By default they are not included. An example of an indirect member is a qtree in a volume which is a direct member of the dataset.

=end html

=back



=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each member which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<include-space-info>  =>   B<boolean, optional>

=begin html

<br>If true, the space status is computed for all members, the space status and detailed space conditions of every data set member is returned if the space status of the member is "warning" or "error". Default value is false.

=end html

=back



=over 2

=item * I<member-id>  =>   B<obj-id, optional>

=begin html

<br>Id, in the DFM database, of a specific member of the dataset. If specified, details of only this object will be returned.

=end html

=back



=over 2

=item * I<member-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id in the DFM database, of a specific member of the dataset. If specified, details of only this object will be returned. If both member-id and member-name-or-id is specified, then member-id will take precedence over member-name-or-id.

=end html

=back



=over 2

=item * I<member-type>  =>   B<string, optional>

=begin html

<br>Type of the member. Possible values for direct members are: "volume", "qtree" or "ossv_directory". When include-exports-info is true in dataset-member-list-info-iter-start, this can also be "lun_path". If present, only members of the specified type are returned.

=end html

=back



=over 2

=item * I<storageset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>List only the members in this storage set. If none is specified, then list members in all storagesets mapped to this dataset's nodes. If both dp-node-name and storageset-name-or-id are specified, then the value of dp-node-name is ignored.

=end html

=back



=over 2

=item * I<suppress-status-refresh>  =>   B<boolean, optional>

=begin html

<br>If true, do not refresh the member status. If false or omitted, the status of all members will be refreshed before being returned.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retieval with dataset-member-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dataset-member-list-info-iter-next.

=end html

=back



=head2 dataset_member_undedupe_start



=begin html

Start undeduplication operation on specified volume member of the given dataset.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or Identifier of the dataset.

=end html

=back



=over 2

=item * I<undedupe-member-request-info>  =>   B<L<"undedupe-member-request-info">>

=begin html

<br>Details on member to be undeduplicated.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Id of the job that handles the undeduplication operation. <BR> Range: [1..2^31-1]

=end html

=back



=head2 dataset_missing_member_list_info_iter_end



=begin html

Ends iteration of missing dataset members.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-missing-member-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_missing_member_list_info_iter_next



=begin html

Get next records in the iteration started by dataset-member-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-member-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<missing-members>  =>   B<L<"missing-member-info">[]>

=begin html

<br>List of the missing members of the dataset.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 dataset_missing_member_list_info_iter_start



=begin html

Starts iteration to list members of the dataset that have gone missing. The way the server determines if an object was not intentionally removed from the dataset is: <ol> <li>The object is still a dataset member. <li>The object's objDeleted flag is set. </ol>

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset whose members will be listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retieval with dataset-member-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dataset-member-list-info-iter-next.

=end html

=back



=head2 dataset_modify



=begin html

Modify attributes for a dataset.

=end html



B<Inputs>

=over 2

=item * I<application-info>  =>   B<L<"application-info">, optional>

=begin html

<br>This input is used only if is-application-data is true. It contains information about the application which manages this dataset.

=end html

=back



=over 2

=item * I<application-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the application policy to associate with this dataset.<BR> An application policy can only be attached to an empty dataset or a dataset containing only virtualization objects.<BR> Once an application policy is attached to a dataset, user can no longer assign volumes or qtrees to the root node of that dataset. <BR> Depending on the application policy type, 'vmware' or 'hyperv', only virtualization objects of that type can be added to the dataset. Vmware objects and Hyper-V objects can not be mixed in a single dataset.

=end html

=back



=over 2

=item * I<check-protection-policy-on-commit>  =>   B<boolean, optional>

=begin html

<br>In the default case for a protection policy change, we immediately check the dataset's membership configuration. However, in the case where we are changing the policy and the storage set assignments in the same edit session, the caller can set this flag to true to request that the server postpone the check of the protection policy configuration and root node membership until the call to edit-commit. Default value is false.

=end html

=back



=over 2

=item * I<dataset-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact for the dataset, such as the owner's e-mail address.

=end html

=back



=over 2

=item * I<dataset-description>  =>   B<string, optional>

=begin html

<br>Description of the dataset, up to 255 character long.

=end html

=back



=over 2

=item * I<dataset-metadata>  =>   B<L<"dfm-metadata-field">[], optional>

=begin html

<br>Opaque metadata for dataset. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the dataset. It cannot be all numeric. The allowed characters are a to z A to Z 0 to 9 ' ' (space) . (period) _ (underscore) - (hyphen) If any other characters are included, an error is returned.

=end html

=back



=over 2

=item * I<dataset-owner>  =>   B<string, optional>

=begin html

<br>Name of the owner of the dataset, up to 255 characters long.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<is-application-data>  =>   B<boolean, optional>

=begin html

<br>If true, the dataset is an application dataset managed by an external application. Conversion of a non-application dataset to an application dataset is not allowed. The default value is false.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to ignore this dataset for purposes of data protection. Data sets with this attribute set to true are not returned when the client requests datasets which are not ignored. This attribute has no other significance to the system.

=end html

=back



=over 2

=item * I<is-dp-suspended>  =>   B<boolean, optional>

=begin html

<br>Flag indicating whether or not the dataset should be protected. This also indicates whether conformance checking of the dataset is to be done or not. Default is False. <P> Should is-dp-suspended go from TRUE to FALSE the edit session assume-confirmation default setting will be be set to FALSE for this dataset. (See <b>dataset-edit-commit</b> for details) <P> Deprecated field. Retained for backward compatibility. This field is deprecated in favour of is-suspended, which suspends the dataset for all automated actions (data protection and conformance check of the dataset).

=end html

=back



=over 2

=item * I<is-suspended>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to suspend this dataset for all automated actions (data protection and conformance check of the dataset). Default is False. If present, this field takes precedence over is-dp-suspended. <P> Should is-suspended go from TRUE to FALSE the edit session assume-confirmation default setting will be be set to FALSE for this dataset. (See <b>dataset-edit-commit</b> for details)

=end html

=back



=over 2

=item * I<primary-volume-name-format>  =>   B<primary-volume-name-format, optional>

=begin html

<br>Name format string for the primary volumes created by Provisioning Manager. This element is optional. If the value of this element is empty string "", then the global naming option will be used to create names for the primary volumes. Volume name can only be 60 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the volume name. Volume name can have ASCII alphabets, ASCII numbers and underscore '_'. Volume name cannot start with a number. All other characters will be converted to character 'x'. By default, the value of the option would be empty string.

=end html

=back



=over 2

=item * I<protection-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the protection policy to associate with this dataset. This legacy parameter is only used if protection-policy-name-or-id is not supplied. The dataprotection license is required for this input.

=end html

=back



=over 2

=item * I<protection-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the protection policy to associate with this dataset. This input is preferred over protection-policy-id and if supplied then do not supply protection-policy-id because protection-policy-id will be ignored. The dataprotection license is required for this input.

=end html

=back



=over 2

=item * I<requires-non-disruptive-restore>  =>   B<requires-non-disruptive-restore, optional>

=begin html

<br>Specifies whether the dataset requires a non-disruptive restore of LUNs so that the host need not get detached from the LUN.<BR> This value will be ignored if application-policy-name-or-id is specified. Non-disruptive-restore is not supported for datasets containing virtualization objects.<BR> Default value is false.

=end html

=back



=over 2

=item * I<secondary-qtree-name-format>  =>   B<secondary-qtree-name-format, optional>

=begin html

<br>Name format for the secondary qtrees created by Protection Manager. This element is optional. If the value of this element is empty string "", then the global naming option will be used to create names for qtree Qtree name can only be 60 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the qtree name. Qtree name can have ASCII alphabets, ASCII numbers, hypen '-', dot '.' and underscore '_'. All other characters will be converted to character 'x'. By default, the value of the option would be empty string. This option does not apply to names of primary qtrees.

=end html

=back



=over 2

=item * I<secondary-volume-name-format>  =>   B<secondary-volume-name-format, optional>

=begin html

<br>Naming format string for the secondary volumes created by Protection Manager. This element is optional. If the value of this element is empty string "", then the global naming option will be used to create names for the secondary volumes. Volume name can only be 60 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the volume name. Volume name can have ASCII alphabets, ASCII numbers and underscore '_'. Volume name cannot start with a number. All other characters will be converted to character 'x'. By default, the value of the option would be empty string.

=end html

=back



=over 2

=item * I<snapshot-name-format>  =>   B<snapshot-name-format, optional>

=begin html

<br>Name format string for snapshots created by Protection Manager and Host Service's plug-ins. This element is optional. If the value of this element is empty string "", then the global naming option will be used to created names for snapshot. If %A is not specified as one of the substitution tokens in the format, plug-ins creating snapshots for application datasets will implicitly add %A at the end of the format string and the snapshot name will have application fields in them. Snapshot name length can only be 124 characters long. Name would be truncated if it exceeds that limit. For name collisions, numeric suffix would be added at the end of the snapshots. Snapshot name can have ASCII alphabets, ASCII numbers, underscore '_', hyphen '-', plus sign '+' and a dot '.'. All other characters will be converted to character 'x'. By default, the value of the option is an empty string.

=end html

=back



=over 2

=item * I<volume-qtree-name-prefix>  =>   B<string, optional>

=begin html

<br>Prefix for volume and qtree names, up to 60 character long. The allowed characters are a to z A to Z 0 to 9 ' ' (space) . (period) _ (underscore) - (hyphen) If any other characters are included, an error is returned.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_modify_node



=begin html

Modify attributes of a single storage set that is part of a dataset. The storage set is specified implicitly by the name of the data protection policy node that maps to it. You may change the storage set's resource pool and timezone using this call, but not its name or description.<P> Within the same edit session in which you call <b>dataset-modify-node</b>, you may also add or remove members or dynamic references, or change the dataset's name, description, <b>is-dp-ignored</b>, <b>is-dp-suspended</b>, or <b>is-suspended</b>. You may not change the data set's policy or storage sets within the same edit session. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was foundthat has the given identifier. <LI> EACCESSDENIED - User does not have permission to modify the storage set. <LI> EOBJECTAMBIGUOUS - The name given for the storage set or resource pool matches multiple storage sets or resource pools. <LI> EOBJECTNOTFOUND - No storage set or resource pool was found that has the given name or identifier. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> ESTORAGESETNOTINDATASET - The specified storage set is not a part of the dataset being edited. <LI> EDPPOLICYNODENOTFOUND - No DP policy node was found that has the given name. <LI> EEDITSESSIONCONFLICTINGOP - The requested modification conflicts with other changes performed during the edit session. <LI> EINVALIDTIMEZONE - The given timezone name is not valid. <LI> EDSCONFLICTALREADYINDATASET - Object, its ancestor or descendent is already in dataset. <LI> EDSCONFLICTSRCDESTINSAMEAGGR - Source data and destination data are in the same aggregate. <LI> EDSCONFLICTALREADYINRESPOOL - Object, its ancestor or descendent is already in resource pool. <LI> EDSCONFLICTCANTMIRROROSSV - OSSV is not allowed in mirror source node. <LI> EDSCONFLICTCANTSNAPSHOTOSSV - Cannot apply snapshot schedule to OSSV. <LI> EDSCONFLICTINCOMPATIBLEPOLICY - Policy is not compatible with application dataset. <LI> EDSCONFLICTOSSVNOTALLOWED - OSSV is not allowed in the dataset. <LI> EDSCONFLICTNOSMLICENSE - There is no SnapMirror license installed. <LI> EDSCONFLICTNOSMSVLICENSE - There is no SnapMirror or SnapVault license installed. Need to have at least one of them installed. <LI> EDSCONFLICTROOTNODE - Operation cannot be performed on root node of dataset. <LI> EDSCONFLICTNOTROOTNODE - Operation cannot be performed on non-root node of dataset. <LI> EDSCONFLICTNOTLEAFNODE - Operation cannot be performed on non-leaf node of dataset. <LI> EDSCONFLICTINVALIDVFILER - Dataset node has members that do not belong to the vFiler being attached. <LI>EDSCONFLICTDEDUPLICATION - A deduplication schedule enabled provisioning policy cannot be associated with SnapVault destinations. </UL>

=end html



B<Inputs>

=over 2

=item * I<dataset-access-details>  =>   B<L<"dataset-access-details">, optional>

=begin html

<br>Data access details for a dataset that needs to be configured and provisioned in a way that it is capable of transparent migration. This enables all the storage in the primary node of the dataset to be migrated to a different physical resource without having to reconfigure the clients accessing this storage. This input is valid only when: - There are no members in the dataset. - There is no vFiler unit attached to the dataset. - The node being edited is the primary node of the dataset.

=end html

=back



=over 2

=item * I<dataset-export-info>  =>   B<L<"dataset-export-info">, optional>

=begin html

<br>Specifies the NAS or SAN export settings for members provisioned in this node of the dataset.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the node in the data protection policy that maps to the storage set. <b>dp-node-name</b> must match exactly the name of one of the nodes in the data protection policy that is currently assigned to the data set.<P> If <b>dp-node-name</b> is not specified, then the storage set associated with the root node is modified.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset that was obtained by an earlier call to <b>dataset-edit-begin</b>.

=end html

=back



=over 2

=item * I<online-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates, that this dataset is capable of non-disruptive migration. This field is valid only when either dataset-access-details or vfiler-id is not empty. By default the migration will be assumed to be disruptive. Default: false.

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or object identifier of the provisioning policy to be attached to the node. The implications of this are: <ul> <li> Members of the storage set associated with node are checked for conformance with the provisioning policy. <li> Any new members provisioned into the storage set will be based on this provisioning policy. </ul>

=end html

=back



=over 2

=item * I<relinquish-vfiler>  =>   B<boolean, optional>

=begin html

<br>If true, relinquish the vFiler unit associated with the dataset. This will destroy the vFiler unit, move all the storage owned by the vFiler unit to the hosting storage system and re-export the dataset over the storage system. This option can be specified only when: <ul> <li> The vFiler unit associated with the node of the dataset has been created by Provisioning Manager. In this case is-vfiler-created-for-migration will be true in dataset-info returned by dataset-list-info-iter APIs. <li>All storage of the vFiler unit belongs to the node of the dataset, except for the root storage. </ul> Default value is false.

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or object identifier of a resource pool to assign to the storage set. If other resource pool(s) are already assigned to the storage set, then this one will replace it. This will delete all the attached resource pools and add the new one. If the input value is the empty string "", then no resource pool will be assigned to the storage set i.e. all the attached resource pools will be removed. If this parameter is not supplied, then the storage set's resource pool assignment will not be changed. <P> This is a legacy parameter. dataset-add-resourcepool and dataset-remove-resourcepool are preferred APIs for adding and removing resource pools to/from dataset nodes.

=end html

=back



=over 2

=item * I<timezone-name>  =>   B<string, optional>

=begin html

<br>Timezone to assign to the storage set. The value must be either a <b>timezone-name</b> returned by <b>timezone-list-info-iter-next</b>, or the empty string "". If the value is "", no timezone is assigned to the storage set. Storage sets with no timezone assignment use the timezone of the resource pool assigned to them, or the system default if no timezone is assigned to the resource pool.

=end html

=back



=over 2

=item * I<vfiler-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or object identifier of the vFiler unit to be attached to the node. If there are any members currently in the node, they should belong to this vFiler unit. Any new member provisioned for this node, will be exported over this vFiler unit.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_provision_member



=begin html

Provision a new member into the effective primary node of a dataset. <P>The effective primary node for a non disaster recovery capable dataset or a disaster recovery capable dataset not in the DR state of "failed_over" is the dataset root node. The effective primary node of a disaster recovery dataset in the DR state of "failed_over" is the disaster recovery capable node of the dataset. <P>Error conditions: <ul> <LI> EINVALIDINPUT - If the inputs specified are not valid. <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given identifier. <LI> EACCESSDENIED - User does not have permission to provision a member. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EEDITSESSIONCONFLICTINGOP - The requested modification conflicts with other changes performed during the edit session. <LI> EDATASETNOTINSTABLEDRSTATE - The dataset is not in a stable disaster recovery state. </ul>

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset that was obtained by an earlier call to <b>dataset-edit-begin</b>. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<provision-member-request-info>  =>   B<L<"provision-member-request-info">>

=begin html

<br>Information of the provisioning request.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_remove_from_exclusion_list



=begin html

Remove datastore objects from a dataset's exclusion list.<P> This API is for removing datastore objects from a dataset's exclusion list.

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<objects-to-be-removed>  =>   B<obj-name-or-id[]>

=begin html

<br>List of datastore object names or IDs to be removed from the exclusion list.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_remove_member



=begin html

Remove member from a dataset. Only members explicitly added to the dataset (direct members) can be removed. <P> If "destroy" is true, even indirect members can be destroyed on the storage system and removed from the dataset. <P> If "destroy" is true, then it is applicable only on members of the effective primary node of the dataset. <P>The effective primary node for a non disaster recovery capable dataset or a disaster recovery capable dataset not in the DR state of "failed_over" is the dataset root node. The effective primary node of a disaster recovery dataset in the DR state of "failed_over" is the disaster recovery capable node of the dataset. <P>The destroy operation happens in the background. <P>A provisioning job id is returned in dataset-edit-commit api that represents the job which will resize the member as specified. The status of the job can be checked using dp-job-list-iter ZAPIs with the given job-id.

=end html



B<Inputs>

=over 2

=item * I<dataset-member-parameters>  =>   B<L<"dataset-member-parameter">[]>

=begin html

<br>List of members to remove from the dataset.

=end html

=back



=over 2

=item * I<destroy>  =>   B<boolean, optional>

=begin html

<br>Specifies whether the member should be destroyed on the filer. If not specified or false, the member will not be destroyed on the filer. "destroy" flag can be true, only when the members given in input are of type volume, qtree or lun. Also, when "destroy" is true, the volume, qtree or lun given can be indirect members of the dataset.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_remove_member_by_dynamic_reference



=begin html

Remove dynamic references from a dataset. Only dynamic_references explicitly added to the dataset can be removed.<P>

=end html



B<Inputs>

=over 2

=item * I<dataset-dynamic-reference-parameters>  =>   B<L<"dataset-dynamic-reference-parameter">[]>

=begin html

<br>List of dynamic-references to remove from the dataset.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_remove_resourcepool



=begin html

Remove resource pool from a single storage set that is part of a dataset. The storage set is specified implicitly by the name of the policy node that maps to it.<P> Within the same edit session in which you call <b>dataset-remove-resourcepool</b>, you may also add or remove members or dynamic references, or change the dataset's name, description, <b>is-dp-ignored</b>, <b>is-dp-suspended</b>, or <b>is-suspended</b>. You may not change the data set's protection policy or storage sets within the same edit session. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given identifier. <LI> EACCESSDENIED - User does not have permission to modify the storage set. <LI> EOBJECTAMBIGUOUS - The name given for the storage set or resource pool matches multiple storage sets or resource pools. <LI> EOBJECTNOTFOUND - No storage set or resource pool was found that has the given name or identifier. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> ESTORAGESETNOTINDATASET - The specified storage set is not a part of the dataset being edited. <LI> EDPPOLICYNODENOTFOUND - No DP policy node was found that has the given name. <LI> EEDITSESSIONCONFLICTINGOP - The requested modification conflicts with other changes performed during the edit session. <LI> EDSCONFLICTALREADYINDATASET - Object, its ancestor or descendent is already in dataset. <LI> EDSCONFLICTSRCDESTINSAMEAGGR - Source data and destination data are in the same aggregate. <LI> EDSCONFLICTALREADYINRESPOOL - Object, its ancestor or descendent is already in resource pool. </UL>

=end html



B<Inputs>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the node in the data protection policy that maps to the storage set. <b>dp-node-name</b> must match exactly the name of one of the nodes in the data protection policy that is currently assigned to the data set.<P> If <b>dp-node-name</b> is not specified, then the storage set associated with the root node is modified.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset that was obtained by an earlier call to <b>dataset-edit-begin</b>. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object identifier of a resource pool to remove from the storage set.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_replace_primary_members



=begin html

Replace primary members and relationships after a failover. <P>If a secondary volume or qtree is specified, it replaces the primary member for just that secondary volume or qtree. If neither are specified, it replaces all primary members that need to be replaced. <P>If dry-run is specified, it returns the results of the operation that would be taken should the operation be committed.

=end html



B<Inputs>

=over 2

=item * I<cancel-edit-sessions>  =>   B<boolean, optional>

=begin html

<br>If true, any edit operations in progress on the data set are rolled back before replacing any primary members. If it is false and there are edit operations in progress on the dataset, EEDITSESSIONINPROGRESS is returned and no primary members will be replaced. By default, cancel-edit-sessions is false. If dry-run is true, canel-edit-sessions is ignored.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset whose primary members need to be replaced.

=end html

=back



=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return a list of actions that would be taken should the operation be committed without actually committing them. Dry run does not affect any edit session in progress. By default, dry-run is false.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the secondary volume or qtree whose primary needs to be replaced. If object-name-or-id is not specified, it replaces all primary members in the dataset that need to be replaced.

=end html

=back



B<Outputs>

=over 2

=item * I<replace-results>  =>   B<L<"replace-result">[], optional>

=begin html

<br>Results of the replace operation. Each result describes one action that was taken. If dry-run is true, it describes one action that would be taken should the operation be committed.

=end html

=back



=head2 dataset_resize_member



=begin html

Resize, change maximum capacity and change snap reserve for a dataset member on the effective primary node of the dataset. <P>The effective primary node for a non disaster recovery capable dataset or a disaster recovery capable dataset not in the DR state of "failed_over" is the dataset root node. The effective primary of a disaster recovery data set in the DR state of "failed_over" is the disaster recovery capable node of the dataset. <P>The resize operation happens in the background. <P>A provisioning job id is returned in dataset-edit-commit zapi that represents the job which will resize the member as specified. The status of the job can be checked using dp-job-list-iter ZAPIs with the given job-id. Error conditions: <UL> <LI> EACCESSDENIED - User does not have the capability DFM.ResourcePool.Provision on the containing resource pool for a volume that is being resized. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EOBJECTNOTFOUND - No volume or qtree member by the given name or identifier was found. <LI> ENOTINDATASET - Member is not in the primary node of the specified dataset. <LI> EOBJECTAMBIGUOUS - The specified member name could refer to two or more objects. Try again with the object identifier or object full name. <LI> EINVALIDINPUT - Both member-id and member-name are not specified, inputs other than new-size are specified for a qtree member, size parameters are being changed for traditional volumes. <LI> EEDITSESSIONNOTFOUND - If the edit session specified in input is not found <LI> EEDITSESSIONOBJECTALREADYLOCKED - If the object being tried to lock in this operation is already locked by some other edit session <LI> EEDITSESSIONCONFLICTINGOP - If this resize operation is conflicting with some other edit operation in the same edit session <LI> EDATASETNOTINSTABLEDRSTATE - The dataset is not in a stable disaster recovery state. </UL>

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<resize-member-request-info>  =>   B<L<"resize-member-request-info">>

=begin html

<br>Details on member to be resized.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_set



=begin html

Set dataset options.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object identifier for the dataset whose options need to be set.

=end html

=back



=over 2

=item * I<is-allow-custom-settings>  =>   B<boolean, optional>

=begin html

<br>If true, conformance check of some volume options is disabled for the dataset. These volume options include, fractional-reserve, autodelete commitment and autodelete trigger attributes only. This option is applicable only for datasets which have san thin provisioning policy associated. For other datasets the option is ignored. default value is false.

=end html

=back



=over 2

=item * I<is-enable-write-guarantee-checks>  =>   B<boolean, optional>

=begin html

<br>If true, periodic write guarantee checks are enabled for the dataset. This option is applicable only for datasets which have SAN thin provisioning policy associated. Presence of lun-clones, flex-clones, SFSR operations in the volume may effect write guarantees in SAN thin provisioning configurations. Periodic write guarantee checks detect such condition and generate alerts. For other datasets the option is ignored. default value is true.

=end html

=back



=over 2

=item * I<is-none-guaranteed-provision>  =>   B<boolean, optional>

=begin html

<br>If true, the volume provisioned for this dataset will be created with none guarantee, and it will override the default behavior that is provided by a NAS provisioning policy. This option is applicable only for datasets which have NAS thin provisioning policy associated. default value is false.

=end html

=back



=over 2

=item * I<is-skip-autosize-conformance>  =>   B<boolean, optional>

=begin html

<br>If true, conformance check of autosize volume options is disabled for the dataset. This option is applicable only for datasets which have thin provisioning policy associated. For other datasets the option is ignored. default value is false.

=end html

=back



=over 2

=item * I<maximum-luns-per-volume>  =>   B<integer, optional>

=begin html

<br>Maximum luns to be provisioned from a volume in this dataset. If the value is empty, then the dataset level value of the global option maxLUNsPerVolume is applicable for the dataset.

=end html

=back



=over 2

=item * I<maximum-qtrees-per-volume>  =>   B<integer, optional>

=begin html

<br>Maximum qtrees to be provisioned from a volume in this dataset. If the value is empty, then the dataset level value of the global option maxQtreesPerVolume is applicable for the dataset.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_set_storageset



=begin html

Change the storage sets associated with policy nodes. It is legal to change many storage set/node mappings in an edit session.

=end html



B<Inputs>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the data protection policy node to associate the storage set to. If this input is not present the root node is used as the default. <P>If dp-node-name is the root node, <ul> <li>dataset must have a disaster recovery capable protection policy <li>dataset must be in a "failed_over" DR state <li>object-name-or-id specified must be the storage set mapped to the DR-capable node of the old protection policy. </ul> Mapping the DR storage set to the root node of a new protection policy will have the side effect of changing the DR state to "ready" when the edit session is committed.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock for a dataset obtained by calling dataset-edit-begin. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the storage set to add.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_space_metric_list_info_iter_end



=begin html

Ends iteration to list dataset space metric.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-space-metric-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_space_metric_list_info_iter_next



=begin html

Get next few records in the iteration started by dataset-space-metric-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dataset-space-metric-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<dataset-space-metrics>  =>   B<L<"dataset-space-metric-info">[]>

=begin html

<br>List of space usage measurement of dataset.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1]

=end html

=back



=head2 dataset_space_metric_list_info_iter_start



=begin html

Starts iteration to list dataset's space usage measurements.

=end html



B<Inputs>

=over 2

=item * I<day>  =>   B<integer, optional>

=begin html

<br>The day for which the usage metric is required. The month element is required along with this input. When present, the usage metrics for the day is returned. Range: [1..31]

=end html

=back



=over 2

=item * I<month>  =>   B<month, optional>

=begin html

<br>The month for which the usage metric is required. If month is not specified, it defaults to the current month. If month element is provided without the day element in input, then the usage metrics available for the month is returned. If month and year element is not provided in input, then the usage measurements for the current month is returned. The start of the current month is determined by the <b>chargebackDayOfMonth</b> global option. Range: [1..12]

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of a dataset or resource group or storage service. If a resource group is given, usage measurement of the datasets which are direct members of the group are returned. If a storage service is given, usage measurement of datasets associated with the storage service is returned. If this input is not given, usage measurements of all the datasets are returned.

=end html

=back



=over 2

=item * I<year>  =>   B<integer, optional>

=begin html

<br>The year for which the usage metric is required. If year element is not provided in input, then the current year is selected. Range: [1900..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retrieval with dataset-space-metric-list-info-iter-next. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dataset-space-metric-list-info-iter-next.

=end html

=back



=head2 dataset_update_dr_status



=begin html

Update disaster recovery status for a dataset.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object identifier for the dataset.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dataset_update_protection_status



=begin html

Update protection status for a dataset.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object identifier for the dataset.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_about



=begin html

Retrieve information currently provided by the 'dfm about' command.

=end html



B<Inputs>

=over 2

=item * I<include-directory-size-info>  =>   B<boolean, optional>

=begin html

<br>If true, then size and file count information of the DFM directories is returned. Default value is false i.e. only names of the DFM directories are returned.

=end html

=back



B<Outputs>

=over 2

=item * I<cpu-count>  =>   B<string>

=begin html

<br>CPU count.

=end html

=back



=over 2

=item * I<dfm-directories>  =>   B<L<"directory-info">[]>

=begin html

<br>null

=end html

=back



=over 2

=item * I<edition>  =>   B<string>

=begin html

<br>Edition of this product. Possible Values are 'Express edition' and 'Standard edition' with product name appened.

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>Host name.

=end html

=back



=over 2

=item * I<install-dir>  =>   B<string>

=begin html

<br>Installation directory.

=end html

=back



=over 2

=item * I<installed-plugins>  =>   B<L<"plugin">[]>

=begin html

<br>null

=end html

=back



=over 2

=item * I<licensed-features>  =>   B<L<"feature">[]>

=begin html

<br>null

=end html

=back



=over 2

=item * I<mode>  =>   B<string>

=begin html

<br>DFM operating mode. <P> Possible values are <ul> <li><b>7_mode</b>: DFM Operating for Data ONTAP 7-Mode storage systems only. <li><b>cluster_mode</b>: DFM Operating for Data ONTAP C-Mode storage systems only. </ul> <P>

=end html

=back



=over 2

=item * I<node-limit>  =>   B<string>

=begin html

<br>Operations Manager Node limit.

=end html

=back



=over 2

=item * I<operating-system>  =>   B<string>

=begin html

<br>Operating system.

=end html

=back



=over 2

=item * I<prot-mgr-node-limit>  =>   B<string>

=begin html

<br>Protection Manager Node limit.

=end html

=back



=over 2

=item * I<prov-mgr-node-limit>  =>   B<string>

=begin html

<br>Provisioning Manager Node limit.

=end html

=back



=over 2

=item * I<serial-number>  =>   B<string>

=begin html

<br>serial number of this product.

=end html

=back



=over 2

=item * I<system-memory>  =>   B<string>

=begin html

<br>System memory.

=end html

=back



=over 2

=item * I<system-time>  =>   B<integer>

=begin html

<br>System time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<version>  =>   B<string>

=begin html

<br>A string that adheres to the following regular expression: [1-9][0-9]+\.[1-9][0-9]+.* The first number is the DFM major version. The second number is the DFM minor version. DFM APIs don't change if the major.minor doesn't change. Example: 3.5.0.4726

=end html

=back



=head2 dfm_backup_schedule_disable



=begin html

Disable an existing backup schedule.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_backup_schedule_enable



=begin html

Enable an existing backup schedule.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_backup_schedule_get



=begin html

Get the information about a DFM database backup schedule.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<backup-type>  =>   B<backup-type>

=begin html

<br>Scheduled DFM database backup type.

=end html

=back



=over 2

=item * I<day>  =>   B<integer, optional>

=begin html

<br>The day of the week on which the backup schedule has to run at the specified hour:minute time. This is optional when the schedule-type is 'weekly'. The day starts with Sunday. The days are enumerated with Sunday=0, Monday=1 and so on. Range: [0..6]

=end html

=back



=over 2

=item * I<hour>  =>   B<integer, optional>

=begin html

<br>The hour of a day at which the backup schedule runs. This is optional only for the 'snapshot' type backups set at 'hourly' period. Range: [0..23]

=end html

=back



=over 2

=item * I<is-schedule-enabled>  =>   B<boolean>

=begin html

<br>true if the backup schedule is enabled, false otherwise.

=end html

=back



=over 2

=item * I<minute>  =>   B<integer>

=begin html

<br>The minute of an hour at which the backup schedule runs. Range: [0..59]

=end html

=back



=over 2

=item * I<repeat-interval>  =>   B<integer, optional>

=begin html

<br>The hourly interval at which 'snapshot' based backups recur. This is applicable for 'snapshot' type backups having 'daily' schedule-type. Range: [1..24]

=end html

=back



=over 2

=item * I<schedule-type>  =>   B<string>

=begin html

<br>The period at which the backup schedule has runs. Possible values are 'hourly', 'daily' or 'weekly'.

=end html

=back



=head2 dfm_backup_schedule_set



=begin html

API to configure DFM database backup schedules. A schedule can be of 'snapshot' or 'archive' type backup. Archive backups can be scheduled at 'daily' or 'weekly' period. Snapshot backups can be scheduled at 'hourly', 'daily' or 'weekly' period or everyday at regular intervals starting from a specified time. Hourly backups require the 'minute' at which the backup schedule is to run every hour. Daily backup schedule requires 'hour' and 'minute' at which the backup schedule is to run. Weekly backup schedule requires the day of the week and time (hh:mm) at which the backup schedule is to run. A backup schedule can also be set to run every day at regular hourly repeat intervals starting from a specified hour:minute. Only one schedule can be set for creating DFM backups.

=end html



B<Inputs>

=over 2

=item * I<backup-type>  =>   B<backup-type, optional>

=begin html

<br>Default backup type is 'archive'.

=end html

=back



=over 2

=item * I<day>  =>   B<integer, optional>

=begin html

<br>The day of the week on which the backup schedule has to run at the specified hour:minute time. Required for weekly schedule type. Not allowed for hourly and daily schedule type. The day starts with Sunday. The days are enumerated with Sunday=0, Monday=1 and so on. Range: [0..6]

=end html

=back



=over 2

=item * I<hour>  =>   B<integer, optional>

=begin html

<br>The hour of a day at which the backup schedule has to run. Required for daily or weekly schedule type. Not allowed for hourly schedule type. Range: [0..23]

=end html

=back



=over 2

=item * I<is-schedule-enabled>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the backup schedule has to be enabled or disabled after setting. Default value is true.

=end html

=back



=over 2

=item * I<minute>  =>   B<integer, optional>

=begin html

<br>The minute of an hour at which the backup schedule has to run. Default value is 0. Range: [0..59]

=end html

=back



=over 2

=item * I<repeat-interval>  =>   B<integer, optional>

=begin html

<br>The hourly interval at which 'snapshot' based backups have to recur starting at hour:minute. This is applicable only for 'snapshot' type backups. Range: [1..24]

=end html

=back



=over 2

=item * I<schedule-type>  =>   B<string>

=begin html

<br>The period at which the backup schedule has to run. Possible values are 'hourly', 'daily', 'weekly'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_backup_start



=begin html

API to start a database backup immediately.

=end html



B<Inputs>

=over 2

=item * I<backup-type>  =>   B<backup-type>

=begin html

<br>Type of DFM database backup to initiate a backup.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_backup_status



=begin html

Get information about a DFM database backup.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<backup-status>  =>   B<string>

=begin html

<br>Status of the database backup. Possible values are: 'running': when backup job is running; applicable for both immediate and scheduled backups. 'pending': when backup job is scheduled, but yet to start; applicable only for immediate backup started with dfm-backup-start. 'schedule_active': backup schedule is set and enabled; applicable for scheduled backup only. 'schedule_inactive': backup schedule is set and disabled; applicable for scheduled backup only. 'not_scheduled': when a schedule is not set; applicable for scheduled backup only.

=end html

=back



=head2 dfm_get_api_statistics



=begin html

Retrieve information about the API call frequencies on the DFM server

=end html



B<Inputs>

=over 2

=item * I<clear-api-stats>  =>   B<boolean, optional>

=begin html

<br>If present and true, reset all the API statistics. Default value is false.

=end html

=back



B<Outputs>

=over 2

=item * I<api-statistics>  =>   B<L<"api-stat">[]>

=begin html

<br>Lists the statistics about the API call frequencies on the DFM server.

=end html

=back



=head2 dfm_get_resource_property_values



=begin html

Gets the list of resource properties and the values that can be set as filters for thresholds. The list of resource properties are pre-defined, but the values are obtained from the current set of values in the database

=end html



B<Inputs>

=over 2

=item * I<resource-property>  =>   B<string, optional>

=begin html

<br>Specifies the property for which the values are to be returned If not present, then resource values for all properties are returned Maximum length of 255 characters

=end html

=back



B<Outputs>

=over 2

=item * I<resource-property-values>  =>   B<L<"resource-property-values">[]>

=begin html

<br>The values for the resource properties

=end html

=back



=head2 dfm_monitor_timestamp_list



=begin html

Returns the monitoring timestamps of a host.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The name or id of the host for which monitoring timestamp is required. It should be name or id of a Host Agent, vFiler Unit, Storage System, Cluster or OSSV Host.

=end html

=back



B<Outputs>

=over 2

=item * I<dfm-monitoring-timestamps>  =>   B<L<"dfm-monitoring-timestamp">[]>

=begin html

<br>List of all applicable monitoring timestamps.

=end html

=back



=head2 dfm_object_refresh



=begin html

Request monitors be scheduled to run to refresh the information of the object specified. The monitors to be scheduled to run can be specified implicitly using child-type or explicitly by providing monitor-names. If both child-type and monitor-names are specified, it will be treated as an error.

=end html



B<Inputs>

=over 2

=item * I<child-type>  =>   B<string, optional>

=begin html

<br>If specified, schedule only those monitors affecting the specified type. Otherwise, all monitors affecting the object-name-or-id will be scheduled. Valid only if object-name-or-id points to a Storage System or a vFiler unit. Possible values: "aggregate", "volume", "qtree" and "lun_path".

=end html

=back



=over 2

=item * I<monitor-names>  =>   B<monitor-name[], optional>

=begin html

<br>Specifies one or more monitors to be scheduled to run. If this input is not provided, all monitors will be scheduled. Valid only if object-name-or-id points to a Host Agent, Storage System, vFiler unit, OSSV Host or a NetCache.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The name or id of the object to be refreshed. Should be name or id of a Host Agent, Storage System, vFiler unit, OSSV Host, Aggregate, Volume, Qtree, LUN or a NetCache. If child-type is specified, this should be name or id of a Storage System or a vFiler unit. If monitor-names are specified, this should be name or id of a Host Agent, Storage System, vFiler unit, OSSV Host or a NetCache.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_objects_get_status



=begin html

Get status for DFM objects This api always returns true. It returns the status for all the objects that are passed in. A object-name-or-id of "0" indicates the "global group" Privelege required is read

=end html



B<Inputs>

=over 2

=item * I<objects>  =>   B<obj-name-or-id[]>

=begin html

<br>The objects for which status is to be retrieved

=end html

=back



B<Outputs>

=over 2

=item * I<objects-status>  =>   B<L<"obj-status-info">[]>

=begin html

<br>Status of the passed in input objects.

=end html

=back



=head2 dfm_related_objects_list_info



=begin html

Retrieve information about objects related to a DFM object. This api takes an object as input and returns the information about parent objects of that object, resource groups, datasets and resource pools the object belongs to and objects that belong to the specified object. Privilege required is DFM.Database.Read on the specified object. Parent output objects are returned only if the authenticated user has DFM.Database.Read privilege on that parent object. For e.g. group to which an object belongs is returned only if the authenticated user has DFM.Database.Read privilege on that group.

=end html



B<Inputs>

=over 2

=item * I<include-indirect>  =>   B<boolean, optional>

=begin html

<br>If true, resource groups, datasets and resource pools in which the input object is an indirect member will also be returned. Default value is false, i.e only direct memberships are returned.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of an object to list related objects for. The allowed object types for this argument are: <ul> <li> Host <li> Aggregate <li> Volume <li> Qtree <li> Lun </ul>

=end html

=back



B<Outputs>

=over 2

=item * I<child-count-list>  =>   B<L<"child-count">[], optional>

=begin html

<br>Count of children for the specified object. Present in the output if the object has at least one child.

=end html

=back



=over 2

=item * I<parent-dataset-list>  =>   B<L<"parent-dataset">[], optional>

=begin html

<br>Datasets the specified object belongs to. Present in the output if the object belongs to at least one dataset.

=end html

=back



=over 2

=item * I<parent-group-list>  =>   B<L<"parent-group">[], optional>

=begin html

<br>Resource groups the specified object belongs to. Present in the output if the object belongs to at least one group.

=end html

=back



=over 2

=item * I<parent-object-list>  =>   B<L<"parent-object">[], optional>

=begin html

<br>Parents of the specified object. Present in the output if there is at least one parent object.

=end html

=back



=over 2

=item * I<parent-resourcepool-list>  =>   B<L<"parent-resourcepool">[], optional>

=begin html

<br>Resource Pools the specified object belongs to. Present in the output if the object belongs to at least one resource pool.

=end html

=back



=head2 dfm_server_list_diagnostic_info



=begin html

Retrieve server diagnostic information

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<diag-info>  =>   B<L<"dfm-diag-counter-group">[]>

=begin html

<br>Diagnostic information collected from the dfm server.

=end html

=back



=head2 dfm_snmp_setting_add



=begin html

Add a SNMP credential setttings for a host or network in dfm. This credential will be used when discovering networks in dfm.

=end html



B<Inputs>

=over 2

=item * I<host-name>  =>   B<string, optional>

=begin html

<br>The name of the host. This could be either short or fully qualified host name. Either this attribute or network-address must be provided. Error is returned if both are provided.

=end html

=back



=over 2

=item * I<network-address>  =>   B<network-address, optional>

=begin html

<br>Ip address of the network or host

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<prefix-length>

=begin html

<br>It represents prefix length. Useful for subnet mask calculation. This should be 32 for IPv4 and 128 for IPv6 if the network-address is a host address.

=end html

=back



=over 2

=item * I<privacy-password>  =>   B<string, optional, encrypted>

=begin html

<br>Privacy password used for encrypting SNMPv3 communication. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-authentication-login>  =>   B<string, optional>

=begin html

<br>The name of the user to be used for SNMPv3 discovery and monitoring. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-authentication-password>  =>   B<string, optional, encrypted>

=begin html

<br>The authentication password to be used for SNMPv3 communication. Value must be a string greater than or equal to 8 characters. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-authentication-protocol>  =>   B<snmp-authentication-protocol, optional>

=begin html

<br>Authentication protocol for use with SNMPv3. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-community-name>  =>   B<string, optional>

=begin html

<br>Name of the snmp community used for snmpv1 communication. This element is optional for the SNMP versions other than snmp_v1.

=end html

=back



=over 2

=item * I<snmp-version>  =>   B<snmp-version, optional>

=begin html

<br>Represents snmp version that will be used for discovering network.

=end html

=back



B<Outputs>

=over 2

=item * I<snmp-id>  =>   B<snmp-id>

=begin html

<br>A unique-id for this snmp credential setting will be returned.

=end html

=back



=head2 dfm_snmp_setting_delete



=begin html

Delete networks from dfm so that discovery should not happen. Either snmp-id or both network-address and prefix-length has to be provided. If the user provides both or does not provide any, it will be considered as invalid input.

=end html



B<Inputs>

=over 2

=item * I<host-name>  =>   B<string, optional>

=begin html

<br>Name of the host. It could be either short or fully qualified host name.

=end html

=back



=over 2

=item * I<network-address>  =>   B<network-address, optional>

=begin html

<br>IP address of the network or host.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<prefix-length, optional>

=begin html

<br>Prefix length of the network or host. This should be 32 for IPv4 and 128 for IPv6 if the network-address is a host address.

=end html

=back



=over 2

=item * I<snmp-id>  =>   B<snmp-id, optional>

=begin html

<br>Unique indentifier of the SNMP credential setting in dfm. This id will be generated when SNMP credential setting was added.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_snmp_setting_modify



=begin html

Modify SNMP credential in dfm so that network discovery should happen using new SNMP credential.

=end html



B<Inputs>

=over 2

=item * I<prefix-length>  =>   B<prefix-length, optional>

=begin html

<br>It is prefix length of network or host, useful for subnet mask calculation. This cannot be modified for hosts.

=end html

=back



=over 2

=item * I<privacy-password>  =>   B<string, optional, encrypted>

=begin html

<br>Privacy password used for encrypting SNMPv3 communication. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-authentication-login>  =>   B<string, optional>

=begin html

<br>The name of the user to be used for SNMPv3 discovery and monitoring. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-authentication-password>  =>   B<string, optional, encrypted>

=begin html

<br>The authentication password to be used for SNMPv3 communication. Value must be a string greater than or equal to 8 characters. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-authentication-protocol>  =>   B<snmp-authentication-protocol, optional>

=begin html

<br>Authentication protocol for use with SNMPv3. This element is optional for the SNMP versions other than snmp_v3.

=end html

=back



=over 2

=item * I<snmp-community-name>  =>   B<string, optional>

=begin html

<br>Name of the snmp community used for snmpv1 communication. This element is optional for the SNMP versions other than snmp_v1.

=end html

=back



=over 2

=item * I<snmp-id>  =>   B<snmp-id>

=begin html

<br>Unique indentifier of the SNMP credential setting in dfm.

=end html

=back



=over 2

=item * I<snmp-version>  =>   B<snmp-version, optional>

=begin html

<br>Represents snmp version that will be used for discovering network.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_snmp_settings_list_info



=begin html

Returns list of SNMP credential settings available in the dfm database Either snmp-id or both network-address and prefix-length has to be provided. If user provides both, it will be considered as invalid input. If user does not provide any, then all the snmp credentials will be returned.

=end html



B<Inputs>

=over 2

=item * I<host-name>  =>   B<string, optional>

=begin html

<br>The name of the host. This could be either short or fully qualified host name. This attribute and network-address must not be provided simultaneously. Error is returned if both are provided.

=end html

=back



=over 2

=item * I<network-address>  =>   B<string, optional>

=begin html

<br>Ip address of the network or host.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<integer, optional>

=begin html

<br>It represents prefix length. Useful for subnet mask calculation. This should be 32 for IPv4 and 128 for IPv6 if the network-address is a host address.

=end html

=back



=over 2

=item * I<snmp-id>  =>   B<snmp-id, optional>

=begin html

<br>A unique id representing the SNMP credential setting.

=end html

=back



B<Outputs>

=over 2

=item * I<network-snmp-credentials>  =>   B<L<"network-snmp-credential-info">[]>

=begin html

<br>The list of SNMP credential settings.

=end html

=back



=head2 dfm_user_priv_get



=begin html

Retrieve current user's global privilege. This api is no longer the preferred way to getting user privileges. Use rbac-access-check.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<privilege>  =>   B<string>

=begin html

<br>User's privilege(s), comma separated if there are multiple. Possible privileges are: FULL, DELETE, WRITE, READ, BACKUP, RESTORE, SAN, SRM, MIRROR.

=end html

=back



=head2 dfm_schedule_content_get



=begin html

Get the content of a given schedule.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the schedule

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">>

=begin html

<br>Details of a schedule

=end html

=back



=head2 dfm_schedule_create



=begin html

Create a new schedule with the given name. The schedule type may be daily, weekly, or monthly.

=end html



B<Inputs>

=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">>

=begin html

<br>Details of a schedule

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-id>  =>   B<obj-id>

=begin html

<br>A unique ID of the schedule

=end html

=back



=head2 dfm_schedule_daily_add



=begin html

Create a single schedule within a daily schedule.

=end html



B<Inputs>

=over 2

=item * I<daily-content>  =>   B<L<"daily-info">>

=begin html

<br>Content of the daily schedule.

=end html

=back



=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the daily item within the schedule

=end html

=back



=head2 dfm_schedule_daily_delete



=begin html

Delete a single schedule within a daily schedule.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the daily item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_daily_modify



=begin html

Modify a single schedule within a daily schedule. Sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<daily-content>  =>   B<L<"daily-info">>

=begin html

<br>Content of the daily schedule.

=end html

=back



=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_dependency



=begin html

Return a list of other DP policies, report schedule and schedules using the specified schedule.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of a schedule.

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-assignees>  =>   B<L<"schedule-assignee">[]>

=begin html

<br>List of other DP policies, report schedules and schedules using the specified schedule. The list returned will depend on the schedule category. For schedule catedory 'dfm_schedule' only report schedules and the DFM schedules using this schedule will be returned. For schedule category 'dp_schedule' only DP policies and the DP schedules using this schedule will be returned. The list excludes DP policies, report schedules or schedules that the caller has no permissions to read.

=end html

=back



=over 2

=item * I<schedule-in-use>  =>   B<boolean>

=begin html

<br>For schedule category 'dfm_schedule' this is true if its used by report schedules or DFM schedules. For schedule category 'dp_schedule' this is true if its used by DP policies or DP schedules.

=end html

=back



=head2 dfm_schedule_destroy



=begin html

Delete a schedule with the given name or ID. A schedule that is used by another schedule(s) may not be deleted and an error will be returned. Sample schedules cannot be destroyed.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_hourly_add



=begin html

Create an hourly schedule within a daily schedule. An hourly schedule specifies the frequency of schedules to be run within the start time and end time.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<hourly-content>  =>   B<L<"hourly-info">>

=begin html

<br>Content of the hourly schedule.

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the hourly item within the schedule

=end html

=back



=head2 dfm_schedule_hourly_delete



=begin html

Delete an hourly schedule within a daily schedule.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the hourly item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_hourly_modify



=begin html

Modify an hourly schedule within a daily schedule. Sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<hourly-content>  =>   B<L<"hourly-info">>

=begin html

<br>Content of the hourly schedule.

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_list



=begin html

List all existing schedule IDs and types.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-list>  =>   B<L<"schedule-id-info">[]>

=begin html

<br>List of schedule IDs

=end html

=back



=head2 dfm_schedule_list_info_iter_end



=begin html

Tell the DFM station that the temporary store associated with the specified tag is no longer necessary

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_list_info_iter_next



=begin html

Iterate over the list of schedules stored in the temporary store. The DFM internally maintains a cursor pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>Maximum number of schedules to retrieve

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=over 2

=item * I<schedule-content-list>  =>   B<L<"schedule-content-info">[]>

=begin html

<br>List of detailed schedule contents

=end html

=back



=head2 dfm_schedule_list_info_iter_start



=begin html

The dfm-schedule-list-info-iter-* set of APIs are used to retrieve a list of schedule contents

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or ID of the schedule. If specified, only this schedule is listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items saved for future retrieval

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 dfm_schedule_modify



=begin html

Modify a schedule's details in the database. When the zapi is called, all details within the schedule will be removed and replace by the new details specified in schedule-content. Sample schedules cannot be modified. schedule-id and schedule-type cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">>

=begin html

<br>Details of a schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_monthly_add



=begin html

Specify a single schedule within a monthly schedule. Either day-of-month, or both week-of-month and day-of-week must be specified.

=end html



B<Inputs>

=over 2

=item * I<monthly-content>  =>   B<L<"monthly-info">>

=begin html

<br>Content of the monthly schedule.

=end html

=back



=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the monthly item within the schedule

=end html

=back



=head2 dfm_schedule_monthly_delete



=begin html

Delete a single schedule within a monthly schedule

=end html



B<Inputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the monthly item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_monthly_modify



=begin html

Modify a single schedule within a monthly schedule. Sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<monthly-content>  =>   B<L<"monthly-info">>

=begin html

<br>Content of the monthly schedule.

=end html

=back



=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a monthly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_monthly_subschedule_set



=begin html

Specify a sub-schedule to be used by a monthly schedule. On top of the individual monthly events, a monthly schedule may only have 1 daily subschedule OR 1 weekly schedule. If this monthly schedule already has a daily or weekly schedule, this command replaces the old one.

=end html



B<Inputs>

=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the monthly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<subschedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the schedule to be used by the monthly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_monthly_subschedule_unset



=begin html

Unset a sub-schedule used by a monthly schedule.

=end html



B<Inputs>

=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the monthly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_rename



=begin html

Rename a schedule. Sample schedules cannot be renamed.

=end html



B<Inputs>

=over 2

=item * I<new-schedule-name>  =>   B<string>

=begin html

<br>A new unique name of the schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_weekly_add



=begin html

Specify a single schedule within a weekly schedule.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-content>  =>   B<L<"weekly-info">>

=begin html

<br>Content of the weekly schedule.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly item within the schedule

=end html

=back



=head2 dfm_schedule_weekly_delete



=begin html

Delete a single schedule within a weekly schedule.

=end html



B<Inputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_weekly_modify



=begin html

Modify a single schedule within a weekly schedule. Sample schedules canot be modified.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-content>  =>   B<L<"weekly-info">>

=begin html

<br>Content of the weekly schedule.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_weekly_subschedule_add



=begin html

Specify which daily schedule will be used on a certain range of days within a weekly schedule

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<end-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the schedule. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<start-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the schedule. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly use item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=head2 dfm_schedule_weekly_subschedule_delete



=begin html

Specify which daily schedule to be deleted within a weekly schedule

=end html



B<Inputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly use item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_schedule_weekly_subschedule_modify



=begin html

Specify which daily schedule will be used on a certain range of days within a weekly schedule. Permenent of sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



=over 2

=item * I<end-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the schedule. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly use item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'.

=end html

=back



=over 2

=item * I<start-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the schedule. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 disk_list_info_iter_end



=begin html

The disk-list-info-iter-* set of APIs are used to retrieve the list of disks. disk-list-info-iter-end is used to tell the DFM station that the temporary store used by DFM to support the disk-list-info-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 disk_list_info_iter_next



=begin html

For more documentation please check disk-list-info-iter-start. The disk-list-info-iter-next API is used to iterate over the members of the disks stored in the temporary store created by the disk-list-info-iter-start API.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous disk-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by disk-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<disks>  =>   B<L<"disk-info">[]>

=begin html

<br>List of disks.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 disk_list_info_iter_start



=begin html

The disk-list-info-iter-* set of APIs are used to retrieve the list of disks in DFM. disk-list-info-iter-start returns the disk belonging to objects specified. It loads the list of disks 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 disks in the temporary store. If disk-list-info-iter-start is invoked twice, then two distinct temporary stores are created.

=end html



B<Inputs>

=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of an object to list disks for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Host <li> Aggregate </ul> Disks are not objects in DFM. So, a single disk cannot be listed. If object-name-or-id is specified, all disks that belong to the object specified will be listed. If no object-name-or-id is provided, all disks will be listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with disk-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to disk-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 dp_backup_content_list_iter_end



=begin html

Ends iteration to list file contents of a backup.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-backup-content-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_backup_content_list_iter_next



=begin html

Get next few records in the iteration started by dp-backup-content-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-backup-content-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<backup-contents>  =>   B<L<"dp-backup-content-info">[]>

=begin html

<br>List of files and directories in backup.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=head2 dp_backup_content_list_iter_start



=begin html

Starts iteration to list contents of a backup. Files and directories directly under specified path are listed. In order to list all files recursively, multiple invocations of this API are necessary.

=end html



B<Inputs>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>Id of backup instance whose file contents are to be listed. Use dp-backup-list-iter-start to retrieve valid backup ids. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<primary-snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy on the primary where the data originated. This field is ignored if the root-object-name-or-id is omitted. It is also ignored, if primary-snapshot-unique-id is specified.

=end html

=back



=over 2

=item * I<primary-snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of the Snapshot copy on the primary where the data originated. Currently, this is the Snapshot copy's creation time. This field is ignored if the root-object-name-or-id is omitted.

=end html

=back



=over 2

=item * I<root-object-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or id of a dataset member that is at the root of the file tree. This may be qtree, ossv directory or volume that is the source of the physical data protection relationship. Indirect members may also be specified. If the sub path input is given, then this input is required. If specified, backup contents of this object are listed. Otherwise, backup contents directly under the dataset are listed.

=end html

=back



=over 2

=item * I<sub-path>  =>   B<string, optional>

=begin html

<br>Local subpath within the dataset with regard to root-object-name-or-id. If specified, backup contents directly under this sub path are listed. Otherwise, backup contents directly under the specified root-object are listed. Ignored if root-object-name-or-id input is not present If the root-object-name-or-id is a volume, qtree or ossv unix directory then this sub-path is a unix-like path, ex: 'dir1/dir2/'. If the root-object-name-or-id is ossv windows directory then this sub-path is a windows path, ex : 'dir1\\dir2\\'. Maximum length of sub-path is 32767 characters.

=end html

=back



=over 2

=item * I<suppress-child-count>  =>   B<boolean, optional>

=begin html

<br>This flag is set to FALSE by default. When TRUE, the child count for a file will not be calculated and a zero will be returned in its place in the file_info structer.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with dp-backup-content-list-iter-next. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-backup-content-list-iter-next.

=end html

=back



=head2 dp_backup_get_location



=begin html

Given a backup-id or the backup-version and a list of member-ids or member-names, returns the snapshot name, volume that it exists on as well as the secondary qtree associated with the member id. If more than one snapshots match the backup-d or backup-version, only one, the first item in the resulting list, is returned. Multiple matches occur when the same backup version exists on multiple nodes. In case of mutiple matches which snapshot gets picked is unspecified.

=end html



B<Inputs>

=over 2

=item * I<backup-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the backup instance. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp of the backup version.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or ID of the dataset to which this backup version belongs to. This parameter is ignored in case of backup-id parameter in the input.

=end html

=back



=over 2

=item * I<paths>  =>   B<L<"dp-backup-path-info">[]>

=begin html

<br>Path information about backup

=end html

=back



B<Outputs>

=over 2

=item * I<backup-locations>  =>   B<L<"backup-location-info">[]>

=begin html

<br>Location information for the backup.

=end html

=back



=head2 dp_backup_list_iter_end



=begin html

Ends iteration to list backups.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-backup-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_backup_list_iter_next



=begin html

Get next few records in the iteration started by dp-backup-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-backup-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<backups>  =>   B<L<"dp-backup-info">[]>

=begin html

<br>List of backups.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1]

=end html

=back



=head2 dp_backup_list_iter_start



=begin html

Starts iteration to list backups of a dataset or a path within dataset.

=end html



B<Inputs>

=over 2

=item * I<application-resource-namespace>  =>   B<application-resource-namespace, optional>

=begin html

<br>Name of the application resource namespace. If has-application-resources-only is true, then (has-application-resources-only, application-resource-namespace) is used to load backups, specific to a resource namespace. Ignored if has-application-resources-only is false. If not specified, when has-application-resource-namespace is true, then all backups containing application resources are returned.

=end html

=back



=over 2

=item * I<backup-id>  =>   B<integer, optional>

=begin html

<br>Id of backup instance whose information is to be listed. If this parameter is specified backup-version, volume-id, snapshot-unique-id, root-object-name-or-id, sub-path, application-resource-namespace and search-keys parameters are ignored. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp when the backup was taken. Backups of the dataset that were taken at this time is listed. If this parameter is specified, volume-id, snapshot-unique-id, root-object-name-or-id, sub-path, application-resource-namespace and search-keys are ignored.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of dataset. Backups for this dataset are listed. If this is not given, then all backups for all datasets will be returned, the backup-id, backup-version, volume-id fields are ignored.

=end html

=back



=over 2

=item * I<has-application-resources-only>  =>   B<boolean, optional>

=begin html

<br>If true, returns backups containing only application resources from host services and plugins. Can be true, only if has-storage-resources-only is false. Default is false.

=end html

=back



=over 2

=item * I<has-storage-resources-only>  =>   B<boolean, optional>

=begin html

<br>If true, returns backups containing only storage entities. Can be true, only if has-application-resources-only is false. Default is false.

=end html

=back



=over 2

=item * I<include-backup-graph-info>  =>   B<boolean, optional>

=begin html

<br>If true, the backup-graph-info is returned in the output. Otherwise, backup-graph-info is omitted to improve performance. Default is true.

=end html

=back



=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each member which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<include-metadata>  =>   B<boolean, optional>

=begin html

<br>If true, returns metadata for the backup. If false, metadata, which can be large in size, is not returned. Default is false. Ignored if include-metadata-host-service is specified.

=end html

=back



=over 2

=item * I<include-metadata-host-service>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or object identifier of the Host Service for the backup metadata. If specified, only the backup metadata of the given Host Service are listed, and include-metadata is ignored.

=end html

=back



=over 2

=item * I<is-mounted>  =>   B<boolean, optional>

=begin html

<br>If true, return backups that are either mounted, being mounted or being unmounted. If false, this input will not be used as filtering criterion while listing backups. Ignored if either backup-id, backup-version, or search-keys are specified. Default is false.

=end html

=back



=over 2

=item * I<is-root-object-restorable>  =>   B<boolean, optional>

=begin html

<br>If root-object-name-or-id is given, and this is TRUE, only the backups from which the root-object is restorable will be returned. Default is FALSE. This is ignored if root-object-name-or-id is not given.

=end html

=back



=over 2

=item * I<root-object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of a dataset member. This may be either be an application object such as VM or a datastore or it can be a qtree, ossv directory or volume. If sub path input is given then this input is required. However, sub path input cannot be specified if this input represents an application object. If specified, backups containing this object are listed. Otherwise, all backups of this dataset are listed. If dataset-name-or-id is not specified, all backups containing this root object across all datasets will be listed.

=end html

=back



=over 2

=item * I<search-keys>  =>   B<search-key[], optional>

=begin html

<br>Keys to search the backups by. If any of the given search keys matchs a backup, the backup will be returned. If backup-id, backup-version, volume-id, snapshot-unique-id, root-object-name-or-id, or sub-path is specified, this field is ignored. If dataset-name-or-id is not specified, backups are searched across all the datasets, otherwise search is limited to only the specified dataset.

=end html

=back



=over 2

=item * I<snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of a snapshot. If volume-id is present, then this input must be given. Ignored if volume-id is not present.

=end html

=back



=over 2

=item * I<sub-path>  =>   B<string, optional>

=begin html

<br>Local subpath within the dataset with regard to root-object-name-or-id. If specified, backups containing this sub path are listed. Ignored if root-object-name-or-id input is not present or if root-object-name-or-id represents an application object such as a VM or a datastore. If the root-object-name-or-id is a volume, qtree or ossv unix directory then this sub-path is a unix-like path, ex: 'dir1/dir2/'. If the root-object-name-or-id is ossv windows directory then this sub-path is a windows path, ex : 'dir1\dir2\'. Maximum length of sub-path is 32767 characters.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id, optional>

=begin html

<br>Id of volume that is member of a dataset node. If this input is present then snapshot-unique-id must be present. backup-version containing this (volume-id, snapshot-unique-id) is returned. If this parameter is specified, root-object-name-or-id, sub-path, application-resource-namespace and search-keys are ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with dp-backup-list-iter-next. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-backup-list-iter-next.

=end html

=back



=head2 dp_backup_mount_start



=begin html

Mount a backup containing virtual infrastructure objects such as VMs or datastores. A background job will be started for this operation.

=end html



B<Inputs>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>Identifier of the backup that is to be mounted. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name of the host on which the backup is mounted.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Id of the job that handles the mounting operation. All host services progress/status information will be logged in this job. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<mount-id>  =>   B<integer>

=begin html

<br>Id of the mount session. This can be used to unmount the backup. Range: [1..2^31-1]

=end html

=back



=head2 dp_backup_start



=begin html

Start an unscheduled backup of a dataset. All members or a subset of the dataset will be backed up. A background job will be spawned to backup the dataset.

=end html



B<Inputs>

=over 2

=item * I<backup-description>  =>   B<string, optional>

=begin html

<br>Description for the backup. Can be arbitrary string meaningful to the user. If provided, the job spawned will have this description. The length of this string cannot be more than 255 characters.

=end html

=back



=over 2

=item * I<backup-destination>  =>   B<string, optional>

=begin html

<br>This field is deprecated in favor of backup-destination-name-or-id. Destination node name of the backup. This legacy parameter is ignored if backup-destination-name-or-id is supplied. Please see input backup-destination-name-or-id for the description of how this node name will be used.

=end html

=back



=over 2

=item * I<backup-destination-name-or-id>  =>   B<string, optional>

=begin html

<br>Destination of the backup. <P> For a dataset with an associated data protection policy, this may be the name or id of one of the nodes in the data protection policy associated with the dataset directly or through the storage service. <p> If the name or id of the primary node is specified, the management station takes local snapshot only. Otherwise, the management station transfers the backup over intervening policy nodes until it reaches the destination with this node name or id. <P> If no node name or id is provided, and there is an associated data protection policy for the dataset, the management station takes local snapshots on the primary node as well as backups on all connections in the policy. <P> A value of 1 is used for the root node of the dataset. <P> If both backup-destination and backup-destination-name-or-id are specified, then backup-destination-name-or-id will take precedence over backup-destination.

=end html

=back



=over 2

=item * I<backup-members>  =>   B<obj-name-or-id[], optional>

=begin html

<br>One or more dataset member Ids which should be included in the backup. Only the member Id should be specified. If member path is specified, backup will fail. If this input is not supplied, all members of the dataset will be backed up. This input is valid only for the datasets containing application objects such as Hyper-V VMs or VMware VMs. If supplied for a dataset not containing application objects, EUNUSEDAPPLICATIONOBJECTSETTING is returned. <P> Specification of a member that is not part of the dataset generates an error of type ENOTINDATASET.

=end html

=back



=over 2

=item * I<backup-script>  =>   B<string, optional>

=begin html

<br>Name of the script to invoke on the Host Services station both before and after the backup. This script is only used for datasets containing application objects such as Hyper-V VMs or VMware VMs and if supplied on other datasets will generate an error of EUNUSEDAPPLICATIONOBJECTSETTING. <p> The backup-script consists of 0 to 255 characters. An empty string value "" indicates no script is invoked. The default value of this property is the empty string "". <p> The system does not check whether a non-empty path string actually refers to an executable script prior to attempting to run the script. The default value of this property is the empty string "". For example, possible values are %env%\scripts\backup.ps1 OR c:\program..\HS\scripts\backup.ps1 OR k:\program..\HS\scripts\backup.ps1 [k is a network share] OR UNC path \\SCRIPTSSVR\SHARE\SCRIPTS\BACKUP.PS

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the dataset to backup.

=end html

=back



=over 2

=item * I<hyperv-backup-settings-info>  =>   B<L<"hyperv-backup-schedule-settings-info">, optional>

=begin html

<br>Hyper-V specific settings for the backup operation. These settings apply to this backup only. When backing up Hyper-V objects, this input can be used to specify the Hyper-V plugin settings.

=end html

=back



=over 2

=item * I<retention-duration>  =>   B<integer, optional>

=begin html

<br>The age, in seconds, after which this backup expires. <P> When this input is not present for datasets that are associated with a data protection policy, the retention-duration for this one backup will be determined by the data protection policy. <P> When retention-type is omitted the the value of retention-duration will determine the retention-type as shown below. <UL> <LI> 'hourly' if less than 24 hours <LI> 'daily' if 1 day up to and not including 1 week <LI> 'weekly' if 1 week up to and not including 31 days <LI> 'monthly' if 31 days or longer. </UL> <P> At least one of retention-type or retention-duration is required unless the dataset is an application dataset with is-application-responsible-for-primary-backup set to true. In the latter case, both can be omitted. <P> If present, it should be a non-zero value. Range: [1..2^31 - 1].

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type, optional>

=begin html

<br>Retention type to which the backup version should be archived. <P> At least one of retention-type or retention-duration is required unless the dataset is an application dataset with is-application-responsible-for-primary-backup set to true. In the latter case, both can be omitted. <P> If this input is specified, the specified retention type will be assigned to the backups created by this operation. This applies to all types of datasets including the application datasets with is-application-responsible-for-primary-backup set to true. <P> If this input is omitted for an application dataset and if is-application-responsible-for-primary-backup is true, the retention type of the primary backup is assigned to the replicated backups. <P> If this input is omitted in any of the other cases, retention type will be determined from retention-duration as specified in the retention-duration definition that follows.

=end html

=back



=over 2

=item * I<vmware-backup-settings-info>  =>   B<L<"vmware-backup-schedule-settings-info">, optional>

=begin html

<br>VMware specific settings for the backup operation. These settings apply to this backup only. When backing up VMware objects, this input can be used to specify the VMware plugin settings.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Id of the job that handles the unscheduled backup of the dataset. dp-job-progress-event-list-iter-* apis can be used to track the progress of the backup job. <BR> Range: [1..2^31-1]

=end html

=back



=head2 dp_backup_unmount_start



=begin html

Unmount a mounted backup. A background job is started for this operation.

=end html



B<Inputs>

=over 2

=item * I<mount-id>  =>   B<integer>

=begin html

<br>Id of the backup mount session. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Id of the job that handles the backup unmounting operation. All the progress/status information will be logged in this job. Range: [1..2^31-1]

=end html

=back



=head2 dp_backup_version_create



=begin html

Creates a backup version. Backup version is collection of volume snapshots and denotes a single backed up image of a dataset. The management station keeps track of actual volumes that hold the dataset backup using backup versions.

=end html



B<Inputs>

=over 2

=item * I<backup-description>  =>   B<string, optional>

=begin html

<br>Description for backup version. Can be arbitrary string meaningful to the user. If provided, the new version will have this description. The length of this string cannot be more than 255 characters.

=end html

=back



=over 2

=item * I<backup-metadata>  =>   B<L<"dfm-metadata">[], optional>

=begin html

<br>Opaque metadata for this backup. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the dataset for the backup version.

=end html

=back



=over 2

=item * I<is-adding-members>  =>   B<boolean, optional>

=begin html

<br>If this input is true, Protection Manager expects more members to be added to the version-members element of this backup. The job that is transferring this backup, periodically checks to see if the new members have been added and starts transferring them. The transfer job does not exit until this input is set to false by calling dp-backup-version-modify API (or until the timeout occurs). <P> If this input is false, the job exits after transferring any members that it could find in this backup. Any new members that got added to the backup will be transferred by the next job. <P> This input can be used when creating a local backup potentially takes a very long time and you want the Protection Manager to start the transfers without waiting for the local backup to complete. <P> The default value is false.

=end html

=back



=over 2

=item * I<is-complete>  =>   B<boolean, optional>

=begin html

<br>Indicates whether or not this backup version is a consistent backup of the dataset. The default value is true.

=end html

=back



=over 2

=item * I<is-for-propagation>  =>   B<boolean, optional>

=begin html

<br>Indicates whether or not this backup version should be propagated according to the data protection policy. If false, the backup version will not be propagated to other nodes. Once a backup version is created, this property can not be modified. Default value is true.

=end html

=back



=over 2

=item * I<is-native>  =>   B<boolean, optional>

=begin html

<br>Indicates whether or not this backup version would have been created on the same storage set if dataset had not failed over. <P> If is-native is true, this backup version is retained according to retention settings on the node on which the backup version exists. <P> If is-native is false, this backup version is retained according to retention settings on the DR primary node. <P> Default value is true. <P> When dataset has failed over to the DR secondary node, local backups are created on the DR secondary node. But these backups are retained using retention settings on the DR primary node. Server uses is-native in conjunction with retention-type to determine which retention settings to use. <P> Examples: <ul> <li> If is-native is true and retention-type is hourly, hourly-retention-duration and hourly-retention-count on the same node, where the backup exists, are used. <li> If is-native is false and retention-type is daily, daily-retention-count and daily-retention-duration on the DR primary node are used. </ul>

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Id of the data protection job that is invoking this API. This parameter is intended for internal use only.

=end html

=back



=over 2

=item * I<retention-type>  =>   B<string, optional>

=begin html

<br>Retention type that will be applied to the backup being created on the requested node. If it is not provided, the retention-type for the backup being created on the requested node will be set to 'unlimited'. Possible values: 'hourly','daily', 'weekly', 'monthly' and 'unlimited'.

=end html

=back



=over 2

=item * I<storageset-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of storage set on which this backup version exists. If the storage set is not specified, then the default is the primary storage set.

=end html

=back



=over 2

=item * I<version-members>  =>   B<L<"version-member-info">[], optional>

=begin html

<br>Describes snapshot members of this backup version. Members are not required at time of creation. If omitted, version-members is set to empty.

=end html

=back



=over 2

=item * I<version-timestamp>  =>   B<dp-timestamp>

=begin html

<br>Timestamp of the backup version. This corresponds to the time at which backup for the dataset started. This timestamp will be used as the identifier of this backup version and will be accepted and returned in the "backup-version" element of various APIs.

=end html

=back



B<Outputs>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>Integer identifier of the new backup instance. Range: [1..2^31-1] This is different from backup-version.

=end html

=back



=head2 dp_backup_version_delete



=begin html

Delete an existing backup version from the database and delete the snapshots from the storage systems for this backup version. The backup version must currently exist and must not be mounted. This API does not provide transaction semantics. When API returns an error, the backup version may have been partially deleted. <HR> Error conditions: <UL> <LI> EBACKUPDOESNOTEXIST - The backup version was not found. <LI> EBACKUPBUSY - The backup version is busy. This can happen if one of the Snapshots in the backup is needed for future transfers or if transfer from the backup is in progress. <LI> EBACKUP_ALREADY_MOUNTED - The backup version is either being mounted or has already been successfully mounted. <LI> EINVALIDINPUT - Not enough inputs to determine version properly. This can happen if less than three of dataset, backup-version, and node-name are used in the case where backup-id is not supplied. <LI> EACCESSDENIED - Access was denied on the requested backup version. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EOBJECTNOTFOUND - Dataset not found. </UL>

=end html



B<Inputs>

=over 2

=item * I<allow-deferred-delete>  =>   B<boolean, optional>

=begin html

<br>If this input is true and if the backup cannot be deleted immediately, it will be marked for deletion at a later time and this API will return success. The backup will be deleted when the conditions that were preventing the backup from deletion no longer exist. For example, if the backup contains Snapshot copies needed by SnapVault or SnapMirror for future transfers, the backup will be deleted when those Snapshot copies are no longer needed. If this input is true and if the backup is mounted, it will not be marked for deletion and an error EBACKUP_ALREADY_MOUNTED will be returned. <P> The backups which are marked for deletion will not be returned via any of the backup listing APIs. <P> If this input is false and if the backup cannot be deleted immediately, an error will be returned. <P> Default is false.

=end html

=back



=over 2

=item * I<backup-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the backup instance to be deleted. Range: [1..2^31-1] This input is required unless both dataset-name-or-id and backup-version inputs are supplied.

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp when the backup was taken. This input is required if backup-id is not present. This input should be omitted and is ignored if backup-id is present.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the dataset for the backup version to be deleted. This input is required if backup-id is not present. This input should be omitted and is ignored if backup-id is present.

=end html

=back



=over 2

=item * I<delete-multiple-backups>  =>   B<boolean, optional>

=begin html

<br>This input is ignored if backup-id input is present or if all three of the dataset-name-or-id, backup-version and node-name are present since in both cases a single backup is identified for deletion. <P> When both backup-id and node-name are omitted and both dataset-name-or-id and backup-version are supplied, multiple backups may produce a match. In that case, this input controls whether multiple backups that match the specified dataset-name-or-id and backup-version inputs will be deleted. <P> If this input is true, all the matching backups will be deleted. The new callers of this API who omit both node-name and backup-id inputs are expected to use this value. <P> If this input is false only a single backup among several matches will be deleted. API does not specify which particular backup will be picked for deletion. This behavior exists for compatibility reasons only. New callers of this API should not specify 'false' value for this input. <P> Default is false.

=end html

=back



=over 2

=item * I<node-name>  =>   B<string, optional>

=begin html

<br>Name of policy node that uniquely defines the backup-id for backup version to be deleted. This input should be omitted and is ignored if backup-id is present.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_backup_version_list_iter_end



=begin html

Ends iteration to list backup versions.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-backup-version-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_backup_version_list_iter_next



=begin html

Get next few records in the iteration started by dp-backup-version-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-backup-version-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<backup-versions>  =>   B<L<"dp-backup-version-info">[]>

=begin html

<br>List of backup-versions for a given dataset.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1]

=end html

=back



=head2 dp_backup_version_list_iter_start



=begin html

Starts iteration to list all backup versions for a given dataset. Information returned includes the IDs of each instance, the propagation status for each version, and job Id responsible for the backup. Clients should use this API if they want a list of backup versions rather than backup instances.

=end html



B<Inputs>

=over 2

=item * I<backup-version>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp when the backup was taken. Backups of the dataset that were taken at this time are listed. If this parameter is specified, volume-id, snapshot-unique-id, root-object-name-or-id and sub-path are ignored.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of dataset. Backups for this dataset are listed.

=end html

=back



=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each member which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<include-metadata>  =>   B<boolean, optional>

=begin html

<br>If true, returns metadata for the backup. If false, metadata, which can be large in size, is not returned. Default is false.

=end html

=back



=over 2

=item * I<root-object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of a dataset member that is at the root of the file tree. This may be a qtree, ossv directory or volume that is the source of the physical data protection relationship. If sub path input is given then this input is required. If specified, only backups containing this object are listed. Otherwise, all backups of this dataset are listed.

=end html

=back



=over 2

=item * I<snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of a snapshot. This is currently the snapshot create time. If volume-id is present, then this input must be given. Ignored if volume-id is not present.

=end html

=back



=over 2

=item * I<sub-path>  =>   B<string, optional>

=begin html

<br>Local subpath within the dataset with regard to root-object-name-or-id. If specified, backups containing this sub path are listed. Ignored if root-object-name-or-id input is not present If the root-object-name-or-id is a volume, qtree or ossv unix directory then this sub-path is a unix-like path, ex: 'dir1/dir2/'. If the root-object-name-or-id is ossv windows directory then this sub-path is a windows path, ex : 'dir1\dir2\'. Maximum length of sub-path is 32767 characters.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id, optional>

=begin html

<br>Id of volume that is a member of a dataset node. If this input is present then snapshot-unique-id must be present. backup-version containing this (volume-id, snapshot-unique-id) is returned. If this parameter is specified, root-object-name-or-id, sub-path are ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with dp-backup-version-list-iter-next. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-backup-version-list-iter-next.

=end html

=back



=head2 dp_backup_version_modify



=begin html

Modifies a backup version. Either the backup-id or some combination of the dataset-name-or-id, node-name-or-id and backup-version are used to specify an individual backup instance or a set of backup instances which represent the same backup version. Certain inputs, such as is-adding-members, dp-backup-transfer-info and version-members, can only be applied to a single backup instance. When a backup instance is transferred from one node to another, the attributes of the backup instance, backup-description and backup-metadata, are copied at the beginning of the transfer. Any changes to these fields made after a backup instance has been copied will not be propagated automatically. Specify only the dataset-name-or-id and backup-version to update the fields of all the backup instances with the same backup-version.

=end html



B<Inputs>

=over 2

=item * I<backup-description>  =>   B<string, optional>

=begin html

<br>Description for backup version. Can be arbitrary string meaningful to the user. The length of this string cannot be more than 255 characters.

=end html

=back



=over 2

=item * I<backup-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the backup instance to be modified. Range: [1..2^31-1] Either the backup-id or both the dataset-name-or-id and backup-version must be specified.

=end html

=back



=over 2

=item * I<backup-metadata>  =>   B<L<"dfm-metadata">[], optional>

=begin html

<br>Opaque metadata for this backup. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp when the backup was taken. Backups of same dataset at different locations have same version if their contents are identical. The management station keeps track of which backups have identical contents and assigns same version to them. Either the backup-id or both the dataset-name-or-id and backup-version must be specified. Ignored if backup-id is specified.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the dataset for the backup version. Either the backup-id or both the dataset-name-or-id and backup-version must be specified. Ignored if backup-id is specified.

=end html

=back



=over 2

=item * I<dp-backup-transfer-info>  =>   B<L<"dp-backup-transfer-info">, optional>

=begin html

<br>The transfer status of the backup to a destination node. If this input is specified, either the backup-id or all three of the dataset-name-or-id, node-name-or-id, and backup-version must be specified. This input is for the internal use of the Protection Manager. Protection Manager job can modify backup-transfer-status, backup-transfer-needed or job-id elements of dp-backup-transfer-info.

=end html

=back



=over 2

=item * I<is-adding-members>  =>   B<boolean, optional>

=begin html

<br>Indicates whether more members are being added to the version-members element of this backup. <P> If this input is true, Protection Manager expects more members to be added to the version-members element of this backup. The job that is transferring this backup, periodically checks to see if the new members have been added and starts transferring them. The transfer job does not exit until this input is set to false by calling dp-backup-version-modify API (or until the timeout occurs). <P> If this input is false, the job exits after transferring any members that it could find in this backup. Any new members that got added to the backup will be transferred by the next job. <P> This input can be used when creating a local backup potentially takes a very long time and you want the Protection Manager to start the transfers without waiting for the local backup to complete.

=end html

=back



=over 2

=item * I<is-complete>  =>   B<boolean, optional>

=begin html

<br>Indicates whether or not this backup version is a consistent backup of the dataset. If not specified, the value of the attribute remains unchanged.

=end html

=back



=over 2

=item * I<node-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or id of policy node that uniquely defines the backup-id for backup version to be modified. <P> If version-members or dp-backup-transfer-info input is specified, either the backup-id or all three of the dataset-name-or-id, node-name-or-id, and backup-version must be specified. <P> If version-members and backup-transfer-info inputs are not specified, omitting node-name-or-id and backup-id inputs is acceptable as long as both dataset-name-or-id and backup-version are specified. In such case, the setting change will be applied to all backups with the specified backup-version. <P> If node-name-or-id is 1, it is interpreted as root node. This is true even when there is no data protection policy attachted to the dataset. <P> This input should be omitted and is ignored if backup-id is present.

=end html

=back



=over 2

=item * I<retention-type>  =>   B<string, optional>

=begin html

<br>Retention type of this version. Possible values: 'hourly','daily', 'weekly', 'monthly' and 'unlimited'.

=end html

=back



=over 2

=item * I<version-members>  =>   B<L<"version-member-info">[], optional>

=begin html

<br>Snapshots to add to the backup. If a snapshot is already a member of the backup, do nothing. Existing members of the backup are unaffected. If this input is specified, either the backup-id or all three of the dataset-name-or-id, node-name-or-id, and backup-version must be specified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_get_dataset_backup_jobs_data



=begin html

Returns a set of jobs to be spawned to backup the dataset. This zapi is used to obtain data that is later used to start an on-demand backup of dataset.

=end html



B<Inputs>

=over 2

=item * I<backup-destination>  =>   B<string, optional>

=begin html

<br>Destination of the dataset backup. This should be name of one of the nodes in data protection policy attached to the dataset. If primary node is specified, only local snapshot is taken. Otherwise, backup is transferred over intervening policy nodes until it reaches the specified node. If this element is not present, then local snapshot on the primary node as well as backup and mirror transfers on all connections of the policy are done.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the dataset to be backed up.

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type, optional>

=begin html

<br>Retention type to which the backup version should be archived. This input may be required depending on the type of the dataset. See retention-type field in dp-backup-start for more information.

=end html

=back



B<Outputs>

=over 2

=item * I<dp-jobs-data>  =>   B<L<"dp-job-data">[]>

=begin html

<br>List of jobs that need to be started to backup this dataset. Each element will have all the details required for that job.

=end html

=back



=head2 dp_dashboard_get_dr_dataset_counts



=begin html

Return number of disaster recovery enabled datasets in all dr-state and dr-status combinations. The number of datasets in each distinct dr-state/dr-status combination is returned. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EDATABASEERROR - A database-related error occurred while processing the request. Try again later. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id, optional>

=begin html

<br>If present, limit counts to datasets which are members of this group.

=end html

=back



B<Outputs>

=over 2

=item * I<dr-state-status-counts>  =>   B<L<"dr-state-status-count">[]>

=begin html

<br>Counts of all datasets with a distinct dr-state/dr-status combination.

=end html

=back



=head2 dp_dashboard_get_lagged_datasets



=begin html

Get a list of the most lagged datasets. This API returns a list of some or all datasets, sorted by lag time. Only the datasets name, ID, and worst relationship lag time are returned. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EDATABASEERROR - A database-related error occurred while processing the request. Try again later. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id, optional>

=begin html

<br>Name or identifier of a group. Only relationships inside the specified group will be returned. If no value is specified, then relationships are returned regardless of group.

=end html

=back



=over 2

=item * I<max-datasets>  =>   B<integer, optional>

=begin html

<br>The maximum number of datasets to return. If not specified, all datasets are returned. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<dp-datasets>  =>   B<L<"dp-dataset-lag-info">[]>

=begin html

<br>List of datasets.

=end html

=back



=head2 dp_dashboard_get_lagged_relationships



=begin html

Get a list of the most lagged relationships. This API returns a list of some or all relationships, sorted by lag time. Only the relationship name, ID, and lag time are returned. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EDATABASEERROR - A database-related error occurred while processing the request. Try again later. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id, optional>

=begin html

<br>Name or identifier of a group. Only relationships inside the specified group will be returned. If no value is specified, then relationships are returned regardless of group.

=end html

=back



=over 2

=item * I<is-external-relationship>  =>   B<boolean, optional>

=begin html

<br>If true, only list external relationships. Otherwise, list all relationships.

=end html

=back



=over 2

=item * I<max-relationships>  =>   B<integer, optional>

=begin html

<br>The maximum number of relationships to return. If not specified, all relationships are returned. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<dp-relationships>  =>   B<L<"dp-relationship-lag-info">[]>

=begin html

<br>List of SnapVault and SnapMirror relationships.

=end html

=back



=head2 dp_dashboard_get_protected_data_counts



=begin html

This zapi call has been deprecated in Juno (4.0) release, because the definitions for "protected" and "unprotected" objects changed. Please use dp-dashboard-get-protected-data-counts-2 instead. Get counts for certain types of objects for displaying on the Protection Manager Dashboard. The types of objects are: datasets, volumes, qtrees, and OSSV directories. For each object type, the number of protected objects, unprotected objects, and ignored objects is returned. And object is considered to be protected if it is a member of a dataset, and a dataset is considered to be protected if it has a protection policy. Objects are unprotected if they are both not protected and not ignored. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EDATABASEERROR - A database-related error occurred while processing the request. Try again later. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id, optional>

=begin html

<br>Name or identifier of a group. Only objects inside the specified group will be counted. If no value is specified, then all objects are counted, regardless of group.

=end html

=back



B<Outputs>

=over 2

=item * I<ignored-dataset-count>  =>   B<integer>

=begin html

<br>Number of ignored datasets. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<ignored-ossv-directory-count>  =>   B<integer>

=begin html

<br>Number of ignored OSSV directories. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<ignored-qtree-count>  =>   B<integer>

=begin html

<br>Number of ignored qtrees. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<ignored-volume-count>  =>   B<integer>

=begin html

<br>Number of ignored volumes. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-dataset-count>  =>   B<integer>

=begin html

<br>Number of protected datasets. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-ossv-directory-count>  =>   B<integer>

=begin html

<br>Number of protected OSSV directories. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-qtree-count>  =>   B<integer>

=begin html

<br>Number of protected qtrees. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-volume-count>  =>   B<integer>

=begin html

<br>Number of protected volumes. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<unprotected-dataset-count>  =>   B<integer>

=begin html

<br>Number of unprotected datasets. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<unprotected-ossv-directory-count>  =>   B<integer>

=begin html

<br>Number of unprotected OSSV directories. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<unprotected-qtree-count>  =>   B<integer>

=begin html

<br>Number of unprotected qtrees. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<unprotected-volume-count>  =>   B<integer>

=begin html

<br>Number of unprotected volumes. <BR> Range: [0..2^31-1]

=end html

=back



=head2 dp_dashboard_get_protected_data_counts_2



=begin html

Get counts for certain types of objects for displaying on the Protection Manager Dashboard. The types of objects are: datasets, volumes, qtrees, OSSV directories and application resources. For each object type, the number of protected, unprotected and ignored objects are returned.<BR> An object is considered to be protected if it is: <ul> <li>1. A dataset with either a single node protection policy attached to it. Or a dataset with no protection policy attached but has an application policy attached to it. Or a dataset that has a multi-node protection policy attached to it and has conformed at least once. <li>2. Any volume or qtree in a Protection Manager managed relationship. <li>3. Any host or aggregate in a dataset with protection policy assigned. <li>4. Any host in any resource pool (does not have to be associated with any dataset). <li>5. Any aggregate that is either in any resource pool themselves, or is a child of a host that is a member of any resource pool. </ul> <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EDATABASEERROR - A database-related error occurred while processing the request. Try again later. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id, optional>

=begin html

<br>Name or identifier of a group. Only objects inside the specified group will be counted. If no value is specified, then all objects are counted, regardless of group.

=end html

=back



B<Outputs>

=over 2

=item * I<ignored-dataset-count>  =>   B<integer>

=begin html

<br>Number of ignored datasets. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<ignored-ossv-directory-count>  =>   B<integer>

=begin html

<br>Number of ignored OSSV directories. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<ignored-qtree-count>  =>   B<integer>

=begin html

<br>Number of ignored qtrees. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<ignored-volume-count>  =>   B<integer>

=begin html

<br>Number of ignored volumes. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-dataset-count>  =>   B<integer>

=begin html

<br>Number of protected datasets. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-ossv-directory-count>  =>   B<integer>

=begin html

<br>Number of protected OSSV directories. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-qtree-count>  =>   B<integer>

=begin html

<br>Number of protected qtrees. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<protected-volume-count>  =>   B<integer>

=begin html

<br>Number of protected volumes. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<unprotected-application-resources>  =>   B<L<"application-resource-info">[], optional>

=begin html

<br>List of unprotected application resources.

=end html

=back



=over 2

=item * I<unprotected-dataset-count>  =>   B<integer>

=begin html

<br>Number of unprotected datasets. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<unprotected-qtree-count>  =>   B<integer>

=begin html

<br>Number of unprotected qtrees. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<unprotected-volume-count>  =>   B<integer>

=begin html

<br>Number of unprotected volumes. <BR> Range: [0..2^31-1]

=end html

=back



=head2 dp_job_abort



=begin html

Abort a job. A request is sent to abort the job. The job will go into an aborting state and will get aborted after sometime.

=end html



B<Inputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job to abort. Range: [1..2^31-1].

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_job_cleanup



=begin html

Purge a specified job from the database. A running job can not be purged. When a job is purged from the database all information is lost.

=end html



B<Inputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job to purge. If specifed, only this job is purged. Range: [1..2^31-1].

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_job_list_iter_end



=begin html

Ends iteration to list jobs.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-job-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_job_list_iter_next



=begin html

Get next few records in the iteration started by dp-job-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-job-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<jobs>  =>   B<L<"dp-job-info">[]>

=begin html

<br>List of jobs.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1].

=end html

=back



=head2 dp_job_list_iter_start



=begin html

Starts iteration to list jobs. The jobs that match all the specified filters will be returned.

=end html



B<Inputs>

=over 2

=item * I<job-context-application-resource-namespace>  =>   B<application-resource-namespace, optional>

=begin html

<br>If specified, restricts jobs returned to jobs for datasets, which contain application resources in a given namespace. Ignored, if job-context-application-resources-only is false. If not specified, when job-context-application-resources-only is true, then returns all jobs for datasets, which contain application resources from all namespaces.

=end html

=back



=over 2

=item * I<job-context-application-resources-only>  =>   B<boolean, optional>

=begin html

<br>If true, restricts jobs returned to jobs for datasets, which contain application resources. If false, then this restriction is not applied. Default is false.

=end html

=back



=over 2

=item * I<job-context-obj-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or identifier of the job context object. The object can be of type host, aggregate or dataset only. If specified, only those jobs that ran in the context of the specified object is returned. If not specified, all jobs will be listed. This field is ignored if either <b>obj-name-or-id</b> or <b>job-id</b> is specified.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of a job to list. If unspecified, all jobs are listed. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<job-state>  =>   B<dp-job-state, optional>

=begin html

<br>State of the jobs to list. If specified, only the jobs which are in this state are listed.

=end html

=back



=over 2

=item * I<job-type>  =>   B<dp-job-type, optional>

=begin html

<br>If specified, only jobs of specified type are listed. This field is deprecated in favor of job-types. Only one of job-type or job-types can be specified.

=end html

=back



=over 2

=item * I<job-types>  =>   B<job-type[], optional>

=begin html

<br>List of job types. Only jobs of these types are listed. Only one of job-type or job-types can be specified.

=end html

=back



=over 2

=item * I<max-jobs>  =>   B<integer, optional>

=begin html

<br>If specified, this is the maximum number of jobs that the client wishes to receive at once. If set to zero, return all jobs. The default value of this parameter is 50,000. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or ID of the dataset, a resource group or a vFiler unit. In case of datasets or vFiler units, jobs carried out on them are listed. In case of resource groups, jobs carried out on datasets or vFiler units which are members of the resource group are listed.

=end html

=back



=over 2

=item * I<started-timestamp-from>  =>   B<dp-timestamp, optional>

=begin html

<br>If specified, jobs started at or after the specified time are listed.

=end html

=back



=over 2

=item * I<started-timestamp-to>  =>   B<dp-timestamp, optional>

=begin html

<br>If specified, jobs started at or before the specified time are listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with dp-job-list-iter-next. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-job-list-iter-next.

=end html

=back



=head2 dp_job_progress_event_list_iter_end



=begin html

Ends iteration to list progress of job.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-job-progress-event-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_job_progress_event_list_iter_next



=begin html

Get next few records in the iteration started by dp-job-progress-event-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-job-progress-event-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<progress-events>  =>   B<L<"dp-job-progress-event-info">[]>

=begin html

<br>List of job progress events.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1].

=end html

=back



=head2 dp_job_progress_event_list_iter_start



=begin html

Starts iteration to list job progress events. The event could be one of the following type. <ul> <li> 'job-start' <li> 'job-progress' <li> 'job-abort' <li> 'job-end' <li> 'job-retry' <li> 'rel-create-start' <li> 'rel-create-progress' <li> 'rel-create-end' <li> 'rel-destroy-start' <li> 'rel-destroy-progress' <li> 'rel-destroy-end' <li> 'snapshot-create' <li> 'snapshot-delete' <li> 'backup-create' <li> 'backup-delete' <li> 'snapvault-start' <li> 'snapvault-progress' <li> 'snapvault-end' <li> 'snapmirror-start' <li> 'snapmirror-progress' <li> 'snapmirror-end' <li> 'restore-start' <li> 'restore-progress' <li> 'restore-end' <li> 'migrate-start' <li> 'migrate-progress' <li> 'migrate-end' <li> 'mirror-break-script-start' <li> 'mirror-break-script-end' <li> 'mirror-break-quiesce-start' <li> 'mirror-break-quiesce-end' <li> 'mirror-break-start' <li> 'mirror-break-end' <li> 'volume-create' <li> 'volume-resize' <li> 'volume-option-set' <li> 'snapshot-reserve-resize' <li> 'volume-autosize' <li> 'snapshot-autodelete' <li> 'lun-create' <li> 'lun-destroy' <li> 'lun-map' <li> 'lun-unmap' <li> 'igroup-create' <li> 'igroup-destroy' <li> 'igroup-add' <li> 'igroup-remove' <li> 'qtree-create' <li> 'quota-set' <li> 'nfsexport-create' <li> 'cifs-share-create' <li> 'cifs-share-modify' <li> 'cifs-share-delete' <li> 'volume-destroy' <li> 'qtree-destroy' <li> 'vfiler-storage-add' <li> 'script-run' <li> 'volume-dedupe' <li> 'volume-dedupe-enable' <li> 'volume-dedupe-schedule-set' <li> 'vfiler-create' <li> 'vfiler-setup' <li> 'aggregate-space' <li> 'storage-system-discover' <li> 'resource-pool-create' <li> 'resource-pool-members-add' <li> 'storage-service-configure' <li> 'host-service-operation-start' <li> 'host-service-operation-end' <li> 'host-service-operation-abort' <li> 'host-service-operation-progress' </ul>

=end html



B<Inputs>

=over 2

=item * I<connection-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the connection in the policy being used by the job. If not specified, then progress events for all jobs are returned. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<string, optional>

=begin html

<br>Identifier of the dataset to list progress events for. If not specified progress events for all jobs are returned. Only dataset-name-or-id or job-id may be supplied, but not both. This field is deprecated in favor of object-name-or-id.

=end html

=back



=over 2

=item * I<end-time>  =>   B<dp-timestamp, optional>

=begin html

<br>End timestamp. Events after this time will not be returned. If not present, all events up to the present are returned.

=end html

=back



=over 2

=item * I<history>  =>   B<boolean, optional>

=begin html

<br>If FALSE return only the most recent progress events for job. The most recent progress events define the current progress of the job. For example a backup job generates a job-progress event which says "Retrieving preferred interfaces" and then when the interfaces are retrieved it generates an event "Retrieved preferred interfaces", the earlier then moves to history. The latter one becomes the current event. If TRUE all the events are returned. Default value is FALSE.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the job to list progress events for. Only dataset-name-or-id or job-id may be supplied, but not both. If neither is supplied, all progress events are returned. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<job-type>  =>   B<dp-job-type, optional>

=begin html

<br>Type of the job associated with the event. If not specified progress events for all job types are returned. This field is deprecated in favor of job-types.

=end html

=back



=over 2

=item * I<job-types>  =>   B<job-type[], optional>

=begin html

<br>List of job types associated with the progress events. Only progress events of jobs of these job types are listed. If not specified, progress events for all job types are returned. Only one of job-type or job-types can be specified.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Identifier of the object to list progress events for. If not specified, progress events for all jobs are returned. Only object-name-or-id or job-id may be supplied, but not both. Only one of dataset-name-or-id or object-name-or-id can be specified.

=end html

=back



=over 2

=item * I<start-time>  =>   B<dp-timestamp, optional>

=begin html

<br>Start timestamp. Events before this time will not be returned. If not present, all events since the earliest event are returned.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with dp-job-progress-event-list-iter-next. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-job-progress-event-list-iter-next.

=end html

=back



=head2 dp_job_purge



=begin html

Purge all completed jobs from the database. Purged jobs are removed from the database, all information is lost.

=end html



B<Inputs>

=over 2

=item * I<completed-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>If specified, all jobs successfully completed before this time are purged. This field must be specified when job-id is not specified.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of job to purge. If specifed, only this job is purged. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<purge-jobs-completed-with-error>  =>   B<boolean, optional>

=begin html

<br>If specified, jobs completed with error are also purged. Otherwise, only successfully completed jobs are purged.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_job_schedule_get_last_changed



=begin html

Gets time when job schedule last changed. This is used by the scheduler service to reload list of jobs that need to run in future. Jobs that are already running are not affected.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<last-changed-timestamp>  =>   B<integer>

=begin html

<br>Timestamp when job schedule last changed. Timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=head2 dp_job_schedule_list_iter_end



=begin html

Ends iteration to list scheduled jobs.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-job-schedule-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_job_schedule_list_iter_next



=begin html

Get next few records in the iteration started by dp-job-schedule-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-job-schedule-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<scheduled-jobs>  =>   B<L<"dp-scheduled-job">[]>

=begin html

<br>List of jobs that need to be started by the scheduler. This list is sorted by increasing start-time.

=end html

=back



=head2 dp_job_schedule_list_iter_start



=begin html

Starts iteration to list jobs that need to be started by scheduler in specified time range. Scheduler service periodically requests a list of scheduled data protection jobs that will need to start within next few hours. Each item in this list is a description of what needs to be done and time when it needs to be done. <BR> For example, a scheduled job might be: take a local snapshot on node 1 of dataset ds1 at 05/10/2006 9:00 AM UTC using "hourly" retention. <BR> Scheduler service is responsible for storing job into the database and starting the job at its start time.

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<string, optional>

=begin html

<br>If specified, list of jobs is filtered by this dataset. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<from-time>  =>   B<integer>

=begin html

<br>Jobs to be started from this time will be listed. Value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<to-time>  =>   B<integer>

=begin html

<br>Jobs to be started until this time (inclusive) will be listed. Must be equal to or greater than from-time. Value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with dp-job-schedule-list-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-job-schedule-list-iter-next.

=end html

=back



=head2 dp_ossv_application_list_info_iter_end



=begin html

Terminate an iteration started by dp-ossv-application-list-info-iter-start and clean up any saved info. <HR> Error conditions: <UL> <LI>EINTERNALERROR - An error occurred while processing the request. Try again later. <LI>EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous call to dp-ossv-application-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_ossv_application_list_info_iter_next



=begin html

Returns items from a previous call to dp-ossv-application-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous dp-ossv-directory-application-list-info-iter-start call

=end html

=back



B<Outputs>

=over 2

=item * I<ossv-application-list>  =>   B<L<"ossv-application-info">[]>

=begin html

<br>List of applications supported by OSSV host.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 dp_ossv_application_list_info_iter_start



=begin html

Browse the application components supported by an OSSV host.

=end html



B<Inputs>

=over 2

=item * I<ossv-application-path>  =>   B<string, optional>

=begin html

<br>The path of the application to browse. If specified it must be an the application path returned by dp-ossv-application-list-info-iter-start. If not specified, it is same as an empty string and all the Virtual Machines reported by the OSSV host will be returned. Length: [1..255]

=end html

=back



=over 2

=item * I<ossv-host-name-or-id>  =>   B<ossv-host-name-or-id>

=begin html

<br>Name or ID of an OSSV host.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with dp-ossv-application-list-info-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-ossv-application-list-info-iter-next or dp-ossv-application-list-info-iter-end

=end html

=back



=head2 dp_ossv_application_restore_destination_list_info_iter_end



=begin html

Terminate an iteration started by dp-ossv-application-restore-destination-list-info-iter-start and clean up any saved info. <HR> Error conditions: <UL> <LI>EINTERNALERROR - An error occurred while processing the request. Try again later. <LI>EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous call to dp-ossv-application-restore-destination-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_ossv_application_restore_destination_list_info_iter_next



=begin html

Returns items from a previous call to dp-ossv-application-restore-destination-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous dp-ossv-application-restore-destination-list-info-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<ossv-application-restore-destination-list>  =>   B<L<"ossv-application-restore-destination-info">[]>

=begin html

<br>List of all the OSSV hosts through which the application can be restored to its original location.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 dp_ossv_application_restore_destination_list_info_iter_start



=begin html

List all the OSSV hosts through which a restore to the original location is possible for a given application.

=end html



B<Inputs>

=over 2

=item * I<application-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the application.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with dp-ossv-application-restore-destination-list-info-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-ossv-application-restore-destination-list-info-iter-next or dp-ossv-application-restore-destination-list-info-iter-end

=end html

=back



=head2 dp_ossv_directory_add



=begin html

Add a new OSSV directory to the list of discovered directories. If the directory already exists, return its object ID. <HR> Error conditions: <UL> <LI> EOBJECTAMBIGUOUS - The specified host name could refer to 2 or more hosts. Try again with a host ID or a fully qualified host name or IP address. There can be two applications with the same name. Try specifying the application path. <LI> EOBJECTNOTFOUND - The host name, IP address, or host ID was not found. <LI> EACCESSDENIED - Access was denied on the requested host(s). <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EDIRDOESNOTEXIST - The specified directory was not found. </UL>

=end html



B<Inputs>

=over 2

=item * I<directory-path>  =>   B<string>

=begin html

<br>Directory path to add. This path must be an absolute path on the given host. In case of adding an application component this should be the ossv-application-path returned by dp-ossv-application-list-info-iter-next.

=end html

=back



=over 2

=item * I<ossv-host-name-or-id>  =>   B<ossv-host-name-or-id>

=begin html

<br>Name or ID of an OSSV host.

=end html

=back



B<Outputs>

=over 2

=item * I<directory-id>  =>   B<integer>

=begin html

<br>ID of the newly added directory. <BR> Range: [1..2^31-1]

=end html

=back



=head2 dp_ossv_directory_browse_iter_end



=begin html

Terminate an iteration started by dp-ossv-directory-browse-iter-start and clean up any saved info. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous call to dp-ossv-directory-browse-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_ossv_directory_browse_iter_next



=begin html

Returns items from a previous call to dp-ossv-directory-browse-iter-start. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous dp-ossv-directory-browse-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<subdirectories>  =>   B<dp-ossv-directory-name[]>

=begin html

<br>List of subdirectories.

=end html

=back



=head2 dp_ossv_directory_browse_iter_start



=begin html

Get the list of subdirectories beneath a given directory on an OSSV host. <HR> Error conditions: <UL> <LI> EOBJECTAMBIGUOUS - The specified host name could refer to 2 or more hosts. Try again with a host ID or a fully qualified host name or IP address. <LI> EOBJECTNOTFOUND - The host name, IP address, or host ID was not found. <LI> EACCESSDENIED - Access was denied on the requested host(s). <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EDIRDOESNOTEXIST - The specified directory was not found. </UL>

=end html



B<Inputs>

=over 2

=item * I<directory-path>  =>   B<string, optional>

=begin html

<br>Directory name to browse. Must be an absolute path, or an empty string. If directory-path is omitted, it is the same as an empty string. <BR> If this value is omitted, or an empty string, then a list of all the roots of filesystems that are suitable for backup will be returned. On some systems, special backup sources will be returned as well. These special backup sources will not have a trailing slash when returned. For example, on Windows, "SystemState" is a valid backup source returned by this API, but it cannot be browsed by this API.

=end html

=back



=over 2

=item * I<ossv-host-name-or-id>  =>   B<ossv-host-name-or-id>

=begin html

<br>Name or ID of an OSSV host.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with dp-ossv-directory-browse-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-ossv-directory-browse-iter-next or dp-ossv-directory-browse-iter-end.

=end html

=back



=head2 dp_ossv_directory_discovered_iter_end



=begin html

Terminate an iteration started by dp-ossv-directory-discovered-iter-start and clean up any saved info. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous call to dp-ossv-directory-discovered-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_ossv_directory_discovered_iter_next



=begin html

Returns items from a previous call to dp-ossv-directory-discovered-iter-start. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous dp-ossv-directory-discovered-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<directories>  =>   B<L<"dp-ossv-directory-info">[]>

=begin html

<br>List of directories.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=head2 dp_ossv_directory_discovered_iter_start



=begin html

List the OSSV directories which have been discovered by the monitor. This list includes OSSV roots, and siblings of directories in backup relationships. The list can be filtered to exclude directories which are marked as "ignored" and to exclude directories which are protected. <HR> Error conditions: <UL> <LI> EOBJECTAMBIGUOUS - The specified host name could refer to 2 or more hosts. Try again with a host ID or a fully qualified host name or IP address. There can be two applications with the same name. Try specifying the ID of the application. <LI> EOBJECTNOTFOUND - The lookup object was not found. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EACCESSDENIED - Access was denied on the requested directory object(s). </UL>

=end html



B<Inputs>

=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each directory which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>If the value is true, only list directories which are marked as ignored Freya/DFM for the purpose of data protection. If the value is false, only list directories which are not marked as ignored. If the value is not specified, then list all directories.

=end html

=back



=over 2

=item * I<is-in-backup-relationship>  =>   B<boolean, optional>

=begin html

<br>If this value is true, only list directories which are in a backup relationship. If this value is false, only list directories which are not in a backup relationship. If this value is unspecified, then list all directories.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean, optional>

=begin html

<br>If the value is true, only list directories which are members of a dataset. If the value is false, only list directories which are not members of datasets. If the value is not specified, list all directories.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or identifier of an object to list OSSV directories for. The allowed object types for this argument are: <UL> <LI> Resource Group <LI> Dataset <LI> OSSV Host <LI> OSSV Directory </UL> If object-name-or-id identifies an OSSV directory, that single OSSV directory will be returned. If object-name-or-id resolves to more than one OSSV directory, all of them will be returned. If no object-name-or-id is provided, all OSSV directories will be listed. The same applies to OSSV applications as well.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with dp-ossv-directory-discovered-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-ossv-directory-discovered-iter-next or dp-ossv-directory-discovered-iter-end.

=end html

=back



=head2 dp_ossv_directory_modify



=begin html

Modify a directory's information. If modifying of one property fails, nothing will be changed. <HR> Error conditions: <UL> <LI> EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified directory. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EOBJECTNOTFOUND - When the dp-ossv-directory-name-or-id does not correspond to an ossv directory. <LI> EDATABASEERROR - On database error. </UL>

=end html



B<Inputs>

=over 2

=item * I<dp-ossv-directory-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the directory to modify. If a name is specified, it must be of the form "host-name:directory-path".

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to ignore this object for purposes of data protection.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_ossv_directory_roots_iter_end



=begin html

Terminate an iteration started by dp-ossv-directory-roots-iter-start and clean up any saved info. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous call to dp-ossv-directory-roots-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_ossv_directory_roots_iter_next



=begin html

Returns items from a previous call to dp-ossv-directory-roots-iter-start. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in a previous dp-ossv-directory-roots-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<roots>  =>   B<L<"dp-ossv-directory-root-info">[]>

=begin html

<br>List of roots.

=end html

=back



=head2 dp_ossv_directory_roots_iter_start



=begin html

Get the list of filesystem roots from one or more OSSV hosts. <HR> Error conditions: <UL> <LI> EOBJECTAMBIGUOUS - The specified host name could refer to 2 or more hosts. Try again with a host ID or a fully qualified host name or IP address. <LI> EOBJECTNOTFOUND - The host name, IP address, or host ID was not found. <LI> EACCESSDENIED - Access was denied on the requested host(s). <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. </UL>

=end html



B<Inputs>

=over 2

=item * I<fs-info>  =>   B<boolean, optional>

=begin html

<br>If fs-info is specified and true, then a list of all filesystems is returned instead of a list of root of filesystems suitable for backup. For example, CD-ROM drives and NFS mounts will be returned if fs-info is true. Additional information will be included in the output, specifically the filesystem device, type and state, as reported by NDMP. While this flag causes this API to return more data, the recommended way to find filesystems suitable for backup is to set this flag to false.

=end html

=back



=over 2

=item * I<ossv-host-name-or-id>  =>   B<ossv-host-name-or-id, optional>

=begin html

<br>Name or ID of an OSSV host. If no OSSV host is specified, roots are returned for all OSSV hosts.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with dp-ossv-directory-roots-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-ossv-directory-roots-iter-next or dp-ossv-directory-roots-iter-end.

=end html

=back



=head2 dp_policy_copy



=begin html

Create a new DP policy by copying from an existing "template" policy. <P> The new policy created using this ZAPI has the same set of nodes and connections as the template policy, and the same property values for each node and connection. <HR> Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to read the template policy from the database, or create a new policy, or both. <LI> EOBJECTNOTFOUND - No template policy was found that has the given name or ID. <LI> EPOLICYEXISTS - A policy with the given <b>dp-policy-name</b> already exists. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EAPIMISSINGARGUMENT - No template policy name or id was supplied as an input. <LI> EINVALIDINPUTERROR - Policy description string was too long. </UL>

=end html



B<Inputs>

=over 2

=item * I<dp-policy-description>  =>   B<string, optional>

=begin html

<br>Description of the new policy. It may contain from 0 to 255 characters. If the length is greater than 255 characters, the ZAPI fails with error code EINVALIDINPUTERROR. The default value is the empty string "".

=end html

=back



=over 2

=item * I<dp-policy-name>  =>   B<obj-name>

=begin html

<br>Name of the new policy. It must be unique among all DP policies.

=end html

=back



=over 2

=item * I<template-dp-policy-id>  =>   B<obj-id, optional>

=begin html

<br>An object ID for the template policy that is copied to create the new policy. Any policy may serve as a template; there is no special type of policy for templates. This legacy parameter is only used if template-dp-policy-name-or-id is not supplied.

=end html

=back



=over 2

=item * I<template-dp-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or Identifier for the template policy that is copied to create the new policy. Any policy may serve as a template; there is no special type of policy for templates. This input is preferred over template-dp-policy-id and if supplied then do not supply template-dp-policy-id because template-dp-policy-id will be ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<dp-policy-id>  =>   B<obj-id>

=begin html

<br>An object ID for the newly created policy.

=end html

=back



=head2 dp_policy_destroy



=begin html

Destroy a DP policy. This removes it from the database. <P> If the policy has been applied to any datasets, then the destroy operation fails; you must first un-map the policy from any datasets to which it had been applied before you may destroy the policy. <P> If this ZAPI fails for any reason, the DP policy edit of which it was a part is not rolled back. Instead, the edit is restored to the state it was in prior to invoking this ZAPI. <P> After this ZAPI successfully completes, any subsequent calls in the same edit session to <b>dp-policy-destroy</b> or <b>dp-policy-modify</b> fail with error code EOBJECTNOTFOUND. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have privileges to modify the policy. <LI> EOBJECTNOTFOUND - The policy was already destroyed during this edit session. <LI> EPOLICYNOTMODIFIABLE - The policy is one of the samples created during installation, and therefore cannot be deleted. </UL>

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by <b>dp-policy-edit-begin</b>.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_policy_edit_begin



=begin html

Create an edit session and obtain an edit lock on a DP policy to begin modifying the policy. <P> An edit lock must be obtained before invoking the following APIs: <UL> <LI><b>dp-policy-modify</b> <LI><b>dp-policy-destroy</b> </UL> Use <b>dp-policy-edit-commit</b> to end the edit session and commit the changes to the database. <P> Use <b>dp-policy-edit-rollback</b> to end the edit session and discard any changes made to the policy. <P> 24 hours after an edit session on a policy begins, any subsequent call to <b>dp-policy-edit-begin</b> for that same policy automatically rolls back the existing edit session and begins a new edit session, just as if the call had used the <b>force</b> option. If there is no such call, the existing edit session simply continues and retains the edit lock. <HR> Error conditions: <UL> <LI> EEDITINPROGRESS - Another edit session already has an edit lock on the specified policy. <LI> EOBJECTNOTFOUND - No policy was found that has the given name or ID. <LI> EACCESSDENIED - User does not have privileges to modify the policy. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<dp-policy-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a DP policy.

=end html

=back



=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>If <b>true</b>, and an edit is already in progress on the specified policy, then the previous edit is rolled back and a new edit is begun. If <b>false</b>, and an edit is already in progress, then the call fails with error code <b>EEDITINPROGRESS</b>. Default value is <b>false</b>.

=end html

=back



B<Outputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value is an unsigned 32-bit integer.

=end html

=back



=head2 dp_policy_edit_commit



=begin html

Commit changes made to a DP policy during an edit session into the database.<P> If all the changes to the policy are performed successfully, the entire edit is committed and the edit lock on the policy is released.<P> If any of the changes to the policy are not performed successfully, then the edit is rolled back (none of the changes are committed) and the edit lock on the policy is released.<P> Use the <b>dry-run</b> option to test the commit. Using this option, the changes to the policy are not committed to the database. Instead, a <b>conformance check</b> is performed to return a list of actions that the system would take if the changes were committed by calling this ZAPI without the <b>dry-run</b> option.<P> If <b>dry-run</b> is false, and all changes are successfully committed, then before the call returns, the system begins a <b>conformance run</b> on all datasets to which the policy has been applied. (See <b>dataset-conform-begin</b> for a description of conformance runs.) If any needed conformance actions require user confirmation, it is assumed that such confirmation <b>has</b> been given, and the actions <b>are</b> performed. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have privileges to modify the policy. <LI> EPOLICYEXISTS - The policy's name is being changed, and a policy with the new name already exists. <LI> EDPPOLICYINUSE - The policy is being deleted, but deletion has failed because the policy is in use by one or more datasets. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If <b>true</b>, return a list of the actions the system would take after committing the changes to the policy, but without actually committing the changes. In addition, the edit lock is not released. By default, <b>dry-run</b> is <b>false</b>.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by <b>dp-policy-edit-begin</b>.

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Only returned if <b>dry-run</b> is <b>true</b>.

=end html

=back



=head2 dp_policy_edit_rollback



=begin html

Roll back changes made to a DP policy. The edit lock on the policy will be released after the rollback. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have privileges to modify the policy. </UL>

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by <b>dp-policy-edit-begin</b>.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_policy_get_default_property_values



=begin html

Returns default values for node and connection properties. These default values are used in calls to <b>dp-policy-modify</b>, in cases where the property is present for a node or connection, but the corresponding optional XML element does not appear in the <b>dp-policy-node-info</b> or <b>dp-policy-connection-info</b> structure. <p> Note that default values may change from release to release. This ZAPI provides a convenient way to determine the default values for the current release. <HR> Error conditions: None.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<backup-schedule-id>  =>   B<obj-id>

=begin html

<br>Default value of <b>backup-schedule-id</b>.

=end html

=back



=over 2

=item * I<backup-schedule-name>  =>   B<obj-name>

=begin html

<br>Default value of <b>backup-schedule-name</b>.

=end html

=back



=over 2

=item * I<backup-script-path>  =>   B<string>

=begin html

<br>Default value of <b>backup-script-path</b>. The length of the returned string will be from 0 to 255 characters.

=end html

=back



=over 2

=item * I<backup-script-run-as>  =>   B<string>

=begin html

<br>Default value of <b>backup-script-run-as</b>. The length of the returned string will be from 0 to 64 characters.

=end html

=back



=over 2

=item * I<daily-retention-count>  =>   B<integer>

=begin html

<br>Default value of <b>daily-retention-count</b>.

=end html

=back



=over 2

=item * I<daily-retention-duration>  =>   B<integer>

=begin html

<br>Default value of <b>daily-retention-duration</b>.

=end html

=back



=over 2

=item * I<failover-script-path>  =>   B<string>

=begin html

<br>Default value of <b>failover-script-path</b>. The length of the returned string will be from 0 to 255 characters.

=end html

=back



=over 2

=item * I<failover-script-run-as>  =>   B<string>

=begin html

<br>Default value of <b>failover-script-run-as</b>. The length of the returned string will be from 0 to 64 characters.

=end html

=back



=over 2

=item * I<hourly-retention-count>  =>   B<integer>

=begin html

<br>Default value of <b>hourly-retention-count</b>.

=end html

=back



=over 2

=item * I<hourly-retention-duration>  =>   B<integer>

=begin html

<br>Default value of <b>hourly-retention-duration</b>.

=end html

=back



=over 2

=item * I<is-lag-error-enabled>  =>   B<boolean>

=begin html

<br>Default value of <b>is-lag-error-enabled</b>.

=end html

=back



=over 2

=item * I<is-lag-warning-enabled>  =>   B<boolean>

=begin html

<br>Default value of <b>is-lag-warning-enabled</b>.

=end html

=back



=over 2

=item * I<lag-error-threshold>  =>   B<integer>

=begin html

<br>Default value of <b>lag-error-threshold</b>.

=end html

=back



=over 2

=item * I<lag-warning-threshold>  =>   B<integer>

=begin html

<br>Default value of <b>lag-warning-threshold</b>.

=end html

=back



=over 2

=item * I<mirror-schedule-id>  =>   B<obj-id>

=begin html

<br>Default value of <b>mirror-schedule-id</b>.

=end html

=back



=over 2

=item * I<mirror-schedule-name>  =>   B<obj-name>

=begin html

<br>Default value of <b>mirror-schedule-name</b>.

=end html

=back



=over 2

=item * I<monthly-retention-count>  =>   B<integer>

=begin html

<br>Default value of <b>monthly-retention-count</b>.

=end html

=back



=over 2

=item * I<monthly-retention-duration>  =>   B<integer>

=begin html

<br>Default value of <b>monthly-retention-duration</b>.

=end html

=back



=over 2

=item * I<snapshot-schedule-id>  =>   B<obj-id>

=begin html

<br>Default value of <b>snapshot-schedule-id</b>.

=end html

=back



=over 2

=item * I<snapshot-schedule-name>  =>   B<obj-name>

=begin html

<br>Default value of <b>snapshot-schedule-name</b>.

=end html

=back



=over 2

=item * I<throttle-schedule-id>  =>   B<obj-id>

=begin html

<br>Default value of <b>throttle-schedule-id</b>.

=end html

=back



=over 2

=item * I<throttle-schedule-name>  =>   B<obj-name>

=begin html

<br>Default value of <b>throttle-schedule-name </b>.

=end html

=back



=over 2

=item * I<weekly-retention-count>  =>   B<integer>

=begin html

<br>Default value of <b>weekly-retention-count</b>.

=end html

=back



=over 2

=item * I<weekly-retention-duration>  =>   B<integer>

=begin html

<br>Default value of <b>weekly-retention-duration</b>.

=end html

=back



=head2 dp_policy_list_iter_end



=begin html

Terminate a list iteration that had been started by a call to <b>dp-policy-list-iter-start</b>. This informs the server that it may now release any resources associated with the temporary store for the list iteration. <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to <b>dp-policy-list-iter-start</b> that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_policy_list_iter_next



=begin html

Retrieve the next series of policies that are present in a list iteration created by a call to <b>dp-policy-list-iter-start</b>. The server maintains an internal cursor pointing to the last record returned. Subsequent calls to <b>dp-policy-list-iter-next</b> return the next <b>maximum</b> records after the cursor, or all the remaining records, whichever is fewer. <p> If a property is <b>present</b> for a particular node or connection (the presence or absence of each property is defined in its description), then it always appears in the output element for that node or connection from a call to <b>dp-policy-list-iter-next</b>. For example, the output <b>dp-policy-connection-info</b> element for a backup connection always contains a <b>backup-schedule-name</b>. <p> If a property is <b>absent</b> for a particular node or connection, then it never appears in the output element for that node or connection. For example, the output <b>dp-policy-connection-info</b> element for a mirror connection never contains a <b>backup-schedule-name</b>. <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. <LI> EOBJECTNOTFOUND - A schedule or throttle referenced by the policy could not be found. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of policies to return. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to <b>dp-policy-list-iter-start</b> that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * I<dp-policy-infos>  =>   B<L<"dp-policy-info">[]>

=begin html

<br>List of information about multiple DP policies.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=head2 dp_policy_list_iter_start



=begin html

Begin a list iteration over all content in all DP policies in the system. Optionally, you may iterate over the content of just a single policy. <p> After calling <b>dp-policy-list-iter-start</b>, you continue the iteration by calling <b>dp-policy-list-iter-next</b> zero or more times, followed by a call to <b>dp-policy-list-iter-end</b> to terminate the iteration. <HR> Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to read the specified policy. <LI> EOBJECTNOTFOUND - No policy was found that has the given name or ID. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<dp-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or ID of a DP policy. If specified, only this policy is listed. If not specified, then by default, all policies are listed.

=end html

=back



=over 2

=item * I<is-dr-capable>  =>   B<boolean, optional>

=begin html

<br>If present we filter the policies returned. If true, only list datasets which are disaster recovery capable. If false, only list datasets which are not disaster recovery capable.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items present in the list iteration. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used to identify the list iteration. The list content resides in a temporary store in the server.

=end html

=back



=head2 dp_policy_modify



=begin html

This ZAPI modifies a DP policy by completely replacing the policy's old content with new content specified by input element <b>dp-policy-content</b>. This ZAPI can only change a policy's name, description, and the properties of its nodes and most of the properties of it's connections. The connection property of is-dr-capable cannot be changed once a policy is created. This ZAPI also cannot change the topology (set of nodes and connections between nodes) of a policy; instead, the topology specified in <b>dp-policy-content</b> must match the policy's current topology. At present, there is no way to change the topology of a policy. <p> If a property is <b>absent</b> for a particular node or connection (the presence or absence of each property is defined in its description), then it is <b>illegal</b> for that property to appear in the input element for that node or connection in a call to <b>dp-policy-modify</b>. For example, it is illegal to specify a <b>backup-schedule-name</b> in a <b>dp-policy-connection</b> element for a mirror connection. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have privileges to modify the policy. <LI> EOBJECTNOTFOUND - The policy was already destroyed during this edit session. <LI> EPOLICYNOTMODIFIABLE - The policy is one of the samples created during installation, and therefore cannot be modified. <LI> EPOLICYTOPOLOGYCHANGED - The requested modification changes the topology of the policy. <LI> EINVALIDPOLICYPROPERTY - The requested modification would set a node or connection property to an invalid value. This includes the case when a property value was specified, but the property is not present for that node or connection. <LI> EOSSVCANTTAKESNAPSHOTS - A snapshot schedule is being set for the policy's root node, but the policy has been applied to a dataset whose root storage set contains OSSV directories. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<dp-policy-content>  =>   B<L<"dp-policy-content">>

=begin html

<br>New content for the policy. <p> The topology (set of nodes and connections between nodes) specified by this parameter must be the same as the current topology of the policy; otherwise, it is an error. In particular, you may not change the <b>id</b> of any connection or node. In addition, you may not change the <b>from-node-id</b> or <b>to-node-id</b> of any connection. <p> <b>All</b> properties of the nodes and connections are set precisely as specified by the <b>dp-policy-connections</b> and <b>dp-policy-nodes</b> elements of <b>dp-policy-content</b>. To leave the value of a property unchanged, its old value <b>must</b> be specified explicity. The only exception is that if the element that specifies the property's value is optional, and the old value of the property happens to be the same as the default value, then you may omit the specification of the old value to keep the old value.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by <b>dp-policy-edit-begin</b>.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_relationship_list_info_iter_end



=begin html

Ends iteration to list data protection relationships.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-relationship-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_relationship_list_info_iter_next



=begin html

Get next few records in the iteration started by dp-relationship-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous dp-relationship-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<dp-relationships>  =>   B<L<"dp-relationship-info">[]>

=begin html

<br>List of SnapVault and SnapMirror relationships.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1]

=end html

=back



=head2 dp_relationship_list_info_iter_start



=begin html

Starts iteration to list data protection relationships. These are SnapVault or SnapMirror relationships formed in order to implement data protection policy for a dataset. You can list relationships for a single policy connection or for a particular source or destination storage server.

=end html



B<Inputs>

=over 2

=item * I<connection-id>  =>   B<integer, optional>

=begin html

<br>Identifier of policy connection. If present, only list relationships protecting this connection of the data protection policy. If specified, dataset-name-or-id must also be specified. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of dataset. Relationships protecting any connection of this dataset are listed.

=end html

=back



=over 2

=item * I<destination-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the destination Qtree, Volume, Aggregate or Storage System. If not present, relationships to all destinations are listed.

=end html

=back



=over 2

=item * I<destination-type>  =>   B<relationship-endpoint-type, optional>

=begin html

<br>If present, list only relationships where the destination is of the specified type. If not present, list all relationships.

=end html

=back



=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, relationships which are marked as deleted in the database are also returned. Otherwise, deleted relationships are not returned.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>If present and true, only list relationships for which the source object has been marked as ignored for data protection. If present and false, only list relationships for which the source object has not been marked as ignored. If not present, list all relationships.

=end html

=back



=over 2

=item * I<is-dp-managed>  =>   B<boolean, optional>

=begin html

<br>If present and true, only list relationships which are to be managed by Protection Manager. If present and false, only list relationships which are not to be managed by Protection Manager. If not present, list all relationships.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean, optional>

=begin html

<br>If present and true, only list relationships which are in a dataset. If present and false, only list relationships for which are not in a dataset. If not present, list all relationships.

=end html

=back



=over 2

=item * I<is-migration-relationship>  =>   B<boolean, optional>

=begin html

<br>If true, only relationships created for migration are returned. If dataset-name-or-id is specified with this flag, the migration relationships for the members of that dataset will be returned along with the relationship of the root volume/qtree of the vFiler unit associated with the root node of the dataset. It is invalid to specify is-in-dataset or connection-id fields when is-migraton-relationship is true. If false or not present all relationships will be returned. Default value is false.

=end html

=back



=over 2

=item * I<operational-statuses>  =>   B<operational-status[], optional>

=begin html

<br>If specified, the relationships in any of these statuses are only returned.

=end html

=back



=over 2

=item * I<relationship-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of relationship to list. If unspecified, all relationships are listed.

=end html

=back



=over 2

=item * I<relationship-states>  =>   B<relationship-state[], optional>

=begin html

<br>If specified, the relationships in any of these states are only returned.

=end html

=back



=over 2

=item * I<relationship-type>  =>   B<relationship-type, optional>

=begin html

<br>If present, list only relationships of specified type. If not present, list all relationships.

=end html

=back



=over 2

=item * I<source-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the source Qtree, OSSV Directory, Volume, Aggregate, Storage System, or OSSV host. If not present, relationships from all sources are listed.

=end html

=back



=over 2

=item * I<source-or-destination-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of either a source or a destination object. If empty, all relationships are listed. The source or destination object must be either a Host, Aggregate, Volume, Qtree, OSSV Directory or DFM group.

=end html

=back



=over 2

=item * I<source-type>  =>   B<relationship-endpoint-type, optional>

=begin html

<br>If present, list only relationships where the source is of the specified type. If not present, list all relationships.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with dp-relationship-list-info-iter-next. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to dp-relationship-list-info-iter-next.

=end html

=back



=head2 dp_relationship_modify



=begin html

Modify settings of a SnapVault, Qtree SnapMirror or Volume SnapMirror relationship.

=end html



B<Inputs>

=over 2

=item * I<is-dp-imported>  =>   B<boolean, optional>

=begin html

<br>If present and true this relationship will be marked as imported but only if is-dp-managed is also present and true. It is an error for is-dp-imported to be true when is-dp-managed is not present or present and false. If is-dp-imported is present and false, clear the is-dp-imported flag reguardless of the is-dp-managed being present. If a relationship has the is-dp-imported flag set then the relationship will not be cleaned up after a containing dataset has been deleted unless the fully automatic cleanup mode is active.

=end html

=back



=over 2

=item * I<is-dp-managed>  =>   B<boolean, optional>

=begin html

<br>If present and true, set the is-dp-managed flag for this relationship. If present and false, clear the is-dp-managed flag for this relationship. If not present, is-dp-managed flag is not changed. <P> If a relationship has the is-dp-managed flag set, then Protection Manager is allowed to modify the relationship as necessary to make the relationship conform to a data protection policy. This includes modifying any settings or schedules of the relationship, or deleting the relationship if no longer needed. Protection Manager also has the responsibility of updating the relationship as necessary, either using its own schedules or setting an ONTAP schedule for this relationship. <P> If the is-dp-managed flag is clear, Protection Manager will not modify, update, or delete this relationship.

=end html

=back



=over 2

=item * I<relationship-id>  =>   B<obj-id>

=begin html

<br>Identifier of the relationships to be modified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_restore_to_new_path



=begin html

Start a restore operation on part of a dataset. This operation copies whole members or its sub-paths of the dataset from a specific backup version to a new location. The operation is performed in the background by a job. <HR> Error conditions: <UL> <LI> EOBJECTNOTFOUND - The dataset name or ID or one of the member name or ID was not found. <LI> EACCESSDENIED - The dataset exists, but the user invoking the API has no DFM.BackupManager.Restore or DFM.BackupManager.RestoreFromSecondary permission on the dataset or on any of the members, or DFM.BackupManager.Restore on the destination host. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDINPUT - The number of paths to restore was either 0 or more than 1000 or neither backup-id nor backup-version was specified. <LI> EINVALIDHOST - One of the specified destination hosts was not a valid restore destination. <LI> EDATABASEERROR - A database error occurred </UL>

=end html



B<Inputs>

=over 2

=item * I<backup-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the backup instance to restore from. If this parameter is specified, then backup-version is ignored. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp of the backup which should be restored from. If the backup-id is not specified, this parameter is required. A backup location that matches this version will be picked to do the restore from.

=end html

=back



=over 2

=item * I<check-overwrite>  =>   B<boolean, optional>

=begin html

<br>If true, checks if the member to be restored overwrites existing data on the destination. This flag cannot be used if the destination host is an OSSV or an ESX server. If it is used, an error is returned. It can be set to true only if the members to be restored are files. If the restore path has any members other than files, an error is returned. If false, goes ahead with the restore job without checking for overwrites at the destination. By default, it is false.

=end html

=back



=over 2

=item * I<check-space-status>  =>   B<boolean, optional>

=begin html

<br>If true, checks if there is enough space on the destination to restore the member. This flag cannot be used if the destination host is an OSSV or an ESX server. If it is used, an error is returned. It can be set to true only if the members to be restored are files. If the restore path has any members other than files, an error is returned. If the flag is not specified or set to false, goes ahead with the restore job without checking the space status at the destination. By default, it is false.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset to restore part of.

=end html

=back



=over 2

=item * I<members>  =>   B<L<"dp-recover-member-info">[]>

=begin html

<br>List of members and their path to recover within the dataset. Each member includes the new location to restore the data. The maximum number of members is 1000.

=end html

=back



=over 2

=item * I<migrate-relationship>  =>   B<boolean, optional>

=begin html

<br>Flag indicating whether to migrate the relationships. By default, the value is false.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Id of the job that handles the restore operation. It is returned only if "check-overwrite" and "check-space-status" are false. If either of them is set to true, the API only checks overwrites and/or space status and returns. The restore operation is not performed . <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<overwrite-results>  =>   B<L<"overwrite-result">[], optional>

=begin html

<br>Results of a check-overwrite. Each result will have information about the file that overwrites data on the destination. Returned if check-overwrite is true and if the file being restored might overwrite existing data. This element is not returned if there are no overwrites.

=end html

=back



=over 2

=item * I<space-status-results>  =>   B<L<"space-status-result">[], optional>

=begin html

<br>Results of check-space-status. Each result will have information about the destination volume. Returned if check-space-status is true and if the destination volume does not have enough space for enough space for the restore. Returned if check-space-status is true and if the destination volume does not have enough space for the restore. If the destination volume has enough space, this element is not returned.

=end html

=back



=head2 dp_restore_to_primary



=begin html

Start a restore operation on part of a dataset. This operation copies files and/or directories from a specific backup version back to the primary location. The operation is performed in the background by a job. <HR> Error conditions: <UL> <LI> EOBJECTNOTFOUND - The dataset name or ID or one of the member name or ID was not found. <LI> EACCESSDENIED - The dataset exists, but the user invoking the API has no DFM.BackupManager.Restore or DFM.BackupManager.RestoreFromSecondary permission on the dataset or on any of the members. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDINPUT - The number of paths to restore was either 0 or more than 1000 or neither backup-id nor backup-version was specified. <LI> EDATABASEERROR - A database error occured. <LI> ENDRESTORENOTPOSSIBLE - A partial qtree restore is requested for a dataset which requires a non disruptive restore. </UL>

=end html



B<Inputs>

=over 2

=item * I<backup-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the backup instance to restore from. If this parameter is specified, then backup-version is ignored. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp of the backup which should be restored from. If the backup-id is not specified, this parameter is required. A backup location that matches this version will be picked to do the restore from.

=end html

=back



=over 2

=item * I<check-overwrite>  =>   B<boolean, optional>

=begin html

<br>If true, checks if the member to be restored overwrites existing data on the destination. This flag cannot be used if the destination host is an OSSV or an ESX server. If it is used, an error is returned. It can be set to true only if the members to be restored are files. If the restore path has any members other than files, an error is returned. If false, goes ahead with the restore job without checking for overwrites at the destination. By default, it is false.

=end html

=back



=over 2

=item * I<check-space-status>  =>   B<boolean, optional>

=begin html

<br>If true, checks if there is enough space on the destination to restore the member. This flag cannot be used if the destination host is an OSSV or an ESX server. If it is used, an error is returned. It can be set to true only if the members to be restored are files. If the restore path has any members other than files, an error is returned. If the flag is not specified or set to false, goes ahead with the restore job without checking the space status at the destination. By default, it is false.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the dataset to restore part of.

=end html

=back



=over 2

=item * I<paths>  =>   B<L<"dp-path-info">[]>

=begin html

<br>List of paths to restore within the dataset. Each path can be a single file or a directory. The maximum number of paths is 1000.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Id of the job that handles the restore operation. It is returned only if "check-overwrite" and "check-space-status" are false. If either of them is set to true, the API only checks overwrites and/or space status and returns. The restore operation is not performed . <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<overwrite-results>  =>   B<L<"overwrite-result">[], optional>

=begin html

<br>Results of a check-overwrite. Each result will have information about the file that overwrites data on the destination. Returned if check-overwrite is true and if the file being restored might overwrite existing data. This element is not returned if there are no overwrites.

=end html

=back



=over 2

=item * I<space-status-results>  =>   B<L<"space-status-result">[], optional>

=begin html

<br>Results of check-space-status. Each result will have information about the destination volume. Returned if check-space-status is true and if the destination volume does not have enough space for enough space for the restore. Returned if check-space-status is true and if the destination volume does not have enough space for the restore. If the destination volume has enough space, this element is not returned.

=end html

=back



=head2 dp_restore_vi_start



=begin html

Start an operation to restore one or more objects in the virtual infrastructure. This API cannot be used to restore an entire dataset. <HR> Error conditions: <UL> <LI> EOBJECTNOTFOUND - The object name or ID was not found. <LI> EACCESSDENIED - The object exists, but the user invoking the API has no DFM.BackupManager.Restore or DFM.BackupManager.RestoreFromSecondary permission on the object. <LI> EAPPOBJECTNOTFOUNDINBACKUP - The object does not exist in the backup from which the user is attempting to restore. <LI> EAPPOBJECTNOTRESTORABLE - The object exists in the backup, but is not restorable. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDINPUT - The number of objects to restore was either 0 or more than 1000 or input parameters were either missing or incorrectly specified. <LI> EDATABASEERROR - A database error occurred. </UL>

=end html



B<Inputs>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>Identifier of the backup instance to restore from. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<dp-vi-restore-objects>  =>   B<L<"dp-vi-restore-object">[]>

=begin html

<br>List of objects to restore as well as per object restore settings.

=end html

=back



=over 2

=item * I<dp-vi-restore-settings>  =>   B<L<"dp-vi-restore-settings">, optional>

=begin html

<br>Operation level settings for the restore operation. If these settings are not provided, plugins will use their own default settings.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Id of the job that handles the restore operation for virtual objects. <BR> Range: [1..2^31-1]

=end html

=back



=head2 dp_schedule_content_get



=begin html

Get the content of a given schedule.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of the schedule

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">>

=begin html

<br>Details of a schedule

=end html

=back



=head2 dp_schedule_create



=begin html

Create a new schedule with the given name. The schedule type may be daily, weekly, or monthly.

=end html



B<Inputs>

=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">>

=begin html

<br>Details of a schedule

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-id>  =>   B<integer>

=begin html

<br>A unique ID of the schedule

=end html

=back



=head2 dp_schedule_daily_add



=begin html

Create a single snapshot within a daily schedule.

=end html



B<Inputs>

=over 2

=item * I<daily-content>  =>   B<L<"daily-info">>

=begin html

<br>Content of the daily schedule.

=end html

=back



=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the daily item within the schedule

=end html

=back



=head2 dp_schedule_daily_delete



=begin html

Delete a single snapshot within a daily schedule.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the daily item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_daily_modify



=begin html

Modify a single snapshot within a daily schedule. Sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<daily-content>  =>   B<L<"daily-info">>

=begin html

<br>Content of the daily schedule.

=end html

=back



=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_dependency



=begin html

Return a list of other DP policies and DP schedules using the specified DP schedule.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of a DP schedule.

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-assignees>  =>   B<L<"schedule-assignee">[]>

=begin html

<br>List of other DP polices and DP schedules using the specified DP schedule. The list excludes DP policies or DP schedules that the caller has no permissions to read.

=end html

=back



=over 2

=item * I<schedule-in-use>  =>   B<boolean>

=begin html

<br>True if the schedule is in use by other DP policies or DP schedules.

=end html

=back



=head2 dp_schedule_destroy



=begin html

Delete a schedule with the given name or ID. A schedule that is used by another schedule(s) may not be deleted and an error will be returned. Sample schedules cannot be destroyed.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of the schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_hourly_add



=begin html

Create an hourly schedule within a daily schedule. An hourly schedule specifies the frequency of snapshots to be run within the start time and end time.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<hourly-content>  =>   B<L<"hourly-info">>

=begin html

<br>Content of the hourly schedule.

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the hourly item within the schedule

=end html

=back



=head2 dp_schedule_hourly_delete



=begin html

Delete an hourly schedule within a daily schedule.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the hourly item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_hourly_modify



=begin html

Modify an hourly schedule within a daily schedule. Sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<hourly-content>  =>   B<L<"hourly-info">>

=begin html

<br>Content of the hourly schedule.

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_list



=begin html

List all existing schedule IDs and types.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<schedule-list>  =>   B<L<"schedule-id-info">[]>

=begin html

<br>List of schedule IDs

=end html

=back



=head2 dp_schedule_list_info_iter_end



=begin html

Tell the DFM station that the temporary store associated with the specified tag is no longer necessary

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_list_info_iter_next



=begin html

Iterate over the list of schedules stored in the temporary store. The DFM internally maintains a cursor pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>Maximum number of schedules to retrieve

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<schedule-content-list>  =>   B<L<"schedule-content-info">[]>

=begin html

<br>List of detailed schedule contents

=end html

=back



=head2 dp_schedule_list_info_iter_start



=begin html

The dp-dpschedule-list-info-iter-* set of APIs are used to retrieve a list of schedule contents

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or ID of the schedule. If specified, only this schedule is listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items saved for future retrieval

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 dp_schedule_modify



=begin html

Modify a schedule's details in the database. When the zapi is called, all details within the schedule will be removed and replace by the new details specified in schedule-content. Sample schedules cannot be modified. schedule-id and schedule-type cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">>

=begin html

<br>Details of a schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_monthly_add



=begin html

Specify a single snapshot within a monthly schedule. Either day-of-month, or both week-of-month and day-of-week must be specified.

=end html



B<Inputs>

=over 2

=item * I<monthly-content>  =>   B<L<"monthly-info">>

=begin html

<br>Content of the monthly schedule.

=end html

=back



=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the monthly item within the schedule

=end html

=back



=head2 dp_schedule_monthly_delete



=begin html

Delete a single snapshot within a monthly schedule

=end html



B<Inputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the monthly item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_monthly_modify



=begin html

Modify a single snapshot within a monthly schedule. Sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<monthly-content>  =>   B<L<"monthly-info">>

=begin html

<br>Content of the monthly schedule.

=end html

=back



=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a monthly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_monthly_subschedule_set



=begin html

Specify a sub-schedule to be used by a monthly schedule. On top of the individual monthly events, a monthly schedule may only have 1 daily subschedule OR 1 weekly schedule. If this monthly schedule already has a daily or weekly schedule, this command replaces the old one.

=end html



B<Inputs>

=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of the monthly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<subschedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of the schedule to be used by the monthly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_monthly_subschedule_unset



=begin html

Unset a sub-schedule used by a monthly schedule.

=end html



B<Inputs>

=over 2

=item * I<monthly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of the monthly schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_rename



=begin html

Rename a schedule. Sample schedules cannot be renamed.

=end html



B<Inputs>

=over 2

=item * I<new-schedule-name>  =>   B<string>

=begin html

<br>A new unique name of the schedule

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of the schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_weekly_add



=begin html

Specify a single snapshot within a weekly schedule.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-content>  =>   B<L<"weekly-info">>

=begin html

<br>Content of the weekly schedule.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly item within the schedule

=end html

=back



=head2 dp_schedule_weekly_delete



=begin html

Delete a single snapshot within a weekly schedule.

=end html



B<Inputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_weekly_modify



=begin html

Modify a single snapshot within a weekly schedule. Sample schedules canot be modified.

=end html



B<Inputs>

=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-content>  =>   B<L<"weekly-info">>

=begin html

<br>Content of the weekly schedule.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_weekly_subschedule_add



=begin html

Specify which daily schedule will be used on a certain range of days within a weekly schedule

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a daily schedule

=end html

=back



=over 2

=item * I<end-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the snapshot. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<start-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the snapshot. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly use item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=head2 dp_schedule_weekly_subschedule_delete



=begin html

Specify which daily schedule to be deleted within a weekly schedule

=end html



B<Inputs>

=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly use item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_schedule_weekly_subschedule_modify



=begin html

Specify which daily schedule will be used on a certain range of days within a weekly schedule. Permenent of sample schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<daily-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



=over 2

=item * I<end-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the snapshot. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer>

=begin html

<br>An ID of the weekly use item within the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. Default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<start-day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the snapshot. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<weekly-schedule-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of a weekly schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_throttle_create



=begin html

Create a throttle schedule

=end html



B<Inputs>

=over 2

=item * I<throttle-content>  =>   B<L<"throttle-content">>

=begin html

<br>Full content of a throttle schedule

=end html

=back



B<Outputs>

=over 2

=item * I<throttle-id>  =>   B<integer>

=begin html

<br>identifier of the throttle schedule Range: [1..(2^31)-1]

=end html

=back



=head2 dp_throttle_dependency



=begin html

Return a list of DP policies using the specified DP throttle.

=end html



B<Inputs>

=over 2

=item * I<throttle-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of a DP throttle.

=end html

=back



B<Outputs>

=over 2

=item * I<throttle-assignees>  =>   B<L<"throttle-assignee">[]>

=begin html

<br>List of other DP polices using the specified DP throttle. The list excludes DP policies that the caller has no permissions to read.

=end html

=back



=over 2

=item * I<throttle-in-use>  =>   B<boolean>

=begin html

<br>True if the throttle is in use by any DP policies.

=end html

=back



=head2 dp_throttle_destroy



=begin html

Delete a throttle item. Sample throttle schedules cannot be destroyed.

=end html



B<Inputs>

=over 2

=item * I<throttle-id>  =>   B<integer>

=begin html

<br>Identifier of the throttle item. Range: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_throttle_item_add



=begin html

Add a new throttle item to the throttle schedule

=end html



B<Inputs>

=over 2

=item * I<throttle-item-content>  =>   B<L<"throttle-item-info">>

=begin html

<br>Content of a throttle item

=end html

=back



=over 2

=item * I<throttle-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the throttle schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_throttle_item_delete



=begin html

Delete a throttle item from a throttle schedule

=end html



B<Inputs>

=over 2

=item * I<throttle-item-id>  =>   B<integer>

=begin html

<br>Identifier of the throttle item. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<throttle-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the throttle schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_throttle_list_info_iter_end



=begin html

Tell the DFM station that the temporary store associated with the specified tag is no longer necessary

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_throttle_list_info_iter_next



=begin html

Iterate over the list of throttle items stored in the temporary store. The DFM internally maintains a cursor pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>Maximum number of schedules to retrieve

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<throttle-list>  =>   B<L<"throttle-content">[]>

=begin html

<br>List of detailed throttle items

=end html

=back



=head2 dp_throttle_list_info_iter_start



=begin html

The dp-throttle-list-info-iter-* set of APIs are used to retrieve a list of throttle items

=end html



B<Inputs>

=over 2

=item * I<throttle-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or ID of the throttle schedule. If specified, only this throttle schedule is listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items saved for future retrieval

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 dp_throttle_modify



=begin html

Update a throttle item. When the zapi is called, all details within the throttle schedule will be removed and replace by the new details specified in throttle-content. Sample throttle schedules cannot be modified.

=end html



B<Inputs>

=over 2

=item * I<throttle-content>  =>   B<L<"throttle-content">>

=begin html

<br>Content of the throttle schedule to be modified

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dp_throttle_rename



=begin html

Rename a throttle schedule. Sample throttle schedules cannot be renamed.

=end html



B<Inputs>

=over 2

=item * I<new-throttle-name>  =>   B<string>

=begin html

<br>A new unique name of the throttle schedule

=end html

=back



=over 2

=item * I<throttle-name-or-id>  =>   B<string>

=begin html

<br>Name or ID of the throttle schedule

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 event_acknowledge



=begin html

Acknowledge events. This terminates repeated notifications due to that event.

=end html



B<Inputs>

=over 2

=item * I<event-id>  =>   B<integer, optional>

=begin html

<br>The identifier of the event that has to be acknowledged. Must specify either event-id or event-id-list not both. Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<event-id-list>  =>   B<event-id-type[], optional>

=begin html

<br>The event identifiers to be acknowledged. Must specify either event-id or event-id-list not both. Returns EINVALIDINPUT if neither or both arguments are included.

=end html

=back



B<Outputs>

=over 2

=item * I<event-acknowledged>  =>   B<integer, optional>

=begin html

<br>Timestamp when the event is acknowledged. This element is returned only in response to an event-id input. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<events-acknowledged-list>  =>   B<L<"event-action-info">[]>

=begin html

<br>List of timestamps for acknowledged events along with any errors. This array is returned only in response to an event-id-list input.

=end html

=back



=head2 event_delete



=begin html

Delete events. Terminates repeated notifications due to the event.

=end html



B<Inputs>

=over 2

=item * I<event-id>  =>   B<integer, optional>

=begin html

<br>The identifier of the event that has to be deleted. Must specify either event-id or event-id-list not both. Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<event-id-list>  =>   B<event-id-type[], optional>

=begin html

<br>The event identifiers to be deleted. Must specify either event-id or event-id-list, not both.

=end html

=back



B<Outputs>

=over 2

=item * I<event-deleted>  =>   B<integer, optional>

=begin html

<br>Timestamp when the event is deleted. This element is only returned in response to an event-id input. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<events-deleted-list>  =>   B<L<"event-action-info">[], optional>

=begin html

<br>Lists of timestamps for deleted ids along with any error returns. This array is returned only in response to an event-id-list input.

=end html

=back



=head2 event_generate



=begin html

The event-generate API helps clients to generate events in the DFM system

=end html



B<Inputs>

=over 2

=item * I<event-message>  =>   B<string, optional>

=begin html

<br>A message specific to this event. This message will be displayed in the Event Details page. If not specified, nothing will be shown in the condition field of Event Details page.

=end html

=back



=over 2

=item * I<event-name>  =>   B<string>

=begin html

<br>The event name that is being generated. Currently this can be only the event names corresponding to user-defined event added to DFM.

=end html

=back



=over 2

=item * I<source>  =>   B<string>

=begin html

<br>The id/name of the source object of the event. This is the object id/short name/long name DFM generates for an object. Suppose, for a host, a host id/name can be found by using the CLI "dfm host list".

=end html

=back



=over 2

=item * I<timestamp>  =>   B<integer, optional>

=begin html

<br>The date-time when the event is generated This is the number of seconds elapsed since midnight on January 1, 1970.(UTC) If not specified or invalid timestamp specified , the time on the DFM server when the api is invoked is used.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 event_list_iter_end



=begin html

event-list-iter-end is used to tell the DFM station that the temporary store used by DFM to support the event-list-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 event_list_iter_next



=begin html

The event-list-iter-next API is used to iterate over the list of events stored in the temporary store created by the event-list-iter-start API. The DFM station, internally, maintains a cursor pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of events to return.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify the temporary store created by event-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<events>  =>   B<L<"event-info">[]>

=begin html

<br>Array of events managed by DFM.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..(2^31)-1]

=end html

=back



=head2 event_list_iter_start



=begin html

List events. The event-list-iter-* set of APIs are used to retrieve the list of events. <P> The event-list-iter-start API is used to load the list of events into a temporary store. The API returns a tag to temporary store so that subsequent APIs can be used to iterate over the list in the temporary store. <P> Note that, depending on the input parameters, this API may take up to "timeout" seconds to return. Subsequent calls to event-list-iter-next() will return immediately.

=end html



B<Inputs>

=over 2

=item * I<event-application-list>  =>   B<event-application-type[], optional>

=begin html

<br>If given, specifies a list of event-applications which is used as a filter for events that are to be returned.

=end html

=back



=over 2

=item * I<event-id>  =>   B<integer, optional>

=begin html

<br>The 64-bit identifier of the event that has to be listed.

=end html

=back



=over 2

=item * I<event-severities>  =>   B<obj-status[], optional>

=begin html

<br>Lists events of the specified severities.

=end html

=back



=over 2

=item * I<event-source-id>  =>   B<integer, optional>

=begin html

<br>Lists events generated by the specified source. The event-source-id is a name or object identifier returned by other APIs. For example, the event-source-id could refer to a storage system (from group-member-list-iter-start) or dataset (from dataset-list-iter-start). If the event-source-id identifies a group, lists events for all sources in that group.

=end html

=back



=over 2

=item * I<event-type-filter-list>  =>   B<L<"event-type-filter">[], optional>

=begin html

<br>If specified, the list of event types (interpreted as prefixes) will filter which events are returned. Events not matching will not be returned. Default is empty, meaning that all event types match.

=end html

=back



=over 2

=item * I<greater-than-id>  =>   B<integer, optional>

=begin html

<br>If specified, the API will only return events whose identifier (unsigned 64-bit values) is greater than this value. Default is 0.

=end html

=back



=over 2

=item * I<include-dataset-resource-status-events>  =>   B<boolean, optional>

=begin html

<br>This input is considered only if event-source-id refers to a dataset. By default this is false. When this element is true, all events of resources associated with members of the dataset are returned. This helps in listing the set of events that constitutes the resource status of the dataset.

=end html

=back



=over 2

=item * I<include-deleted-objects>  =>   B<boolean, optional>

=begin html

<br>if TRUE, also lists events on objects which have been marked "deleted" in DFM's database. If FALSE, only list events generated on objects that have not been "deleted" from DFM's database. This field is ignored if event-source-id is set. Default is TRUE

=end html

=back



=over 2

=item * I<include-event-arguments>  =>   B<boolean, optional>

=begin html

<br>If present and true, include the event-arguments output element for each listed event. If not present, do not include event-arguments.

=end html

=back



=over 2

=item * I<include-related>  =>   B<boolean, optional>

=begin html

<br>if TRUE, include events of related objects that resolve from event-source-id. Would be ignored if event-source-id is not specified in the input. For e.g: if event-source-id is aggregate, all the events of the aggregate and its related Storage System, Volumes, qtrees, disks and luns shall be included.

=end html

=back



=over 2

=item * I<is-acknowledged>  =>   B<boolean, optional>

=begin html

<br>If TRUE, lists all acknowledged events. If FALSE, list all unacknowledged events. If this parameter is not specified, lists all events irrespective of their status. Default is empty.

=end html

=back



=over 2

=item * I<is-deleted>  =>   B<boolean, optional>

=begin html

<br>if TRUE, lists all events which have been marked "deleted" in DFM's database. Such events are not normally shown in event views. If FALSE, list all un-deleted events. If this parameter is not specified, lists all events irrespective of their deletion status. Default is empty.

=end html

=back



=over 2

=item * I<is-history>  =>   B<boolean, optional>

=begin html

<br>If TRUE, lists all events generated in DFM after it has been installed; otherwise, show only "current" events. Default is FALSE.

=end html

=back



=over 2

=item * I<is-most-severe-first>  =>   B<boolean, optional>

=begin html

<br>If TRUE, specifies that events should be returned in descending order of severity, then by timestamp. The default is FALSE, meaning that events are returned in order of timestamp only.

=end html

=back



=over 2

=item * I<is-oldest-first>  =>   B<boolean, optional>

=begin html

<br>If TRUE, specifies that events should be returned in ascending order of timestamp (that is, oldest events first). The default is FALSE, meaning that events are returned in descending order of timestamp (that is, newest events first).

=end html

=back



=over 2

=item * I<max-events>  =>   B<integer, optional>

=begin html

<br>If specified, this is the maximum number of events that the client wishes to receive at once. If set to zero, return all events. The default value of this parameter is 50,000. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the events based on the mode of event's source object. filter "cluster" indicates c-mode objects and "node" indicates 7-mode objects. If no filter is supplied, all events will be considered.

=end html

=back



=over 2

=item * I<time-range>  =>   B<L<"event-timestamp-range">, optional>

=begin html

<br>Lists all events which were generated in the range specified. Default is all events. time-out will be ignored if time-range is set.

=end html

=back



=over 2

=item * I<timeout>  =>   B<integer, optional>

=begin html

<br>Number of seconds after which the API should terminate, if no events are received matching the input criteria. If the value is 0, or not specified, the API will terminate immediately (acting as an instantaneous poll for events). <P> If the timeout expires with no matching events, the API returns successfully with an empty list of events. <P> If is-history or is-deleted is set to TRUE, or if a specific event-id is specified, or if event-source-id is specified to be 0, then the timeout value is ignored. <P> If time-range is set, timeout is also ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of events matching the specified input criteria. This is the number of records that will be returned by subsequent calls to event-list-iter-next().

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle you must pass to event-list-iter-next() and event-list-iter-end() to refer to this list of events.

=end html

=back



=head2 event_status_change_list_iter_end



=begin html

event-status-change-list-iter-end is used to tell the DFM station that the temporary store used by DFM to support the event-status-change-list-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 event_status_change_list_iter_next



=begin html

The event-status-change-list-iter-next API is used to iterate over the list of events stored in the temporary store created by the event-status-change-list-iter-start API. The DFM station, internally, maintains a cursor pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of events to return.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify the temporary store created by event-status-change-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<events>  =>   B<L<"event-info">[]>

=begin html

<br>Array of events managed by DFM.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..(2^31)-1]

=end html

=back



=head2 event_status_change_list_iter_start



=begin html

List events that had status changes (acknowledged or deleted) within the specified time range. <P> The event-status-change-list-iter-* set of APIs are used to retrieve the list of events that had status changes. <P> The event-status-change-list-iter-start API is used to load the list of events into a temporary store. The API returns a tag to temporary store so that subsequent APIs can be used to iterate over the list in the temporary store. <P> The returned list of events will be sorted according to when they had their status changed (either eventAcked timestamp or eventDeleted timestamp). An event that's both acked and deleted within the requested timeframe would appear twice in the returned list of events, because those would count as 2 status changes, and appear in the returned list based on acked timestamp and deleted timestamp respectively. <P> Note that, depending on the input parameters, this API may take up to "timeout" seconds to return. Subsequent calls to event-status-change-list-iter-next() will return immediately.

=end html



B<Inputs>

=over 2

=item * I<max-events>  =>   B<integer, optional>

=begin html

<br>If specified, this is the maximum number of events that the client wishes to receive at once. If set to zero, return all events. The default value of this parameter is 50,000. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<time-range>  =>   B<L<"event-timestamp-range">>

=begin html

<br>Lists all events which were generated in the range specified. <P> If the end-time of the time-range is sometime in the future, time-out will be ignored.

=end html

=back



=over 2

=item * I<timeout>  =>   B<integer, optional>

=begin html

<br>Number of seconds after which the API should terminate, if no events are received matching the input criteria. If the value is 0, or not specified, the API will terminate immediately (acting as an instantaneous poll for events). <P> If the timeout expires with no matching events, the API returns successfully with an empty list of events.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of events matching the specified input criteria. This is the number of records that will be returned by subsequent calls to event-status-change-list-iter-next().

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle you must pass to event-status-change-list-iter-next() and event-status-change-list-iter-end() to refer to this list of events.

=end html

=back



=head2 eventclass_add_custom



=begin html

Supports adding custom event classes.

=end html



B<Inputs>

=over 2

=item * I<about-message>  =>   B<string>

=begin html

<br>Custom event class description.

=end html

=back



=over 2

=item * I<event-class-name>  =>   B<string>

=begin html

<br>Custom event class name.

=end html

=back



=over 2

=item * I<event-names>  =>   B<L<"event-name-info">[]>

=begin html

<br>List of event names for this event class.

=end html

=back



=over 2

=item * I<event-namespace-name>  =>   B<string>

=begin html

<br>Namespace in which the event types are defined

=end html

=back



=over 2

=item * I<is-allow-duplicates>  =>   B<boolean, optional>

=begin html

<br>Event service will not drop duplicate events of this event class if is-allow-duplicates is true. Event is duplicate if it has same event-name as previous event with same event-class and the same event-source. It is false by default. If an invalid value is provided, it will be considered as true.

=end html

=back



=over 2

=item * I<is-multi-current>  =>   B<boolean, optional>

=begin html

<br>Event service should keep multiple current events of this event class for each event-source. Valid only with is-allow-duplicates. It is false by default. If an invalid value is provided, it will be considered as true.

=end html

=back



B<Outputs>

=over 2

=item * I<event-class-id>  =>   B<integer>

=begin html

<br>Unique Id for the custom event class.

=end html

=back



=head2 eventclass_delete_custom



=begin html

Supports deletion of custom event classes.

=end html



B<Inputs>

=over 2

=item * I<event-class-name>  =>   B<string>

=begin html

<br>Custom event class name or its database identifier.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 eventclass_list



=begin html

Lists all or a sub-set of the custom event classes.

=end html



B<Inputs>

=over 2

=item * I<event-class-objects>  =>   B<L<"event-class-object">[], optional>

=begin html

<br>List of custom event classes to be listed. If nothing is specified, all custom event classes are listed.

=end html

=back



B<Outputs>

=over 2

=item * I<event-classes>  =>   B<L<"event-class-info">[]>

=begin html

<br>List of custom event classes.

=end html

=back



=head2 eventclass_list_iter_end



=begin html

The eventclass-list-iter-* set of APIs are used to retrieve the list of event classes. eventclass-list-iter-end is used to tell the DFM station that the temporary store used by DFM to support the eventclass-list-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 eventclass_list_iter_next



=begin html

For more documentation please check eventclass-list-iter-start. The eventclass-list-iter-next API is used to iterate over the members of the event classes stored in the temporary store created by the eventclass-list-iter-start API.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous eventclass-list-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by eventclass-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<event-classes>  =>   B<L<"event-class-info">[]>

=begin html

<br>List of event classes.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned as a result of invoking this API.

=end html

=back



=head2 eventclass_list_iter_start



=begin html

The eventclass-list-iter-* set of APIs are used to retrieve the list of event classes in DFM. The eventclass-list-iter-start API is used to load the list of event classes 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 event classes in the temporary store. If eventclass-list-iter-start is invoked twice, then two distinct temporary stores are created.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with eventclass-list-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to eventclass-list-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 fcp_target_list_info_iter_end



=begin html

Ends iteration of targets.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous fcp-target-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 fcp_target_list_info_iter_next



=begin html

Get next set of records in the iteration started by call to fcp-target-list-info-iter-start. This zapi will fetch the fcp target info records. The input param 'maximum' specifies the number of records it will show at a time.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>Maximum records to retrieve. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous fcp-target-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Value of 0 records indicates that end of records. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<targets>  =>   B<L<"target-info">[]>

=begin html

<br>List of targets.

=end html

=back



=head2 fcp_target_list_info_iter_start



=begin html

Start iteration of targets.Depending on the input it will return a tag and the number of records to be retrieved.

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or Id of the following objects. <UL> <LI> FCPTarget <LI> Storage System </UL> If Storage System name or Id is specified only the FCP targets discovered on the Storage System are returned. <BR> The name of the FCP target should be specified in <Storage System>:<target name> format. Ex: storage01:0c_2 If no object-name-or-id is present in the input all the fcp targets will be fetched.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records fetched and stored for retrieval using fcp-target-list-info-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent calls.

=end html

=back



=head2 graph_data_list_info



=begin html

Retrieve data of all the graph lines of a graph.

=end html



B<Inputs>

=over 2

=item * I<end-date>  =>   B<integer, optional>

=begin html

<br>The number of seconds in the future that the graph should end. The graph values from the current time till the end-date will be extrapolated and used for trending. Use a negative value if the graph should stop in the past.

=end html

=back



=over 2

=item * I<graph-name>  =>   B<string>

=begin html

<br>Name of the graph. Maximum length: 64 characters.

=end html

=back



=over 2

=item * I<graph-period>  =>   B<string, optional>

=begin html

<br>The period for which graph data has to be returned. This returns consolidated graph data depending on the graph period. Possible values: <ul> <li> '1d' - graph data for 1 day. <li> '1w' - graph data for 1 week. <li> '1m' - graph data for 1 month. <li> '3m' - graph data for 3 months. <li> '1y' - graph data for 1 year. </ul> Default value is '1d'. The default value of start-date will be the same as the graph period specified. The default values of end-date will be as follows: <ul> <li> 3 hours for graph period '1d'. <li> 1 day for graph period '1w'. <li> 4 days for graph period '1m'. <li> 7 days for graph period '3m'. <li> 31 days for graph period '1y'. </ul>

=end html

=back



=over 2

=item * I<primary-object>  =>   B<obj-name-or-id, optional>

=begin html

<br>The primary object for which the graph data is returned. If not specified then global group is considered.

=end html

=back



=over 2

=item * I<secondary-object>  =>   B<obj-name-or-id, optional>

=begin html

<br>This object is valid only if the primary object is a quota user and should be a volume or a qtree.The primary and secondary object together represent a single quota object. If not specified, - its ignored only if the primary object is not a quota user. - if the primary object is a quota user then the ZAPI will fail with errors. Used in graphs like user-disk-space-used-vs-total, user-disk-space-used-percent.

=end html

=back



=over 2

=item * I<start-date>  =>   B<integer, optional>

=begin html

<br>The number of seconds in the past that the graph should start.

=end html

=back



B<Outputs>

=over 2

=item * I<graph-line-values>  =>   B<L<"graph-line-value-info">[]>

=begin html

<br>Data for various lines in a graph.

=end html

=back



=head2 graph_list_info_iter_end



=begin html

Terminate a graph list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 graph_list_info_iter_next



=begin html

Returns items from a previous call to graph-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<graphs>  =>   B<L<"graph-info">[]>

=begin html

<br>A list of graphs.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=head2 graph_list_info_iter_start



=begin html

Initiates a query for a list of graphs and its metadata like graph lines and sample information.

=end html



B<Inputs>

=over 2

=item * I<graph-name>  =>   B<string, optional>

=begin html

<br>Name of the graph. If not specified then all the graphs are returned. Maximum length: 64 characters.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with graph-list-info-iter-next. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store. Used in subsequent calls to graph-list-info-iter-next or graph-list-info-iter-end.

=end html

=back



=head2 group_add_member



=begin html

Add a member to a group. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDMEMBER - The proposed member object is not a groupable object type. The error message indicates which object. <LI> EMEMBERALREADYINGROUP - The proposed new member is already in the group. <LI> EMEMBERNAMEAMBIGUOUS - The proposed member name could refer to 2 or more objects. <LI> EOBJECTNOTFOUND - The proposed member name or ID was not found. <LI> EACCESSDENIED - The user does not have the capability to add members to the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



=over 2

=item * I<member-name-or-id>  =>   B<object-name-or-id>

=begin html

<br>Name or ID of a member to add to the group.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_copy



=begin html

Copy the group and all of its subgroups under a new parent group. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EGROUPEXISTS - An attempt was made to create a new group with the same name as an already existing group. Try again with a different name. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINVALIDGROUPNAME - The proposed group name was not valid. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI EGROUPCOPYERROR - An attempt was made to copy a group under itself, or under one of its sub-group or some other configuration error occured. <LI> EPARENTGROUPDOESNOTEXIST - The parent group name or ID was not found. <LI> EPARENTGROUPNAMEAMBIGUOUS - The specified parent group name could refer to 2 or more groups. Try again with a parent group ID or a fully qualified parent group name. <LI> EACCESSDENIED - The user does not have the capability to copy the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



=over 2

=item * I<new-group-name>  =>   B<string, optional>

=begin html

<br>Group will be copied under the new parent group with this name. Groups may contain any printable ASCII character except slash characters. The maximum name length is 64 characters. Group name cannot be "global" or "all" or fully numeric.

=end html

=back



=over 2

=item * I<parent-group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of the new parent group. If a group name is specified, it must be fully qualified.

=end html

=back



B<Outputs>

=over 2

=item * I<group-id>  =>   B<integer>

=begin html

<br>ID of the newly created copy. <BR> Range: [1..2^31-1]

=end html

=back



=head2 group_create



=begin html

Create a new group. <HR> Error conditions: <UL> <LI> EGROUPEXISTS - An attempt was made to create a new group with the same name as an already existing group. Try again with a different name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDGROUPNAME - The proposed group name was not valid. <LI> EPARENTGROUPDOESNOTEXIST - The parent group name or ID was not found. <LI> EPARENTGROUPNAMEAMBIGUOUS - The specified parent group name could refer to 2 or more groups. Try again with a parent group ID or a fully qualified parent group name. <LI> EACCESSDENIED - The user does not have the capability to create the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name>  =>   B<string>

=begin html

<br>Name of the new group. Groups may contain any printable ASCII character except slash characters. The maximum name length is 64 characters. Group name cannot be "all" or "global" or fully numeric.

=end html

=back



=over 2

=item * I<parent-group-name-or-id>  =>   B<group-name-or-id, optional>

=begin html

<br>Name or ID of the parent group. If this value is not specified, a new top-level group is created. If a group name is specified, it must be fully qualified.

=end html

=back



B<Outputs>

=over 2

=item * I<group-id>  =>   B<integer>

=begin html

<br>ID of the newly created group. <BR> Range: [1..2^31-1]

=end html

=back



=head2 group_delete_member



=begin html

Remove one member from a group. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EMEMBERNOTINGROUP - The object specified is not a member in the group. <LI> EOBJECTNOTFOUND - The object specified was not found. <LI> EACCESSDENIED - The user does not have the capability to delete members from the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



=over 2

=item * I<member-name-or-id>  =>   B<object-name-or-id>

=begin html

<br>Name or ID of a member to remove from the group.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_destroy



=begin html

Destroy an existing group. Child groups are destroyed recursively. If there is any error, then no groups are destroyed. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EACCESSDENIED - The user does not have the capability to destroy the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group to be destroyed. If a group name is specified, it must be fully qualified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_get_options



=begin html

Get the options for a group. Option values that are not present indicate that the option is using the global default. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EACCESSDENIED - The user does not have the capability to read options of the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



B<Outputs>

=over 2

=item * I<group-option-info>  =>   B<L<"group-option-info">>

=begin html

<br>null

=end html

=back



=head2 group_get_status



=begin html

Get the status of the group <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EACCESSDENIED - The user does not have the capability to get the status of the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



B<Outputs>

=over 2

=item * I<group-status>  =>   B<obj-status>

=begin html

<br>Current status of the group.

=end html

=back



=head2 group_is_member_of



=begin html

Checks if the object associated with the object-id input is a member of the group. This includes both direct and indirect membership. If a group id of 0 is passed, this will always return true as long as the object is a valid object. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EMEMBERNAMEAMBIGUOUS - The proposed member name could refer to 2 or more objects. <LI> EOBJECTNOTFOUND - The object specified was not found. <LI> EACCESSDENIED - The user does not have the capability to read from the database. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<object-name-or-id>

=begin html

<br>Name or ID of the object we want to determine if it is a member of the group.

=end html

=back



B<Outputs>

=over 2

=item * I<is-member>  =>   B<boolean>

=begin html

<br>Returns true if the object associated with the object-id is a direct or indirect member of the group.

=end html

=back



=head2 group_list_iter_end



=begin html

The group-list-iter-* set of APIs are used to retrieve the members of the DFM global group. group-list-iter-end is used to tell the DFM station that the temporary store used by DFM to support the group-list-iter-next API for the particular tag is no longer necessary. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_list_iter_next



=begin html

For more documentation please check group-list-iter-start. The group-list-iter-next API is used to iterate over the members of the group stored in the temporary store created by the group-list-iter-start API. <HR> Error conditions: <UL> <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDTAG - The iterator tag specified is not valid. Restart the iteration operation to obtain a new valid tag. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous group-list-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by group-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<group-list>  =>   B<L<"group-info">[]>

=begin html

<br>An array of group-info that describes each group.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned as a result of invoking this API. <BR> Range: [1..2^31-1]

=end html

=back



=head2 group_list_iter_start



=begin html

The group-list-iter-* set of APIs are used to retrieve the list of DFM groups. By default, a group is listed if the user has DFM.Database.Read capability on the group or if the user has DFM.Database.Read capability on any subgroup of the group. <BR> If rbac-operation is present in the input, then a group is listed, if the authenticated user has the requested capability on that group or if the user has the required capability on any of its sub-groups. In that case, has-privilege output will be false for the parent group and true for the sub-group. <BR> The group-list-iter-start API is used to load the list of groups 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 groups in the temporary store. <BR> If group-list-iter-start is invoked twice, then two distinct temporary stores are created. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - Specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EACCESSDENIED - The user does not have DFM.Database.Read or if rbac-operation is specified, the user does nat have the requested capability on the specified group. <LI> EDATABASEERROR - A database error occured. <LI> ENOTFOUNDOPERATION - If the input element rbac-operation is not a valid RBAC operation name. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id, optional>

=begin html

<br>If specified, only the specified group and its immediate children are returned.

=end html

=back



=over 2

=item * I<list-subgroups>  =>   B<boolean, optional>

=begin html

<br>If TRUE, lists all the subgroups recursively. If group-name-or-id is specified, then all its subgroups are listed recursively. If FALSE, only top level groups are listed. If group-name-or-id is specified, then the immediate children groups of the group are listed. Default value is false.

=end html

=back



=over 2

=item * I<rbac-operation>  =>   B<string, optional>

=begin html

<br>Name of an RBAC operation. If specified, only return resource groups for which the authenticated administrator has the required capability and DFM.Database.Read. Default value is DFM.Database.Read. This can be up to 255 characters long. <p> The parameter is of the form: Application.Category.TypeOfAccess. For example: "DFM.Database.Read" or "DFM.Database.Write".

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with group-list-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to group-list-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 group_move



=begin html

Move the group under a new parent group. The id of the group does not change after the move. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EGROUPEXISTS - An attempt was made to create a new group with the same name as an already existing group. Try again with a different name. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINVALIDGROUPNAME - The proposed group name was not valid. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI EGROUPMOVEERROR - An attempt was made to copy a group under itself, or under one of its sub-group or some other configuration error occured. <LI> EPARENTGROUPDOESNOTEXIST - The parent group name or ID was not found. <LI> EPARENTGROUPNAMEAMBIGUOUS - The specified parent group name could refer to 2 or more groups. Try again with a parent group ID or a fully qualified parent group name. <LI> EACCESSDENIED - The user does not have the capability to move the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



=over 2

=item * I<new-group-name>  =>   B<string, optional>

=begin html

<br>Group will be moved under the new parent group with this name. Groups may contain any printable ASCII character except slash characters. The maximum name length is 64 characters. Group name cannot be "global" or "all" or fully numeric.

=end html

=back



=over 2

=item * I<parent-group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of the new parent group. If a group name is specified, it must be fully qualified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_rename



=begin html

Change the name of a group. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EGROUPEXISTS - An attempt was made to create a new group with the same name as an already existing group. Try again with a different name. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDGROUPNAME - The proposed group name was not valid. <LI> EACCESSDENIED - The user does not have the capability to rename the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



=over 2

=item * I<new-group-name>  =>   B<string>

=begin html

<br>New name of the group. Groups may contain any printable ASCII character except slash characters. The maximum name length is 64 characters. Group name cannot be "all" or "global" or fully numeric.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_set_options



=begin html

Change one or more options for a group. Only options that are specified will be updated. The remaining options will retain their current values. If there is any error, then no options are changed. <HR> Error conditions: <UL> <LI> EGROUPDOESNOTEXIST - The group name or ID was not found. <LI> EOBJECTAMBIGUOUS - The specified group name could refer to 2 or more groups. Try again with a group ID or a fully qualified group name. <LI> EINTERNALERROR - An error occurred while processing the request. Try again later. <LI> EINVALIDINPUT - Invalid value for one of the options was specified. <LI> EACCESSDENIED - The user does not have the capability to set options for the group. <LI> EDATABASEERROR - A database error occured. </UL>

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<group-name-or-id>

=begin html

<br>Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html

=back



=over 2

=item * I<group-option-info>  =>   B<L<"group-option-info">>

=begin html

<br>New option values for this group.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_member_list_iter_end



=begin html

See group-member-list-iter-start for more information. Frees up the resources used by previous call to group-member-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag returned by the call to group-member-list-iter-start

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 group_member_list_iter_next



=begin html

See group-member-list-iter-start for more information. The group-list-iter-next API is used to iterate over the members of the group stored in the temporary store created by the group-list-iter-start API. The DFM station, internally, maintains a cursor pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to be returned from the temporary store.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous group-member-list-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by group-member-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<group-member-list>  =>   B<L<"group-member-info">[]>

=begin html

<br>A record in the temporary store describing a group member. A group member is a DFM object

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of entries actually returned as a result of invoking this API.

=end html

=back



=head2 group_member_list_iter_start



=begin html

DFM has an object that is known as the "group" that contains other DFM objects. Group may also have subgroups. The group-member-list-* APIs are used to retrieve the members of particular groups. These APIs can be used to retrieve either all members or particular type of members of groups. These APIs don't return the subgroups. Use group-list-iter-start to get a list of subgroups. The group-member-list-iter-start API is used to load the group members into a temporary store. Subsequent group-member-list-iter-next invocations iterate over the records in the temporary store. The group-member-list-iter-end API is used to release the temporary store. If group-member-list-iter-start is invoked twice, then the DFM station will create two different temporary stores that can be accessed using the different tags. When this API is invoked without specifying any groups, type parameter must be specified. In that case, API lists all the objects of specified type that are known to DFM. Those objects may or may not be members of any group. If you specify groups when invoking this API, type parameter is optional. API lists all the objects (optionally, of the specified type) that have been directly added to the specified groups.

=end html



B<Inputs>

=over 2

=item * I<groups>  =>   B<group[], optional>

=begin html

<br>A list of group names. If no groups are specified, all the DFM objects of the specified type are listed. You must specify either groups or type or both.

=end html

=back



=over 2

=item * I<hide-subgroup-members>  =>   B<boolean, optional>

=begin html

<br>If TRUE, omits members of the subgroups. Otherwise, members of subgroups are also listed.

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<type>  =>   B<string, optional>

=begin html

<br>The type of the members to be listed. Possible values include Cluster, Filer, Agent, Cache, OSSV Host, vFiler, vserver, Volume, Qtree, Configuration, Initiator Group, Lun Path, FCP Target, FCP Initiator, SRM Path, Aggregate, Resource Pool, Dataset, App Object, Host Service. If not specified, all the group members are listed. You must specify either groups or type or both.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with group-member-list-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to group-member-list-iter-next.

=end html

=back



=head2 host_add



=begin html

Add new managed host to the DataFabric Manager. The host being added must be a storage system or an host agent. DFM figures out what type of host we're adding. If it's a storage system or NetCache or FC Switch, we add it to the database and set the appliance-id. If it's a host agent, we add the agent to the database and set the agent-id. On return, only one of the appliance-id or agent-id will be set.

=end html



B<Inputs>

=over 2

=item * I<add-network>  =>   B<boolean, optional>

=begin html

<br>Indicates if DFM should start monitoring the network in which new host resides. Default is false.

=end html

=back



=over 2

=item * I<admin-port>  =>   B<integer, optional>

=begin html

<br>The port to use to try to access a host agent. Range: [1..65535]

=end html

=back



=over 2

=item * I<block-cmode>  =>   B<boolean, optional>

=begin html

<br>Indicates if DFM should block adding c-mode hosts. Default is false.

=end html

=back



=over 2

=item * I<host-name-or-id>  =>   B<string>

=begin html

<br>Name, dfm id, or IP address of the host to be added. Value can be a DFM * object name (maximum 255 characters), a fully qualified domain name (FQDN)(maximum 255 characters), or the ip address. If the value is a DFM object name for a host object with a deletion flag, the deletion flag is removed. <p> Length: [0..255]

=end html

=back



B<Outputs>

=over 2

=item * I<agent-id>  =>   B<host-id, optional>

=begin html

<br>Identifier of the newly added host agent.

=end html

=back



=over 2

=item * I<appliance-id>  =>   B<host-id, optional>

=begin html

<br>Identifier of the newly added storage system or NetCache or FC Switch.

=end html

=back



=over 2

=item * I<host-address>  =>   B<string, optional>

=begin html

<br>IP address for the host. Length: [0..39]

=end html

=back



=head2 host_add_license



=begin html

Add a license to a host. Host must be a storage system. Host must already be present in DFM's database and root login and password for the host must be set in DFM. The DFM will check the list of licenses on the host and update the database when the following types of licenses are changed: <ul> <li> Snapvault primary (sv_ontap_pri) <li> Snapvault secondary (sv_ontap_sec) <li> Unix primary (sv_unix_pri) <li> Linux primary (sv_linux_pri) <li> Windows primary (sv_windows_pri) <li> Snapmirror (snapmirror) <li> Synchronous snapmirror (snapmirror_sync) <li> Windows OFM primary (sv_windows_ofm_pri) <li> Nearstore (nearstore_option) <li> NFS (nfs) <li> CIFS (cifs) <li> iSCSI (iscsi) <li> MultiStore (vfiler) <li> FCP (fcp) <li> ASIS (a_sis) </ul> If the license is already in use by another host and is not a site license, then the ZAPI will apply the license to the host, and then return with error code ELICENSEINUSE. The ELICENSEINUSE error will not be returned if the optional parameter suppress-inuse-error is true. The ELICENSEINUSE error will not prevent the license from being applied to the host, since it is not the role of the DFM to prevent the user from installing duplicate licenses. The storage system must be running a minimum ONTAP version of 6.5.6.

=end html



B<Inputs>

=over 2

=item * I<host-license>  =>   B<string>

=begin html

<br>License to be installed on storage system.

=end html

=back



=over 2

=item * I<host-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>The host to receive the license.

=end html

=back



=over 2

=item * I<suppress-inuse-error>  =>   B<boolean, optional>

=begin html

<br>If true, suppresses the ELICENSEINUSE error. Defaults to false.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_add_ossv



=begin html

Add new managed ossv host to the DataFabric Manager. If there is an ossv agent running on the host, we add the ossv agent to the database as a snapvault primary and set the ossv-id.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<string>

=begin html

<br>Name or IP address of the host to be added or the DFM object id of a previously deleted OSSV agent. When adding a new OSSV agent, the value can be a valid DFM object name (maximum 255 characters), a fully qualified domain name (FQDN)(maximum 255 characters), or the IPv4 address. When adding a previously deleted OSSV agent, the id must be the ID of the deleted OSSV agent, not the id of host agent on the same client system Length: [0..255]

=end html

=back



=over 2

=item * I<ndmp-credentials>  =>   B<L<"full-ndmp-credentials">, optional>

=begin html

<br>The ndmp credentials we should try to use to connect to the ossv host we're trying to add.

=end html

=back



B<Outputs>

=over 2

=item * I<host-address>  =>   B<string, optional>

=begin html

<br>IP address for the host. Length: [0..39]

=end html

=back



=over 2

=item * I<ossv-id>  =>   B<host-id, optional>

=begin html

<br>Identifier of the newly added ossv agent.

=end html

=back



=head2 host_agent_ossv_service_start



=begin html

Start the OSSV service on the host agent using the ossv ZAPI. DFM must have valid credentials for the Host Agent. The Host Agent and OSSV Agent must be installed on the host. Valid only for Host Agents. DFM will wait up to the time allowed in the timeout argument to make sure the requested service state was reached. If the timeout is exceeded, we return ESERVICESTATEUNKNOWN.

=end html



B<Inputs>

=over 2

=item * I<agent-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>The name or id of the agent host to start/stop the ossv service on.

=end html

=back



=over 2

=item * I<timeout>  =>   B<integer, optional>

=begin html

<br>Number of seconds to wait for ossv service to start/stop. Range: [1..100]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_agent_ossv_service_stop



=begin html

Stop the OSSV service on the host agent using the ossv ZAPI. DFM must have valid credentials for the Host Agent. The Host Agent and OSSV Agent must be installed on the host. Valid only for Host Agents. DFM will wait up to the time allowed in the timeout argument to make sure the requested service state was reached. If the timeout is exceeded, we return ESERVICESTATEUNKNOWN.

=end html



B<Inputs>

=over 2

=item * I<agent-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>The name or id of the agent host to start/stop the ossv service on.

=end html

=back



=over 2

=item * I<timeout>  =>   B<integer, optional>

=begin html

<br>Number of seconds to wait for ossv service to start/stop. Range: [1..100]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_capability_list_iter_end



=begin html

Terminates a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-capability-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_capability_list_iter_next



=begin html

Returns items from a previous call to host-capability-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-capability-list-iter-start-call.

=end html

=back



B<Outputs>

=over 2

=item * I<capabilities>  =>   B<capability[]>

=begin html

<br>List of capabilities on the host.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 host_capability_list_iter_start



=begin html

Initiates a query for a list of allowed capabilities on host. This is applicable for hosts running ONTAP versions 7.0 and above.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the host to list the capabilities for. Only storage systems and vFiler units are allowed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with host-capability-list-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to host-capability-list-iter-next or host-capability-list-iter-end.

=end html

=back



=head2 host_create_ndmpuser



=begin html

Create an NDMP user on the host, creating the user account if necessary and storing the host-encrypted password on dfm. If the user exists already, we generate the encrypted NDMP password for them on the storage system and store that in the database. If it is a new user on the storage system, we will create a new unencrypted password for the caller and use that to generate the encrypted NDMP password which we will then store in the database. If the user is root, we will just use root's unencrypted password as the NDMP password since the encryption requirement does not apply to the root user. New non-root users will be added to the "Backup Administrators" group. Valid only for storage systems.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>The host to create the NDMP user on.

=end html

=back



=over 2

=item * I<ndmp-username>  =>   B<ndmp-username>

=begin html

<br>NDMP user name.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_delete



=begin html

Deletes a host. A host cannot be deleted in the following cases: <UL> <LI> Controllers that belong to a cluster cannot be deleted individually. In this case, ECANNOTDELETECLUSTERNODEHOST will be returned. <LI> Cannot delete agent if it is in use by ossv or has SRM paths. In this case, EHOSTINUSE will be returned. The agent can be forcefully deleted, if ignore-host-in-use is set to true. </UL> A successful deletion of a host will have the following impacts: <UL> <LI> Resource Pools and Resource Groups containing the host will be updated based on its removal. <LI> All monitored objects contained by the host will be removed. <LI> Monitoring of the host will be stopped. <LI> Datasets resources containing the host will be removed based on host removal. This may affect dataset conformance status. <LI> If deleting an agent that is used by ossv, ossv stop/start capability will be disabled. <LI> If deleting an agent that is used by SRM paths, SRM monitoring will be disabled. </UL>

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of a host. Host can be one of the following: filer, vfiler, cluster, vserver, agent, ossv, switch

=end html

=back



=over 2

=item * I<ignore-host-in-use>  =>   B<boolean, optional>

=begin html

<br>Default is false. This flag is applicable only when the deleted host is of type agent. This flag controls whether an EHOSTINUSE error is returned to caller when the deleted agent is used by ossv or has SRM Paths. When this flag is set to true, agent is forcefully deleted regardless of its usage state.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_domainuser_add



=begin html

Adds a domain user on the host. This is applicable for hosts running ONTAP versions 7.0 and above.

=end html



B<Inputs>

=over 2

=item * I<host-domainuser-name-or-id-or-sid>  =>   B<domainuser-name-or-id-or-sid>

=begin html

<br>Name or id or SID of domain user.

=end html

=back



=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of the host on which the domain user is to be added. Only storage systems and vFiler units are allowed.

=end html

=back



=over 2

=item * I<host-usergroup-names-or-ids>  =>   B<host-usergroup-name-or-id[]>

=begin html

<br>List of ids or names of usergroups to which the domain user has to be added.

=end html

=back



B<Outputs>

=over 2

=item * I<host-domainuser-id>  =>   B<access-object-id>

=begin html

<br>Identifier of the domain user added to usergroup(s) on host.

=end html

=back



=head2 host_domainuser_list_iter_end



=begin html

Terminates a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-domainuser-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_domainuser_list_iter_next



=begin html

Returns items from a previous call to host-domainuser-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-domainuser-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<host-domainusers>  =>   B<L<"host-domainuser-info">[]>

=begin html

<br>List of domain users on host(s).

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 host_domainuser_list_iter_start



=begin html

Initiates a query for a list of domain users on host(s). Domain users on host(s) that matches all filters will be returned. If no input is specified, all the domain users on all monitored storage systems/vFiler units will be returned.

=end html



B<Inputs>

=over 2

=item * I<host-domainuser-name-or-id-or-sid>  =>   B<domainuser-name-or-id-or-sid, optional>

=begin html

<br>Name or SID or id of the domain user on the host.

=end html

=back



=over 2

=item * I<host-usergroup-name-or-id>  =>   B<usergroup-name-or-id, optional>

=begin html

<br>Name of id of the user group. If specified only the users belonging to this group will be listed.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of an object to list the domain users for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Host (only storage systems and vFiler units are allowed) </ul>

=end html

=back



=over 2

=item * I<verbose>  =>   B<boolean, optional>

=begin html

<br>Default is false. If set to true, then the usergroups, roles, and allowed capabilities are placed into the host-domainuser-info element.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with host-domainuser-list-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to host-domainuser-list-iter-next or host-domainuser-list-iter-end.

=end html

=back



=head2 host_domainuser_push



=begin html

Pushes a domain user to a host. This is applicable for hosts running ONTAP versions 7.0 and above. The operation succeeds when the host on which the domain user is to be pushed contains usergroups similar to that of the domain user. Two usergroups are similar if they have same name and set of similar roles (roles with same name and same set of capabilities).

=end html



B<Inputs>

=over 2

=item * I<host-domainuser-name-or-id-or-sid>  =>   B<domainuser-name-or-id-or-sid>

=begin html

<br>Name or id or SID of the domain user on the host.

=end html

=back



=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the host to push the domain user on. Only storage systems and vFiler units are allowed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_domainuser_remove



=begin html

Removes a domain user from a usergroup or usergroups.

=end html



B<Inputs>

=over 2

=item * I<host-domainuser-name-or-id-or-sid>  =>   B<domainuser-name-or-id-or-sid>

=begin html

<br>Name or id or SID of domain user on the host.

=end html

=back



=over 2

=item * I<host-usergroup-names-or-ids>  =>   B<host-usergroup-name-or-id[]>

=begin html

<br>List of ids or names of usergroups from which the domain user has to be removed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_get_defaults



=begin html

The DFM stores a set of global default values for selected attributes, which are used on all hosts. The administrator can override the values on a per-host basis. This api returns the default values for some attributes returned by host-list-info-iter-next. Default values vary according to the host type.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<host-defaults>  =>   B<L<"host-defaults">>

=begin html

<br>The default values of the attributes defined by this ZAPI set.

=end html

=back



=head2 host_list_info_iter_end



=begin html

Ends iteration to list hosts.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous host-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_list_info_iter_next



=begin html

Get next few records in the iteration started by host-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <P> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned by a previous host-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<hosts>  =>   B<L<"host-info">[]>

=begin html

<br>Array of hosts.

=end html

=back



=over 2

=item * I<records>  =>   B<integer, optional>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1].

=end html

=back



=head2 host_list_info_iter_start



=begin html

Starts iteration to list hosts. The list of hosts can include: <ul> <li> Storage Systems <li> vFiler units <li> vserver <li> Host Agents <li> OSSV Agents <li> Switches </ul> Use the filtering criteria in this API to specify the list of hosts returned by host-list-info-iter-next. If no filtering criteria is specified, all non-deleted hosts will be returned by host-list-info-iter-next.

=end html



B<Inputs>

=over 2

=item * I<expand-filer-to-vfilers>  =>   B<boolean, optional>

=begin html

<br>If true and object-name-or-id is a storage system and host-types contains "vfiler" then all vFiler units belonging to the storage system are returned else it is ignored. Default value is false.

=end html

=back



=over 2

=item * I<host-dp-filter-info>  =>   B<L<"host-dp-filter-info">, optional>

=begin html

<br>Data Protection specific information for this iterator.

=end html

=back



=over 2

=item * I<host-types>  =>   B<host-type[], optional>

=begin html

<br>Types of hosts to list. If the host type matches any of the types in this array of host types it will be included in the list, subject to other filtering criteria. If this list contains an unknown type the EBADHOSTTYPE error will be returned.

=end html

=back



=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each host which may make the call to this zapi take much longer.

=end html

=back



=over 2

=item * I<include-migration-info>  =>   B<boolean, optional>

=begin html

<br>If true, return the migration information for the migrating vFiler units. Default false.

=end html

=back



=over 2

=item * I<include-perf-space-details>  =>   B<boolean, optional>

=begin html

<br>If true, return the details of space consumed by performance data of the host. Default false.

=end html

=back



=over 2

=item * I<is-direct-member-only>  =>   B<boolean, optional>

=begin html

<br>If true, only return the hosts that are direct members of the specified resource group. Default value is false. This field is meaningful only if a resource group name or id is given for the object-name-or-id field.

=end html

=back



=over 2

=item * I<license-filter>  =>   B<license[], optional>

=begin html

<br>Filter for listing storage systems based on services licensed. Appliable when host-type is "filer". Only those storage systems which have all the licenses installed as specified in input are listed.

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of an object to list hosts for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Resource Pool <li> Dataset <li> Storage Set <li> Host <li> Aggregate <li> Volume <li> Qtree <li> OSSV Directory <li> GenericAppObject </ul> If object-name-or-id identifies a host, that single host will be returned. If object-name-or-id resolves to more than one hosts, all of them will be returned. If no object-name-or-id is provided, all hosts will be listed. Host Agents and OSSV agents may use a subdomain to identify themselves, unlike other host types. If the host-types element includes "agent" or "ossv" all subdomains beginning with the host name will be checked.

=end html

=back



=over 2

=item * I<query-host>  =>   B<boolean, optional>

=begin html

<br>If true, query the host to update the database and refresh the values returned in the following elements by host-list-info-iter-next: <ul> <li> host-status</li> <li> is-agent-ossv-enabled</li> <li> is-snapvault-enabled</li> <li> is-ndmp-enabled</li> <li> is-snapmirror-enabled</li> <li> snapvault-access-specifier</li> <li> ndmp-access-specifier</li> <li> snapmirror-access-specifier</li> <li> host-communication-status</li> <li> host-credentials-status</li> <li> ndmp-communication-status</li> <li> ndmp-credentials-status</li> <li> ndmp-agent-status</li> <li> is-snapvault-primary</li> <li> is-snapvault-secondary</li> <li> is-snapmirror-host</li> <li> is-unix-primary</li> <li> is-linux-primary</li> <li> is-windows-primary</li> <li> is-windows-ofm-primary</li> <li> is-nearstore</li> </ul> The host-list-info-iter-next zapi defines which elements will be updated based on whether the host type supports it. <p> Errors in communicating with or authenticating to the host will prevent updating all the elements that are supported for that host type.

=end html

=back



=over 2

=item * I<vfiler-ipspace>  =>   B<vfiler-ipspace, optional>

=begin html

<br>Filter for listing vFiler units, if specified, only the vFiler units that belong to the ipspace are listed. Applicable only for host-type "vfiler".

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with host-list-iter-next. <P> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to host-list-iter-next or host-list-iter-end.

=end html

=back



=head2 host_modify



=begin html

Modify attributes stored in the DFM database of a host managed by the DFM.

=end html



B<Inputs>

=over 2

=item * I<host-modify-info>  =>   B<L<"host-modify-info">>

=begin html

<br>Host information.

=end html

=back



=over 2

=item * I<host-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>The host to be modified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_modify_agent_credentials



=begin html

Change the password on the Host Agent for the built in Host Agent management user "admin", using the Operating System credentials specified by os-username and os-password to authenticate the https POST request. If the operation succeeds, update the Host Agent password stored in the DFM database. Valid only for Host Agents.

=end html



B<Inputs>

=over 2

=item * I<agent-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>The host to change the Host Agent password on.

=end html

=back



=over 2

=item * I<management-password>  =>   B<host-password, optional>

=begin html

<br>New password for the Host Agent management API password. If this parameter is present, it is assumed to be encrypted using two way encryption. If this parameter is not present, the DFM will generate a password.

=end html

=back



=over 2

=item * I<os-password>  =>   B<host-password>

=begin html

<br>root or administrative password used to authenticate https POST password change request. Encrypted using two way encryption.

=end html

=back



=over 2

=item * I<os-username>  =>   B<string>

=begin html

<br>root or administrative user name used to authenticate https POST password change request.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_role_create



=begin html

Creates a role on the host. This is applicable for hosts running ONTAP versions 7.0 and above.

=end html



B<Inputs>

=over 2

=item * I<host-role>  =>   B<L<"host-role-info">>

=begin html

<br>New role information. "host-role-name" and at least one allowed capability must be specified. Either host name or id on which the role is to be created must be provided. If both host name and host id are provided, then id takes precedence. Description is also allowed. All other fields are ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<host-role-id>  =>   B<access-object-id>

=begin html

<br>Identifier of the new role created on the host.

=end html

=back



=head2 host_role_delete



=begin html

Deletes a role on the host.

=end html



B<Inputs>

=over 2

=item * I<host-role-name-or-id>  =>   B<access-object-name-or-id>

=begin html

<br>Name or id of the role to be deleted on the host.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_role_list_iter_end



=begin html

Terminates a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-role-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_role_list_iter_next



=begin html

Returns items from a previous call to host-role-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-role-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<host-roles>  =>   B<L<"host-role-info">[]>

=begin html

<br>List of roles on host(s).

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 host_role_list_iter_start



=begin html

Initiates a query for a list of roles on host(s). Roles on host(s) that match all filters will be returned. If no input is specified, all the roles on all monitored storage systems or vFiler units will be returned.

=end html



B<Inputs>

=over 2

=item * I<host-role-name-or-id>  =>   B<access-object-name-or-id, optional>

=begin html

<br>Name or id of a role on the host. If this is provided, the output contains only the information associated with this role.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of an object to list the roles for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Host (allowed host types are storage system and vFiler units) </ul>

=end html

=back



=over 2

=item * I<verbose>  =>   B<boolean, optional>

=begin html

<br>Default is false. If set to true, then the allowed capabilities are placed into the host-role-info element.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with host-role-list-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to host-role-list-iter-next or host-role-list-iter-end.

=end html

=back



=head2 host_role_modify



=begin html

Modifies a role on the host.

=end html



B<Inputs>

=over 2

=item * I<host-role>  =>   B<L<"host-role-info">>

=begin html

<br>Role name or id must be provided. Host name or id is an optional parameter. If one or more capabilities and/or description is provided, the role is modified accordingly. If both name and id are provided, id takes precedence.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_role_push



=begin html

Pushes a role to a host. This is applicable for hosts running ONTAP versions 7.0 and above. The operation succeeds when the host on which the role is to be pushed supports all the capabilities present in the role.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the host to push the role on. Only storage systems and vFiler units are allowed.

=end html

=back



=over 2

=item * I<host-role-name-or-id>  =>   B<access-object-name-or-id>

=begin html

<br>Name or id of the role to be pushed on the host.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_set_option



=begin html

Change the option on the storage system specified by host-option-name to the value specified by host-option-value. If the operation succeeds the following options will be stored in the DFM database and will be returned in the specified elements the next time host-list-info-iter-next is called. <table style="border-collapse: collapse;"> <tr style="background-color: #ddd"> <th style="border: solid;"> host-option-name </th> <th style="border: solid;"> host-list-info-iter-next element </th> </tr> <tr> <td style="border: solid;"> ndmpd.enable </td> <td style="border: solid;"> is-ndmp-enabled </td> </tr> <tr> <td style="border: solid;"> ndmpd.access </td> <td style="border: solid;"> ndmp-access-specifier </td> </tr> <tr> <td style="border: solid;"> snapvault.enable </td> <td style="border: solid;"> is-snapvault-enabled </td> </tr> <tr> <td style="border: solid;"> snapvault.access </td> <td style="border: solid;"> snapvault-access-specifier </td> </tr> <tr> <td style="border: solid;"> snapmirror.enable </td> <td style="border: solid;"> is-snapmirror-enabled </td> </tr> <tr> <td style="border: solid;"> snapmirror.access </td> <td style="border: solid;"> snapmirror-access-specifier </td> </tr> </table> If the name of the host option ends in ".access" and the value of the host option is the empty string, the value will be changed to "none". See na_options(1) for a list of option names and values. See na_protocolaccess(8) for access specifier syntax and usage. Valid only for storage systems.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>The host to set the option on.

=end html

=back



=over 2

=item * I<host-option-name>  =>   B<string>

=begin html

<br>The name of the host option. Length: [0..255]

=end html

=back



=over 2

=item * I<host-option-value>  =>   B<string>

=begin html

<br>The host option will be set to this value. Length: [0..255]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_user_add



=begin html

Creates a local user on the host. This is applicable for hosts running ONTAP versions 7.0 and above.

=end html



B<Inputs>

=over 2

=item * I<host-user>  =>   B<L<"host-user-info">>

=begin html

<br>New local user information. host-user-name, password and at least one usergroup must be provided. Usergroup can be specified in terms of name or usergroup id. Either host name or id on which the local user is to be created must be provided. Description, minimum password age, maximum password age are also allowed. All other fields are ignored. If both id and name are specified, then id takes precedence.

=end html

=back



B<Outputs>

=over 2

=item * I<host-user-id>  =>   B<access-object-id>

=begin html

<br>Identifier of the new user created on the host.

=end html

=back



=head2 host_user_delete



=begin html

Deletes a local user on the host.

=end html



B<Inputs>

=over 2

=item * I<host-user-name-or-id>  =>   B<access-object-name-or-id>

=begin html

<br>Name or id of the local user on the host.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_user_list_iter_end



=begin html

Terminates a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-user-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_user_list_iter_next



=begin html

Returns items from a previous call to host-user-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-user-list-iter- call.

=end html

=back



B<Outputs>

=over 2

=item * I<host-users>  =>   B<L<"host-user-info">[]>

=begin html

<br>List of local users on the host.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 host_user_list_iter_start



=begin html

Initiates a query for a list of local users on host(s). Local users on host(s) that matches all filters will be returned. If no input is specified, all the local users on all monitored storage systems or vFiler units will be returned.

=end html



B<Inputs>

=over 2

=item * I<host-user-name-or-id>  =>   B<access-object-name-or-id, optional>

=begin html

<br>Name or id of a local user.

=end html

=back



=over 2

=item * I<host-usergroup-name-or-id>  =>   B<usergroup-name-or-id, optional>

=begin html

<br>Name of id of the user group. If specified only the users belonging to this group will be listed.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of an object to list the local users for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Host (allowed host types are storage system and vFiler unit) </ul>

=end html

=back



=over 2

=item * I<verbose>  =>   B<boolean, optional>

=begin html

<br>Default is false. If set to true, then the usergroups, roles, and allowed capabilities are placed into the host-user-info element.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with host-user-list-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to host-user-list-iter-next or host-user-list-iter-end.

=end html

=back



=head2 host_user_modify



=begin html

Modifies local user on the host.

=end html



B<Inputs>

=over 2

=item * I<host-user>  =>   B<L<"host-user-info">>

=begin html

<br>Local user name or id must be provided. Host name or id is an optional parameter. If one or more usergroups(ids or names), description, minimum password age, and/or maximum password age are provided, the local user is modified accordingly. All other fields are ignored. If both id and name are specified, then id takes precedence.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_user_modify_password



=begin html

Modifies password of a local user on the host.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of Storage System/vFiler unit on which the local user exists.

=end html

=back



=over 2

=item * I<host-user-name-or-id>  =>   B<access-object-name-or-id>

=begin html

<br>Name or id of the local user. For storage systems running Data ONTAP version 7.0 or later, the user should have been discovered by DFM and thus host user id can be specified instead of host user name.

=end html

=back



=over 2

=item * I<new-password>  =>   B<host-user-password>

=begin html

<br>New password of the local user.

=end html

=back



=over 2

=item * I<old-password>  =>   B<host-user-password, optional>

=begin html

<br>Old password of the local user. If this element is provided, we run the password command or ZAPI using the credentials provided in the ZAPI input elements.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_user_push



=begin html

Pushes a local user to a host. This is applicable for hosts running ONTAP versions 7.0 and above. The operation succeeds when the host on which the local user is to be pushed contains usergroups similar to that of the local user. Two usergroups are similar if they have same name and set of similar roles (roles with same name and same set of capabilities).

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the host to push the user on. Only storage systems and vFiler units are allowed.

=end html

=back



=over 2

=item * I<host-user-name-or-id>  =>   B<access-object-name-or-id>

=begin html

<br>Name or id of the local user on the host.

=end html

=back



=over 2

=item * I<password>  =>   B<host-user-password, optional>

=begin html

<br>Password of the new user on the host, to which the user is pushed on. If the user already exists on the destination host, this field is ignored.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_usergroup_create



=begin html

Creates a usergroup on the host. This is applicable for hosts running ONTAP versions 7.0 and above.

=end html



B<Inputs>

=over 2

=item * I<host-usergroup>  =>   B<L<"host-usergroup-info">>

=begin html

<br>New usergroup information. "host-usergroup-name" and at least one role must be specified. Role can be specified in terms of role name or role id. Either host name or id on which the usergroup is to be created must be provided. Description is also allowed. All other fields are ignored. If both id and name are specified, then id takes precedence.

=end html

=back



B<Outputs>

=over 2

=item * I<host-usergroup-id>  =>   B<access-object-id>

=begin html

<br>Identifier of the new usergroup created on the host.

=end html

=back



=head2 host_usergroup_delete



=begin html

Deletes a usergroup on the host.

=end html



B<Inputs>

=over 2

=item * I<host-usergroup-name-or-id>  =>   B<usergroup-name-or-id>

=begin html

<br>Name or id of the usergroup on the host.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_usergroup_list_iter_end



=begin html

Terminates a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-usergroup-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_usergroup_list_iter_next



=begin html

Returns items from a previous call to host-usergroup-list-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-group-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<host-usergroups>  =>   B<L<"host-usergroup-info">[]>

=begin html

<br>List of usergroups on host(s).

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 host_usergroup_list_iter_start



=begin html

Initiates a query for a list of usergroups on host(s). Usergroups on host(s) that match all filters will be returned. If no input is specified, all the usergroups on all monitored storage systems or vFiler units will be returned.

=end html



B<Inputs>

=over 2

=item * I<host-usergroup-name-or-id>  =>   B<usergroup-name-or-id, optional>

=begin html

<br>Name or id of a usergroup.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of an object to list the usergroups for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Host (allowed host types are storage system and vFiler unit) </ul>

=end html

=back



=over 2

=item * I<verbose>  =>   B<boolean, optional>

=begin html

<br>Default is false. If set to true, then the roles and allowed capabilities are placed into the host-usergroup-info element.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with host-group-list-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to host-usergroup-list-iter-next or host-usergroup-list-iter-end.

=end html

=back



=head2 host_usergroup_modify



=begin html

Modifies a usergroup on the host.

=end html



B<Inputs>

=over 2

=item * I<host-usergroup>  =>   B<L<"host-usergroup-info">>

=begin html

<br>Usergroup name or id must be provided. Host name or id is an optional parameter. If one or more roles(ids or names) and/or description is provided, existing roles and/or description are removed and updated with new ones. All other fields are ignored. If both id and name are specified, then id takes precedence.

=end html

=back



=over 2

=item * I<new-usergroup-name>  =>   B<usergroup-name, optional>

=begin html

<br>New usergroup name for this usergroup. This is used to rename the usergroup specified in host-usergroup. If this value is invalid, host-usergroup-modify fails without changing anything. The value is optional, and if not provided, the group name will be unchanged.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_usergroup_push



=begin html

Pushes a usergroup to a host. This is applicable for hosts running ONTAP versions 7.0 and above. The operation succeeds when the host on which the usergroup is to be pushed contains roles similar to that of the usergroup. Two roles are similar if they have the same name and same set of capabilities.

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the host to push the usergroup on. Only storage systems and vFiler units are allowed.

=end html

=back



=over 2

=item * I<host-usergroup-name-or-id>  =>   B<usergroup-name-or-id>

=begin html

<br>Name or id of the usergroup to be pushed on the host.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_service_authorize



=begin html

Authorize a newly registered Host Service. Authorizing a Host Service will allow Host Service to start communicating with DataFabric Manager server, until then Host Service will not be operational. <P> On successful authorization a baseline discovery job is initiated on the Host Service to discover the virtual server inventory information managed by Host Service. <P> This API requires <b>DFM.HostService.Authorize</b> capability on the Host Service or at global level.

=end html



B<Inputs>

=over 2

=item * I<host-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>FQDN or IP address or Object Identifier of the Host Service.

=end html

=back



=over 2

=item * I<run-discovery>  =>   B<boolean, optional>

=begin html

<br>After authorization if discovery should be started for the HS. Default value is true.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the of job created to discover the virtual inventory information managed by the Host Service. The job-id will be returned only if run-discovery is true. Range: [1..2^31-1]

=end html

=back



=head2 host_service_configure



=begin html

Configure options in Host Service registry. Options include storage system and VCenter server credentials and DataFabric Manager server endpoints for communication.

=end html



B<Inputs>

=over 2

=item * I<dfm-server-ip-address>  =>   B<string, optional>

=begin html

<br>IP address of DataFabric Manager Server machine that the Host Service should use for communication, useful in scenarios where DataFabric Manager Server host is configured with multiple IP addresses. If not specified, all the AF_INET interfaces on the machine are enumerated and the first valid address is used.

=end html

=back



=over 2

=item * I<host-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or Id of Host Service registered with DataFabric Manager service on which the configuration needs to be performed.

=end html

=back



=over 2

=item * I<storage-systems-configuration>  =>   B<L<"storage-system-configuration">[], optional>

=begin html

<br>Configuration settings for storage systems that needs to be set on the host service.

=end html

=back



=over 2

=item * I<vcenter-ip-address>  =>   B<string, optional>

=begin html

<br>IP address of the VCenter server host. If not specified, it is assumed that VCenter and Host Service are located on the same host and IP address of the Host Service is used.

=end html

=back



=over 2

=item * I<vcenter-password>  =>   B<string, optional>

=begin html

<br>VCenter user password, this is required by SMVI plugin to communicate with VCenter Server. This field is applicable only if the Host Service has SMVI plugin.

=end html

=back



=over 2

=item * I<vcenter-username>  =>   B<string, optional>

=begin html

<br>VCenter user name, this is required by SMVI plugin to communicate with VCenter Server. This field is applicable only if the Host Service has SMVI plugin.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Id of job created to configure host service. Range: [1..2^31-1]

=end html

=back



=head2 host_service_discover



=begin html

Start a discovery job on the Host Service. This will refresh the virtual inventory information cached in the DataFabric Manager database.

=end html



B<Inputs>

=over 2

=item * I<host-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>FQDN or IP address or Object Identifier of the Host Service.

=end html

=back



=over 2

=item * I<resource-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>If specified, the discovery operation is performed in the context of specified virtual infrastructure object i.e only the attributes of the resource and its relationship with other virtual infrastructure objects are fetched from the Host Service and updated. For example if the resource-name-or-id is set to a specific hypervisor, then only the information associated with the hypervisor and objects under it like the virtual machines hosted on it is retrieved and updated. Refer to <b>resource-type</b> typedef description for the list of virtual object types.

=end html

=back



=over 2

=item * I<resource-type>  =>   B<string, optional>

=begin html

<br>This field is used to specify the type of the virtual infrastructure object specified in resource-name-or-id. This can be used to eliminate ambiguity in case there is a clash in the object name across different virtual infrastructure object types.

=end html

=back



=over 2

=item * I<track-progress>  =>   B<boolean, optional>

=begin html

<br>If 'true', then a job-id is returned to track progress of discovery operation, useful when the discovery operation is initiated by a user. This field is set to false when invoked by Host Service when performing discovery in the background. Default value: true

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Id of job created to discover resources, returned only if track-progress is 'true'. Range: [1..2^31-1]

=end html

=back



=head2 host_service_list_info_iter_end



=begin html

Ends iteration to list registered Host Services

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-service-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_service_list_info_iter_next



=begin html

Get the specified Host Service records after the call to host-service-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>Maximum number of records to be received. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-service-list-info--start

=end html

=back



B<Outputs>

=over 2

=item * I<host-services>  =>   B<L<"host-service-info">[]>

=begin html

<br>List of host services

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 host_service_list_info_iter_start



=begin html

Start iteration to list Host Services registered with DataFabric Manager.

=end html



B<Inputs>

=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, Host Services marked as deleted in the database are also returned. A Host Service is marked as deleted when it is un-registered from DataFabric Manager. Default value : false.

=end html

=back



=over 2

=item * I<obj-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or Identifier of the object for which the host services need to be listed. The allowed object types for this arguement are: <ul> <li> Resource Group <li> Host Service </ul>

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records available in the list. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 host_service_modify



=begin html

Set host service specific options in DataFabric Manager database.

=end html



B<Inputs>

=over 2

=item * I<access-protocol>  =>   B<string, optional>

=begin html

<br>Communication protocol used to access the Host Service. Possible values : 'http', 'https'

=end html

=back



=over 2

=item * I<admin-port>  =>   B<integer, optional>

=begin html

<br>Port number that administrative services of Host Service are bound to. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<host-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or Identifier of Host Service.

=end html

=back



=over 2

=item * I<ip-address>  =>   B<ip-address, optional>

=begin html

<br>IP address used to access Host Service.

=end html

=back



=over 2

=item * I<mgmt-port>  =>   B<integer, optional>

=begin html

<br>Port number that management services of Host Service are bound to. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<update-service-port>  =>   B<integer, optional>

=begin html

<br>Port number that update service is bound to. Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_service_package_delete



=begin html

Delete a host service package from DataFabric Manager.

=end html



B<Inputs>

=over 2

=item * I<package-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the package.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_service_package_list



=begin html

List host service packages in DataFabric Manager.

=end html



B<Inputs>

=over 2

=item * I<package-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of the package.

=end html

=back



B<Outputs>

=over 2

=item * I<host-service-packages>  =>   B<L<"host-service-package-info">[]>

=begin html

<br>List of host service packages in DataFabric Manager.

=end html

=back



=head2 host_service_register



=begin html

Register a new Host Service with DataFabric Manager Server. Newly deployed Host Services need to be registered and authorized in DataFabric Manager Server, this enables management of virtual server infrastructure hosted on Data ONTAP systems using service catalogs. The registration process retrieves the SSL certificate presented by the Host Service, and sets the Host Service status to "Pending Authorization" state. <P> On confirming the validity of the certificate <b>host-service-authorize</b> API must be invoked to make the Host Service operational.

=end html



B<Inputs>

=over 2

=item * I<admin-port>  =>   B<integer, optional>

=begin html

<br>Admin port configured for the Host Service. DataFabric Manager tries to establish SSL connection on this port to fetch the Host Service SSL certificate. Default value : 8699

=end html

=back



=over 2

=item * I<dfm-server-ip-address>  =>   B<ip-address, optional>

=begin html

<br>IP address of the DataFabric Manager Server host. The Host Service will communicate with Datafabric Manager Server over this IP Address.

=end html

=back



=over 2

=item * I<mgmt-port>  =>   B<integer, optional>

=begin html

<br>Management port of the host service agent. Default value : 8799

=end html

=back



=over 2

=item * I<name-or-ip-address>  =>   B<string>

=begin html

<br>FQDN or the IP address of the Host Service machine.

=end html

=back



=over 2

=item * I<suppress-registered-error>  =>   B<boolean, optional>

=begin html

<br>If set to true, the EOBJECTEXISTS error condition is suppressed and identifier assigned to existing Host Service is returned in host-service-id element. Default value : false.

=end html

=back



B<Outputs>

=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Object identifier assigned to the registered host service.

=end html

=back



=over 2

=item * I<is-authorized>  =>   B<boolean>

=begin html

<br>If host service is authorized to access DataFabric Manager services, this will be true.

=end html

=back



=over 2

=item * I<is-hyperv-cluster-host-service>  =>   B<boolean>

=begin html

<br>true, if the host service manages the virtual machines in Hyper-V cluster.

=end html

=back



=head2 host_service_storage_system_list_info_iter_end



=begin html

Ends iteration to list storage system for a host service agent.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous host-service-storage-system-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 host_service_storage_system_list_info_iter_next



=begin html

Get list of storage systems after the call to host-service-storage-system-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The index of the last record to be received Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous call to host-service-storage-system-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<storage-systems>  =>   B<L<"storage-system-info">[]>

=begin html

<br>List of storage systems that are present in the given host service's configuration.

=end html

=back



=head2 host_service_storage_system_list_info_iter_start



=begin html

List storage systems configured in the Host Service registry.

=end html



B<Inputs>

=over 2

=item * I<host-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or Id of the Host Service registered with DataFabric Manager service.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records available in the list Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 host_service_unregister



=begin html

Un-Register a Host Service from DataFabric Manager Server. All the Virtual Server inventory objects will will be marked as deleted once the Host Service is unregistered. The API will fail (with EHS_UNREGISTER_ERROR) in case a Virtual Machine or Datastore (in VMware case) managed by the host service is a member of a dataset.

=end html



B<Inputs>

=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>If true, the operation will proceed even if there are datasets configured with virtual machines managed by the host service. After un-registration the virtual machines will not show up as dataset members. The host service can be registered back with host-service-register API, the virtual machines would then show up again as dataset members. Default value is false.

=end html

=back



=over 2

=item * I<host-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or Object Id or IP address of the Host Service.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 ifc_list_info_iter_end



=begin html

Ends iteration of interfaces.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous ifc-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 ifc_list_info_iter_next



=begin html

Get next set of records in the iteration started by call to ifc-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer, optional>

=begin html

<br>Maximum records to retrieve. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous ifc-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<ifcs>  =>   B<L<"ifc-info">[]>

=begin html

<br>List of interfaces.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Value of 0 records indicates that end of records. <BR> Range: [1..2^31-1]

=end html

=back



=head2 ifc_list_info_iter_start



=begin html

Start iteration of interfaces.

=end html



B<Inputs>

=over 2

=item * I<ipspace>  =>   B<string, optional>

=begin html

<br>IPSpace name. If specified only the interfaces that belong the given ipspace are returned.

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name of Id of the following objects. <UL> <LI> Interface <LI> Storage system </UL> If storage sytem name or Id is specified, only the interfaces discovered on the storage system are returned. <BR> The name of the interface should be specified in <storage system name>:<interface name> format. Ex: "toaster:e0a".

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records fetched and stored for retrieval using ifc-list-info-iter-next. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent calls.

=end html

=back



=head2 ldap_server_add



=begin html

Add LDAP server to DFM.

=end html



B<Inputs>

=over 2

=item * I<ldap-server>  =>   B<L<"ldap-server">>

=begin html

<br>IP address and port details of LDAP server to be added to DFM.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 ldap_server_delete



=begin html

Delete LDAP server from DFM.

=end html



B<Inputs>

=over 2

=item * I<ldap-server>  =>   B<L<"ldap-server">>

=begin html

<br>IP address and port details of an LDAP server in DFM to be deleted.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 ldap_server_list_info



=begin html

Returns list of LDAP servers known to DFM.

=end html



B<Inputs>

=over 2

=item * I<ldap-server>  =>   B<L<"ldap-server">, optional>

=begin html

<br>IP address and port details of the LDAP server whose information will be listed. If no input was provided then all the LDAP server added in DFM will be listed.

=end html

=back



B<Outputs>

=over 2

=item * I<ldap-servers>  =>   B<L<"ldap-server-info">[]>

=begin html

<br>The list of LDAP servers.

=end html

=back



=head2 lun_destroy



=begin html

API to destroy a LUN.

=end html



B<Inputs>

=over 2

=item * I<lun-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of LUN to be destroyed.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job started for the destroy request.

=end html

=back



=head2 lun_list_info_iter_end



=begin html

The lun-list-info-iter-* set of APIs are used to retrieve the list of luns. lun-list-info-iter-end is used to tell the DFM station that the temporary store used by DFM to support the lun-list-info-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 lun_list_info_iter_next



=begin html

For more documentation please check lun-list-info-iter-start. The lun-list-info-iter-next API is used to iterate over the members of the luns stored in the temporary store created by the lun-list-info-iter-start API.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous lun-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by lun-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<luns>  =>   B<L<"lun-info">[]>

=begin html

<br>List of luns.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 lun_list_info_iter_start



=begin html

The lun-list-info-iter-* set of APIs are used to retrieve the list of luns in DFM. lun-list-info-iter-start returns the union of lun objects specified, intersected with rbac-operation. It loads the list of luns 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 luns in the temporary store. If lun-list-info-iter-start is invoked twice, then two distinct temporary stores are created.

=end html



B<Inputs>

=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of an object to list luns for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Host <li> Aggregate <li> Volume <li> Qtree <li> Lun <li> GenericAppObject </ul> If object-name-or-id identifies a lun, that single lun will be returned. If object-name-or-id resolves to more than one lun, all of them will be returned. If no object-name-or-id is provided, all luns will be listed.

=end html

=back



=over 2

=item * I<rbac-operation>  =>   B<string, optional>

=begin html

<br>Name of an RBAC operation. If specified, only return luns for which authenticated admin has the required capability. A capability is an operation/resource pair. The resource is a lun or a container with one or more luns in it. The possible values that can be specified for operation can be obtained by calling rbac-operation-info-list. If operation is not specified, then it defaults to DFM.Database.Read. For more information about operations, capabilities and user roles, see the RBAC APIs.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with lun-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to lun-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 lun_resize



=begin html

API to resize a LUN.

=end html



B<Inputs>

=over 2

=item * I<lun-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of LUN to be resized.

=end html

=back



=over 2

=item * I<new-size>  =>   B<integer>

=begin html

<br>Specify the new size of the luns. The value is specified in bytes. Range: [1..2^44-1]

=end html

=back



=over 2

=item * I<resize-underlying-volume>  =>   B<boolean, optional>

=begin html

<br>This indicates whether to resize the underlying volume when a LUN or qtree is resized. Default: true

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job started for the resize request.

=end html

=back



=head2 migrate_cancel



=begin html

Cancel the migration operation for the specified vFiler unit or dataset. Error conditions: <UL> <LI>EDATABASEERROR - A database error occurred while processing the request. <LI>EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. <LI>EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <LI>EOBJECTNOTFOUND - When the specified vFiler unit or dataset is not found. <LI>EINVALIDMIGRATIONSTATUS - When the migration status of the specified vFiler unit is such that migrate-cancel operation cannot be initiated. </UL>

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a dry run needs to be done of all the tasks to be performed as part of migrate-cancel operation. Default value is false.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the vFiler unit or dataset whose migration operation has to be cancelled. The migration status of the vFiler unit or the vFiler unit attached to the specified dataset should be either "migrating" or "migrate_failed".

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the job started to cancel the migration operation. only returned if dry-run is false.

=end html

=back



=head2 migrate_change_state



=begin html

Change the state of a migration operation initiated for a vFiler unit or dataset. Only the following state changes are allowed through this API: <ul> <li> Change from "migrated" to "not_started": This is used to retain stale storage on the source hosting storage system and migrating a vFiler unit again. <li> Change from "migrated_with_errors" to "migrated": This is used to change the state after going through the errors that occured after cutover and correcting them as necessary. <li> Change from "rolledback_with_errors" to "rolledback": This is used to change the state after going through the errors that occured after cutover and correcting them as necessary. Error conditions: <UL> EDATABASEERROR - A database error occurred while processing the request. EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. EOBJECTAMBIGUOUS - When the specified object name is ambiguous. EOBJECTNOTFOUND - When the specified vFiler unit or dataset is not found. <LI>EINVALIDMIGRATIONSTATUS - When the migration status change is not allowed. EINVALIDINPUT - Invalid input specified. </UL> </ul>

=end html



B<Inputs>

=over 2

=item * I<new-migration-status>  =>   B<migration-status>

=begin html

<br>The new migration status for the vFiler unit or dataset.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the vFiler unit or dataset whose migration status has to be changed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 migrate_cleanup



=begin html

Delete the stale storage associated with a migration operation from the source storage system. This will destroy all the volumes of the source vFiler unit after successful migration of the vFiler unit. Error conditions: <UL> <LI>EDATABASEERROR - A database error occurred while processing the request. <LI>EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. <LI>EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <LI>EOBJECTNOTFOUND - When the specified vFiler unit or dataset is not found. <LI>EINVALIDMIGRATIONSTATUS - When the migration status of the specified vFiler unit is such that migrate-cleanup operation cannot be initiated. </UL>

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>A dry-run flag that indicates to show a dry-run result of the volumes that will be destroyed as part of this cleanup operation from the source storage system. Default is false.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the vFiler unit or the dataset whose stale storage has to be cleaned up. The migration status of the vFiler unit or the vFiler unit attached to the dataset should be "migrated".

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the job started to cleanup storage after the migration operation. Returned only when dry-run is false.

=end html

=back



=head2 migrate_complete



=begin html

Complete the migration operation by doing a cutover from the source vFiler unit to destination vFiler unit. As part of cutover operation the following will be done: A script if specified, will be run in pre mode. The actual cutover will be carried out so that the source vFiler unit is destroyed and data will be served from the destination vFiler unit. The script if specified, will be run in post mode after successful cutover. For all volumes of the vFiler unit, the protection relationships will be migrated to the new destination. All the backup versions will be modified so that they point appropriately to the newly created destination volumes. The migration status is changed to 'migrated' after a successful completion of migration. If migrate-complete fails to cutover to destination storage, then the migration status is changed to 'migrate-failed'. If the cutover to the destination storage succeeds during completion, but some of the subsequent steps like migrating the protection relationships, or copying the history data fails, then the status is changed to 'migrated-with-errors'. Error conditions: <UL> <LI>EDATABASEERROR - A database error occurred while processing the request. <LI>EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. <LI>EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <LI>EOBJECTNOTFOUND - When the specified vFiler unit or dataset is not found. <LI>EINVALIDMIGRATIONSTATUS - When the specified vFiler unit is not in "migrating" status. <LI>EONLINENOTPOSSIBLE - When online migration cannot be performed, but offline migration is still possible. </UL>

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>A dry-run flag that indicates to show a dry-run result of the migrate-complete operation. Default is false.

=end html

=back



=over 2

=item * I<max-cutover-time>  =>   B<integer, optional>

=begin html

<br>The value provided will be in seconds and this value defines, the time by which non-disruptive migration should complete. Default value is 120 seconds. Range [120..1800].

=end html

=back



=over 2

=item * I<migrate-offline>  =>   B<boolean, optional>

=begin html

<br>This flag is considered only when migration is started as online migration. When true, offline migration is performed. If false or not specified online migration is performed. This flag is ignored if the migration is not online. Default value is false.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the vFiler unit or the dataset for which the migration operation has to be completed. For a migrate-complete operation, the source vFiler unit should be given as input. The migration status of the vFiler unit or the vFiler unit attached to the dataset should be "migrating".

=end html

=back



=over 2

=item * I<persistent-migrated-routes>  =>   B<boolean, optional>

=begin html

<br>If this option is set, then the migrated routes from the source will be made persistent on the destination storage system. This input is ignored, if the route-migration-mode is 'none'. Default value is true.

=end html

=back



=over 2

=item * I<route-migration-mode>  =>   B<route-migration-mode, optional>

=begin html

<br>Type of routes that needs to be migrated as part of cutover.

=end html

=back



=over 2

=item * I<run-dedupe-scan>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a full deduplication scan has to be run on the deduplication enabled volumes of the migrating vFiler unit on destination storage system after migration. This input is valid only for volumes in the vFiler unit which have deduplication turned on and ignored for other volumes. Default is true.

=end html

=back



=over 2

=item * I<script-path>  =>   B<string, optional>

=begin html

<br>Path to a script that will be run in pre and post mode just before and after cutover operation.

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the job started to carry out the complete operation. Returned only when dry-run flag is false.

=end html

=back



=head2 migrate_fix



=begin html

Fix the migration status of a dataset. This API should be called if migration job was aborted abnormally, due to server shutdown or machine reboot etc. It fixes the database entries and migration status of the dataset. It can be called only if the last migration job run on the dataset terminated abnormally. Error conditions: <UL> <LI>EDATABASEERROR - A database error occurred while processing the request. <LI>EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. <LI>EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <LI>EOBJECTNOTFOUND - When the specified vFiler unit or dataset is not found. <LI>EINVALIDINPUT - Invalid input specified. </UL>

=end html



B<Inputs>

=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Full name or identifier of the dataset for which migration job was terminated abnormally. This field is deprecated now and object-name-or-id field should be used. This field will be ignored if object-name-or-id is specified.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name of Id of the dataset/vfiler for which migration job was terminated abnormally.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of the job started to fix the previous crashed/stopped vFiler unit migration.

=end html

=back



=head2 migrate_rollback



=begin html

Rollback the previous migrated vFiler unit from the destination vFiler unit to it's original source vFiler unit. As part of rollback operation the following will be done: A script if specified, will be run in pre mode. Rollback will be carried out so that the destination vFiler unit is destroyed and data will be served from the source vFiler unit. The script if specified, will be run in post mode after successful cutover. For all volumes of the vFiler unit, the protection relationships will be migrated to the new destination. All the backup versions will be modified so that they point appropriately to the newly created source volumes. The migration status is changed to 'rolled_back' after a successful rollback. If migrate-rollback fails to cutover to source storage, then the migration status will be changed to 'migrated'. If the cutover to the source storage succeeds during rollback, but some of the subsequent steps like migrating the protection relationships, or copying the history data fails, then the status is changed to 'rolled_back_with_errors'. Error conditions: <UL> <LI>EDATABASEERROR - A database error occurred while processing the request. <LI>EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. <LI>EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <LI>EOBJECTNOTFOUND - When the specified vFiler unit or dataset is not found. <LI>EONLINENOTPOSSIBLE - When online migration cannot be performed, but offline migration is still possible. </UL>

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a dry run needs to be done of all the tasks to be performed as part of migrate-rollback operation. Default value is false.

=end html

=back



=over 2

=item * I<max-cutover-time>  =>   B<integer, optional>

=begin html

<br>The value provided will be in seconds and this value defines, the time by which non-disruptive migration should complete. Default value is 120 seconds. Range [120..1800].

=end html

=back



=over 2

=item * I<migrate-offline>  =>   B<boolean, optional>

=begin html

<br>This flag is considered only when cutover was done as online migration. When true, offline migration is performed. If false or not specified online migration is performed. The flag is ignored if the migration is not online. Default value is false.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the vFiler unit or dataset whose migration operation has to be rolled back. The migration status of the vFiler unit or the vFiler unit attached to the specified dataset should be in "migrated".

=end html

=back



=over 2

=item * I<persistent-migrated-routes>  =>   B<boolean, optional>

=begin html

<br>If this option is set, then the migrated routes from the source will be made persistent on the destination storage system. This input is ignored, if the route-migration-mode is 'none'. Default value is true.

=end html

=back



=over 2

=item * I<route-migration-mode>  =>   B<route-migration-mode, optional>

=begin html

<br>Type of routes that needs to be migrated as part of cutover.

=end html

=back



=over 2

=item * I<run-dedupe-scan>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a full deduplication scan has to be run on the deduplication enabled volumes of the migrating vFiler unit on source storage system after migration. This input is valid only for volumes in the vFiler unit which have deduplication turned on and ignored for other volumes. Default is true.

=end html

=back



=over 2

=item * I<script-path>  =>   B<string, optional>

=begin html

<br>Path to a script that will be run in pre and post mode just before and after rollback operation.

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the job started to rollback the migration operation. Returned only when dry-run is false. Range [1..2^31-1].

=end html

=back



=head2 migrate_start



=begin html

Start the migration operation for a dataset or a vFiler unit. This initiates a baseline transfer for all the volumes in the source vFiler unit and changes the migration status to 'migrating'. When a dataset is given as input then the following conditions should hold good: <UL> <LI> A vFiler unit should be attached to the primary node of the dataset. <LI> All the volumes of the vFiler unit with the exception of the root storage should belong to this dataset. <LI> For offline migration, the migrating vFiler unit may contain qtree as it's root storage. <LI> For online migration, the migrating vFiler unit should contain a volume as it's root storage. </UL> If any of these conditions are not met, then EMIGRATENOTSUPPORTED is returned. If perform-cutover is set to true, then migrate-complete will be done after migrate-start. Error conditions: <UL> <LI>EDATABASEERROR - A database error occurred while processing the request. <LI>EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. If resource-name-or-id refers to a resource pool, user should have DFM.ResourcePool.Provision on it. If resource-name-or-id refers to a storage system, user should have DFM.Resource.Control on it. If provisioning-policy-name-or-id is specified, user should have DFM.Policy.Read on it. <LI>EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <LI>EOBJECTNOTFOUND - When the specified vFiler unit, dataset, destination storage system or provisioning policy is not found. <LI>EINVALIDMEMBERTYPE - When the specified filer is in c-mode. <LI>EINVALIDINPUT - When invalid inputs are provided for IP Address, Netmask. <LI>EINVALIDMIGRATIONSTATUS - When the specified vFiler unit is already in "migrating" status or in a state where migration cannot be started. <LI>EMIGRATENOTSUPPORTED - When the dataset or source vFiler unit cannot be migrated due to various reasons like invalid vFiler status, ONTAP version. <LI>EMIGRATEDESTINATIONSELECTIONFAILED - When a suitable storage system is not found as a destination for migration. </UL>

=end html



B<Inputs>

=over 2

=item * I<bandwidth-throttle>  =>   B<integer, optional>

=begin html

<br>Specify the bandwidth throttle(in kbps) to be used for baseline transfer and subsequent SnapMirror updates. This element is valid only for online-migration. Default is 0 which means unlimited bandwidth for the transfers. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>A short optional description of the migration activity. Default is an empty description. Range: [0..4096] characters.

=end html

=back



=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a dry run needs to be done of all the tasks to be performed as part of migrate-start operation. Default value is false.

=end html

=back



=over 2

=item * I<ip-bindings>  =>   B<L<"ip-binding-info">[], optional>

=begin html

<br>IP Address to interface binding information for the destination vFiler unit. If this element is not present, then the interface configured as the "defaultVFilerInterface" for the selected destination storage system is used to bind IP Addresses of the source vFiler unit at the destination.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the vFiler unit or the dataset which has to be migrated. If the input element is a dataset, then a vFiler unit should be attached to the dataset and all the volumes of the vFiler unit should be members of the primary node of the dataset with the exception of the root storage. The vFiler unit will be migrated to a new storage system.

=end html

=back



=over 2

=item * I<online-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates, that cutover has to be performed non-disruptively. This input is considered only when a vFiler unit is migrated and ignored when object-name-or-id refers to a dataset. For datasets, the migration will be done in an online or offline mode depending on 'online-migration' attribute set on the dataset Default value is false.

=end html

=back



=over 2

=item * I<perform-cutover>  =>   B<boolean, optional>

=begin html

<br>If this option is set to true, then migrate-complete will be done after migrate-start. If cutover fails because of some reason, then migrate status will be set to 'Migrating' and user can issue the migrate-complete zapi to perform the cutover. Default value is false.

=end html

=back



=over 2

=item * I<persistent-migrated-routes>  =>   B<boolean, optional>

=begin html

<br>If this option is set, then the migrated routes from the source will be made persistent on the destination storage system. This input is ignored, if the route-migration-mode is 'none'. This option is valid if perform-cutover is set to true. Default value is true.

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the provisioning policy to be used to provision destination volumes during migration. This input is valid only when object-name-or-id refers to a dataset. Default behavior is to use the current provisioning policy associated with the dataset or if not associated, to use the same volume configuration as that of the source vFiler unit.

=end html

=back



=over 2

=item * I<resource-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the destination storage system or resource pool to which the vFiler unit is to be migrated. If object-name-or-id refers to a dataset, this storage system should be a member of a resource pool on which the user has required capabilities. If object-name-or-id refers to a vFiler unit, this can refer to any destination storage system on which the user has required capabilities. The storage system should be running ONTAP version same or above the source storage system.

=end html

=back



=over 2

=item * I<route-migration-mode>  =>   B<route-migration-mode, optional>

=begin html

<br>Type of routes that needs to be migrated as part of cutover. This option is valid if perform-cutover is set to true.

=end html

=back



=over 2

=item * I<run-dedupe-scan>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a full deduplication scan has to be run on the deduplication enabled volumes of the migrating vFiler unit on destination storage system after migration. This input is valid only if perform-cutover is set to TRUE and that too for volumes in the vFiler unit which have deduplication turned on and ignored for other volumes. Default is true for IC.X.

=end html

=back



=over 2

=item * I<script-path>  =>   B<string, optional>

=begin html

<br>Path to a script that will be run in pre and post mode just before and after cutover operation. This is applicable only when perform-cutover is set to true.

=end html

=back



=over 2

=item * I<volume-aggregate-map>  =>   B<L<"volume-aggregate-pair">[], optional>

=begin html

<br>A list of (volume, aggregate) pairs. The volume is the vFiler volume being migrated. The aggregate is the aggregate on the destination storage system where this volume should be migrated to. This input is valid only when the object-name-or-id is a vFiler name or id. If both volume-aggregate-map and resource-name-or-id inputs are specified, an error will be reported.

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>The identifier of the job started to carry out the migrate-start operation. This field is returned only when dry-run is false.

=end html

=back



=head2 migrate_update



=begin html

Update all the SnapMirror relationships of a vFiler unit for which migration operation has been initiated. Error conditions: <UL> <LI>EDATABASEERROR - A database error occurred while processing the request. <LI>EACCESSDENIED - User does not have required capabilities to initiate the migrate operation. If object-name-or-id refers to a dataset, user should have DFM.Dataset.Write on the datset. If object-name-or-id refers to a vFiler unit, user should have DFM.Resource.Control on the dataset. <LI>EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <LI>EOBJECTNOTFOUND - When the specified vFiler unit or dataset is not found. <LI>EINVALIDMIGRATIONSTATUS - When the migration status of the vFiler unit is such that migrate-update cannot be called. </UL>

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the dataset or vFiler unit whose migration status is "migrating" and whose SnapMirror relationships are to be updated.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of the job started to update the SnapMirror relationships for a vFiler unit migration.

=end html

=back



=head2 migrate_volume



=begin html

Migrate one or more volumes from one aggregate to another aggregate on the same or different storage system. Currently this API works only for secondary volumes i.e destinations of a Volume SnapMirror or Qtree SnapMirror relationships or if the volumes are SnapVault secondaries. In addition to the above, the following rules must be satisfied to be able to migrate volumes using this API :- <UL> <LI> The volume(s) should not have child clones (FlexClones). <LI> The volume(s) should not have NFS exports, CIFS shares or contain LUNs mapped to storage clients. <LI> The volumes(s) should be part of a dataset (i.e either imported into datasets, or provisioned by Protection Manager.) so that incoming and outgoing data protection relationships to and from the volumes are managed by Protection Manager. </UL> If the destination aggregate is not specified, then the system will automatically select an aggregate, based on the type of the volume, space requirements, provisioning and protection policy configuration associated with the dataset.

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a dry run needs to be done of all the tasks to be executed as part of migrating volumes. Default value is false.

=end html

=back



=over 2

=item * I<migration-request-info>  =>   B<L<"migration-request-info">>

=begin html

<br>Details of migration request for volumes.

=end html

=back



B<Outputs>

=over 2

=item * I<migration-dry-run-results>  =>   B<L<"migration-dry-run-result">[], optional>

=begin html

<br>Dry run results for migrating each individual volume. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<migration-jobs>  =>   B<L<"migration-job-info">[], optional>

=begin html

<br>Job identifiers of migration jobs for each volume. Only returned if dry-run is false.

=end html

=back



=head2 netif_ip_interface_list_info



=begin html

Get the list of interfaces on a storage system.

=end html



B<Inputs>

=over 2

=item * I<community-string>  =>   B<string, optional>

=begin html

<br>SNMP community string to use. If omitted, the default "public" is used.

=end html

=back



=over 2

=item * I<hostname>  =>   B<string>

=begin html

<br>Hostname or IP address of the device to query with SNMP.

=end html

=back



=over 2

=item * I<timeout>  =>   B<integer, optional>

=begin html

<br>Number of seconds to wait for a response before giving up. If omitted, the default value is 5 seconds. <BR>Range: [0..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * I<interfaces>  =>   B<L<"netif-ip-interface-info">[]>

=begin html

<br>The response from the other server.

=end html

=back



=head2 dfm_network_add



=begin html

Adds a network in DFM to discover.

=end html



B<Inputs>

=over 2

=item * I<network-address>  =>   B<network-address>

=begin html

<br>IP address of the network to be added.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<prefix-length>

=begin html

<br>The routing prefix length of the network. Useful for calculation of subnet mask of a network.

=end html

=back



B<Outputs>

=over 2

=item * I<network-id>  =>   B<network-id>

=begin html

<br>A unique-identifier of the newly added network in DFM.

=end html

=back



=head2 dfm_network_delete



=begin html

Delete a network from DFM so that discovery is disabled for that network. Either network-id or network-address has to be provided. If both are specified then an error(EINVALIDINPUT) will be thrown.

=end html



B<Inputs>

=over 2

=item * I<network-address>  =>   B<network-address, optional>

=begin html

<br>IP address of network.

=end html

=back



=over 2

=item * I<network-id>  =>   B<obj-id, optional>

=begin html

<br>Unique identifier of the network in DFM.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 dfm_network_list_info



=begin html

Returns list of networks added to DFM for discovery.

=end html



B<Inputs>

=over 2

=item * I<network-id>  =>   B<network-id, optional>

=begin html

<br>Unique identifier representing a network in DFM. If no input is provided, then information about all the networks added to DFM for discovery will be returned.

=end html

=back



B<Outputs>

=over 2

=item * I<networks>  =>   B<L<"network-info">[]>

=begin html

<br>The list of networks.

=end html

=back



=head2 dfm_network_modify



=begin html

Modify prefix length of a network in DFM, so that host discovery in this networks should happen based on new subnet mask derived from new value of prefix length.

=end html



B<Inputs>

=over 2

=item * I<network-id>  =>   B<network-id>

=begin html

<br>Unique identifier of the network in DFM.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<prefix-length>

=begin html

<br>New routing prefix length of network.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_assoc_view_list_iter_end



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous perf-assoc-view-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_assoc_view_list_iter_next



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous perf-view-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<views>  =>   B<L<"perf-view">[]>

=begin html

<br>A list of views

=end html

=back



=head2 perf_assoc_view_list_iter_start



=begin html

Initiates a query for a list of performance views.

=end html



B<Inputs>

=over 2

=item * I<assoc-obj-type>  =>   B<perf-assoc-obj-type, optional>

=begin html

<br>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).

=end html

=back



=over 2

=item * I<include-empty-views>  =>   B<boolean, optional>

=begin html

<br>If false, the following will be removed from the output views: <ul> <li> lines without any data source <li> charts without any lines <li> views without any charts </ul> By default, this is false.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>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 <ul> <li> Resource Group <li> Dataset <li> Resource Pool <li> Host <li> vFiler <li> Aggregate <li> Volume <li> Qtree <li> Lun </ul>

=end html

=back



=over 2

=item * I<verbose>  =>   B<boolean, optional>

=begin html

<br>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 <ul> <li> view-name <li> view-type <li> assoc-obj-type </ul>

=end html

=back



=over 2

=item * I<view-type>  =>   B<view-type, optional>

=begin html

<br>Indicates the type of views to be returned. If not specified, all types of views will be returned (subject to the other optional parameters).

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval via calls to perf-view-list-iter-next

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to perf-view-list-iter-next or perf-view-list-iter-end

=end html

=back



=head2 perf_client_stats_list_info_iter_end



=begin html

Ends an iteration started by perf-client-stats-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous call to perf-client-stats-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_client_stats_list_info_iter_next



=begin html

Returns the per-client statistics loaded in a previous call to perf-client-stats-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer, optional>

=begin html

<br>The number of records to retrieve in this iteration. If not specified, a default value of 20 is assumed. Range: [ 1 .. 2^31 - 1 ]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous call to perf-client-stats-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * I<hosts-client-stats>  =>   B<L<"host-client-stats">[]>

=begin html

<br>The per-client operation statistics.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records returned. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=head2 perf_client_stats_list_info_iter_start



=begin html

Iterates over the historical data of stored client statistics for storage systems. If no input filters are specified, all the available collections of statistics will be returned.

=end html



B<Inputs>

=over 2

=item * I<end-time>  =>   B<timestamp, optional>

=begin html

<br>If specified, only client statistics retrieved at or before this time will be returned. The time is specified in seconds from Epoch.

=end html

=back



=over 2

=item * I<last-only>  =>   B<boolean, optional>

=begin html

<br>A convenience input to fetch only the last recorded collection for all hosts, if object-name-or-id is not specified, or a specific host if object-name-or-id is specified. If specified, start-time and end-time will be ignored, and this cannot be specified in conjunction with stat-id.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the name or id of the object for which historical client statistics are to be retrieved. If not specified, the statistics will be returned for all available objects. The object must be a storage system.

=end html

=back



=over 2

=item * I<start-time>  =>   B<timestamp, optional>

=begin html

<br>If specified, only client statistics retrieved at or after this time will be returned. The time is specified in seconds from Epoch.

=end html

=back



=over 2

=item * I<stat-id>  =>   B<stat-id, optional>

=begin html

<br>If specified, only the collection of statistics with this id will be returned and all other inputs will be ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records retrieved. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag to be used in subsequent calls to perf-client-stats-list-info-iter-next or perf-client-stats-list-info-iter-end.

=end html

=back



=head2 perf_client_stats_purge



=begin html

Remove collected client stats from the database. If no input is specified, all collections for hosts on which the user can perform the DFM.Database.Write operation will be purged.

=end html



B<Inputs>

=over 2

=item * I<end-time>  =>   B<timestamp, optional>

=begin html

<br>If specified, all statistics collection collected before this time will be removed. The timestamp must be specified in seconds from Epoch.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the name or id, in the DFM database, of the object for which statistics collections should be purged. The object must be a storage system.

=end html

=back



=over 2

=item * I<start-time>  =>   B<timestamp, optional>

=begin html

<br>If specified, all statistics collection collected after this time will be removed. The timestamp must be specified in seconds from Epoch.

=end html

=back



=over 2

=item * I<stat-id>  =>   B<stat-id, optional>

=begin html

<br>Specifies the id, in the DFM database, of the collection to be removed. If specified, all other inputs will be ignored. The user must have the capability to perform the DFM.Database.Write operation on the storage system for which the collection with this id was collected.

=end html

=back



B<Outputs>

=over 2

=item * I<deleted-stats-count>  =>   B<integer>

=begin html

<br>Returns the number of collections of statistics purged from the database. Range: [0 .. 2^31-1]

=end html

=back



=head2 perf_collect_client_operation_statistics



=begin html

Collect per-client NFS and CIFS operation statistics for a storage system. The collection of such statistics will be enabled on all vFiler units on the storage system for a short period of time, and the collected values will then be summarized and returned for the storage system as a whole. This ZAPI is synchronous and will not return an error even if there are errors collecting per-client statistics from some or all vFiler units on the storage system.

=end html



B<Inputs>

=over 2

=item * I<collection-period>  =>   B<integer, optional>

=begin html

<br>Specifies, in seconds, the period of time for which the collection of statistics should be enabled on the filer. If not specified, a default value of 15 will be assumed. The API will be blocked for at least this period of time. In case of heavily loaded storage systems, the duration of blocking may be significantly higher. Range: [15 .. 60]

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The name or id of the object on which the collection of per-client statistics is to be enabled. The object must be a storage system.

=end html

=back



B<Outputs>

=over 2

=item * I<errors>  =>   B<L<"client-stat-error">[], optional>

=begin html

<br>Returns errors encountered while collecting the per-client statistics, if any.

=end html

=back



=over 2

=item * I<stat-id>  =>   B<stat-id>

=begin html

<br>Returns the id, in the DFM database, of the collection of statistics stored.

=end html

=back



=head2 perf_copy_counter_configuration



=begin html

Propagates source host's current data collection settings to destination hosts. When counter configuration is copied to destination hosts, even if it fails for one host, it proceeds further with the next available host in the destination list. Privilege required is DFM.Database.Write.

=end html



B<Inputs>

=over 2

=item * I<destination-objects>  =>   B<obj-name-or-id[]>

=begin html

<br>Name or identifier of an object, allowed object types for this argument are Host, Resource Group.

=end html

=back



=over 2

=item * I<preview>  =>   B<boolean, optional>

=begin html

<br>If this flag is true, it performs a dry run before actually committing the changes. It returns a list of counters, host details in case of any discrepancies between source, destination hosts. By default true.

=end html

=back



=over 2

=item * I<source-host-name-or-id>  =>   B<host-name-or-id, optional>

=begin html

<br>DFM hostname or id, the allowed value for this argument is a valid storage system.

=end html

=back



=over 2

=item * I<src-is-default>  =>   B<boolean, optional>

=begin html

<br>This flag allows the destination objects to attach to the default configuration. Default value is set to FALSE.

=end html

=back



B<Outputs>

=over 2

=item * I<copy-result>  =>   B<L<"destination-host-info">[]>

=begin html

<br>Result of copy operation. This element will be included irrespective of preview flag settings. On successful copy operation 'copy-result' will include only 'host-name, host-id' elements. In case of failure the output includes additional element 'error-reason'.

=end html

=back



=over 2

=item * I<missing-host-object-counters>  =>   B<L<"perf-missing-host-object-counter">[], optional>

=begin html

<br>List of counters not available with destination hosts. The output will include these elements only if preview flag is set to true and there is a discrepancy between source, destination hosts.

=end html

=back



=over 2

=item * I<purged-host-object-counters>  =>   B<L<"perf-purged-host-object-counter">[], optional>

=begin html

<br>List of counters for which historical data will be purged. The output will include these elements only if preview flag is set to true and there is a discrepancy between source, destination hosts.

=end html

=back



=head2 perf_counter_group_create



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<counter-group>  =>   B<L<"perf-counter-group">>

=begin html

<br>The counter group to create.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_counter_group_destroy



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string>

=begin html

<br>Name of counter group to destroy. All the views that are using the counter group are automatically destroyed.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_counter_group_get_data



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string>

=begin html

<br>Counter group name from which we want to fetch data.

=end html

=back



=over 2

=item * I<data-group>  =>   B<L<"perf-data-group">>

=begin html

<br>A definition of the data source(s) requested, plus an optional consolidation method.

=end html

=back



=over 2

=item * I<end-time>  =>   B<integer, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<sample-rate>  =>   B<integer, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<start-time>  =>   B<integer, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<time-consolidation-method>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * I<counter-data>  =>   B<string>

=begin html

<br>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

=end html

=back



=over 2

=item * I<unit>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=head2 perf_counter_group_get_dynamic_data_sources



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string>

=begin html

<br>Counter group name from which we want to fetch data.

=end html

=back



=over 2

=item * I<dynamic-data-sources>  =>   B<L<"perf-dynamic-data-sources">>

=begin html

<br>Criteria for choosing top-n instances for a counter.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * I<data-sources>  =>   B<L<"perf-data-source">[]>

=begin html

<br>Identifiers for the data sources correspoing to dynamic instances. Each perf-data-source represents one instance.

=end html

=back



=head2 perf_counter_group_list_info



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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. Either appliance-name-or-id or object-name-or-id should be specified, but not both. object-name-or-id is preferred as usage of appliance-name-or-id, group-name-or-id is deprecated.

=end html

=back



=over 2

=item * I<consolidate-hosts>  =>   B<boolean, optional>

=begin html

<br>If true, then information for all the hosts is consolidated and returned instead of information for individual hosts.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string, optional>

=begin html

<br>Counter group name to retrieve. If unspecified, all counter groups will be retrieved.

=end html

=back



=over 2

=item * I<counter-info-only>  =>   B<boolean, optional>

=begin html

<br>If true, the output element perf-counter-group, includes only the list of enabled counters of the host with object type derived from the counter group name. In this case data-sources will not be returned. By default false.

=end html

=back



=over 2

=item * I<custom-only>  =>   B<boolean, optional>

=begin html

<br>If true, returns only custom counter groups, by default false.

=end html

=back



=over 2

=item * I<disabled-counter-info-only>  =>   B<boolean, optional>

=begin html

<br>If TRUE, returns counter information of the presently disabled counters. Default value is FALSE.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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 or object-name-or-id is specified. This field defaults to global group if appliance-name-or-id or object-name-or-id is not specified. object-name-or-id is preferred as usage of group-name-or-id is deprecated.

=end html

=back



=over 2

=item * I<include-calculated-stats>  =>   B<boolean, optional>

=begin html

<br>This option is valid only if either 'counter-info-only' or 'disabled-counter-info-only' is set to TRUE. If this flag is set to TRUE, the counter information will include calculated stats counters otherwise by default it will exclude those counters.

=end html

=back



=over 2

=item * I<meta-data-only>  =>   B<boolean, optional>

=begin html

<br>If true, do not return any perf-data-sources with the perf-counter-group. By default false.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>If specified, output contains the counter-info element with list of enabled counters belonging to supplied counter-group-name. If counter-group-name is not set then output includes counters information for all counter groups of the hosting filer. Either appliance-name-or-id or object-name-or-id should be specified, but not both. object-name-or-id is preferred as usage of appliance-name-or-id, group-name-or-id is deprecated.

=end html

=back



B<Outputs>

=over 2

=item * I<counter-groups>  =>   B<L<"perf-counter-group">[]>

=begin html

<br>Counter group(s) retrieved.

=end html

=back



=head2 perf_counter_group_list_iter_end



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-counter-group-list-iter- call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_counter_group_list_iter_next



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-counter-group-list-iter- call.

=end html

=back



B<Outputs>

=over 2

=item * I<counter-groups>  =>   B<L<"perf-counter-group">[]>

=begin html

<br>Counter group(s) retrieved.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 perf_counter_group_list_iter_start



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string, optional>

=begin html

<br>Counter group name to retrieve. If unspecified, all counter groups will be retrieved.

=end html

=back



=over 2

=item * I<custom-only>  =>   B<boolean, optional>

=begin html

<br>if TRUE, only custom groups will be retrieved, by default false

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<meta-data-only>  =>   B<boolean, optional>

=begin html

<br>If TRUE, do not include any perf-data-sources with each perf-counter-groups.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_counter_group_modify



=begin html

Modify an existing counter group. User can modify the sample-interval, sample-buffer and the counter set of an existing counter group at the individual host level. Modifying a counter set of a counter group means user can selectively enable/disable counters according to the requirement of collecting data. If a counter is disabled data will not be collected for that counter and this gives the flexibility of controlling load on a storage system. This zapi will only enable the counters mentioned in the 'data-sources' part of the input parameter 'perf-counter-group' and rest of the counters of the counter group will be automatically disabled. User can also disable all the counters of a counter group by setting the flag 'is-disable-all' in the input parameter 'perf-counter-group'. Enabling/disabling counters is not allowed for calculated stats counters in default counter groups. Privilege required is DFM.Database.Write.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group>  =>   B<L<"perf-counter-group">>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string>

=begin html

<br>The name of the counter group to modify.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_counter_group_start



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string>

=begin html

<br>Counter group name to start data collection for. This must not be a default counter group.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_counter_group_stop



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string>

=begin html

<br>Counter group name to stop data collection for. This must not be a default counter group.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_diag_troubleshoot



=begin html

This API shall troubleshoot the DFM object for performance related issues and provides the recommendations to help resolve them.

=end html



B<Inputs>

=over 2

=item * I<duration>  =>   B<integer, optional>

=begin html

<br>The recent time in seconds for which the data has to be analyzed Either duration or start-time/end-time has be specified but not both. An error will be returned if at least one of them is not supplied.

=end html

=back



=over 2

=item * I<end-time>  =>   B<integer, optional>

=begin html

<br>Time stamp marking the end of diagnosis window The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. Range: [0..(2^32)-1] Either duration or start-time/end-time has to be specified but not both. An error will be returned if at least one of them is not supplied.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>object-name or id of the following objects that needs troubleshooting. <UL> <LI>Storage System </UL>

=end html

=back



=over 2

=item * I<start-time>  =>   B<integer, optional>

=begin html

<br>Time stamp marking the beginning of diagnosis window The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. Range: [0..(2^32)-1] Either duration or start-time/end-time has to be specified but not both. An error will be returned if at least one of them is not supplied.

=end html

=back



B<Outputs>

=over 2

=item * I<categories>  =>   B<L<"perf-diag-category">[]>

=begin html

<br>List of root causes or performance problems.

=end html

=back



=head2 perf_disable_data_collection



=begin html

Disables DFM performance advisor data collection.

=end html



B<Inputs>

=over 2

=item * I<is-async>  =>   B<boolean, optional>

=begin html

<br>Returns immediately without waiting for DFM performance advisor to disable the data collection completely (when set to true). By default this API is synchronous.

=end html

=back



=over 2

=item * I<is-persistent>  =>   B<boolean, optional>

=begin html

<br>If true the disabling of Performance Advisor is saved in the database. If false, the disbling is temporary and the setting is not saved in the database. If the server restarts the data collection begins again.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_disable_object_update



=begin html

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

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_enable_data_collection



=begin html

Enables DFM performance advisor data collection.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_enable_object_update



=begin html

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

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_get_counter_data



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<direction>  =>   B<string, optional>

=begin html

<br>This field is used only when duration is specified It is used to derive the time period for which data is to be retrieved. If the value is set to 'forward', then the starting time is the time stamp of the oldest data. The ending time is the sum of time stamp of the oldest data and the duration. If the value is set to 'backward', then the starting time is the difference between time stamp of the most recent data and the duration. The ending time is the time stamp of the most recent data. If the value is set to 'backward-from-now', then the starting time is the difference between current time and the duration. The ending time is the current time. Default value is 'backward'

=end html

=back



=over 2

=item * I<duration>  =>   B<integer, optional>

=begin html

<br>The duration for which the data is to be returned, in seconds. The time period is calculated based on the direction flag. Duration should not be specified when either start-time or end-time is specified. If specfied, EINVALIDINPUTERROR error will be returned. Range: [0..(2^32)-1]

=end html

=back



=over 2

=item * I<end-time>  =>   B<integer, optional>

=begin html

<br>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]

=end html

=back



=over 2

=item * I<instance-counter-info>  =>   B<L<"instance-counter-info">>

=begin html

<br>This defines what counter data to be returned for the specified instances.

=end html

=back



=over 2

=item * I<number-samples>  =>   B<integer, optional>

=begin html

<br>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]

=end html

=back



=over 2

=item * I<sample-rate>  =>   B<integer, optional>

=begin html

<br>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].

=end html

=back



=over 2

=item * I<start-time>  =>   B<integer, optional>

=begin html

<br>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]

=end html

=back



=over 2

=item * I<time-consolidation-method>  =>   B<string, optional>

=begin html

<br>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 : <li> 'average' <li> 'min' <li> 'max' <li> 'last' Default is 'last'

=end html

=back



=over 2

=item * I<time-filter>  =>   B<L<"time-filter">, optional>

=begin html

<br>Time based filter to reading data. This filter will be applied on the range derived from the start-time/end-time/duration/direction fields. This field is used only for metrics calculations, if metrics field is not specified in the input this field will be ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<invalid-counter-instances>  =>   B<L<"invalid-counter-instance">[], optional>

=begin html

<br>A list of invalid counter instance pairs, for which performance data could not be fetched.

=end html

=back



=over 2

=item * I<perf-instances>  =>   B<L<"perf-instance-counter-data">[], optional>

=begin html

<br>List of instances. Each element of this list contains the counter data for an instance.

=end html

=back



=head2 perf_get_counter_dependents



=begin html

Find out the Operations Manager reports, Performance Advisor custom views, Performance Advisor threshold templates and Performance Advisor thresholds which depend on the specified performance counters.

=end html



B<Inputs>

=over 2

=item * I<counters>  =>   B<L<"perf-object-counter">[]>

=begin html

<br>The list of counters.

=end html

=back



=over 2

=item * I<host-name-or-id>  =>   B<host-name-or-id, optional>

=begin html

<br>The host name or id. If this parameter is specified, custom views attached to object instances will be returned in addition to the custom views attached with object types.

=end html

=back



B<Outputs>

=over 2

=item * I<base-counters>  =>   B<L<"perf-object-counter">[], optional>

=begin html

<br>The list of counters to which at least one of the input counters are dependent.

=end html

=back



=over 2

=item * I<dependent-counters>  =>   B<L<"perf-object-counter">[], optional>

=begin html

<br>The list of counters dependent on at least one of the input counters. This dependent counter list will contain both the calculated stats as well as the basic counters.

=end html

=back



=over 2

=item * I<reports>  =>   B<L<"perf-report">[], optional>

=begin html

<br>The list of report names that have at least one of the input counters.

=end html

=back



=over 2

=item * I<threshold-templates>  =>   B<L<"threshold-template">[], optional>

=begin html

<br>The list of threshold template names that have at least one of the input counters.

=end html

=back



=over 2

=item * I<thresholds>  =>   B<L<"perf-threshold">[], optional>

=begin html

<br>The list of thresholds that have at least one of the input counters.

=end html

=back



=over 2

=item * I<views>  =>   B<L<"perf-view">[], optional>

=begin html

<br>The list of custom views that have at least one of the input counters.

=end html

=back



=head2 perf_get_counter_list_not_in_view



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<object-counter-list>  =>   B<L<"perf-object-counter-info">[]>

=begin html

<br>Array of perf-object-counter-info elements for which information is needed, to know whether they belong to any view or not.

=end html

=back



B<Outputs>

=over 2

=item * I<orphan-object-counter-list>  =>   B<L<"perf-object-counter-info">[]>

=begin html

<br>Array of perf-object-counter-info elements that are not part of any view.

=end html

=back



=head2 perf_get_default_view



=begin html

Gets the default view for an object.

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the object for which the view is to be retrieved. If not present, then Global Group is assumed.

=end html

=back



B<Outputs>

=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>The view-name which is to be displayed by default for the object. Maximum length is 255 characters

=end html

=back



=head2 perf_get_server_status



=begin html

Returns the status of DFM Performance Advisor.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<perf-server-status>  =>   B<L<"perf-server-status">>

=begin html

<br>Specifies the status of Performance Advisor.

=end html

=back



=head2 perf_object_counter_list_info



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name or unique ID for the storage system. 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.

=end html

=back



=over 2

=item * I<include-calculated-stats>  =>   B<boolean, optional>

=begin html

<br>If set to false the output will exclude the calculated stats counters. By default the value is true i.e will always include calculated stats.

=end html

=back



=over 2

=item * I<object-name>  =>   B<string>

=begin html

<br>Name of the performance object to retrieve counters for. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...

=end html

=back



B<Outputs>

=over 2

=item * I<counters>  =>   B<L<"perf-counter">[]>

=begin html

<br>Counters retrieved.

=end html

=back



=head2 perf_object_dependent_counter_list_info



=begin html

Retrieve information about a performance object's dependent counters. Privilege required is read.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name or unique ID for the storage system. 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.

=end html

=back



=over 2

=item * I<object-name>  =>   B<string>

=begin html

<br>Name of the performance object to retrieve dependent counters. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...

=end html

=back



B<Outputs>

=over 2

=item * I<dependent-counters>  =>   B<L<"perf-dependent-counter-info">[]>

=begin html

<br>List of dependent counters.

=end html

=back



=head2 perf_object_instance_list_iter_end



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-object-instance-list-iter- call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_object_instance_list_iter_next



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-object-instance-list-iter- call.

=end html

=back



B<Outputs>

=over 2

=item * I<instances>  =>   B<L<"perf-instance">[]>

=begin html

<br>A list of instances.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 perf_object_instance_list_iter_start



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string>

=begin html

<br>Name (or unique ID) of the storage system. 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.

=end html

=back



=over 2

=item * I<object-name>  =>   B<string>

=begin html

<br>Name of the performance object to retrieve instances for. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are avialble for future retrieval with perf-object-instance-list-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to perf-object-instance-list-iter-next or perf-object-instance-list-iter-end.

=end html

=back



=head2 perf_object_list_info



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>Name (or unique ID) of the storage system. 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.

=end html

=back



B<Outputs>

=over 2

=item * I<objects>  =>   B<L<"perf-object">[]>

=begin html

<br>A list of performance objects.

=end html

=back



=head2 perf_set_default_view



=begin html

Sets the default view for an object.

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the object for which the view is to be set. If not specfied, then the Global Group is assumed.

=end html

=back



=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>The view-name which is to be displayed by default for the object. Maximum length is 255.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_status_get



=begin html

Returns the DFM performance advisor status

=end html



B<Inputs>

=over 2

=item * I<host-name-or-id>  =>   B<string>

=begin html

<br>DFM name or id of the host

=end html

=back



B<Outputs>

=over 2

=item * I<data-unavailable-reason>  =>   B<L<"perf-status-error">[], optional>

=begin html

<br>This element is included only if is-data-available is set to false and indicates the reason(s) for failure.

=end html

=back



=over 2

=item * I<is-data-available>  =>   B<boolean>

=begin html

<br>Returns if the performance data can be collected for this host

=end html

=back



=head2 perf_threshold_create



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<threshold-info>  =>   B<L<"threshold-info">>

=begin html

<br>Information about a threshold that needs to be set.

=end html

=back



B<Outputs>

=over 2

=item * I<threshold-id>  =>   B<threshold-id>

=begin html

<br>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.

=end html

=back



=head2 perf_threshold_create2



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<threshold-info2>  =>   B<L<"threshold-info2">>

=begin html

<br>Specifies the attributes of the threshold to be created.

=end html

=back



B<Outputs>

=over 2

=item * I<threshold-id>  =>   B<threshold-id>

=begin html

<br>Specifies the id of the threshold that is created.

=end html

=back



=head2 perf_threshold_delete



=begin html

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.<P> This ZAPI cannot be used to delete template thresholds, and perf-threshold-template-modify should be used for that purpose.

=end html



B<Inputs>

=over 2

=item * I<threshold-id>  =>   B<threshold-id>

=begin html

<br>The unique identifier of a threshold that needs to be deleted.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_list_info_iter_end



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-threshold-list-iter call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_list_info_iter_next



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <P> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-threshold-list-iter call.

=end html

=back



B<Outputs>

=over 2

=item * I<attributes-list>  =>   B<L<"threshold-info">[]>

=begin html

<br>List of performance thresholds.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=head2 perf_threshold_list_info_iter_start



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<query>  =>   B<L<"threshold-info">, optional>

=begin html

<br>Attributes of the thresholds that need to be listed. If none of the parameters are specified, then all the thresholds will be listed. <P> 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. <P> 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. <P> 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. <P> 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. <P> The rest of the parameters in threshold-info are ignored.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval via calls to perf-threshold-list-info-iter-next

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>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.

=end html

=back



=head2 perf_threshold_list_info2_iter_end



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-threshold-list-info2-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_list_info2_iter_next



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <P> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-threshold-list-info2-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<attributes-list>  =>   B<L<"threshold-info2">[]>

=begin html

<br>List of performance thresholds.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=head2 perf_threshold_list_info2_iter_start



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<threshold-id>  =>   B<threshold-id, optional>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval via calls to perf-threshold-list-info2-iter-next

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>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.

=end html

=back



=head2 perf_threshold_modify



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<attributes>  =>   B<L<"threshold-info">>

=begin html

<br>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.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_modify2



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<threshold-info2>  =>   B<L<"threshold-info2">>

=begin html

<br>Information on the threshold to modify. The threshold-id parameter must be specified to modify a threshold.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_template_attach_objects



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<new-objects>  =>   B<L<"object-info">[], optional>

=begin html

<br>The list of objects to be attached to the template. At least one object should be specified.

=end html

=back



=over 2

=item * I<template-name-or-id>  =>   B<string>

=begin html

<br>Name or id of a performance template

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_template_create



=begin html

Creates a template for perf thresholds.

=end html



B<Inputs>

=over 2

=item * I<member-thresholds>  =>   B<L<"threshold-info2">[], optional>

=begin html

<br>Specifies the thresholds that are to be part of this template.

=end html

=back



=over 2

=item * I<template-description>  =>   B<string, optional>

=begin html

<br>Description of the template.

=end html

=back



=over 2

=item * I<template-name>  =>   B<string>

=begin html

<br>Name of the template.

=end html

=back



B<Outputs>

=over 2

=item * I<template-id>  =>   B<integer>

=begin html

<br>This returns the id of the template that is created Range: [1..2^32-1]

=end html

=back



=head2 perf_threshold_template_delete



=begin html

Deletes a template.

=end html



B<Inputs>

=over 2

=item * I<template-name-or-id>  =>   B<string>

=begin html

<br>The name or id of the template that is to be deleted.

=end html

=back



B<Outputs>

=over 2

=item * I<template-id>  =>   B<integer>

=begin html

<br>The id of the deleted template. Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<template-name>  =>   B<string>

=begin html

<br>The name of the deleted template.

=end html

=back



=head2 perf_threshold_template_detach_objects



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<objects>  =>   B<L<"object-info">[], optional>

=begin html

<br>The list of objects to be detached from the template. At least one object should be specified.

=end html

=back



=over 2

=item * I<template-name-or-id>  =>   B<string>

=begin html

<br>Name or id of a performance template

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_template_list_info_iter_end



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-threshold-template-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_threshold_template_list_info_iter_next



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. <P> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-threshold-template-list-info-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<threshold-templates>  =>   B<L<"threshold-template-info">[]>

=begin html

<br>List of performance thresholds.

=end html

=back



=head2 perf_threshold_template_list_info_iter_start



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<include-objects>  =>   B<boolean, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<include-thresholds>  =>   B<boolean, optional>

=begin html

<br>If true, the output will include the thresholds that are part of the template. Default value is false.

=end html

=back



=over 2

=item * I<template-name-or-id>  =>   B<string, optional>

=begin html

<br>Return information of a specific template

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval via calls to perf-threshold-template-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>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.

=end html

=back



=head2 perf_threshold_template_modify



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<is-enabled>  =>   B<boolean, optional>

=begin html

<br>This specifies if the template is enabled or not. If not specified, the enabled/disabled state of the template is not modified.

=end html

=back



=over 2

=item * I<member-thresholds>  =>   B<L<"threshold-info2">[], optional>

=begin html

<br>Specifies the thresholds that are to be part of this template.

=end html

=back



=over 2

=item * I<template-description>  =>   B<string, optional>

=begin html

<br>A new description for the template, if the description is to be modified.

=end html

=back



=over 2

=item * I<template-id>  =>   B<integer>

=begin html

<br>Specifies the id of the template that is to be modified. Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<template-name>  =>   B<string, optional>

=begin html

<br>The new name for the template, if the name is to be modified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_view_associated_objects_list



=begin html

List all the objects associated with the view.

=end html



B<Inputs>

=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>The view for which to list associated objects

=end html

=back



B<Outputs>

=over 2

=item * I<objects>  =>   B<L<"object-info">[]>

=begin html

<br>The objects that are associated with the view

=end html

=back



=head2 perf_view_create



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<data-sources>  =>   B<L<"perf-data-source">[], optional>

=begin html

<br>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 html

=back



=over 2

=item * I<real-time>  =>   B<boolean, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<view>  =>   B<L<"perf-view">>

=begin html

<br>A performance view to create.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_view_destroy



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>Name (or unique ID) of the storage system. 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.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<is-counter-group-also-deleted>  =>   B<boolean, optional>

=begin html

<br>Also destroy the associated counter group. Default is false. This option is ignored if the counter group is default.

=end html

=back



=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>Name of the view to be destroyed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_view_get_data



=begin html

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.

=end html



B<Inputs>

=over 2

=item * I<direction>  =>   B<string, optional>

=begin html

<br>This field is used only when duration is specified It is used to derive the time period for which data is to be retrieved. If the value is set to 'forward', then the starting time is the time stamp of the oldest data. The ending time is the sum of time stamp of the oldest data and the duration. If the value is set to 'backward', then the starting time is the difference between time stamp of the most recent data and the duration. The ending time is the time stamp of the most recent data. If the value is set to 'backward-from-now', then the starting time is the difference between current time and the duration. The ending time is the current time. Default value is 'backward'

=end html

=back



=over 2

=item * I<duration>  =>   B<integer, optional>

=begin html

<br>The duration for which the data is to be returned, in seconds. The time period is calculated based on the direction flag. Duration should not be specified when either start-time or end-time is specified. If specfied, EINVALIDINPUTERROR error will be returned. Range: [0..(2^32)-1]

=end html

=back



=over 2

=item * I<dynamic-object-info>  =>   B<L<"perf-dynamic-data-sources">, optional>

=begin html

<br>This defines what objects are to be displayed for dynamic charts like top-N objects

=end html

=back



=over 2

=item * I<end-time>  =>   B<integer, optional>

=begin html

<br>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]

=end html

=back



=over 2

=item * I<instance>  =>   B<L<"perf-counter-instance">, optional>

=begin html

<br>The object instance for which data is to be retrieved

=end html

=back



=over 2

=item * I<is-dynamic>  =>   B<boolean, optional>

=begin html

<br>Indicates if top n data sources should be returned Default is false

=end html

=back



=over 2

=item * I<number-samples>  =>   B<integer, optional>

=begin html

<br>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]

=end html

=back



=over 2

=item * I<sample-rate>  =>   B<integer, optional>

=begin html

<br>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]

=end html

=back



=over 2

=item * I<start-time>  =>   B<integer, optional>

=begin html

<br>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]

=end html

=back



=over 2

=item * I<time-consolidation-method>  =>   B<string, optional>

=begin html

<br>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'

=end html

=back



=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>The view from which data is to be retrieved Maximum length is 255

=end html

=back



B<Outputs>

=over 2

=item * I<counter-data>  =>   B<string, optional>

=begin html

<br>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

=end html

=back



=over 2

=item * I<dynamic-data>  =>   B<L<"dynamic-data">[], optional>

=begin html

<br>Contains data for top-N objects

=end html

=back



=over 2

=item * I<unit>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=head2 perf_view_list_iter_end



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous perf-view-list-iter-start

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_view_list_iter_next



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag from a previous perf-view-list-iter- call.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<views>  =>   B<L<"perf-view">[]>

=begin html

<br>A list of views.

=end html

=back



=head2 perf_view_list_iter_start



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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 storage system are returned.

=end html

=back



=over 2

=item * I<custom-only>  =>   B<boolean, optional>

=begin html

<br>If TRUE, returns only custom views, by default FALSE.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<include-empty-views>  =>   B<boolean, optional>

=begin html

<br>If false, the following will be removed from the output views: <ul> <li> lines without any data source <li> charts without any lines <li> views without any charts </ul> By default, this is false.

=end html

=back



=over 2

=item * I<instance-name>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<object-name>  =>   B<string, optional>

=begin html

<br>If specified, only views with a matching object will be returned. Otherwise, all performance views will be returned (subject to the other optional parameters).

=end html

=back



=over 2

=item * I<view-name>  =>   B<string, optional>

=begin html

<br>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).

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval via calls to perf-view-list-iter-next

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to perf-view-list-iter-next or perf-view-list-iter-end

=end html

=back



=head2 perf_view_modify



=begin html

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

=end html



B<Inputs>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>Name (or unique ID) of the storage system. 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.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<view>  =>   B<L<"perf-view">>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>Name of the performance view to modify.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_view_object_association_add



=begin html

Associates an object with a view

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The object to be associated with the view

=end html

=back



=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>The view for which the association is to be set

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 perf_view_object_association_delete



=begin html

Removes the association of an object with a view

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The object to be dis-associated with the view

=end html

=back



=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>The view for which the association is to be deleted

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 provisioning_policy_copy



=begin html

Create a new provisioning policy by making a copy of an existing policy. The new policy created using this ZAPI has the same set of properties as the existing policy. <HR> Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to read the existing policy from the database, or create a new policy, or both. <LI> EOBJECTNOTFOUND - No existing policy was found that has the given name or ID. <LI> EOBJECTAMBIGUOUS - Multiple objects with the given name present in database. <LI> EPOLICYEXISTS - A policy with the given provisioning-policy-name already exists. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EINVALIDINPUTERROR - Invalid input was provided. </UL>

=end html



B<Inputs>

=over 2

=item * I<provisioning-policy-description>  =>   B<string, optional>

=begin html

<br>Description of the new policy. It may contain from 0 to 255 characters. If the length is greater than 255 characters, the ZAPI fails with error code EINVALIDINPUTERROR. The default value is the empty string "".

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-name>

=begin html

<br>Name of the new policy. It must be unique across all provisioning and data protection policies.

=end html

=back



=over 2

=item * I<source-policy-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The name or ID of an existing policy that is copied to create the new policy.

=end html

=back



B<Outputs>

=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id>

=begin html

<br>An object ID for the newly created policy.

=end html

=back



=head2 provisioning_policy_create



=begin html

This ZAPI creates a new provisioning policy. Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to create policies. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EINVALIDINPUTERROR - Invalid input was provided. <LI> EPOLICYEXISTS - A provisioning policy with given name already exists. </UL>

=end html



B<Inputs>

=over 2

=item * I<provisioning-policy-info>  =>   B<L<"provisioning-policy-info">>

=begin html

<br>Provisioning policy details of the new policy to be created.

=end html

=back



B<Outputs>

=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id>

=begin html

<br>Object ID of the newly created policy.

=end html

=back



=head2 provisioning_policy_destroy



=begin html

Destroy a provisioning policy. This removes it from the database. <P> If the policy has been applied to any dataset nodes, then the destroy operation fails; it must first be disassociated from all the dataset nodes to which it has been associated and then destroyed. Error conditions: <UL> <LI> EACCESSDENIED - User does not have DFM.Policy.Delete on the policy being destroyed. <LI> EOBJECTNOTFOUND - The specified provisioning policy does not exist in the database. <LI> EPROVPOLICYINUSE - The policy is assigned to one or more datasets. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EOBJECTAMBIGUOUS - Multiple objects with the given name present in database. <LI> EEDITSESSIONINPROGRESS - The provisioning policy being destroyed locked in an edit session. </UL>

=end html



B<Inputs>

=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>force delete even if there is an edit session in progress on the provisioning policy.

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the provisioning policy being destroyed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 provisioning_policy_edit_begin



=begin html

Create an edit session and obtain an edit lock on a provisioning policy to begin modifying the policy. <P> An edit lock must be obtained before invoking provisioning-policy-modify. <P> Use provisioning-policy-edit-commit to end the edit session and commit the changes to the database. <P> Use provisioning-policy-edit-rollback to end the edit session and discard any changes made to the policy. <P> 24 hours after an edit session on a policy begins, any subsequent call to provisioning-policy-edit-begin for that same policy automatically rolls back the existing edit session and begins a new edit session, just as if the call had used the force option. If there is no such call, the existing edit session simply continues and retains the edit lock. <HR> Error conditions: <UL> <LI> EEDITINPROGRESS - Another edit session already has an edit lock on the specified provisioning policy. <LI> EOBJECTNOTFOUND - No provisioning policy was found that has the given name or ID. <LI> EACCESSDENIED - User does not have DFM.Policy.Write privilege on the policy. modify the provisioning policy. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>If true, and an edit session is already in progress on the specified policy, then the previous edit is rolled back and a new edit is begun. If false, and an edit is already in progress, then the call fails with error code EEDITINPROGRESS. Default value is false.

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of a provisioning policy.

=end html

=back



B<Outputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. Range: [0..(2^31)-1]

=end html

=back



=head2 provisioning_policy_edit_commit



=begin html

Commit changes made to a provisioning policy during an edit session into the database.<P> If all the changes to the policy are performed successfully, the entire edit is committed and the edit lock on the policy is released.<P> If any of the changes to the policy are not performed successfully, then the edit is rolled back (none of the changes are committed) and the edit lock on the policy is released.<P> Use the dry-run option to test the commit. Using this option, the changes to the policy are not committed to the database. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have DFM.Policy.Write on the policy. <LI> EPOLICYEXISTS - The policy's name is being changed, and a policy with the new name already exists. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return a list of the actions the system would take after committing the changes to the policy, but without actually committing the changes. In addition, the edit lock is not released. By default, dry-run is false.

=end html

=back



=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by provisioning-policy-edit-begin ZAPI.

=end html

=back



B<Outputs>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Only returned if dry-run is true.

=end html

=back



=head2 provisioning_policy_edit_rollback



=begin html

Roll back changes made to a provisioning policy. The edit lock on the policy will be released after the rollback. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EACCESSDENIED - User does not have privileges to modify the policy. </UL>

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by provisioning-policy-edit-begin ZAPI.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 provisioning_policy_list_iter_end



=begin html

Terminate a list iteration that had been started by a call to provisioning-policy-list-iter-start. This informs the server that it may now release any resources associated with the temporary store for the list iteration. <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to provisioning-policy-list-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 provisioning_policy_list_iter_next



=begin html

Retrieve the next series of policies that are present in a list iteration created by a call to provisioning-policy-list-iter-start. The server maintains an internal cursor pointing to the last record returned. Subsequent calls to provisioning-policy-list-iter-next return the next maximum records after the cursor, or all the remaining records, whichever is fewer. <HR> Error conditions: <UL> <LI> EINVALIDTAG - The specified tag does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of policies to return. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The opaque handle returned by the prior call to provisioning-policy-list-iter-start that started this list iteration.

=end html

=back



B<Outputs>

=over 2

=item * I<provisioning-policies>  =>   B<L<"provisioning-policy-info">[]>

=begin html

<br>List of information about multiple provisioning policies.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records actually returned in the output. Range:[0..2^31-1]

=end html

=back



=head2 provisioning_policy_list_iter_start



=begin html

Begin a list iteration over all content in all provisioning policies in the system. Optionally, you may iterate over the content of just a single policy. <p> After calling provisioning-policy-list-iter-start, you continue the iteration by calling provisioning-policy-list-iter-next zero or more times, followed by a call to provisioning-policy-list-iter-end to terminate the iteration. <HR> Error conditions: <UL> <LI> EACCESSDENIED - User does not have privileges to read the specified policy. <LI> EOBJECTNOTFOUND - No policy was found that has the given name or ID. <LI> EDATABASEERROR - A database error occurred while processing the request. </UL>

=end html



B<Inputs>

=over 2

=item * I<is-policy-readonly>  =>   B<boolean, optional>

=begin html

<br>filter provisioning policies based on whether they can be modified or not If true, all the policies will be listed, including both modifiable and non-modifable If false, lists the the policies that can be modified

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or ID of the provisioning policy. If provisioning policy name or ID is specified, then provisioning-policy-type filter is ignored.

=end html

=back



=over 2

=item * I<provisioning-policy-type>  =>   B<provisioning-policy-type, optional>

=begin html

<br>filter provisioning policies by type. Possible values are "nas", "san" and "secondary".

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items present in the list iteration. Range:[0..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used to identify the list iteration. The list content resides in a temporary store in the server.

=end html

=back



=head2 provisioning_policy_modify



=begin html

This ZAPI modifies the provisioning policy settings of an existing policy in the database with the new values specified in the input. Note: type of provisioning policy cannot be modified after creation. Before modifying the policy, an edit lock has to be obtained on the policy object. <HR> Error conditions: <UL> <LI> EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. <LI> EEDITSESSIONCONFLICTINGOP - current modification made conflicts with previous change in the edit session. <LI> EACCESSDENIED - User does not have privileges to modify the policy. <LI> EOBJECTNOTFOUND - The policy was already destroyed during this edit session. <LI> EOBJECTAMBIGUOUS - Multiple objects with the given name present in database. <LI> EINVALIDINPUT - The requested modification is not applicable to the policy being modified. <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EDSCONFLICTDEDUPLICATION - Deduplication schedule cannot be set in the policy if it is attached to a SnapVault destination node. Valid only for secondary provisioning policy. </UL>

=end html



B<Inputs>

=over 2

=item * I<edit-lock-id>  =>   B<integer>

=begin html

<br>Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by provisioning-policy-edit-begin.

=end html

=back



=over 2

=item * I<provisioning-policy-info>  =>   B<L<"provisioning-policy-info">>

=begin html

<br>New values for provisioning policy attributes. Any value specified in the provisioning-policy-info replaces the existing values of attributes. If an optional element is not specified no change is made to the existing attribute settings in database.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 qtree_list_info_iter_end



=begin html

The qtree-list-info-iter-* set of APIs are used to retrieve the list of qtrees. qtree-list-info-iter-end is used to tell the DFM station that the temporary store used by DFM to support the qtree-list-info-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 qtree_list_info_iter_next



=begin html

For more documentation please check qtree-list-info-iter-start. The qtree-list-info-iter-next API is used to iterate over the members of the Qtrees stored in the temporary store created by the qtree-list-info-iter-start API.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous qtree-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by qtree-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<qtrees>  =>   B<L<"qtree-info">[]>

=begin html

<br>List of Qtrees.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 qtree_list_info_iter_start



=begin html

The qtree-list-info-iter-* set of APIs are used to retrieve the list of qtrees in DFM. qtree-list-info-iter-start returns the union of qtree objects specified, intersected with is-snapvault-secondary-qtrees, is-in-dataset and rbac-operation. It loads the list of qtrees 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 qtrees in the temporary store. If qtree-list-info-iter-start is invoked twice, then two distinct temporary stores are created.

=end html



B<Inputs>

=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each qtree which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<is-direct-member-only>  =>   B<boolean, optional>

=begin html

<br>If true, only return the qtrees that are direct members of the specified resource group. Default value is false. This field is meaningful only if a resource group name or id is given for the object-name-or-id field.

=end html

=back



=over 2

=item * I<is-direct-vfiler-child>  =>   B<boolean, optional>

=begin html

<br>If true, only list qtrees that are direct children of a Vfiler. If false, only list qtrees that are indirect children of a Vfiler. If not specified, list qtrees that are direct and indirect children of a Vfiler. This filter does not have any effect if <b>object-name-or-id</b> is not a Vfiler.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>If true, only list qtrees that have been set to be ignored for purposes of data protection. If false, only list qtrees that have been not set to be ignored for purposes of data protection. If not specified, list all qtrees without taking into account whether they have been ignored or not.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean, optional>

=begin html

<br>If true, only list qtrees which only contain data which is protected by a dataset. If false, only list qtrees containing data which is not protected by a dataset. If not specified, list all qtrees whether they are in a dataset or not.

=end html

=back



=over 2

=item * I<is-snapvault-secondary-qtrees>  =>   B<boolean, optional>

=begin html

<br>If true, only SnapVault secondary qtrees are listed. Otherwise, all qtrees are listed. Default is false.

=end html

=back



=over 2

=item * I<is-unprotected>  =>   B<boolean, optional>

=begin html

<br>If true, only list qtrees that are not protected, which means they are not in any SnapMirror or SnapVault relationship. If false or not set, list all qtrees.

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or identifier of an object to list qtrees for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Dataset <li> Storage Set <li> Host <li> Aggregate <li> Volume <li> Qtree <li> GenericAppObject </ul> If object-name-or-id identifies a qtree, that single qtree will be returned. If object-name-or-id resolves to more than one qtree, all of them will be returned. If no object-name-or-id is provided, all qtrees will be listed. If object-name-or-id identifies a dataset or a storage set, only qtrees that are direct members of that dataset or storage set will be returned.

=end html

=back



=over 2

=item * I<rbac-operation>  =>   B<string, optional>

=begin html

<br>Name of an RBAC operation. If specified, only return qtrees for which authenticated admin has the required capability. A capability is an operation/resource pair. The resource is the volume where the qtree lives. The possible values that can be specified for operation can be obtained by calling rbac-operation-info-list. If operation is not specified, then it defaults to DFM.Database.Read. For more information about operations, capabilities and user roles, see the RBAC APIs.

=end html

=back



=over 2

=item * I<sort-results>  =>   B<boolean, optional>

=begin html

<br>If true, sort the results by qtree name in ascending alphabetical order using US ASCII lexographic rules.. Default value is true. The results are always sorted unless all qtrees in the system are requested and "sort-results" is set to false.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with qtree-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to qtree-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 qtree_modify



=begin html

Modify a qtree's information. If modifying of one property fails, nothing will be changed. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified qtree. <li> EINVALIDINPUT - When invalid input specified. <li> EOBJECTNOTFOUND - When the qtree-name-or-id does not correspond to a qtree. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to ignore this object for purposes of data protection.

=end html

=back



=over 2

=item * I<qtree-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the qtree to modify.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 qtree_rename



=begin html

Rename a qtree on a storage system and in the DataFabric Manager database. The new qtree will still be in the same volume as the original qtree. The first step renames the given qtree on the storage system. If that fails, then processing stops and the API emits an EINTERNALERROR to the caller along with the appropriate error message. The second step renames the given qtree on the DFM database. If that fails, then processing stops and the same EINTERNALERROR is emitted back to the caller along with an appropriate error message. There is no retrying or undoing of any of the steps should they fail. The API relies on the DFM monitor to undo the rename automatically. However, the undoing does not happen right away because it depends on the DFM monitor regular update schedule. The DFM monitor periodically ensures that storage system resources are matched in its database -- it updates the database to be consistent with the storage system. Prior to invoking this API, the storage system's login credentials where the qtree resides must be specified in DFM's database using normal DFM procedure.

=end html



B<Inputs>

=over 2

=item * I<qtree-name-new>  =>   B<string>

=begin html

<br>New name for qtree on storage system. This is just the qtree name, not including the storage system or volume parts.

=end html

=back



=over 2

=item * I<qtree-name-or-id>  =>   B<string>

=begin html

<br>Qtree to rename. If a name is specified, then it must in the form specified by DFM's normal container and containment rules such as hostname:/volume/qtree_name (for example, breeze:/vol0/myqtree). Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 qtree_start_monitoring



=begin html

Start monitoring a previously un-monitored primary qtree from the DataFabric Manager. Error EQTREEMONITORONFAIL means that an attempt to start monitoring the specified qtree failed.

=end html



B<Inputs>

=over 2

=item * I<qtree-name-or-id>  =>   B<string>

=begin html

<br>A qtree name or identifier to start monitoring. Name must in the form specified by DFM's normal container and containment rules such as hostname:/volume/qtree_name (for example, breeze:/vol0/myqtree). Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 qtree_stop_monitoring



=begin html

Stop monitoring a primary qtree from the DataFabric Manager. A qtree that is being managed by an application cannot be stopped being monitored (errno returned will be EQTREEMANAGEDBYAPP)

=end html



B<Inputs>

=over 2

=item * I<qtree-name-or-id>  =>   B<string>

=begin html

<br>A qtree name or identifier to stop monitoring. Name must in the form specified by DFM's normal container and containment rules such as hostname:/volume/qtree_name (for example, breeze:/vol0/myqtree). Range: [1..2^31-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_access_check



=begin html

Checks whether the given admin or usergroup has access to the specified resource. For example, rbac-access-check will return "allow" or "deny" on the following query: Is admin joe allowed to configure storage system, host1.abc.xyz.com, from DFM? One could pass the following as input to answer this question: admin=joe operation=DFM.Event.Read resource=host1.abc.xyz.com In order to prevent an admin from querying everyone's privileges on the system, the system will only allow admins to check their own access by cross-referencing with however they authenticated to the API server. If the admin has Full Control, or has the privilege to query other admin's access, then they will be allowed to make the query. Per software security best practice, this API limits error reporting when access is denied on a particular resource.

=end html



B<Inputs>

=over 2

=item * I<admin-name-or-id>  =>   B<string>

=begin html

<br>The admin or usergroup name or object id of an admin or usergroup to check access.

=end html

=back



=over 2

=item * I<operation>  =>   B<string>

=begin html

<br>operation requested on given resource

=end html

=back



=over 2

=item * I<resource>  =>   B<L<"resource-identifier">>

=begin html

<br>The specific resource to check access

=end html

=back



B<Outputs>

=over 2

=item * I<global-usergroup-status>  =>   B<string>

=begin html

<br>If roles assigned to global usergroup accounts where considered, but it was not possible to get glogal group account information from the system, then global-usergroup-status will contain the reason why it was not possible to get global group account information from the system. An empty value in this field means that roles assigned to global usergroup accounts were considered and it was possible to obtain this information from the system

=end html

=back



=over 2

=item * I<local-usergroup-status>  =>   B<string>

=begin html

<br>If roles assigned to local usergroup accounts where considered, but it was not possible to get local group account information from the system, then local-usergroup-status will contain the reason why it was not possible to get local group account information from the system. An empty value in this field means that roles assigned to local usergroup accounts were considered and it was possible to obtain this information from the system,

=end html

=back



=over 2

=item * I<result>  =>   B<string>

=begin html

<br>Result of whether or not the given admin or usergroup is allowed to perform the specified action on the given resource. In essence, it answers whether the given admin or usergroup can perform the specified operation on the the given resource. Possible values: "allow" for access allowed and "deny" for access denied.

=end html

=back



=head2 rbac_admin_list_info_iter_end



=begin html

Ends listing of admins.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag returned from rbac-admin-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_admin_list_info_iter_next



=begin html

Returns items from list generated by rbac-admin-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>The tag returned in rbac-admin-list-iter-start call.

=end html

=back



B<Outputs>

=over 2

=item * I<admins>  =>   B<L<"admin-info">[]>

=begin html

<br>The list returned includes the id, name of administrators and their email/pager addresses.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=head2 rbac_admin_list_info_iter_start



=begin html

Lists all the administrators and their attributes.

=end html



B<Inputs>

=over 2

=item * I<admin-name-or-id>  =>   B<string, optional>

=begin html

<br>The admin or usergroup name or id whose details are necessary.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with rbac-admin-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to rbac-admin-list-info-iter-next or rbac-admin-list-info-iter-end.

=end html

=back



=head2 rbac_admin_role_add



=begin html

Assign an existing role to an existing administrator or usergroup. The administrator effectively gains the capabilities from the role and its inherited roles. As for a usergroup, all members of the usergroup will gain the capabilities assigned to that role and its inherited roles.

=end html



B<Inputs>

=over 2

=item * I<admin-name-or-id>  =>   B<string>

=begin html

<br>The admin or usergroup name or object id of an admin or usergroup to add role to.

=end html

=back



=over 2

=item * I<role-name-or-id>  =>   B<string>

=begin html

<br>A role name or object id of a role to add to an administrator or usergroup.

=end html

=back



B<Outputs>

=over 2

=item * I<admin-name-or-id>  =>   B<L<"rbac-admin-name-or-id">>

=begin html

<br>The name of the new admin or usergroup or the object id of the new admin or usergroup.

=end html

=back



=head2 rbac_admin_role_info_list



=begin html

List the administrators or usergroups assigned to an existing role directly or indirectly. In essence, this API lists the admins or usergroups that have the capabilities of the given role. This API drills into all the possible ways that an admin or usergroup can effectively have the given role. Admins or usergroups are assigned roles indirectly via role inheritance or usergroup assignment (note: a usergroup can be a member of another usergroup). So an admin or usergroup will be listed if any of the following conditions apply: 1. Given role is directly assigned to the admin or usergroup 2. Admin or usergroup has a role directly assigned that inherits given role. 3. Admin or usergroup gains the given role via usergroup membership

=end html



B<Inputs>

=over 2

=item * I<role-name-or-id>  =>   B<string>

=begin html

<br>An role name or object id of a role.

=end html

=back



B<Outputs>

=over 2

=item * I<admin-list>  =>   B<L<"rbac-admin-or-usergroup">[]>

=begin html

<br>List of admins and usergroups assigned to given role

=end html

=back



=head2 rbac_admin_role_remove



=begin html

Remove one or more roles from an administrator or usergroup. The admin will no longer have the capabilities gained from the role(s) and its inherited roles. As for a usergroup, the members of the usergroup will no longer have the capabilities gained from the role(s) and its inherited roles. If delete-all is not specified or is FALSE, then role-name-or-id must be specified. If delete-all is TRUE, then all roles assigned to admin will be removed.

=end html



B<Inputs>

=over 2

=item * I<admin-name-or-id>  =>   B<string>

=begin html

<br>An admin or usergroup name or object id of an admin or usergroup to remove role from. If delete-all is not specified or is FALSE then role-name-or-id must be specified.

=end html

=back



=over 2

=item * I<delete-all>  =>   B<boolean, optional>

=begin html

<br>If TRUE, removes all the roles for given administrator

=end html

=back



=over 2

=item * I<role-name-or-id>  =>   B<string, optional>

=begin html

<br>A role name or object id of a role to remove from an admin or usergroup.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_operation_add



=begin html

Add a new operation to the RBAC system. An operation is an ability to perform an action on a particular resource type. An operation is tied to a specific application so that different applications are able to manage access control that are specific to them.

=end html



B<Inputs>

=over 2

=item * I<operation>  =>   B<L<"rbac-operation">>

=begin html

<br>Operation to be added

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_operation_delete



=begin html

Delete an existing operation

=end html



B<Inputs>

=over 2

=item * I<operation>  =>   B<string>

=begin html

<br>Operation to delete

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_operation_info_list



=begin html

Get information about an existing operation or all operations in the system.

=end html



B<Inputs>

=over 2

=item * I<operation>  =>   B<string, optional>

=begin html

<br>Operation to get information about. If not specified, then it gets info on all operations in the system.

=end html

=back



B<Outputs>

=over 2

=item * I<operation-list>  =>   B<L<"rbac-operation">[]>

=begin html

<br>A list of operations with their details

=end html

=back



=head2 rbac_role_add



=begin html

Add a new role to the RBAC system

=end html



B<Inputs>

=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>Description of the role. The maximum length is 255 characters.

=end html

=back



=over 2

=item * I<owner-name-or-id>  =>   B<string, optional>

=begin html

<br>Owner role name to add. The maximum length is 64 characters.

=end html

=back



=over 2

=item * I<role-name>  =>   B<string>

=begin html

<br>Role name to add. The maximum length is 64 characters.

=end html

=back



B<Outputs>

=over 2

=item * I<role-id>  =>   B<integer>

=begin html

<br>role id of the newly created role.

=end html

=back



=head2 rbac_role_admin_info_list



=begin html

List the roles assigned to an existing administratror or usergroup. A role is considered assigned to the administrator if that role is gained directly or indirectly via role inheritance or usergroup membership.

=end html



B<Inputs>

=over 2

=item * I<admin-name-or-id>  =>   B<string>

=begin html

<br>An administrator or usergroup name or object id of an administrator or usergroup to list roles assigned.

=end html

=back



=over 2

=item * I<follow-role-inheritance>  =>   B<boolean, optional>

=begin html

<br>If TRUE, return all roles that given role inherits directly and indirectly. If FALSE or not set, return only roles that are directly assigned to the given administrator or usergroup.

=end html

=back



B<Outputs>

=over 2

=item * I<admin-name-or-id>  =>   B<L<"rbac-admin-name-or-id">>

=begin html

<br>The name of the admin or usergroup or the object id of the admin or usergroup.

=end html

=back



=over 2

=item * I<global-usergroup-status>  =>   B<string, optional>

=begin html

<br>If roles assigned to global usergroup accounts where considered, but it was not possible to get glogal group account information from the system, then global-usergroup-status will contain the reason why it was not possible to get global group account information from the system. An empty value in this field means that roles assigned to global usergroup accounts were considered and it was possible to obtain this information from the system

=end html

=back



=over 2

=item * I<local-usergroup-status>  =>   B<string, optional>

=begin html

<br>If roles assigned to local usergroup accounts where considered, but it was not possible to get local group account information from the system, then local-usergroup-status will contain the reason why it was not possible to get local group account information from the system. An empty value in this field means that roles assigned to local usergroup accounts were considered and it was possible to obtain this information from the system,

=end html

=back



=over 2

=item * I<role-list>  =>   B<L<"rbac-role-resource">[], optional>

=begin html

<br>A list of role names assigned to the given administratror or usergroup. The list will be empty if no roles are currently assigned to the administrator or usergroup.

=end html

=back



=head2 rbac_role_capability_add



=begin html

Add an existing resource/operation pair to a role. In essence, this adds a capability to a role.

=end html



B<Inputs>

=over 2

=item * I<operation>  =>   B<string>

=begin html

<br>An existing operation to add to the specified role.

=end html

=back



=over 2

=item * I<resource>  =>   B<L<"resource-identifier">>

=begin html

<br>The resource associated with the given operation

=end html

=back



=over 2

=item * I<role-name-or-id>  =>   B<string>

=begin html

<br>Role name or object id of the role to add the capability (operation/resource pair)

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_role_capability_remove



=begin html

Remove one or more capabilities (resource/operation pair) from an existing role. If delete-all is TRUE, it removes all capabilities from given role. Otherwise, it removes only the given capability (resource/operation pair). If delete-all is not specified or is FALSE, then operation and resource must be specified.

=end html



B<Inputs>

=over 2

=item * I<delete-all>  =>   B<boolean, optional>

=begin html

<br>If TRUE, removes all the capabilities for given role. If FALSE, a valid operation must be provided in the operation parameter.

=end html

=back



=over 2

=item * I<operation>  =>   B<string, optional>

=begin html

<br>An operation to remove. If delete-all is FALSE, the caller must provide a valid operation here.

=end html

=back



=over 2

=item * I<resource>  =>   B<L<"resource-identifier">, optional>

=begin html

<br>The resource associated with the given operation. If delete-all is FALSE, the caller must provide a valid resource identifier here.

=end html

=back



=over 2

=item * I<role-name-or-id>  =>   B<string>

=begin html

<br>Role name or object id of the role to remove the capability.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_role_delete



=begin html

Delete an existing role from the RBAC system

=end html



B<Inputs>

=over 2

=item * I<role-name-or-id>  =>   B<string>

=begin html

<br>A role name or object id of a role to delete

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_role_disinherit



=begin html

Disinherit one or more roles. The effect is that the affected role will no longer have the capabilities gained from the disinherited role(s). If disinherit-all is not specified or is FALSE, then disinherited-role-name-or-id must be specified.

=end html



B<Inputs>

=over 2

=item * I<disinherit-all>  =>   B<boolean, optional>

=begin html

<br>If TRUE, disinherits all the roles that given role-name-or-id inherits.

=end html

=back



=over 2

=item * I<disinherited-role-name-or-id>  =>   B<string, optional>

=begin html

<br>A role name or object id of a role to disinherit from.

=end html

=back



=over 2

=item * I<role-name-or-id>  =>   B<string>

=begin html

<br>An existing role name or object id of a role to modify.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_role_info_list



=begin html

Get the operations, capabilities and inherited roles that one or more roles have.

=end html



B<Inputs>

=over 2

=item * I<follow-role-inheritance>  =>   B<boolean, optional>

=begin html

<br>If TRUE, return all roles that given role inherits directly and indirectly. If FALSE or not set, return only roles that are directly inherited by given role.

=end html

=back



=over 2

=item * I<role-name-or-id>  =>   B<string, optional>

=begin html

<br>Role name or object id of a role. If not specified, then it gets info on all the roles.

=end html

=back



B<Outputs>

=over 2

=item * I<role-attributes>  =>   B<L<"role-attributes-identifier">[]>

=begin html

<br>A list of roles and its associated attributes

=end html

=back



=head2 rbac_role_inherit



=begin html

Inherit from a role. The effect is that the affected role will gain the capabilities from the inherited role.

=end html



B<Inputs>

=over 2

=item * I<inherited-role-name-or-id>  =>   B<string>

=begin html

<br>A role name or object id of a role to inherit from.

=end html

=back



=over 2

=item * I<role-name-or-id>  =>   B<string>

=begin html

<br>A role name or object id of a role to modify.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 rbac_role_modify



=begin html

Modify an existing role name and/or its description.

=end html



B<Inputs>

=over 2

=item * I<role-description-new>  =>   B<string, optional>

=begin html

<br>The new role description for the old role, role-name-or-id-old.

=end html

=back



=over 2

=item * I<role-name-new>  =>   B<string, optional>

=begin html

<br>The new role name for the old role, role-name-or-id-old.

=end html

=back



=over 2

=item * I<role-name-or-id-old>  =>   B<string>

=begin html

<br>A role name or object id of a role to modify. Either role-name-new or role-description-new or both must be specified. The object Id of a role cannot be modified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_category_list



=begin html

Api to list report-categories and its details.

=end html



B<Inputs>

=over 2

=item * I<category-name-or-id>  =>   B<string, optional>

=begin html

<br>The name or id of the category. If specified, only the specified category along with its sub categories are listed. If not specified, all categories and their sub categories will be listed.

=end html

=back



=over 2

=item * I<category-provenance>  =>   B<string, optional>

=begin html

<br>Possible values:"custom" returns only custom categories. "canned" returns only canned categories. If not specified both custom and canned categories are returned.

=end html

=back



B<Outputs>

=over 2

=item * I<category-list>  =>   B<L<"category-list-info">[], optional>

=begin html

<br>Contains list of categories.

=end html

=back



=head2 report_designer_list



=begin html

API to list reports created using report designer.

=end html



B<Inputs>

=over 2

=item * I<category-name-or-id>  =>   B<string, optional>

=begin html

<br>Contains the category name or the id. If specified, only reports which are in the specified category are returned. If not specified, all the reports will be listed.

=end html

=back



=over 2

=item * I<report-provenance>  =>   B<report-provenance, optional>

=begin html

<br>It describes the category the report belongs.

=end html

=back



B<Outputs>

=over 2

=item * I<report-list>  =>   B<L<"report-list-info">[], optional>

=begin html

<br>Contains list of reports.

=end html

=back



=head2 report_designer_schedule_add



=begin html

API to schedule a report. Only reports listed by report-designer-list API can be scheduled using this API. It creates a new schedule based on schedule-content-info and a new report schedule object with the schedule and corresponding report being scheduled

=end html



B<Inputs>

=over 2

=item * I<report-schedule-info>  =>   B<L<"report-schedule-info">>

=begin html

<br>Details of a report schedule

=end html

=back



=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">>

=begin html

<br>Details of a schedule

=end html

=back



B<Outputs>

=over 2

=item * I<report-schedule-id>  =>   B<obj-id>

=begin html

<br>Specifies the id of the report schedule created.

=end html

=back



=head2 report_designer_schedule_delete



=begin html

API to delete a report schedule object and its associated schedule. Only report schedules for reports returned by report-designer-list API can be deleted using this API.

=end html



B<Inputs>

=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the report schedule.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_designer_schedule_modify



=begin html

API to modify a report schedule and/or its schedule details. Only report schedules for reports returned by report-designer-list API can be modified using this API

=end html



B<Inputs>

=over 2

=item * I<report-schedule-info>  =>   B<L<"report-schedule-info">, optional>

=begin html

<br>Details of modifiable contents of a report schedule. If this is not specified, schedule-content-info should be specified.

=end html

=back



=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Specifies the name or id of the report schedule to be modified.

=end html

=back



=over 2

=item * I<schedule-content-info>  =>   B<L<"schedule-content-info">, optional>

=begin html

<br>Details of a schedule. If this is not specified, report-schedule-info should be specified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_designer_share



=begin html

Shares report output of specified report in the specified format to the mentioned email-address-list.

=end html



B<Inputs>

=over 2

=item * I<email-address-list>  =>   B<email-address-list>

=begin html

<br>Email addresses of recipients for a mail to be sent with an attachment when the report is generated.

=end html

=back



=over 2

=item * I<output-format>  =>   B<report-output-format, optional>

=begin html

<br>Specifies the format of the report to be sent. Default value is html.

=end html

=back



=over 2

=item * I<report-name-or-id>  =>   B<string>

=begin html

<br>The CLI name or unique id of the report to be shared.

=end html

=back



=over 2

=item * I<subject-field>  =>   B<string, optional>

=begin html

<br>The string which should be sent as subject field in the email. Default: Generated Report: <report-name>(provided-by-user) on <target-object-name>(provided by user).

=end html

=back



=over 2

=item * I<target-object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the target object on which the report has to be shared. If not specified, the report is generated at the global level.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_graph_list_info_iter_end



=begin html

Terminate a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_graph_list_info_iter_next



=begin html

Returns items from a previous call to report-graph-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<graph-list>  =>   B<L<"graph-info">[]>

=begin html

<br>A list of graphs.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=head2 report_graph_list_info_iter_start



=begin html

Initiates a query for a list of graphs for a particular report.

=end html



B<Inputs>

=over 2

=item * I<report-application>  =>   B<report-application, optional>

=begin html

<br>Specifies the application to which the report belongs.

=end html

=back



=over 2

=item * I<report-name-or-id>  =>   B<string>

=begin html

<br>Name of the report for which graphs have to be listed. For custom reports it can either be name or id. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<target-object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the object for which graphs have to be listed. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with report-graph-list-info-iter-next. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store. Used in subsequent calls to report-graph-list-info-iter-next or report-graph-list-info-iter-end.

=end html

=back



=head2 report_list_info_iter_end



=begin html

Terminate a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_list_info_iter_next



=begin html

Returns items from a previous call to report-list-info-iter-start

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [0..2^31-1].

=end html

=back



=over 2

=item * I<report-list>  =>   B<L<"report-info">[]>

=begin html

<br>A list of reports that can be scheduled.

=end html

=back



=head2 report_list_info_iter_start



=begin html

Initiates a query for a list of reports that can be scheduled.

=end html



B<Inputs>

=over 2

=item * I<report-application>  =>   B<report-application, optional>

=begin html

<br>Specifies the application for which reports have to be listed. If not specified then all the reports are listed.

=end html

=back



=over 2

=item * I<report-name-or-id>  =>   B<string, optional>

=begin html

<br>Specifies the name of report to be listed. For custom report id can be specified. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-type>  =>   B<string, optional>

=begin html

<br>Specifies the type for which reports have to be listed. Possible values: 'custom', 'built_in'.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with report-list-info-iter-next. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store. Used in subsequent calls to report-list-info-iter-next or report-list-info-iter-end.

=end html

=back



=head2 report_output_delete



=begin html

Deletes a report output.

=end html



B<Inputs>

=over 2

=item * I<report-output-id>  =>   B<integer>

=begin html

<br>Specifies the id of the report output. Range: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_output_list_info_iter_end



=begin html

Terminate a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_output_list_info_iter_next



=begin html

Returns items from a previous call to report-output-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<report-output-list>  =>   B<L<"report-output-info">[]>

=begin html

<br>A list of outputs.

=end html

=back



=head2 report_output_list_info_iter_start



=begin html

Initiates a query for a list of report outputs.

=end html



B<Inputs>

=over 2

=item * I<is-successful>  =>   B<boolean, optional>

=begin html

<br>Specifies whether the status of the report output was successful. If the input element is not present then all (success and fail) the report outputs are listed.

=end html

=back



=over 2

=item * I<report-application>  =>   B<report-application, optional>

=begin html

<br>Specifies the application for which reports have to be listed. Default is 'control_center'.

=end html

=back



=over 2

=item * I<report-name-or-id>  =>   B<string, optional>

=begin html

<br>Name of the report. For custom reports it can either be name or id. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-output-id>  =>   B<integer, optional>

=begin html

<br>Specifies the id of the report output. If this is specified then filtering based on object-name-or-id and report-schedule-name-or-id is ignored. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the name or id of the report schedule for which the output has to be listed. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<target-object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies one of the following: - the name or id of the group. - the name or id of the object. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with report-output-list-info-iter-next. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store. Used in subsequent calls to report-output-list-info-iter-next or report-output-list-info-iter-end.

=end html

=back



=head2 report_output_read



=begin html

Reads report output data from a file. API will fail if length exceeds 1 MB.

=end html



B<Inputs>

=over 2

=item * I<length>  =>   B<integer>

=begin html

<br>Number of bytes to read from the file. Range: [0..2^20]

=end html

=back



=over 2

=item * I<offset>  =>   B<integer>

=begin html

<br>Offset into file to start reading from. Range: [0..(2^31)-1]

=end html

=back



=over 2

=item * I<report-output-id>  =>   B<integer>

=begin html

<br>Specifies the id of the report output. Range: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * I<file-data>  =>   B<string>

=begin html

<br>Data read from the file. The data is is xml encoded.

=end html

=back



=over 2

=item * I<length>  =>   B<integer>

=begin html

<br>Number of bytes actually read from the file. If this value is 0, then you have attempted to read at or past the end of the file. Range: [0..2^20]

=end html

=back



=over 2

=item * I<output-format>  =>   B<report-output-format>

=begin html

<br>The output format of the file read.

=end html

=back



=head2 report_schedule_add



=begin html

Add a new report schedule.

=end html



B<Inputs>

=over 2

=item * I<report-schedule-info>  =>   B<L<"report-schedule-info">>

=begin html

<br>Details of a report schedule

=end html

=back



B<Outputs>

=over 2

=item * I<report-schedule-id>  =>   B<obj-id>

=begin html

<br>Specifies the id of the report schedule created. Range: [1..(2^31)-1]

=end html

=back



=head2 report_schedule_delete



=begin html

Deletes a report schedule.

=end html



B<Inputs>

=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the report schedule. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_schedule_disable



=begin html

Disable a report schedule.

=end html



B<Inputs>

=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the report schedule. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_schedule_enable



=begin html

Enable a report schedule.

=end html



B<Inputs>

=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the report schedule. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_schedule_list_info_iter_end



=begin html

Terminate a view list iteration and clean up any saved info.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_schedule_list_info_iter_next



=begin html

Returns items from a previous call to report-schedule-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store.

=end html

=back



B<Outputs>

=over 2

=item * I<report-schedule-list>  =>   B<L<"report-schedule-content-info">[]>

=begin html

<br>A list of report schedules.

=end html

=back



=head2 report_schedule_list_info_iter_start



=begin html

Initiates a query for a list of report schedules.

=end html



B<Inputs>

=over 2

=item * I<is-enabled>  =>   B<boolean, optional>

=begin html

<br>Specifies whether the state of the report schedule is enabled. If the input element is not present then all (enabled and disabled) the report schedules are listed.

=end html

=back



=over 2

=item * I<report-application>  =>   B<report-application, optional>

=begin html

<br>Specifies to list only those report schedules which involve reports that belong to this application. Default is 'control_center'.

=end html

=back



=over 2

=item * I<report-name-or-id>  =>   B<string, optional>

=begin html

<br>Name of the report. For custom reports it can either be name or id. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the name or id of the report schedule to be listed. If this is specified then filtering the report schedules based on report-name-or-id, report-application, target-object-name-or-id if any is ignored. If not specified then only the report schedules satisfying all the conditions will be listed. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<target-object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies one of the following: - the name or id of the group. - the name or id of the object. If specified, only the report schedules which have the target object as that of the input are listed. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number indicating how many items are available for future retrieval with report-schedule-list-info-iter-next. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An opaque handle used by the DFM station to identify a temporary store. Used in subsequent calls to report-schedule-list-info-iter-next or report-schedule-list-info-iter-end.

=end html

=back



=head2 report_schedule_modify



=begin html

Modify a report schedule.

=end html



B<Inputs>

=over 2

=item * I<report-schedule-info>  =>   B<L<"report-schedule-info">>

=begin html

<br>Details of modifiable contents of a report schedule.

=end html

=back



=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Specifies the name or id of the report schedule to be modified. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 report_schedule_run



=begin html

Runs a report schedule at that instant of time.

=end html



B<Inputs>

=over 2

=item * I<report-schedule-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the report schedule. Range for id: [1..(2^31)-1]

=end html

=back



B<Outputs>

=over 2

=item * I<report-output-id>  =>   B<integer>

=begin html

<br>Specifies the id of the report output generated. Range: [1..(2^31)-1]

=end html

=back



=head2 resourcepool_add_member



=begin html

Add member -- storage system or aggregate -- to an existing resource pool. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified resource pool or DFM.Database.Read privilege on the object being added. <li> ERESOURCEPOOLDOESNOTEXIST - When the specified resource pool does not exist. <li> EOBJECTNOTFOUND - When the specified object of valid type to add is not found or object does not exist at all. <li> EINVALIDMEMBERTYPE - When an aggregate to add contains traditional volume or it is aggregate snapshot. <li> EOBJECTINANOTHERDYNAMICREFERENCE - When the specified object or its relative members, are already in another resource pool/storage set. Try again with move flag to move resources across resource pools. When used by storage set, you need to manually remove resource from storage set and add it to resource pool. <li> EOBJECTINDIRECTMEMOFANOTHERDYNAMICREF - Object being added to Resource pool is in another Resource pool and it's a indirect member of the Resource pool. <li> EOBJECTEXISTSINRESOURCEPOOL - When the specified object already exists in the resource pool. <li> EOBJECTAMBIGUOUS - When the specified object name is ambiguous to denote whether its storage system or aggregate. Try again with fully qualified name or object id. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<member-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the member to add to the resource pool. Possible values are name/id of storage system or aggregate. It should be a valid DFM object name or object id. A valid DFM object name should contain at least one non-numeric character. A valid DFM object id should be in the range of [1..2^31-1].

=end html

=back



=over 2

=item * I<move-if-exists>  =>   B<boolean, optional>

=begin html

<br>If the object to add, or one or more of its contents, is already in a resource pool, this flag specifies that the object should be removed from the old dynamic reference and added to the resource pool. By default, the add operation fails if the object, or one of its contents, is already in a storage set or resource pool.

=end html

=back



=over 2

=item * I<resource-tag>  =>   B<resource-tag, optional>

=begin html

<br>resource tag of the member which is set on the member.

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the resource pool to extend. It should be a valid DFM object name or object id. A valid DFM object name should contain at least one non-numeric character. A valid DFM object id should be in the range of [1..2^31-1].

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 resourcepool_create



=begin html

Create a new, empty resource pool. <br> Error Conditions: <ul> <li> EINVALIDINPUT - When invalid name specified. A valid name is non empty and constitutes at least one non-numeric character. <li> ERESOURCEPOOLEXISTS - When the specified resource pool already exists. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<resourcepool>  =>   B<L<"resourcepool-info">>

=begin html

<br>New information about a resource pool to modify. If any field is not specified, that field will not be changed. <p> Name field should be specified and others are optional. If the optional fields are specified, they would be set during creation itself.

=end html

=back



B<Outputs>

=over 2

=item * I<resourcepool-id>  =>   B<integer>

=begin html

<br>Identifier of the new resource pool. Its a valid DFM object id. A valid DFM object id would be in the range of [1..2^31-1].

=end html

=back



=head2 resourcepool_destroy



=begin html

Destroy a resource pool. If the resource pool is in use by a storage set or resource pool is not empty, the resource pool may only be destroyed by specifying the force flag. If the resource pool is in use by the storage service, the resource pool can be destroyed only after removing it from the storage service. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Delete capability on the specified resource pool. <li> ERESOURCEPOOLDOESNOTEXIST - When the specified resource pool does not exist. <li> ERESOURCEPOOLNOTEMPTY - When the specified resource pool is not empty. Try again with force flag. <li> ERESOURCEPOOLINUSE - When the specified resource pool is in use by a storage set. Try again with force flag. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>If specified, allows destroying a resource pool that has members or in use by storage set.

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of resource pool to destroy. It should be a valid DFM object name or object id. A valid DFM object name should contain at least one non-numeric character. A valid DFM object id should be in the range of [1..2^31-1].

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 resourcepool_get_defaults



=begin html

Get the default values of attributes defined by this ZAPI set.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<resourcepool-defaults>  =>   B<L<"resourcepool-defaults">>

=begin html

<br>The default values of the attributes defined by this ZAPI.

=end html

=back



=head2 resourcepool_list_info_iter_end



=begin html

Ends iteration of resource pools.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous resourcepool-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 resourcepool_list_info_iter_next



=begin html

Get next records in the iteration started by resourcepool-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous resourcepool-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Value of 0 records indicates that end of records. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<resourcepools>  =>   B<L<"resourcepool-info">[]>

=begin html

<br>List of resource pools.

=end html

=back



=head2 resourcepool_list_info_iter_start



=begin html

Starts iteration to list resource pools. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Read capability on the specified resource pools. <li> ERESOURCEPOOLDOESNOTEXIST - When the specified resource pool is not found in the database. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<check-licenses>  =>   B<license[], optional>

=begin html

<br>Filter for licensed services running on Data ONTAP. If this input is present, only resourepools containing atleast one aggregate hosted on a filer having these licenses will have resourcepool-is-provisionable flag set to TRUE.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<string, optional>

=begin html

<br>Applicable only if object-name-or-id specified is of type 'dataset'.

=end html

=back



=over 2

=item * I<include-free-space>  =>   B<boolean, optional>

=begin html

<br>If this value is true, then free space information will be included with each resource pool. If this value is false or not specified, then no free space information is included. resourcepool-space-status is returned only when include-free-space is true.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of a resource pool or group or dataset or storage service. If unspecified, all resource pools are listed.

=end html

=back



=over 2

=item * I<resource-tag>  =>   B<resource-tag, optional>

=begin html

<br>If this input is present, only the resource pools having this tag or containing atleast one member having this tag will have resourcepool-is-provisionable flag set to TRUE.

=end html

=back



=over 2

=item * I<storage-reliability>  =>   B<L<"storage-reliability">, optional>

=begin html

<br>If this input is present, only the resourcepools containing atleast one member having the required reliability will have resourcepool-is-provisionable flag set to TRUE.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items that have been saved for future retrieval with resourcepool-list-info-iter-next. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to resourcepool-list-info-iter-next.

=end html

=back



=head2 resourcepool_member_list_info_iter_end



=begin html

Ends iteration of resource pools.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous resourcepool-member-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 resourcepool_member_list_info_iter_next



=begin html

Get next records in the iteration started by resourcepool-member-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous resourcepool-member-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Value of 0 records indicates that end of records. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<resourcepool-members>  =>   B<L<"resourcepool-member-info">[]>

=begin html

<br>List of the members of the resource pool.

=end html

=back



=head2 resourcepool_member_list_info_iter_start



=begin html

Starts iteration to list members of specified resource pool. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Read capability on the specified resource pools. <li> ERESOURCEPOOLDOESNOTEXIST - When the specified resource pool does not exist. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<include-dataset-space-info>  =>   B<boolean, optional>

=begin html

<br>If true, space utilized by datasets on each aggregate is returned. Default value: false. This is input is ignored when run-provisioning-checks element is true.

=end html

=back



=over 2

=item * I<include-indirect>  =>   B<boolean, optional>

=begin html

<br>If true, indirect members are included. By default they are not included.

=end html

=back



=over 2

=item * I<member-type>  =>   B<string, optional>

=begin html

<br>Type of object to be returned. Possible values are 'filer' or 'aggregate'.

=end html

=back



=over 2

=item * I<provision-member-request-info>  =>   B<L<"provision-member-request-info">, optional>

=begin html

<br>Information of a provisioning request.

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or id of provisioning policy, this input ignored if run-provisioning-checks is false.

=end html

=back



=over 2

=item * I<resourcepool-member-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or id of resource pool member.

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the resource pool to query. It should be a valid DFM object name or object id. A valid DFM object name should contain at least one non-numeric character. A valid DFM object id should be in the range of [1..2^31-1].

=end html

=back



=over 2

=item * I<run-provisioning-checks>  =>   B<boolean, optional>

=begin html

<br>If true, provisioning related checks are run on all the members of the resource pool using the provisioning policy and provisioning request info specied as part of provisioning-policy-name-or-id and provisioning-member-request-info inputs elements.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items that have been saved for future retrieval with resourcepool-member-list-info-iter-next. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to resourcepool-member-list-info-iter-next.

=end html

=back



=head2 resourcepool_modify



=begin html

Modify a resource pool's information. If modifying of one property fails, nothing will be changed. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified resource pool. <li> EINVALIDINPUT - When invalid input specified. A resourcepool-name should be non empty and constitutes at least one non-numeric character. <br> The resourcepool-contact value should be email address which does not have any white space. <li> ERESOURCEPOOLDOESNOTEXIST - When the specified resource pool does not exist. <li> ERESOURCEPOOLEXISTS - Already a resource pool exists with the new name. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<resourcepool>  =>   B<L<"resourcepool-info">>

=begin html

<br>New information about a resource pool to modify. If any field is not specified, that field will not be changed. If none of the optional parameters are specified, then this API does nothing.

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the resource pool to modify. It should be a valid DFM object name or object id. A valid DFM object name should contain at least one non-numeric character. A valid DFM object id should be in the range of [1..2^31-1].

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 resourcepool_modify_member



=begin html

Modify the properties of members of resource pool. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified resource pool or DFM.Database.Write privilege on the object being modified. <li> ERESOURCEPOOLDOESNOTEXIST - When the specified resource pool does not exist. <li> EOBJECTNOTFOUND - When the specified object of valid type to add is not found or object does not exist at all. <li> EINVALIDMEMBERTYPE - When an object is not a mamber of resourcepool. <li> EOBJECTAMBIGUOUS - When the specified object name is ambiguous to denote whether its filer or aggregate. Try again with fully qualified name or object id. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<member-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the member to modify in the resource pool.

=end html

=back



=over 2

=item * I<resource-tag>  =>   B<resource-tag, optional>

=begin html

<br>Label for the resource pool member.

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the resource pool.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 resourcepool_remove_member



=begin html

Remove member -- storage system or aggregate -- from a resource pool. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Delete capability on the specified resource pool or DFM.Database.Read privilege on the object being removed. <li> ERESOURCEPOOLDOESNOTEXIST - When the specified resource pool does not exist. <li> EOBJECTNOTFOUND - When the specified object to remove not found. <li> EOBJECTAMBIGUOUS - When the specified object name is ambiguous to denote whether its storage system or aggregate. Try again with fully qualified name or object id. <li> EOBJECTNOTINRESOURCEPOOL - When the specified object does not exist in the resource pool. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<member-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of member to remove from the resource pool. Possible values are name/id of storage system or aggregate. It should be a valid DFM object name or object id. A valid DFM object name should contain at least one non-numeric character. A valid DFM object id should be in the range of [1..2^31-1].

=end html

=back



=over 2

=item * I<resourcepool-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the resource pool to modify. It should be a valid DFM object name or object id. A valid DFM object name should contain at least one non-numeric character. A valid DFM object id should be in the range of [1..2^31-1].

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 resourcepool_update_free_space_status



=begin html

Check the free space in the resource pool against the nearly-full and full thresholds and generate appropriate events for the resource pool.

=end html



B<Inputs>

=over 2

=item * I<resourcepool-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of resource pool

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 snapshot_get_reclaimable_info



=begin html

Returns the amount of space that would be freed when a set of Snapshot copies are deleted from a specified volume. This API gets information dynamically from the filer and is a blocking call.

=end html



B<Inputs>

=over 2

=item * I<snapshots>  =>   B<L<"snapshot">[]>

=begin html

<br>List of Snapshot copies. A maximum of 255 Snapshot copies can be listed.

=end html

=back



=over 2

=item * I<volume-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the volume on which the reclaimable space has to be computed by deleting the specified set of Snapshot copies.

=end html

=back



B<Outputs>

=over 2

=item * I<reclaimable-size>  =>   B<integer>

=begin html

<br>Size in bytes of space reclaimable if the specified set of Snapshot copies were deleted. Range : [0..2^63-1].

=end html

=back



=over 2

=item * I<snapshot-shared-data>  =>   B<integer>

=begin html

<br>Total number of bytes shared between active file system and snapshots after the given snapshots are deleted. Range: [0..2^63-1]

=end html

=back



=head2 snapshot_list_info_iter_end



=begin html

Ends iteration of Snapshot copies.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous snapshot-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 snapshot_list_info_iter_next



=begin html

Retrieve the next records in the iteration started by snapshot-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous snapshot-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Value of 0 records indicates end of records. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<snapshots>  =>   B<L<"snapshot-info">[]>

=begin html

<br>null

=end html

=back



=head2 snapshot_list_info_iter_start



=begin html

Returns information on a list of Snapshot copies.

=end html



B<Inputs>

=over 2

=item * I<include-backup-info>  =>   B<boolean, optional>

=begin html

<br>If true and snapshot is part of a dataset backup version, the backup version information which contains this snapshot as member is returned. Default value is false.

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the object whose Snapshot copies are to be listed. Valid types of objects are: <ul> <li> volume - Lists Snapshot copies of this volume <li> aggregate - Lists Snapshot copies of all volumes in the aggregate <li> filer - Lists all Snapshot copies of all volumes on this filer. <li> vFiler - Lists all Snapshot copies for volumes exclusively belonging to this vFiler. <li> Vserver - Lists all Snapshot copies for volumes exclusively belonging to this Vserver. <li> dataset - Lists all Snapshot copies of all volumes that are members of all nodes of the dataset. <li> storage set - Lists all Snapshot copies of all volumes that are members of the storage set. <li> resource group - Lists all Snapshot copies of all volumes that are direct or indirect members of the resource group. </ul> If this input is not specified, then the ZAPI lists all Snapshot copies known to DataFabric Manager server.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of items that have been saved for future retrieval with snapshot-list-info-iter-next. <br> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to snapshot-list-info-iter-next.

=end html

=back



=head2 srm_file_type_add



=begin html

Add the SRM file type in dfm.

=end html



B<Inputs>

=over 2

=item * I<srm-file-type-name>  =>   B<string>

=begin html

<br>SRM file type. If an invalid file type is provided then error will be returned. Following characters are not allowed in file type: /, \, *, ?, <, >, | Also, a file type can start with a ... (dot) but should have at least one more character and cannot have a ... (dot) in between the file name.

=end html

=back



B<Outputs>

=over 2

=item * I<srm-file-type-id>  =>   B<obj-id>

=begin html

<br>Unique identifier representing an srm file type in dfm.

=end html

=back



=head2 srm_file_type_delete



=begin html

Delete the SRM file type in dfm. If any entry in the input is invalid then, none of the file types will be deleted and error will be returned.

=end html



B<Inputs>

=over 2

=item * I<srm-file-type-name-or-id-list>  =>   B<object-name-or-id[]>

=begin html

<br>Represents an array of either file type name or unique identifiers corresponding to SRM file types in dfm.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 srm_file_type_list_info



=begin html

Returns all the SRM file types in dfm.

=end html



B<Inputs>

=over 2

=item * I<srm-file-type-id>  =>   B<obj-id, optional>

=begin html

<br>Unique identifier representing an srm file type in dfm. If no input was provided then all the SRM file types will be listed.

=end html

=back



B<Outputs>

=over 2

=item * I<srm-file-types>  =>   B<L<"srm-file-type-info">[]>

=begin html

<br>The list of SRM file types.

=end html

=back



=head2 storage_service_create



=begin html

Create a new storage service.

=end html



B<Inputs>

=over 2

=item * I<group-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Resource group to which the newly created storage service will be added to. User should have DFM.Service.Write capability on the specified group. Default value: Global group.

=end html

=back



=over 2

=item * I<protection-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the protection policy to associate with this storage service. The data protection license is required for this input.

=end html

=back



=over 2

=item * I<storage-service-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact for the storage service, such as the owner's e-mail address.

=end html

=back



=over 2

=item * I<storage-service-description>  =>   B<string, optional>

=begin html

<br>Description of the new storage service, up to 255 characters long.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-name>

=begin html

<br>Name of the new storage service. It cannot be all numeric. The allowed characters are a to z A to Z 0 to 9 ' ' (space) . (period) _ (underscore) - (hyphen) If any other characters are included, an error is returned.

=end html

=back



=over 2

=item * I<storage-service-node-list>  =>   B<L<"storage-service-node-attributes">[]>

=begin html

<br>Attributes of the policy nodes.

=end html

=back



=over 2

=item * I<storage-service-owner>  =>   B<string, optional>

=begin html

<br>Name of the owner of the storage service, up to 255 characters long.

=end html

=back



B<Outputs>

=over 2

=item * I<storage-service-id>  =>   B<obj-id>

=begin html

<br>Identifier of the new storage service

=end html

=back



=head2 storage_service_dataset_list_iter_end



=begin html

Ends iteration to list of datasets associated with a storage service.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous storage-service-dataset-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 storage_service_dataset_list_iter_next



=begin html

Get next few records in the iteration started by storage-service-dataset-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous storage-service-dataset-list-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=over 2

=item * I<storage-service-datasets-info>  =>   B<L<"storage-service-dataset-info">[]>

=begin html

<br>Information about a dataset and its association with a storage service.

=end html

=back



=head2 storage_service_dataset_list_iter_start



=begin html

Lists the association of datasets with storage services. If no service/dataset name or id is provided then all datasets with no storage service are listed.

=end html



B<Inputs>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the storage service, resource group or dataset. If a resource group is provided, storage services and datasets associated with them are returned. If this input is not provided then all datasets with no storage service are listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retrieval with storage-service-dataset-list-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to storage-service-dataset-list-iter-next.

=end html

=back



=head2 storage_service_dataset_modify



=begin html

Attach, detach, or clear a storage service to a dataset.

=end html



B<Inputs>

=over 2

=item * I<assume-confirmation>  =>   B<boolean, optional>

=begin html

<br>Value determining whether confirmation is given for all resolvable conformance actions that require user confirmation. If the value is true, all conformance actions which require user confirmation will be executed as if confirmation is already granted. If the value is false, all conformance actions which require user confirmation will not be executed. One key, and sometimes undesirable, resolvable action that requires user confirmation is the possible re-baseline of a relationship. By default, assume-confirmation is false.

=end html

=back



=over 2

=item * I<dataset-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset object

=end html

=back



=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return the dry-run-results list as well as the conformance-alerts list. The dry-run-results list contains actions that would be taken should the changes be committed without actually committing the changes. The conformance-alerts list contains high level alerts to notify a user of conditions that will impact any attempt to commit the changes. A conformance alert may warn that if the changes are committed, one or more rebaseline operations may be done. The conformance alerts may also warn of conditions that exist that may prevent the successful conformance of services. By default, dry-run is false.

=end html

=back



=over 2

=item * I<include-dry-run-reason-details>  =>   B<boolean, optional>

=begin html

<br>If true or omitted, then include any possible <b>dry-run-reason-details</b> along with the associated <b>dry-run-result</b> element. Default value is true. If false, the <b>dry-run-reason-details</b> will not be returned.

=end html

=back



=over 2

=item * I<operation-type>  =>   B<string>

=begin html

<br>Possible values, "attach", "detach", or "clear". "detach" means: For storage datasets, detach the storage service, but leave the dp policy and resource pools attached to the dataset. For datasets containing application resources or having an application policy, detachment of storage service is not allowed, since these datasets can not have dp policy or resource pools directly attached. So this will error out. "clear" means to detach the storage service, as well as detach the dp policy and resource pools. It can have some destructive side effects such as destroying protection relationships.

=end html

=back



=over 2

=item * I<storage-service-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the storage service object. It is not required for 'detach' or 'clear' operation

=end html

=back



=over 2

=item * I<storage-service-node-list>  =>   B<L<"storage-service-node-attributes">[], optional>

=begin html

<br>Information about dp policy node mapping. This input is considered only for 'attach' operation to specify the node mapping. Specify only dp-node-name and old-dp-node-name. All other elements of this input will be ignored, if specified.

=end html

=back



B<Outputs>

=over 2

=item * I<conformance-alerts>  =>   B<L<"conformance-alert">[], optional>

=begin html

<br>Alerts that apply to the conformance check. Each alert describes one type of condition that a user should be aware of before attempting to conform any more services. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=head2 storage_service_dataset_provision



=begin html

Creates a dataset with the specified storage service

=end html



B<Inputs>

=over 2

=item * I<application-info>  =>   B<L<"application-info">, optional>

=begin html

<br>If is-application-data is true, then this element will contain information about the application which manages this dataset.

=end html

=back



=over 2

=item * I<assume-confirmation>  =>   B<boolean, optional>

=begin html

<br>Value determining whether confirmation is given for all resolvable conformance actions that require user confirmation. If the value is true, all conformance actions which require user confirmation will be executed as if confirmation is already granted. If the value is false, all conformance actions which require user confirmation will not be executed. Default value is false.

=end html

=back



=over 2

=item * I<dataset-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact for the dataset, such as the owner's e-mail address.

=end html

=back



=over 2

=item * I<dataset-description>  =>   B<string, optional>

=begin html

<br>Description of the new dataset, up to 255 characters long.

=end html

=back



=over 2

=item * I<dataset-metadata>  =>   B<L<"dfm-metadata-field">[], optional>

=begin html

<br>Opaque metadata for dataset. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of the new dataset. It cannot be all numeric. The allowed characters are a to z A to Z 0 to 9 ' ' (space) . (period) _ (underscore) - (hyphen) If any other characters are included, an error is returned.

=end html

=back



=over 2

=item * I<dataset-owner>  =>   B<string, optional>

=begin html

<br>Name of the owner of the dataset, up to 255 characters long.

=end html

=back



=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return the dry-run-results list as well as the conformance-alerts list. The dry-run-results list contains actions that would be taken should the changes be committed without actually committing the changes. The conformance-alerts list contains high level alerts to notify a user of conditions that will impact any attempt to commit the changes. A conformance alert may warn that if the changes are committed, one or more rebaseline operations may be done. The conformance alerts may also warn of conditions that exist that may prevent the successful conformance of services. By default, assume-confirmation is false.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Resource group to which the newly created dataset should be added to. User should have DFM.Dataset.Write capability on the specified group. Default value: Global group.

=end html

=back



=over 2

=item * I<include-dry-run-reason-details>  =>   B<boolean, optional>

=begin html

<br>If true or omitted, then include any possible <b>dry-run-reason-details</b> along with the associated <b>dry-run-result</b> element. Default value is true. If false, the <b>dry-run-reason-details</b> will not be returned.

=end html

=back



=over 2

=item * I<is-application-data>  =>   B<boolean, optional>

=begin html

<br>If true, the dataset is an application dataset managed by an external application. <P>Default value is false.

=end html

=back



=over 2

=item * I<is-suspended>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to suspend this dataset for all automated actions (data protection and conformance check of the dataset). <P>Default is false.

=end html

=back



=over 2

=item * I<online-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates, that the migration cutover has to be non-disrputive. By default the migration will be assumed to be disruptive. This applies only to the vFiler unit to be created or attached to the primary node of the dataset. If provided in input, either dataset-access-details or server-name-or-id should be provided in storage-set-info for the primary node.

=end html

=back



=over 2

=item * I<provision-member>  =>   B<L<"provision-member-request-info">, optional>

=begin html

<br>Information of the provisioning request for the member

=end html

=back



=over 2

=item * I<requires-non-disruptive-restore>  =>   B<requires-non-disruptive-restore, optional>

=begin html

<br>Specifies whether the dataset should be configured to enable non-disruptive restores from backup destinations. <P>Default value is false.

=end html

=back



=over 2

=item * I<storage-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object identifier of a storage service object.

=end html

=back



=over 2

=item * I<storage-set-details>  =>   B<L<"storage-set-info">[], optional>

=begin html

<br>Configuration details for each storage set.

=end html

=back



=over 2

=item * I<volume-qtree-name-prefix>  =>   B<string, optional>

=begin html

<br>Prefix for volume and qtree names, up to 60 characters long. The allowed characters are a to z A to Z 0 to 9 ' ' (space) . (period) _ (underscore) - (hyphen) If any other characters are included, an error is returned.

=end html

=back



B<Outputs>

=over 2

=item * I<conformance-alerts>  =>   B<L<"conformance-alert">[], optional>

=begin html

<br>Alerts that apply to the conformance check. Each alert describes one type of condition that a user should be aware of. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Identifier of the newly provisioned dataset.

=end html

=back



=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=head2 storage_service_destroy



=begin html

Destroy a storage service. In order to destroy storage service containing datasets, force option must be supplied.

=end html



B<Inputs>

=over 2

=item * I<force>  =>   B<boolean, optional>

=begin html

<br>If true, allows destroying a storage service that is attached to datasets. By default, only storage services that are not associated with any datasets can be destroyed. This can only destroy storage services that have storage datasets attached. If the datasets attached to the storage services contain application resources or have application policy assigned, then the force option will not work. Because doing so would have destructive implications, the relationships would get destroyed, therefore, users have to manually clear the storage service from those datasets before the storage service can be destroyed.

=end html

=back



=over 2

=item * I<storage-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the storage service to destroy.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 storage_service_list_info_iter_end



=begin html

Ends iteration to list storage services.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous storage-service-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 storage_service_list_info_iter_next



=begin html

Get next few records in the iteration started by storage-service-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous storage-service-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=over 2

=item * I<storage-services>  =>   B<L<"storage-service-info">[]>

=begin html

<br>List of storage services.

=end html

=back



=head2 storage_service_list_info_iter_start



=begin html

Starts iteration to list storage services.

=end html



B<Inputs>

=over 2

=item * I<is-dr-capable>  =>   B<boolean, optional>

=begin html

<br>If true, return only storage services which contain data protection policies, that are disaster recovery capable. If false, return only storage services which contain data protection policies, that are not disaster recovery capable or which do not contain any data protection policy. By default, return all storage services.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of a storage service or resource group. If a resource group is given, only the storage services which are direct members of the group are returned.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records that have been saved for future retrieval with storage-service-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to storage-service-list-info-iter-next.

=end html

=back



=head2 storage_service_modify



=begin html

Modify attributes for a storage service

=end html



B<Inputs>

=over 2

=item * I<assume-confirmation>  =>   B<boolean, optional>

=begin html

<br>Value determining whether confirmation is given for all resolvable conformance actions that require user confirmation. If the value is true, all conformance actions which require user confirmation will be executed as if confirmation is already granted. If the value is false, all conformance actions which require user confirmation will not be executed. One key, and sometimes undesirable, resolvable action that requires user confirmation is the possible re-baseline of a relationship. By default, assume-confirmation is false.

=end html

=back



=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>If true, return the dry-run-results list as well as the conformance-alerts list. The dry-run-results list contains actions that would be taken should the changes be committed without actually committing the changes. The conformance-alerts list contains high level alerts to notify a user of conditions that will impact any attempt to commit the changes. A conformance alert may warn that if the changes are committed, one or more rebaseline operations may be done. The conformance alerts may also warn of conditions that exist that may prevent the successful conformance of services. By default, dry-run is false.

=end html

=back



=over 2

=item * I<include-dry-run-reason-details>  =>   B<boolean, optional>

=begin html

<br>If true or omitted, then include any possible <b>dry-run-reason-details</b> along with the associated <b>dry-run-result</b> element. Default value is true. If false, the <b>dry-run-reason-details</b> will not be returned.

=end html

=back



=over 2

=item * I<protection-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the protection policy to associate with this storage service. The data protection license is required for this input.

=end html

=back



=over 2

=item * I<storage-service-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact for the storage service, such as the owner's e-mail address.

=end html

=back



=over 2

=item * I<storage-service-description>  =>   B<string, optional>

=begin html

<br>Description of the storage service, up to 255 characters long.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-name>

=begin html

<br>null

=end html

=back



=over 2

=item * I<storage-service-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or object identifier of a storage service object.

=end html

=back



=over 2

=item * I<storage-service-node-list>  =>   B<L<"storage-service-node-attributes">[], optional>

=begin html

<br>Information about dp policy nodes.

=end html

=back



=over 2

=item * I<storage-service-owner>  =>   B<string, optional>

=begin html

<br>Name of the owner of the storage service, up to 255 characters long.

=end html

=back



B<Outputs>

=over 2

=item * I<conformance-alerts>  =>   B<L<"conformance-alert">[], optional>

=begin html

<br>Alerts that apply to the conformance check. Each alert describes one type of condition that a user should be aware of before attempting to conform any more services. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=head2 timezone_get_defaults



=begin html

Retrieves the default time zone settings, including the time zone in which the server runs and the time zone to use for objects that don't specify their own time zone.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<timezone-defaults>  =>   B<L<"timezone-defaults">>

=begin html

<br>The default time zone settings.

=end html

=back



=head2 timezone_list_info_iter_end



=begin html

Ends iteration to list time zones.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous timezone-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 timezone_list_info_iter_next



=begin html

Get the next few records in the iteration started by timezone-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous timezone-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=over 2

=item * I<timezones>  =>   B<L<"timezone-info">[]>

=begin html

<br>List of time zones from the built-in zoneinfo database.

=end html

=back



=head2 timezone_list_info_iter_start



=begin html

Starts iteration to list time zones from the internal database of time zone information.

=end html



B<Inputs>

=over 2

=item * None

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with timezone-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to timezone-list-info-iter-next.

=end html

=back



=head2 timezone_validate



=begin html

Determines if a time zone specification is valid. The specification may be the name of timezone returned from timezone-list-info-iter-next(), or can be a POSIX-style time zone specification.

=end html



B<Inputs>

=over 2

=item * I<timezone>  =>   B<string>

=begin html

<br>Proposed time zone string.

=end html

=back



B<Outputs>

=over 2

=item * I<utc-offset>  =>   B<integer>

=begin html

<br>Current offset, in seconds, between this time zone and UTC. Range: -43200 to 50400. Negative values are west of UTC; positive values are east of UTC.

=end html

=back



=head2 user_favorite_report_delete



=begin html

Deletes favorite reports of a user or all users.

=end html



B<Inputs>

=over 2

=item * I<user-name>  =>   B<string, optional>

=begin html

<br>Name of user whose favorite reports are to be deleted. If not specified then favorite reports of all users will be deleted. Domain name\user name is required for windows.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 user_favorite_report_list_info_iter_end



=begin html

The user-favorite-report-list-info-iter-* set of APIs are used to retrieve the list of user favorite counts. user-favorite-report-list-info-iter-end is used to tell the DFM station that the temporary store used by DFM to support the user-favorite-report-list-info-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 user_favorite_report_list_info_iter_next



=begin html

For more documentation please check user-favorite-report-list-info-iter-start. The user-favorite-report-list-info-iter-next API is used to iterate over the members of user favorite report counts stored in the temporary store created by the user-favorite-report-list-info-iter-start API.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous user-favorite-report-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by user-favorite-report-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<favorites>  =>   B<L<"user-report-info">[]>

=begin html

<br>Number of favorite reports per user.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 user_favorite_report_list_info_iter_start



=begin html

The user-favorite-report-list-info-iter-* set of APIs are used to retrieve the number of favorite reports of specified user or all users. It loads the list of user favorite report counts 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 list in the temporary store. If user-favorite-report-list-info-iter-start is invoked twice, then two distinct temporary stores are created.

=end html



B<Inputs>

=over 2

=item * I<user-name>  =>   B<string, optional>

=begin html

<br>Name of user. User can be a dfm or non-dfm user. If not specified then all users. Domain name\user name is required for windows.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with user-favorite-report-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to user-favorite-report-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 user_recent_report_delete



=begin html

Deletes recently viewed reports of a user or all users.

=end html



B<Inputs>

=over 2

=item * I<user-name>  =>   B<string, optional>

=begin html

<br>Name of user whose recenlty viewed reports are to be deleted. If not specified then recently viewed reports of all users will be deleted. Domain name\user name is required for windows.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 user_recent_report_list_info_iter_end



=begin html

The user-recent-report-list-info-iter-* set of APIs are used to retrieve the list of user's recently viewed report counts. user-recent-report-list-info-iter-end is used to tell the DFM station that the temporary store used by DFM to support the user-recent-report-list-info-iter-next API for the particular tag is no longer necessary.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 user_recent_report_list_info_iter_next



=begin html

For more documentation please check user-recent-report-list-info-iter-start. The user-recent-report-list-info-iter-next API is used to iterate over the members of user's recently viewed report counts stored in the temporary store created by the user-recent-report-list-info-iter-start API.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous user-recent-report-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by user-recent-report-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<recent-viewed>  =>   B<L<"user-report-info">[]>

=begin html

<br>Number of recently viewed reports per user.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 user_recent_report_list_info_iter_start



=begin html

The user-recent-report-list-info-iter-* set of APIs are used to retrieve the number of recently viewed report count of specified user or all users. It loads the list of user's recently viewed report counts 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 list in the temporary store. If user-recent-report-list-info-iter-start is invoked twice, then two distinct temporary stores are created.

=end html



B<Inputs>

=over 2

=item * I<user-name>  =>   B<string, optional>

=begin html

<br>Name of user. User can be a dfm or non-dfm user. If not specified then all users. Domain name\user name is required for windows.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with user-recent-report-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to user-recent-report-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 vfiler_create



=begin html

Create a new vFiler on a storage system. A vFiler can be created by either: <UL> <LI> Specifying the filer on which to create it. <LI> Speciying a resource pool. In this case, a filer is selected from the resource pool based on required licenses and in-built resource selection algorithm to evenly balance space and load in the resource pool and a vFiler will be created on the selected filer. </UL> Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have required capabilities to create a vFiler. <li> EOBJECTNOTFOUND - When the specified resource-name-or-id id not found. <li> EFILERNOTFOUND - No storage system could be found on which a vFiler could be created. <li> EINVALIDINPUT - Invalid input provided for certain fields. <li> EINVALIDMEMBERTYPE - when the filer is in c-mode. <li> EMULTISTORENOTLICENSED - When resource-name-or-id corresponds to a filer that does not have multistore licensed. </ul>

=end html



B<Inputs>

=over 2

=item * I<allowed-protocols>  =>   B<protocol[], optional>

=begin html

<br>List of protocols that needs to be allowed access to the vFiler. If not specfied, none of the protocols will be allowed on the vFiler.

=end html

=back



=over 2

=item * I<dry-run>  =>   B<boolean, optional>

=begin html

<br>Check if a vFiler can be created on the given resource-name-or-id. The hosting filer on which the vFiler is created will be returned. If there are any errors, because of which a vFiler cannot be created on the given resource-name-or-id, the API will throw an error. No changes are made to the resource-name-or-id when dry-run is true. Default value is false.

=end html

=back



=over 2

=item * I<ip-address>  =>   B<ip-address, optional>

=begin html

<br>IP address of the new vFiler. This element is not required only when the API is run in dry-run mode.

=end html

=back



=over 2

=item * I<ipspace>  =>   B<string, optional>

=begin html

<br>IP Space of the new vFiler. Only alphabets, number, hyphens and underscore characters are allowed. It can be a maximum of 64 characters. If not specified, vFiler is created in "default-ipspace".

=end html

=back



=over 2

=item * I<name>  =>   B<obj-name>

=begin html

<br>Name of the new vFiler to be created. Only alphabets, number, hyphens and underscore characters are allowed. It can be a maximum of 64 characters.

=end html

=back



=over 2

=item * I<resource-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the hosting filer or resource pool from which to provision a new vFiler.

=end html

=back



B<Outputs>

=over 2

=item * I<filer-id>  =>   B<obj-id>

=begin html

<br>Identifier of hosting filer on which the vFiler was or will be created in dry-run mode.

=end html

=back



=over 2

=item * I<filer-name>  =>   B<obj-full-name>

=begin html

<br>Name of the hosting filer on which the vFiler was or will be created in dry-run mode.

=end html

=back



=over 2

=item * I<root-volume-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the root volume created for this vFiler unit. This is not returned when the API is run in dry-run mode.

=end html

=back



=over 2

=item * I<root-volume-name>  =>   B<obj-full-name, optional>

=begin html

<br>Full name of the root volume created for this vFiler unit. This is not returned when the API is run in dry-run mode.

=end html

=back



=over 2

=item * I<vfiler-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of new vFiler created in DFM database. This is not returned when the API is run in dry-run mode.

=end html

=back



=head2 vfiler_destroy



=begin html

Destroy a vfiler. This API stops and then destroys the vFiler on the hosting filer and marks the vFiler as deleted in DFM. Storage resources owned by the vFiler are not destroyed. They will be owned by the hosting filer after the vFiler is destroyed. Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have required capabilities to destroy the vFiler. <li> EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <li> EOBJECTNOTFOUND - When the specified vFiler is not found. </UL>

=end html



B<Inputs>

=over 2

=item * I<vfiler-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name of identifier of the vFiler to be destroyed.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vfiler_setup



=begin html

Configure and setup a vFiler based on a specified vFiler template. Depending on the input a CIFS setup will also be done on the vFiler. Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have required capabilities to setup the vFiler. <li> EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <li> EOBJECTNOTFOUND - When the specified vFiler is not found. <li> EINVALIDINPUT - Invalid input provided. </ul>

=end html



B<Inputs>

=over 2

=item * I<allowed-protocols>  =>   B<protocol[], optional>

=begin html

<br>List of protocols that needs to be allowed access to the vFiler. This list overrides the list of protocols currently allowed on the vFiler. If this is not present, no changes are done to the allowed protocols of the vFiler.

=end html

=back



=over 2

=item * I<cifs-domain-password>  =>   B<string, optional, encrypted>

=begin html

<br>Password for cifs-domain-user. Encrypted using 2-way encryption. <br> Applicable and mandatory if cifs-auth-type is set to "active_directory" in vfiler template specified in vfiler-template-name-or-id. Default value is empty.

=end html

=back



=over 2

=item * I<cifs-domain-user>  =>   B<string, optional>

=begin html

<br>Name of CIFS domain user that has the ability to add the CIFS server to the domain given in cifs-domain-name in vfiler template specified in vfiler-template-name-or-id. Examples: username (assumes domain-name is the user's domain), cifsdomain\username, cifs.domain.com\username. Applicable and mandatory if cifs-auth-type is set to "active_directory" in vfiler template specified in vfiler-template-name-or-id. Default value is empty.

=end html

=back



=over 2

=item * I<cifs-workgroup-name>  =>   B<string, optional>

=begin html

<br>CIFS workgroup name of the new vfiler. If vfiler-template-name-or-id is specified, this field is applicable only if cifs-auth-type is "workgroup" in the specified vfiler-template. This field is also applicable when vfiler-template-name-or-id is not given, but cifs setup needs to be done on the vFiler. Default value is "WORKGROUP" and this will be used during CIFS setup of the vFiler if run-cifs-setup is true.

=end html

=back



=over 2

=item * I<ip-bindings>  =>   B<L<"ip-binding-info">[], optional>

=begin html

<br>IP Address to interface binding information.

=end html

=back



=over 2

=item * I<root-password>  =>   B<string, optional, encrypted>

=begin html

<br>Root password of the new vFiler. This will be the password for a new root account that will be created on the vFiler. If a root account already exists on this vFiler, then the password for the root account will not be changed. Encrypted using 2-way encryption. <br> Length: [0..64] Default value is empty. Ignored if ip-bindings element is not present.

=end html

=back



=over 2

=item * I<run-cifs-setup>  =>   B<boolean, optional>

=begin html

<br>Indicates whether CIFS setup should be performed on the vFiler unit. Note that if this is true and CIFS is already running on the vFiler unit, CIFS service will be stopped, and then a setup will be performed. Default value is FALSE.

=end html

=back



=over 2

=item * I<script-path>  =>   B<string, optional>

=begin html

<br>Path to a script that will be run in pre setup and post setup mode when setting up the vFiler unit.

=end html

=back



=over 2

=item * I<vfiler-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Full name or identifier of the vFiler to be setup.

=end html

=back



=over 2

=item * I<vfiler-template-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of vFiler template. The vFiler is setup based on the settings specified in the template. If this is not specified, then DNS, NIS servers cannot be configured for the vFiler. Also, a CIFS setup cannot be done using active_directory. Ignored if ip-bindings element is not present and run-cifs-setup is false.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vfiler_template_copy



=begin html

Creates a new vFiler template by copying all settings from an existing vFiler template. Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have privileges to create the vfiler template. <LI> EVFILERTEMPLATEEXISTS - A vFiler template already exists with this name. <li> EOBJECTNOTFOUND - When the specified vFiler template does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<vfiler-template-name>  =>   B<obj-name>

=begin html

<br>Name of the new vFiler template to be created.

=end html

=back



=over 2

=item * I<vfiler-template-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The name or identifier of an existing vFiler template that is copied to create a new vFiler template.

=end html

=back



B<Outputs>

=over 2

=item * I<vfiler-template-id>  =>   B<obj-id>

=begin html

<br>Identifier of the newly created vFiler template.

=end html

=back



=head2 vfiler_template_create



=begin html

Creates a vFiler template. A vFiler template contains configuration information that is used during vFiler setup. Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have privileges to create the vFiler template. <LI> EVFILERTEMPLATEEXISTS - A vFiler template already exists with this name. <LI> EINVALIDINPUT - Input validation failed. </UL>

=end html



B<Inputs>

=over 2

=item * I<vfiler-template>  =>   B<L<"vfiler-template-info">>

=begin html

<br>vFiler template information.

=end html

=back



B<Outputs>

=over 2

=item * I<vfiler-template-id>  =>   B<obj-id>

=begin html

<br>Identifier of the newly created vFiler template.

=end html

=back



=head2 vfiler_template_delete



=begin html

Deletes the vFiler template. Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have capabilities to delete the vFiler template. <li> EOBJECTNOTFOUND - When the specified vFiler template does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<vfiler-template-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the vFiler template.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vfiler_template_list_info_iter_end



=begin html

Ends iteration of vFiler templates.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>An internal opaque handle used by the DFM station.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vfiler_template_list_info_iter_next



=begin html

Get next records in the iteration started by vfiler-template-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vfiler-template-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by vfiler-template-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=over 2

=item * I<vfiler-templates>  =>   B<L<"vfiler-template-info">[]>

=begin html

<br>List of vFiler templates.

=end html

=back



=head2 vfiler_template_list_info_iter_start



=begin html

Lists vFiler templates. Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have required capabilities to list vFiler templates. <li> EOBJECTAMBIGUOUS - When the specified object name is ambiguous. <li> EOBJECTNOTFOUND - When the specified vFiler template does not exist. </UL>

=end html



B<Inputs>

=over 2

=item * I<vfiler-template-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the vFiler template. If not specified, it lists all vFiler templates.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many vfiler templates are present for future retrieval with vfiler-template-list-info-iter-next. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to vfiler-template-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

=end html

=back



=head2 vfiler_template_modify



=begin html

Modifies the settings in a vFiler template. Error conditions: <UL> <LI> EDATABASEERROR - A database error occurred while processing the request. <LI> EACCESSDENIED - User does not have capabilties to create the vFiler template. <LI> EVFILERTEMPLATEEXISTS - A vFiler template already exists with this name. <LI> EINVALIDINPUT - Input validation failed. </UL>

=end html



B<Inputs>

=over 2

=item * I<vfiler-template>  =>   B<L<"vfiler-template-info">>

=begin html

<br>Information of the vFiler template to be modified.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vi_datacenter_list_info_iter_end



=begin html

Ends iteration to list Data Centers.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-datacenter-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vi_datacenter_list_info_iter_next



=begin html

Get the list of Data Center records.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-datacenter-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * I<datacenters>  =>   B<L<"datacenter">[]>

=begin html

<br>List of Data Centers.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1].

=end html

=back



=head2 vi_datacenter_list_info_iter_start



=begin html

List Data Centers discovered in DataFabric Manager Server.

=end html



B<Inputs>

=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, Data Centers marked as deleted in the database are also returned. Data Centers are marked as deleted if they are destroyed from the Virtual Center Server.

=end html

=back



=over 2

=item * I<is-unprotected>  =>   B<boolean, optional>

=begin html

<br>If present and true, members which are unprotected, are returned, which means they are not present in any dataset, having an application policy. If false, or not specified, list all Data Centers.

=end html

=back



=over 2

=item * I<obj-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Object for which the list of Data Centers need to be retrieved. If the obj-name-or-id is not specified then all the Data Centers are returned. The valid types of object that can be specified here are :- <ul> <li>Virtual Center</li> <li>Data Center</li> <li>Dataset</li> <li>Resource Group</i> </ul>

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of entities available in the list. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 vi_datastore_list_info_iter_end



=begin html

Ends iteration to list datastores

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-datastore-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vi_datastore_list_info_iter_next



=begin html

Get the list of Datastore records.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-datastore-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * I<datastores>  =>   B<L<"datastore">[]>

=begin html

<br>List of Datastores.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 vi_datastore_list_info_iter_start



=begin html

List Datastores discovered in DataFabric Manager Server.

=end html



B<Inputs>

=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, Datastores marked as deleted in the database are also returned. Datastores are marked as deleted if they are destroyed from the ESX Server.

=end html

=back



=over 2

=item * I<is-unprotected>  =>   B<boolean, optional>

=begin html

<br>If present and true, members which are unprotected, are returned, which means they are not present in any dataset, having an application policy. If false or not specified, list all Datastores.

=end html

=back



=over 2

=item * I<obj-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Object for which the list of Datastores needs to be retrieved. If the obj-name-or-id is not specified, then all the Datastores are returned. The valid types of object that be specified here are :- <ul> <li>Virtual Center</li> <li>Data Center</li> <li>Virtual Machine</li> <li>ESX server<li> <li>Dataset</li> </ul>

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of entities available in the list. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 vi_hypervisor_list_info_iter_end



=begin html

Ends iteration to list hypervisors.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous hypervisor-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vi_hypervisor_list_info_iter_next



=begin html

Get the list of Hypervisor records.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous call to vi-hypervisor-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<hypervisors>  =>   B<L<"hypervisor-info">[]>

=begin html

<br>List of Hypervisors.

=end html

=back



=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=head2 vi_hypervisor_list_info_iter_start



=begin html

Start iteration of Hypervisors discovered in DataFabric Manager server.

=end html



B<Inputs>

=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, hypervisors which are marked as deleted in the database are also returned. Hypervisors are marked as deleted if they are no longer managed by the Host Service (for example decommissioned Hypervisors).

=end html

=back



=over 2

=item * I<obj-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of an object for which the list of hypervisors need to be retrieved. The valid type for object are :- <ul> <li>Virtual Center</li> <li>Data Center</li> <li>Hypervisor</i> <li>Datastore</li> <li>Virtual Machine</i> <li>Dataset</li> <li>Resource Group</i> </ul> If the obj-name-or-id is not specified, then all the hypervisors are returned.

=end html

=back



=over 2

=item * I<virtual-infrastructure-type>  =>   B<virtual-infrastructure-type, optional>

=begin html

<br>Input filter for virtual server infrastructure type. If specified, only the hypervisors of the specified infrastructure type are listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of entities available in the list. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 vi_virtual_center_list_info_iter_end



=begin html

Ends iteration to list Virtual Centers.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-virtual-center-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vi_virtual_center_list_info_iter_next



=begin html

Get list of Virtual Center records..

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-virtual-center-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<virtual-centers>  =>   B<L<"virtual-center">[]>

=begin html

<br>List of Virtual Center records.

=end html

=back



=head2 vi_virtual_center_list_info_iter_start



=begin html

List Virtual Center Servers discovered in DataFabric Manager Server.

=end html



B<Inputs>

=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, Virtual Centers marked as deleted in the database are also returned. Virtual Centers are marked deleted if they are disassociated from the Host Service at which point the Host Service stops Managing the resources of Virtual Center.

=end html

=back



=over 2

=item * I<obj-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or Id of the Virtual Center Server or a Resource Group. If not specified, then all the Virtual Centers will be returned.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of entities available in the list. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 vi_virtual_disk_list_info_iter_end



=begin html

Ends iteration to list virtual disks

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-virtual-disk-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vi_virtual_disk_list_info_iter_next



=begin html

Get the list of Virtual Disk records.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of records to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-virtual-disk-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<virtual-disks>  =>   B<L<"virtual-disk">[]>

=begin html

<br>List of Virtual Disks records.

=end html

=back



=head2 vi_virtual_disk_list_info_iter_start



=begin html

List Virtual Disks discovered in DataFabric Manager Server.

=end html



B<Inputs>

=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, Virtual Disks marked as deleted in the database are also returned. Virtual Disks are marked deleted if they are delete from the Virtual Machine.

=end html

=back



=over 2

=item * I<obj-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of an object for which list of Virtual Disks need to be retrieved. The type of object are :- <ul> <li>Virtual Center</li> <li>Data Center</li> <li>Hypervisor</i> <li>Virtual Machine</i> <li>Dataset</i> <li>Resource Group</i> </ul> If the obj-name-or-id is not specified, all the Virtual Machines discovered are returned.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of entities available in the list Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 vi_virtual_machine_list_info_iter_end



=begin html

Ends iteration to list Virtual Machines.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous vi-virtual-machine-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 vi_virtual_machine_list_info_iter_next



=begin html

Get the list of virtual machines records.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous call to vi-virtual-machine-list-info-iter-start

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<virtual-machines>  =>   B<L<"virtual-machine">[]>

=begin html

<br>List of Virtual Machines retrieved.

=end html

=back



=head2 vi_virtual_machine_list_info_iter_start



=begin html

Start iteration of Virtual Machines discovered in DataFabric Manager server.

=end html



B<Inputs>

=over 2

=item * I<include-deleted>  =>   B<boolean, optional>

=begin html

<br>If present and true, Virtual Machines marked as deleted in the database are also returned. Virtual Machines are marked deleted if they no longer exist on the Hypervisor managed by the Host Service.

=end html

=back



=over 2

=item * I<is-unprotected>  =>   B<boolean, optional>

=begin html

<br>If present and true, members which are unprotected are returned, which means they are not present in any dataset, having an application policy. If false or not specified, list all virtual machines.

=end html

=back



=over 2

=item * I<obj-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of an object for which list of Virtual Machines need to be retrieved. If the obj-name-or-id is not specified, all the virtual machines are returned. The possible types are :- <ul> <li>Virtual Center</li> <li>Data Center</li> <li>Datastore</li> <li>HyperVisor</li> <li>Dataset</li> <li>Resource Group</i> </ul>

=end html

=back



=over 2

=item * I<virtual-infrastructure-type>  =>   B<virtual-infrastructure-type, optional>

=begin html

<br>Input filter for virtual server infrastructure type. If specified, only the Virtual Machines of the specified virtual server infrastructure type are listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number of records available in the list. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used for subsequent iteration calls.

=end html

=back



=head2 volume_dedupe



=begin html

Dedupe a volume.

=end html



B<Inputs>

=over 2

=item * I<dedupe-request-info>  =>   B<L<"dedupe-request-info">>

=begin html

<br>Details of deduplication scan to be run on a volume.

=end html

=back



=over 2

=item * I<volume-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the volume to dedupe.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job started for the deduplication request.

=end html

=back



=head2 volume_destroy



=begin html

Destroy a volume.

=end html



B<Inputs>

=over 2

=item * I<volume-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the volume to destroy.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job started for the destroy request.

=end html

=back



=head2 volume_list_info_iter_end



=begin html

Ends iteration to list volumes.

=end html



B<Inputs>

=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous volume-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 volume_list_info_iter_next



=begin html

Get next few records in the iteration started by volume-list-info-iter-start.

=end html



B<Inputs>

=over 2

=item * I<maximum>  =>   B<integer>

=begin html

<br>The maximum number of entries to retrieve.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag from a previous volume-list-info-iter-start.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>The number of records actually returned.

=end html

=back



=over 2

=item * I<volumes>  =>   B<L<"volume-info">[]>

=begin html

<br>List of volumes.

=end html

=back



=head2 volume_list_info_iter_start



=begin html

Starts iteration to list volumes.

=end html



B<Inputs>

=over 2

=item * I<block-type>  =>   B<file-system-block-type, optional>

=begin html

<br>Filter by file system block type of the volume. If no block-type input is supplied, all types of volumes will be listed.

=end html

=back



=over 2

=item * I<include-is-available>  =>   B<boolean, optional>

=begin html

<br>If true, the is-available status is calculated for each volume which may make the call to this zapi take much longer. Default is false.

=end html

=back



=over 2

=item * I<include-migration-info>  =>   B<boolean, optional>

=begin html

<br>If true, is-capable-of-migration information for each volume is returned in volume-list-info-iter-next. If is-capable-of-migration information returned for the volume is false, migration-incompatibility-reasons is returned. Default value: false.

=end html

=back



=over 2

=item * I<include-next-scheduled-backup-time>  =>   B<boolean, optional>

=begin html

<br>If true, return next-scheduled-backup-time for each volume in volume-list-info-iter-next. Default value: false

=end html

=back



=over 2

=item * I<is-direct-member-only>  =>   B<boolean, optional>

=begin html

<br>If true, only return the volumes that are direct members of the specified resource group. Default value is false. This field is meaningful only if a resource group name or id is given for the object-name-or-id field.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>If true, only list volumes that have been set to be ignored for purposes of data protection. If false, only list volumes that have not been set to be ignored for purposes of data protection. If not specified, list all volumes without taking into account whether they have been ignored or not.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean, optional>

=begin html

<br>If true, only list volumes which only contain data which is protected by a dataset. If false, only list volumes containing data which is not protected by a dataset. If not specified, list all volumes whether they are in a dataset or not.

=end html

=back



=over 2

=item * I<is-sis-volume>  =>   B<boolean, optional>

=begin html

<br>If true, only list Single Instance Storage (SIS) volumes. A SIS volume is a flexible volume that contains shared blocks. It has the ability to have multiple references to the same data block. Each block has a block reference count stored in the volume metadata. As additional indirect blocks point to it or existing ones stop pointing to it, this value is incremented or decremented accordingly. If false, only list volumes which are not SIS volumes. If not specified, list all volumes whether they are SIS volumes or not.

=end html

=back



=over 2

=item * I<is-snapmirror-primary-capable>  =>   B<boolean, optional>

=begin html

<br>If present and true, only list volumes capable of being a primary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror. Meaningless if present and false.

=end html

=back



=over 2

=item * I<is-snapmirror-secondary-capable>  =>   B<boolean, optional>

=begin html

<br>If present and true, only list volumes capable of being a secondary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror and the volume is not already a SnapMirror or SnapVault secondary. Meaningless if present and false.

=end html

=back



=over 2

=item * I<is-snapvault-primary-capable>  =>   B<boolean, optional>

=begin html

<br>If present and true, only list volumes capable of being the source of a SnapVault transfer. This means the storage system is licensed to be a SnapVault primary. Meaningless if present and false.

=end html

=back



=over 2

=item * I<is-snapvault-secondary-capable>  =>   B<boolean, optional>

=begin html

<br>If present and true, only list volumes capable of being the destination of SnapVault transfers. This means the storage system is licensed as a SnapVault secondary and the volume is not a SnapMirror destination. Meaningless if present and false.

=end html

=back



=over 2

=item * I<is-unprotected>  =>   B<boolean, optional>

=begin html

<br>If true, only list volumes that are not protected, which means they are not in any SnapMirror or SnapVault relationship. If false or not set, list all volumes.

=end html

=back



=over 2

=item * I<object-management-filter>  =>   B<object-management-interface, optional>

=begin html

<br>Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<string, optional>

=begin html

<br>Name or identifier of an object to list volumes for. The allowed object types for this argument are: <ul> <li> Resource Group <li> Dataset <li> Storage Set <li> Host <li> Aggregate <li> Volume <li> Qtree <li> GenericAppObject </ul> If object-name-or-id identifies a volume, that single volume will be returned. If object-name-or-id resolves to more than one volume, all of them will be returned. If no object-name-or-id is provided, all volumes will be listed.

=end html

=back



=over 2

=item * I<rbac-operation>  =>   B<string, optional>

=begin html

<br>Names of an RBAC operation. If specified, only return volumes for which the current admin has permission to perform that operation. For example, caller can ask for only volumes that current admin has DFM.Backupmanager.Backup operation privilege to when want to display list of volume that can be backup by the current admin. When not specified, DFM.Database.Read is a default operation requirement.

=end html

=back



=over 2

=item * I<snapvault-secondary-schedule-name>  =>   B<string, optional>

=begin html

<br>Name of a SnapVault backup schedule. If specified, SnapVault secondary volumes that are using the specified backup schedule are listed.

=end html

=back



=over 2

=item * I<volume-type>  =>   B<string, optional>

=begin html

<br>Filter by type of volume. Possible values are: <ul> <li> traditional <li> flexible <li> striped </ul> If no volume-type input is supplied, all types of volumes will be listed.

=end html

=back



B<Outputs>

=over 2

=item * I<records>  =>   B<integer>

=begin html

<br>Number which tells you how many items have been saved for future retrieval with volume-list-info-iter-next.

=end html

=back



=over 2

=item * I<tag>  =>   B<string>

=begin html

<br>Tag to be used in subsequent calls to volume-list-info-iter-next.

=end html

=back



=head2 volume_modify



=begin html

Modify a volume's information. If modifying of one property fails, nothing will be changed. <br> Error Conditions: <ul> <li> EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified volume. <li> EINVALIDINPUT - When invalid input specified. <li> EOBJECTNOTFOUND - When the volume-name-or-id does not correspond to a volume. <li> EDATABASEERROR - On database error. </ul>

=end html



B<Inputs>

=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to ignore this object for purposes of data protection.

=end html

=back



=over 2

=item * I<volume-name-or-id>  =>   B<string>

=begin html

<br>Name or identifier of the volume to modify.

=end html

=back



B<Outputs>

=over 2

=item * None

=back



=head2 volume_resize



=begin html

Resize a volume. The size related charecteristics of a volume like total size, snap reserve or maximum size of a volume can be modified using this API.

=end html



B<Inputs>

=over 2

=item * I<resize-volume-request-info>  =>   B<L<"resize-volume-request-info">>

=begin html

<br>Details of a resize request to be carried out as part of this space management operation. The resize request should be on a volume in the aggregate on which the space management session was opened.

=end html

=back



=over 2

=item * I<volume-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the volume to resize.

=end html

=back



B<Outputs>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job started for the resize request.

=end html

=back



=head1 TYPEDEFS



=head2 aggregate-info

=begin html

Information about a aggregate.

=end html



B<Fields>

=over 2

=item * I<aggregate-full-threshold>  =>   B<integer>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate an "aggregate full" event for this aggregate. If the value is empty, then the global setting for aggregate full threshold is considered and this can be obtained from dfm-get-option API with option-name as "aggregateFullThreshold". Range: [0..1000]

=end html

=back



=over 2

=item * I<aggregate-id>  =>   B<integer>

=begin html

<br>Identifier of the aggregate. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<aggregate-name>  =>   B<string>

=begin html

<br>Simple name of the aggregate. Always present in the output. The name is any simple name such as myaggr.

=end html

=back



=over 2

=item * I<aggregate-nearly-full-threshold>  =>   B<integer>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate an "aggregate nearly full" event for this aggregate. If the value is empty, then the global setting for aggregate nearly full threshold is considered and this can be obtained from dfm-get-option API with option-name as "aggregateNearlyFullThreshold". Range: [0..1000]

=end html

=back



=over 2

=item * I<aggregate-nearly-overcommitted-threshold>  =>   B<integer>

=begin html

<br>The value (as an integer percentage) is used to generate "aggregate nearly overcommitted" event for this aggregate. If the value is empty, then the global setting for aggregate nearly over committed threshold is considered and this can be obtained from dfm-get-option API with option-name as "aggregateNearlyOverCommittedThreshold". Range: [0..65535]

=end html

=back



=over 2

=item * I<aggregate-overcommitted-threshold>  =>   B<integer>

=begin html

<br>The value (as an integer percentage) is used to generate "aggregate overcommitted" event for this aggregate. If the value is empty, then the global setting for aggregate over committed threshold is considered and this can be obtained from dfm-get-option API with option-name as "aggregateOverCommittedThreshold". Range: [0..65535]

=end html

=back



=over 2

=item * I<aggregate-perf-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the aggregate based on performance events

=end html

=back



=over 2

=item * I<aggregate-size>  =>   B<L<"aggregate-size">>

=begin html

<br>Sizes of various parameters of the aggregate.

=end html

=back



=over 2

=item * I<aggregate-space-status>  =>   B<object-space-status>

=begin html

<br>Space status of the aggregate. This indicates the fullness of the aggregate in terms of whether the percentage of used space with respect to total size of the aggregate has reached or crossed the fullness thresholds given in aggregate-nearly-full-threshold and aggregate-full-threshold.

=end html

=back



=over 2

=item * I<aggregate-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the aggregate based on all events

=end html

=back



=over 2

=item * I<aggregate-type>  =>   B<string>

=begin html

<br>Type of aggregate. Possible values are: <ul> <li> traditional <li> aggregate <li> striped </ul>

=end html

=back



=over 2

=item * I<block-type>  =>   B<file-system-block-type>

=begin html

<br>File system block type of the aggregate. The volumes on both the source and destination sides of a SnapMirror relationship must be of the same block type.

=end html

=back



=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>List of dataset IDs and names containing this volume. If is-in-dataset is false, this list will be empty.

=end html

=back



=over 2

=item * I<datasets-space-info>  =>   B<L<"dataset-space-info">[], optional>

=begin html

<br>Space used by each dataset in the aggregate. Returned only when include-dataset-space-info is set to true in aggregate-list-info-iter-start.

=end html

=back



=over 2

=item * I<filer-id>  =>   B<integer>

=begin html

<br>Identifier of controller when aggregate-type is traditional or aggregate. Identifier of cluster when aggregate-type is striped. Always present in the output. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<filer-name>  =>   B<string>

=begin html

<br>Name of controller when aggregate-type is traditional or aggregate. Name of cluster when aggregate-type is striped. Always present in the output. The name is any simple name such as myhost.

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>True if this object and all of it's parents are up or online. Only output if the call to iter-start included the "include-is-available" flag.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean>

=begin html

<br>True if an admin wants to ignore this aggregate for purposes of data protection.

=end html

=back



=over 2

=item * I<is-flash-pool-enabled>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the aggregate is created with Flash Pool support.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean>

=begin html

<br>True indicates if this aggregate is a member of any dataset.

=end html

=back



=over 2

=item * I<resourcepool-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the resource pool of which the aggregate is a member. This element will not be present if the aggregate is not a member of a resource pool.

=end html

=back



=over 2

=item * I<time-to-full>  =>   B<integer>

=begin html

<br>Estimated amount of time left in seconds for the aggregate to become full. This is returned as empty when the estimated amount of time is more than a year. This can happen due to very low or negative rate of consumption of space in the aggregate. Range: [0..31536000]

=end html

=back



=head2 aggregate-size

=begin html

Sizes of various parameters of an aggregate.

=end html



B<Fields>

=over 2

=item * I<size-available>  =>   B<integer>

=begin html

<br>Available bytes in the aggregate. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<size-total>  =>   B<integer>

=begin html

<br>Aggregate total size in bytes. Range : [0..2^63-1].

=end html

=back



=over 2

=item * I<size-used>  =>   B<integer>

=begin html

<br>Aggregate bytes used. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<space-total-committed>  =>   B<integer, optional>

=begin html

<br>Total space committed in bytes. Range: [0..2^63-1]

=end html

=back



=head2 aggregate-space-info

=begin html

Information about space charecteristics of an aggregate.

=end html



B<Fields>

=over 2

=item * I<aggregate-id>  =>   B<obj-id>

=begin html

<br>Aggregate identifier

=end html

=back



=over 2

=item * I<aggregate-name>  =>   B<obj-name>

=begin html

<br>Aggregate name

=end html

=back



=over 2

=item * I<committed-space>  =>   B<integer>

=begin html

<br>Information about committed space of an aggregate in bytes. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<used-space>  =>   B<integer>

=begin html

<br>Information about used space of an aggregate in bytes. Range: [0..2^63-1]

=end html

=back



=head2 backup-deletion-request-info

=begin html

Details of backup to be deleted.

=end html



B<Fields>

=over 2

=item * I<backup-ids>  =>   B<backup-id[]>

=begin html

<br>List of backups to be deleted on a volume.

=end html

=back



=head2 backup-id

=begin html

Identifier of the backup instance to be deleted. Range: [1..2^31-1]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 cleanup-stale-storage

=begin html

Indicates when the volumes in the source aggregate should be destroyed after successful migration. Possible values are: <ul> <li> cleanup_after_update <li> cleanup_after_migration <li> no_cleanup </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dedupe-request-info

=begin html

Deduplication request details

=end html



B<Fields>

=over 2

=item * I<full-volume-dedupe>  =>   B<boolean, optional>

=begin html

<br>If true, full volume dedupe scan is performed. Otherwise only new data since last deduplication operation is scanned. Default value is false.

=end html

=back



=head2 object-management-interface

=begin html

Specify the management interface of ONTAP that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. Possible values are: <ul> <li> "node" - For objects manageable by node management interface <li> "cluster" - For objects manageable by cluster management interface </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 resize-volume-request-info

=begin html

Details of the resize request. Atleast one of new-size, maximum-capacity or snap-reserve needs to be specified.

=end html



B<Fields>

=over 2

=item * I<maximum-capacity>  =>   B<integer, optional>

=begin html

<br>Specify the new maximum capacity value for a flexbile volume. The value is specified in bytes. Valid only if the storage syste, to which the volume belongs is of ONTAP version 7.1 or above only and if autosize is enabled on the volume. Range: [1..2^44-1]

=end html

=back



=over 2

=item * I<new-size>  =>   B<integer, optional>

=begin html

<br>Specify the new size of the volume. The value is specified in bytes. Range: [1..2^44-1]

=end html

=back



=over 2

=item * I<snap-reserve>  =>   B<integer, optional>

=begin html

<br>Specifies the percetage of space set aside for snapshots in a volume. The value is specified in percentage of the total size of the volume. Range: [0..100]

=end html

=back



=head2 snapshot-deletion-request-info

=begin html

Details of snapshot deletion request

=end html



B<Fields>

=over 2

=item * I<snapshots>  =>   B<L<"snapshot">[]>

=begin html

<br>List of Snapshot copies to be deleted from the volume. A minimum of 1 and a maximum of 255 Snapshot copies can be listed for deletion.

=end html

=back



=head2 space-management-op-type

=begin html

Type of space management operation Possible values: <ul> <li> resize_volume <li> delete_snapshot <li> delete_backup <li> migrate_volume <li> dedupe_volume </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 space-management-operation-info

=begin html

Details of a space management operation. Only one of the request info in space-management-operation-info should be sent in input.

=end html



B<Fields>

=over 2

=item * I<backup-deletion-request-info>  =>   B<L<"backup-deletion-request-info">, optional>

=begin html

<br>Details of backups to be deleted as part of this space management operation. The backups to be deleted should be on a volume in the aggregate on which the space management session was opened.

=end html

=back



=over 2

=item * I<dedupe-request-info>  =>   B<L<"dedupe-request-info">, optional>

=begin html

<br>Details of deduplication scan to be run on a volume.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the volume on which a space management operation needs to be performed.

=end html

=back



=over 2

=item * I<resize-volume-request-info>  =>   B<L<"resize-volume-request-info">, optional>

=begin html

<br>Details of a resize request to be carried out as part of this space management operation. The resize request should be on a volume in the aggregate on which the space management session was opened.

=end html

=back



=over 2

=item * I<snapshot-deletion-request-info>  =>   B<L<"snapshot-deletion-request-info">, optional>

=begin html

<br>Details of a snapshot deletion request to be carried out as part of this space management operation. The snapshot deletion request should be on a volume in the aggregate on which the space management session was opened.

=end html

=back



=over 2

=item * I<space-management-op-type>  =>   B<space-management-op-type>

=begin html

<br>Type of space management operation.

=end html

=back



=over 2

=item * I<volume-migration-request-info>  =>   B<L<"volume-migration-request-info">, optional>

=begin html

<br>Details of volume migration operation to be carried out. The volumes to be migrated should belong to the aggregate on which the space management session was opened.

=end html

=back



=head2 space-management-result-info

=begin html

Results of the space management session.

=end html



B<Fields>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[], optional>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action. Only returned if dry-run is true.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of job started for the provisioning request. Returned only when dry-run is false.

=end html

=back



=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>Identifier of the object on which the space management operation is invoked.

=end html

=back



=over 2

=item * I<object-name>  =>   B<obj-full-name>

=begin html

<br>Name of the object on which space management operation is invoked.

=end html

=back



=over 2

=item * I<space-management-op-type>  =>   B<space-management-op-type>

=begin html

<br>Type of space management operation.

=end html

=back



=head2 volume-migration-request-info

=begin html

Details of volume migration request

=end html



B<Fields>

=over 2

=item * I<cleanup-stale-storage>  =>   B<cleanup-stale-storage, optional>

=begin html

<br>Indicates when should the volumes in the source aggregate should be destroyed after successful migration. Default value is "cleanup_after_migration".

=end html

=back



=over 2

=item * I<destination-aggregate-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the destination aggregate to which all the volumes has to be migrated to. If the destination aggregate is not provided, the system will select a suitable aggregate from the resource pools associated with the dataset node to which the volumes belong to.

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type, optional>

=begin html

<br>Retention type to which the backup version created should be archived for the backups created as part of running an on-demand update after successful migration. This element is ignored if run-on-demand-update is false. Default value is "daily".

=end html

=back



=over 2

=item * I<run-dedupe-scan>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a full deduplication scan has to be run on the new volume after migration. This option is applicable only for volumes that are enabled for deduplication and is useful to regenerate the fingerprint database used in deduplication and will be ignored for other volumes. Default value is false.

=end html

=back



=over 2

=item * I<run-on-demand-update>  =>   B<boolean, optional>

=begin html

<br>Indicates whether an on-demand update has to be triggered after successful migration on the dataset to which the volumes that were migrated belong to. Default value is false.

=end html

=back



=head2 admin-name

=begin html

The name of a DFM administrator to receive alarm notifications.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 alarm-defaults

=begin html

The default values of the attributes defined by this ZAPI.

=end html



B<Fields>

=over 2

=item * I<group-id>  =>   B<integer>

=begin html

<br>The default group id for an alarm is 0, representing the "global group". This value is returned.

=end html

=back



=over 2

=item * I<is-disabled>  =>   B<boolean>

=begin html

<br>Unless otherwise specified, the is-disabled attribute is set to false when the alarm is created.

=end html

=back



=over 2

=item * I<is-repeat-notify>  =>   B<boolean>

=begin html

<br>Unless otherwise specified, the is-repeat-notify attribute is set to false when the alarm is created.

=end html

=back



=over 2

=item * I<repeat-interval>  =>   B<integer>

=begin html

<br>Unless otherwise specified, the repeat-interval is set to this default minimum number of seconds between repeat notifications. If is-repeat-notify is false, it does not apply. Range: [60..3932100]

=end html

=back



=over 2

=item * I<trap-port>  =>   B<integer>

=begin html

<br>The default port for trap destinations. Range: [1..65535].

=end html

=back



=head2 alarm-info

=begin html

Information about a single alarm. This structure is used in three places: creating new alarms, modifying alarms, and listing alarms.

=end html



B<Fields>

=over 2

=item * I<admin-login-names>  =>   B<admin-name[], optional>

=begin html

<br>Names of DFM administrators who will receive an alarm email when the alarm is triggered. The alarm email is sent to the email address configured for the administrator.

=end html

=back



=over 2

=item * I<alarm-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the alarm. Required for list and modify, ignored on create. Range: [1..2^15-1]

=end html

=back



=over 2

=item * I<alarm-script>  =>   B<string, optional>

=begin html

<br>Path on DFM station of a script to run when the alarm is triggered. The script path is not validated.

=end html

=back



=over 2

=item * I<alarm-script-runas>  =>   B<string, optional>

=begin html

<br>Name of user to run alarm script. If not present, the alarm script runs with the same user ID as the DFM event process. This may only be specified as an input if alarm-script is set and may only be specified for DFM stations not running Windows.

=end html

=back



=over 2

=item * I<email-addresses>  =>   B<email-address[], optional>

=begin html

<br>Email addresses of non administrators who will receive alarm email when this alarm is triggered.

=end html

=back



=over 2

=item * I<event-class>  =>   B<string, optional>

=begin html

<br>Regular expression specifying the event class of events that trigger this alarm. Only events whose event class match the regular expression will trigger the alarm. The regular expression is of POSIX.1 standard.

=end html

=back



=over 2

=item * I<event-name>  =>   B<string, optional>

=begin html

<br>Event name of events that trigger this alarm. This should exactly match the short name or pretty name of the event.

=end html

=back



=over 2

=item * I<event-severity>  =>   B<obj-status, optional>

=begin html

<br>Minimum event severity to trigger this alarm. If an event's severity is equal to or more severe than this value, the alarm will be triggered. Valid values are only 'normal', 'information', 'unknown', 'warning', 'error', 'critical', 'emergency'.

=end html

=back



=over 2

=item * I<group-id>  =>   B<integer, optional>

=begin html

<br>DFM group id which triggers alarm. If the event source object is in this group, the alarm will be triggered. Default is 0 which is the global group. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<group-name>  =>   B<string, optional>

=begin html

<br>DFM group name which triggers alarm. If the event source object is in this group, the alarm will be triggered. This is returned in the output of alarm-list. If group-id element is not present during input, then this element is considered. If both group-id and group-name are not present, then the alarm is configured for global group.

=end html

=back



=over 2

=item * I<is-disabled>  =>   B<boolean, optional>

=begin html

<br>Whether this alarm is disabled. If it is disabled, it will never be triggered. Default value is false.

=end html

=back



=over 2

=item * I<is-repeat-notify>  =>   B<boolean, optional>

=begin html

<br>Whether to repeat the notification for this alarm if the triggering event is not acknowledged. Default value is false.

=end html

=back



=over 2

=item * I<pager-admin-login-names>  =>   B<admin-name[], optional>

=begin html

<br>Name of DFM administrators who will receive a shortened alarm email. The email messages are formatted to be easy to read on a pager. The alarm email is sent to the pager email address configured for the administrator.

=end html

=back



=over 2

=item * I<pager-email-addresses>  =>   B<email-address[], optional>

=begin html

<br>Email addresses of non administrators who will receive shortened alarm email. The email messages are formatted to be easy to read on a pager.

=end html

=back



=over 2

=item * I<repeat-interval>  =>   B<integer, optional>

=begin html

<br>Seconds between repeat notifications of the alarm. This will only be returned if repeat-notify is true and may only be specified as an input if is-repeat-notify is set to true. The value is rounded off to the nearest minute. It can have a maximum value of 65535 minutes. Default value is 1800 seconds (30 minutes) Range: [60..3932100]

=end html

=back



=over 2

=item * I<time-from>  =>   B<integer, optional>

=begin html

<br>Start time of day when alarm may be triggered, in seconds since Midnight UTC. The value is rounded off to the nearest minute. The default is to always trigger the alarm. Range: [0..86399]

=end html

=back



=over 2

=item * I<time-to>  =>   B<integer, optional>

=begin html

<br>End time of day when alarm may be triggered, in seconds since Midnight UTC. The value is rounded off to the nearest minute. The default is to always trigger the alarm. time-to value is generally greater than time-from value. If it is lesser than time-from value, then it is considered as inverted time-range. In this case, if the values of the fields are 20:00 and 2:00, then the alarm is triggered between 0:00 and 2:00 and 20:00 to 23:59. Range: [0..86399]

=end html

=back



=over 2

=item * I<trap-destinations>  =>   B<L<"trap-destination">[], optional>

=begin html

<br>IP address or host name, SNMP community and port to which a SNMP trap is sent as part of this alarm.

=end html

=back



=head2 email-address

=begin html

A single email address. It cannot contain spaces, semi-colons or unprintable characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 trap-destination

=begin html

Destination parameters for a SNMP trap.

=end html



B<Fields>

=over 2

=item * I<trap-community>  =>   B<string, optional>

=begin html

<br>SNMP community to use when sending trap. Default is "public".

=end html

=back



=over 2

=item * I<trap-host>  =>   B<string>

=begin html

<br>Hostname or IP address of trap destination.

=end html

=back



=over 2

=item * I<trap-port>  =>   B<integer, optional>

=begin html

<br>Port number where to send trap. Range: [1..65535]. Default value is port 162.

=end html

=back



=head2 request

=begin html

One API request.

=end html



B<Fields>

=over 2

=item * I<args>  =>   B<string, optional>

=begin html

<br>The API arguments.

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>API name. The proxy server may have a security policy that restricts the accepted values for this field. Invalid values will cause EACCESSDENIED.

=end html

=back



=head2 response

=begin html

One API response.

=end html



B<Fields>

=over 2

=item * I<errno>  =>   B<integer, optional>

=begin html

<br>Error code. Only present if status is "failed".

=end html

=back



=over 2

=item * I<reason>  =>   B<string, optional>

=begin html

<br>Reason string. Only present if status is "failed".

=end html

=back



=over 2

=item * I<results>  =>   B<string, optional>

=begin html

<br>The API results. Only present if status is "passed".

=end html

=back



=over 2

=item * I<status>  =>   B<string>

=begin html

<br>Status of the response. May be "passed" or "failed".

=end html

=back



=head2 application-backup-operation-info

=begin html

Specifies schedules and settings for the backup operation.

=end html



B<Fields>

=over 2

=item * I<backup-schedules>  =>   B<L<"application-backup-schedule-info">[]>

=begin html

<br>One or more schedules for the backup operation.

=end html

=back



=head2 application-backup-schedule-info

=begin html

One or more application specific operational values, schedules and associated backup retention type created by the schedule.

=end html



B<Fields>

=over 2

=item * I<hyperv-backup-schedule-settings-info>  =>   B<L<"hyperv-backup-schedule-settings-info">, optional>

=begin html

<br>Hyper-V specific settings for the backup operation. These settings apply to this backup schedule only. Must be present if and only if the containing policy type is 'hyperv'.

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type>

=begin html

<br>Retention type for the backup created by this schedule. Retention type must match appropriate schedule events. <P> Hourly retention type must have the schedule containing start-time, end-time, frequency and all days for days-of-week. Example schedule: Backup, Sunday through Saturday, every hour between 7 am and 7 pm. <P> Daily retention type must have the schedule containing start-time and all days for days-of-week. Daily schedule will be executed Sunday through Saturday, once a day at a specified start time. Example schedule: Backup 10 PM every night, Sunday through Saturday. <P> Weekly retention type must have the schedule containing start-time and days-of-week. Example schedule: Backup every Sunday midnight. <P> Monthly retention type must have the schedule containing start-time and days-of-month. Example schedule: Backup 10 PM on 1st and 15th day of each month. <P> Unlimited retention is not supported for scheduled backups. On Demand backup supports 'unlimited' option to retain backups for unlimited duration. <P>

=end html

=back



=over 2

=item * I<schedule-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the schedule. Should not be specified when creating a new policy. During the modify, schedule-id must be specified when changing an existing schedule and must be omitted when adding a new schedule.

=end html

=back



=over 2

=item * I<simple-schedule-info>  =>   B<L<"simple-schedule-info">>

=begin html

<br>Schedule for creating local backups.

=end html

=back



=over 2

=item * I<start-remote-backup-after-local-backup>  =>   B<boolean, optional>

=begin html

<br>This setting applies to backup schedule only and it is valid for both vmware and hyperv policies. Setting this option to 'true' requires administrator to have DFM.BackupManager.OnDemandRemoteBackup privilege on the application policy. Default value for this option would be 'false'. During policy modification administrator must have DFM.BackupManager.OnDemandRemoteBackup privilege on the application policy to change this setting's original value. For example, if the original version of the policy has this option set to true, changing it to false would require DFM.BackupManager.OnDemandRemoteBackup privilege. Enabling this option would initiate on demand transfer on the local backup to a remote storage system.

=end html

=back



=over 2

=item * I<vmware-backup-schedule-settings-info>  =>   B<L<"vmware-backup-schedule-settings-info">, optional>

=begin html

<br>VMware specific settings for the backup operation. These settings apply to this backup schedule only. Must be present if and only if the containing policy type is 'vmware'.

=end html

=back



=head2 application-policy-info

=begin html

Contains information about a single application policy.

=end html



B<Fields>

=over 2

=item * I<application-backup-operation-info>  =>   B<L<"application-backup-operation-info">>

=begin html

<br>Specifies schedules and settings for the backup operation.

=end html

=back



=over 2

=item * I<application-policy-description>  =>   B<string, optional>

=begin html

<br>Description of the policy. It may contain from 0 to 255 characters. If the length is greater than 255 characters, the ZAPI fails with error code EINVALIDINPUT. The default value is the empty string "".

=end html

=back



=over 2

=item * I<application-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Object ID of the policy, ignored when creating policy.

=end html

=back



=over 2

=item * I<application-policy-name>  =>   B<obj-name>

=begin html

<br>Name of the policy. Each application policy has a name that is unique among provisioning, application and data protection policies. Must be provided while creating a new policy.

=end html

=back



=over 2

=item * I<application-policy-settings-info>  =>   B<L<"application-policy-settings-info">>

=begin html

<br>Policy level settings.

=end html

=back



=over 2

=item * I<application-policy-type>  =>   B<application-policy-type>

=begin html

<br>Type of an application policy.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Resource group to which the newly created application policy should be added to. User should have DFM.ApplicationPolicy.Write capability on the specified group. This input is used by application-policy-create, but ignored by application-policy-modify. Default value: Global group.

=end html

=back



=head2 application-policy-settings-info

=begin html

Policy level settings

=end html



B<Fields>

=over 2

=item * I<backup-script>  =>   B<string, optional>

=begin html

<br>Name of the script to invoke on the Host Services station both before and after the backup. <p> The backup-script consists of 0 to 255 characters. An empty string value "" indicates no script is invoked. The default value of this property is the empty string "". <p> An empty string value "" indicates no script is invoked. The system does not check whether a non-empty path string actually refers to an executable script prior attempting to run the script. The default value of this property is the empty string "". For example, possible values are %env%\scripts\backup.ps1 OR c:\program..\HS\scripts\backup.ps1 OR k:\program..\HS\scripts\backup.ps1 [k is a network share] OR UNC path \\SCRIPTSSVR\SHARE\SCRIPTS\BACKUP.PS

=end html

=back



=over 2

=item * I<daily-retention-count>  =>   B<integer>

=begin html

<br>Minimum number of daily backups to keep. Range: [0..252].

=end html

=back



=over 2

=item * I<daily-retention-duration>  =>   B<integer>

=begin html

<br>The age, in seconds, after which a daily backup expires. Range: [0..2^31 - 1].

=end html

=back



=over 2

=item * I<hourly-retention-count>  =>   B<integer>

=begin html

<br>Minimum number of hourly backups to keep. Range: [0..252].

=end html

=back



=over 2

=item * I<hourly-retention-duration>  =>   B<integer>

=begin html

<br>The age, in seconds, after which an hourly backup expires. Range: [0..2^31 - 1].

=end html

=back



=over 2

=item * I<is-lag-error-enabled>  =>   B<boolean>

=begin html

<br>Indicates whether the system should generate an error event when the newest local backup copy is older than <b>lag-error-threshold</b>.

=end html

=back



=over 2

=item * I<is-lag-warning-enabled>  =>   B<boolean>

=begin html

<br>Indicates whether the system should generate a warning event when the newest local backup copy is older than <b>lag-warning-threshold</b>.

=end html

=back



=over 2

=item * I<lag-error-threshold>  =>   B<integer, optional>

=begin html

<br>Lag, in seconds. If local backup copy is older than this amount and if <b>is-lag-error-enabled</b> is set, the system generates an error event. Range: [1..2^31 - 1].

=end html

=back



=over 2

=item * I<lag-warning-threshold>  =>   B<integer, optional>

=begin html

<br>Lag, in seconds. If local backup copy is older than this amount and if <b>is-lag-warning-enabled</b> is set, the system generates a warning event. Range: [1..2^31 - 1].

=end html

=back



=over 2

=item * I<monthly-retention-count>  =>   B<integer>

=begin html

<br>Minimum number of monthly backups to keep. Range: [0..252].

=end html

=back



=over 2

=item * I<monthly-retention-duration>  =>   B<integer>

=begin html

<br>The age, in seconds, after which a monthly backup expires. Range: [0..2^31 - 1].

=end html

=back



=over 2

=item * I<weekly-retention-count>  =>   B<integer>

=begin html

<br>Minimum number of weekly backups to keep. Range: [0..252].

=end html

=back



=over 2

=item * I<weekly-retention-duration>  =>   B<integer>

=begin html

<br>The age, in seconds, after which a weekly backup expires. Range: [0..2^31 - 1].

=end html

=back



=head2 application-policy-type

=begin html

Type of an application policy. Possible values are: 'hyperv', 'vmware'.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 day-of-month

=begin html

Day of month. If day-of-month is 29, 30, or 31, it will be interpreted as the last day of the month for months with fewer than that many days. Range: [1..31]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 day-of-week

=begin html

Day of week. Range: [0..6] (0 = "Sunday")

=end html



B<Fields>

=over 2

=item * None

=back



=head2 hyperv-backup-schedule-settings-info

=begin html

Schedule level settings for the Hyper-V backup operation.

=end html



B<Fields>

=over 2

=item * I<allow-saved-state-backup>  =>   B<boolean>

=begin html

<br>If true, the backup is always taken even if the backup operation will cause Virtual Machine to go offline. If false, the backup is taken only if it is possible to do so with the Virtual Machine being online, otherwise the backup is not taken and the operation is marked as failed.

=end html

=back



=head2 simple-schedule-info

=begin html

Simple schedule.

=end html



B<Fields>

=over 2

=item * I<days-of-month>  =>   B<day-of-month[], optional>

=begin html

<br>Days of a month on which the scheduled event occurs. Must not be present if days-of-week is present.

=end html

=back



=over 2

=item * I<days-of-week>  =>   B<day-of-week[], optional>

=begin html

<br>Days of a week on which the scheduled event occurs. Must not be present if days-of-month is present.

=end html

=back



=over 2

=item * I<times-of-day-info>  =>   B<L<"times-of-day-info">>

=begin html

<br>Times of a day on which the scheduled event occurs. If none of the other elements are specified, scheduled event occurs on every day at the specified times.

=end html

=back



=head2 time-of-day-info

=begin html

Time of day.

=end html



B<Fields>

=over 2

=item * I<hour>  =>   B<integer>

=begin html

<br>Hour. Range: [0..23]

=end html

=back



=over 2

=item * I<minute>  =>   B<integer>

=begin html

<br>Minute. Range: [0..59]

=end html

=back



=head2 times-of-day-info

=begin html

Times of day on which the scheduled event occurs.

=end html



B<Fields>

=over 2

=item * I<end-time>  =>   B<L<"time-of-day-info">, optional>

=begin html

<br>End time for a series of scheduled events separated by "frequency".

=end html

=back



=over 2

=item * I<frequency>  =>   B<integer, optional>

=begin html

<br>Number of minutes between scheduled events. Must be specified when end-time is present. Should not be specified if end-time is not present. Should be a factor of 60 minutes [5,6,10,12 ...] or a multiple of 60 minutes [60,120,240, ...]. Range: [5..1440]

=end html

=back



=over 2

=item * I<start-time>  =>   B<L<"time-of-day-info">>

=begin html

<br>Start time of the schedule. If end-time is not present, this specifies a single occurrence of a scheduled event. Otherwise, this specifies a series of scheduled events between start-time and end-time at a specified "frequency".

=end html

=back



=head2 vmware-backup-schedule-settings-info

=begin html

Schedule level settings for the VMware backup operation.

=end html



B<Fields>

=over 2

=item * I<create-vmware-snapshot>  =>   B<boolean>

=begin html

<br>If <b>true</b> VMware snapshot will be taken to create a VM consistent backup. If <b>false</b>, only a crash-consistent backup will be created.

=end html

=back



=over 2

=item * I<include-independent-disks>  =>   B<boolean>

=begin html

<br>If <b>false</b>, independent disks are not included in the backup. If <b>true</b>, independent disks are also included in the backup. The term independent disk is vmware specifc, please refer to vmware documentation.

=end html

=back



=head2 cifs-domain-info

=begin html

Details of the cifs domain.

=end html



B<Fields>

=over 2

=item * I<cifs-dns-domain-name>  =>   B<string>

=begin html

<br>Specifies the CIFS DNS domain name. Maximum length: 255 characters.

=end html

=back



=over 2

=item * I<cifs-domain-id>  =>   B<integer>

=begin html

<br>Identifier of the cifs domain. Range: [1..(2^16)-1]

=end html

=back



=over 2

=item * I<cifs-domain-name>  =>   B<string>

=begin html

<br>Specifies the NETBIOS name of the cifs domain. Maximum length: 255 characters.

=end html

=back



=head2 client-option-info

=begin html

Single name/value pair.

=end html



B<Fields>

=over 2

=item * I<option>  =>   B<string>

=begin html

<br>Key for the database to be stored.

=end html

=back



=over 2

=item * I<value>  =>   B<string>

=begin html

<br>The data itself.

=end html

=back



=head2 comment-field-id

=begin html

Identifier of the comment field. Range: [1..2^31-1]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 comment-field-info

=begin html

Information about the comment field.

=end html



B<Fields>

=over 2

=item * I<comment-field-id>  =>   B<comment-field-id, optional>

=begin html

<br>Identifier of the comment field. This field is ignored on create.

=end html

=back



=over 2

=item * I<comment-field-name>  =>   B<comment-field-name>

=begin html

<br>Name of the comment field. Required for create.

=end html

=back



=over 2

=item * I<comment-field-object-types>  =>   B<comment-field-object-type[], optional>

=begin html

<br>Object type(s) of the comment field. If not specified, then no object type will be associated with the comment field.

=end html

=back



=over 2

=item * I<is-system-comment>  =>   B<boolean, optional>

=begin html

<br>Indicates whether this is a system comment field. This field is returned in list output and ignored on create. By default, this is false. System comment fields cannot be modified or destroyed.

=end html

=back



=head2 comment-field-name

=begin html

Name of the comment field. Name can contain a maximum of 255 characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 comment-field-name-or-id

=begin html

Name or identifier of the comment field. It must conform to one of the following formats: <ul> <li> It must be of the format of <b>comment-field-name</b> <li> It must be of the format of <b>comment-field-id</b> </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 comment-field-object-type

=begin html

Object type of the comment field. Name can contain a maximum of 64 characters. Possible input values are 'Dataset', 'DP Policy', 'Prov Policy'.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 comment-field-value

=begin html

A single comment field value.

=end html



B<Fields>

=over 2

=item * I<comment-field-id>  =>   B<comment-field-id>

=begin html

<br>Identifier of the comment field.

=end html

=back



=over 2

=item * I<comment-field-name>  =>   B<comment-field-name>

=begin html

<br>Name of the comment field.

=end html

=back



=over 2

=item * I<comment-value>  =>   B<comment-value>

=begin html

<br>Value of the comment field

=end html

=back



=over 2

=item * I<object-full-name>  =>   B<obj-full-name>

=begin html

<br>Name of the managed object

=end html

=back



=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>Identifier of the managed object.

=end html

=back



=over 2

=item * I<object-type>  =>   B<string>

=begin html

<br>Type of the managed object. Possible values: <ul> <li> "Host" <li> "Volume" <li> "Resource Group" <li> "Qtree" <li> "Interface" <li> "Administrator" <li> "Network" <li> "Mgmt Station" <li> "Configuration" <li> "QuotaUser" <li> "Initiator Group" <li> "Lun Path" <li> "FCP Target" <li> "Directory" <li> "HBA" <li> "FCP Initiator" <li> "SAN Host Cluster" <li> "SRM Path" <li> "Mirror" <li> "Aggregate" <li> "Script" <li> "Script Schedule" <li> "Script Job" <li> "Role" <li> "Data Set" <li> "Storage Set" <li> "Resource Pool" <li> "DP Policy" <li> "DP Schedule" <li> "DP Throttle" <li> "OSSV Directory" <li> "Prov Policy" <li> "Schedule" <li> "Report Schedule" <li> "VFiler Template" <li> "Disk" </ul>

=end html

=back



=head2 comment-value

=begin html

Value of the specified comment field to be set on the object. This can be of maximum 1024 characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 application-info

=begin html

Information about an application.

=end html



B<Fields>

=over 2

=item * I<application-name>  =>   B<string>

=begin html

<br>Name of an application, up to 255 characters long. For example: "SnapManager for Oracle"

=end html

=back



=over 2

=item * I<application-server-name>  =>   B<string>

=begin html

<br>The name of the server the application is running on, up to 255 characters long. This is the name of the host server, rather than the name of the client application.

=end html

=back



=over 2

=item * I<application-version>  =>   B<string>

=begin html

<br>Version of an application, up to 255 characters long. For example: "2.1"

=end html

=back



=over 2

=item * I<carry-primary-backup-retention>  =>   B<boolean, optional>

=begin html

<br>If this input is true, retention type of the primary backup is assigned to its replicas on the other nodes of the dataset. An exception is made if the dp-backup-start API with retention-type specified, starts the replication. In that case, the retention type specified in dp-backup-start is assigned to the replicas thereby overriding the retention type of the primary backup. If a scheduled event starts the replication, retention type specified in the schedule event is ignored. <P> If this input is false, retention type of the primary backup is ignored when assigning retention type to its replicas. Depending on how the backup transfer job was started, the retention type specified either in dp-backup-start API or the one specified in the schedule is assigned to the replica of the primary backup. <P> When this input is false, replicas of the primary backup may get an undesired retention type if the schedules are not configured very carefully. Therefore, it is recommended that any new users of the API should always set this input to true. <P> Note that even if the retention type of primary and secondary backups is the same, the retention duration may be different for them. The retention duration is specified for each node in the data protection policy. See dp-policy-node-info for more details. <P> Always present in the output. <P> Default is true.

=end html

=back



=over 2

=item * I<is-application-managing-primary-backup-retention>  =>   B<boolean, optional>

=begin html

<br>If this input is true, Protection Manager does not enforce retention settings in the policy on the primary backups. Application is responsible for deleting primary backups, possibly by invoking dp-backup-version-delete API. <P> If this input is false, Protection Manager deletes the primary backups according to the retention settings specified in the policy. <P> Always present in the output. <P> Default is false.

=end html

=back



=over 2

=item * I<is-application-responsible-for-primary-backup>  =>   B<boolean>

=begin html

<br>DFM creates primary backup versions only if this option is false.

=end html

=back



=head2 application-resource-namespace

=begin html

Name of the application resource namespace. We cannot list all possible values for this type. Because, in theory, someone could write a new plugin and install it under a Host Service at run-time, and we will support such a plugin from the server side in future. Client should depend on the specific values only when they are writing plugin-specific code.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 cifs-permission

=begin html

Permission granted to a CIFS user on a share. Possible values are 'no_access', 'read', 'change' and 'full_control'

=end html



B<Fields>

=over 2

=item * None

=back



=head2 cifs-share-info

=begin html

Specifies the properties of a CIFS share on Data ONTPAP system.

=end html



B<Fields>

=over 2

=item * I<cifs-share-name>  =>   B<cifs-share-name>

=begin html

<br>Name of the CIFS share.

=end html

=back



=over 2

=item * I<cifs-share-permissions>  =>   B<L<"cifs-share-permission">[]>

=begin html

<br>ACL information of a CIFS share.

=end html

=back



=head2 cifs-share-name

=begin html

CIFS share name of the storage container (volumes, qtrees). Example \\server\sharename.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 cifs-share-permission

=begin html

CIFS ACL information configured for a CIFS share.

=end html



B<Fields>

=over 2

=item * I<cifs-username>  =>   B<string>

=begin html

<br>Name of the user configured to access a CIFS share.

=end html

=back



=over 2

=item * I<permission>  =>   B<string>

=begin html

<br>CIFS permission configured for the user accessing a CIFS share.

=end html

=back



=head2 conformance-alert

=begin html

A description of one conformance check alert that should be noted by a user.

=end html



B<Fields>

=over 2

=item * I<conformance-alert-effect>  =>   B<string, optional>

=begin html

<br>The predicted effect of the alert. If there is no effect, this element will not be present

=end html

=back



=over 2

=item * I<conformance-alert-reason>  =>   B<string>

=begin html

<br>Specifies possible reasons for alert.

=end html

=back



=over 2

=item * I<conformance-alert-severity>  =>   B<obj-status>

=begin html

<br>severity of the alert. Possible values are "information", "error" or "warning".

=end html

=back



=over 2

=item * I<conformance-alert-suggestion>  =>   B<string, optional>

=begin html

<br>Present only if severity is error or warning. Specifies any suggestions to rectify the warnings, errors. If there are no suggestions to specify, this element will not be present.

=end html

=back



=over 2

=item * I<conformance-alert-type>  =>   B<conformance-alert-type>

=begin html

<br>Indicates the type for this alert

=end html

=back



=head2 conformance-alert-type

=begin html

The type of alert that is being issued is indicated by a field of this type. The alert-type may apply to the conformance-alerts. <p> Possible values are: 'diskspace' and 'rebaseline'. <ul> <li>diskspace: An alert can be issued for when DFM station disk space is so low as to impact the operation of DFM. <li>rebaseline: When the system detects that existing relationships are in need of migration an alert of this type may be issued to warn that a rebaseline may be done should the user confirm conformance for non-conformant datasets. </ul> Please see conformance-alerts where the above values may be used for additional information.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 conformance-run-result

=begin html

A description of one action and the predicted effects of taking that action.

=end html



B<Fields>

=over 2

=item * I<conformance-job-id>  =>   B<obj-id, optional>

=begin html

<br>job id of the conformance job.

=end html

=back



=over 2

=item * I<conformance-run-action>  =>   B<string>

=begin html

<br>An action the system has taken.

=end html

=back



=over 2

=item * I<conformance-run-effect>  =>   B<string>

=begin html

<br>The result of the action.

=end html

=back



=over 2

=item * I<conformance-run-reason>  =>   B<string, optional>

=begin html

<br>Present only if severity is error or warning. Specifies possible reasons for error, warning. If there are no reasons to specify, this element will not be present.

=end html

=back



=over 2

=item * I<conformance-run-reason-details>  =>   B<L<"result-detail">[], optional>

=begin html

<br>These details apply to the associated conformance-run-reason within the same conformance-run-result. These offer additional information such as the reasons individual reasources may not have been selected for the conformance-run-action in this same conformance-run-result.

=end html

=back



=over 2

=item * I<conformance-run-severity>  =>   B<obj-status>

=begin html

<br>severity of conformance action. Possible values are "information", "error", "warning".

=end html

=back



=over 2

=item * I<conformance-run-suggestion>  =>   B<string, optional>

=begin html

<br>Present only if severity is error or warning. Specifies any suggestions to rectify warnings or errors. If there are no suggestions to specify, this element will not be present.

=end html

=back



=head2 dataset-access-details

=begin html

The data access details of a dataset. Currently, this is used to configure a dataset in a way that it is capable of transparent migration. A dataset can be configured and provisioned in a way that it is capable of transparent migration. IP Address and netmask has to be configured on the dataset in order to make the dataset capable of transparent migration. Provisioning Manager will create a vFiler unit with this IP Address and all the storage provisioned for this dataset will be accessed from this vFiler unit or this IP address. As input, it is valid only when: - There are no members in the dataset. - There is no vFiler unit attached to the dataset.

=end html



B<Fields>

=over 2

=item * I<ip-address>  =>   B<string>

=begin html

<br>IP address in dotted decimal format. (for example, "192.168.11.12"). The length of this string cannot be more than 16 characters.

=end html

=back



=over 2

=item * I<netmask>  =>   B<string>

=begin html

<br>Netmask for the IP Address in dotted decimal notation. As input, this is valid only when ip-address is also provided in dataset-access-details. Provisioning Manager will create a vFiler unit whose IP Address will be the one configured as ip-address and it will be bound to an interface with this netmask.

=end html

=back



=head2 dataset-cifs-export-setting

=begin html

If storage inside this dataset node is exported over CIFS, this specifies some of the common properties that will be applied to all such provisioned storage.

=end html



B<Fields>

=over 2

=item * I<cifs-domain>  =>   B<string, optional>

=begin html

<br>Name of the CIFS domain. If present, then only filers or vFilers belonging to this CIFS domain is considered for provisioning. If not present, then any filer is picked. Up to 255 characters.

=end html

=back



=over 2

=item * I<dataset-cifs-share-permissions>  =>   B<L<"dataset-cifs-share-permission">[], optional>

=begin html

<br>Specifies the permissions granted to users on storage provisioned in this dataset node. This field may be present only if the dataset-export-protocol is 'cifs' or 'mixed'.

=end html

=back



=head2 dataset-cifs-share-permission

=begin html

A single permission granted to a user on CIFS shares within a dataset node.

=end html



B<Fields>

=over 2

=item * I<cifs-username>  =>   B<string>

=begin html

<br>Name of a user in the specified domain. The username may be the name of an actual domain user or one of the built-in names - 'administrator' or 'everyone'.

=end html

=back



=over 2

=item * I<permission>  =>   B<cifs-permission>

=begin html

<br>Specifies the permissions granted to a user.

=end html

=back



=head2 dataset-dynamic-reference-info

=begin html

Information about one dynamic reference in a dataset.

=end html



B<Fields>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the policy node to which the dynamic reference is attached. This element is only included if a data protection policy is associated with the dataset.

=end html

=back



=over 2

=item * I<dynamic-reference-id>  =>   B<obj-id>

=begin html

<br>Identifier of the dynamic reference.

=end html

=back



=over 2

=item * I<dynamic-reference-name>  =>   B<obj-name>

=begin html

<br>Name of the dynamic reference.

=end html

=back



=over 2

=item * I<dynamic-reference-status>  =>   B<obj-status>

=begin html

<br>Current status of the dynamic reference.

=end html

=back



=over 2

=item * I<dynamic-reference-subtype>  =>   B<string, optional>

=begin html

<br>Subtype of dynamic reference. Present only when dynamic-reference-type is app_object. In that case this field contains the subtype returned by the Host Service.

=end html

=back



=over 2

=item * I<dynamic-reference-type>  =>   B<string>

=begin html

<br>Type of the dynamic reference. Possible values are 'filer', 'vfiler', 'aggregate', 'ossv_host', and 'app_object'.

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>True if this member and all of it's parents are up or online. Only valid for members of type "ossv-host", "ossv-dir", "filer", "vfiler", "aggregate", "volume", or "qtree". This field is not set for "vm" or "datastore" types.

=end html

=back



=over 2

=item * I<is-deleted>  =>   B<boolean, optional>

=begin html

<br>True if this member object is marked as deleted in the database.

=end html

=back



=over 2

=item * I<storageset-id>  =>   B<obj-id>

=begin html

<br>Identifier of the storage set to which the dynamic reference belongs.

=end html

=back



=over 2

=item * I<storageset-name>  =>   B<obj-name>

=begin html

<br>Name of the storage set to which the dynamic reference belongs.

=end html

=back



=head2 dataset-dynamic-reference-parameter

=begin html

Information about one dynamic reference in a dataset.

=end html



B<Fields>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the data protection policy node associated with the dynamic reference. If dp-node-name is not specified, the root data protection policy node is assumed.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dynamic reference to add to or remove from the dataset.

=end html

=back



=head2 dataset-export-info

=begin html

Specifies the NAS or SAN export settings for a dataset node.

=end html



B<Fields>

=over 2

=item * I<dataset-cifs-export-setting>  =>   B<L<"dataset-cifs-export-setting">, optional>

=begin html

<br>The CIFS export settings for storage exported over CIFS. This field may be present only if the dataset-export-protocol is 'cifs' or 'mixed'.

=end html

=back



=over 2

=item * I<dataset-export-protocol>  =>   B<dataset-export-protocol, optional>

=begin html

<br>Specifies the protocol over which members of the dataset node will be exported. This value is always returned. If omitted during a modify operation, the existing value is not changed. If specified as 'none' in a modify operation, the existing settings will be cleared. Default value is 'none'. Depending on the export protocol, dataset-lun-mapping, or a combination of dataset-nfs-export-setting and dataset-cifs-share-permissions, should be specified in a modify operation, and will be returned in the iterator output.

=end html

=back



=over 2

=item * I<dataset-lun-mapping-info>  =>   B<L<"dataset-lun-mapping-info">, optional>

=begin html

<br>Specifies the hosts and/or initiators to which LUNs in this dataset node will be mapped, and the igroup OS type. This field may be present only if the dataset-export-protocol is 'fcp' or 'iscsi'.

=end html

=back



=over 2

=item * I<dataset-nfs-export-setting>  =>   B<L<"dataset-nfs-export-setting">, optional>

=begin html

<br>The NFS export settings for storage exported over NFS. This field may be present only if the dataset-export-protocol is 'nfs' or 'mixed'.

=end html

=back



=head2 dataset-export-protocol

=begin html

Specifies the export protocols that members in this dataset node will be exported over. Possible values are 'nfs', 'cifs', 'mixed', 'fcp', 'iscsi' and 'none'. Specifying 'mixed' implies that the storage in the dataset should be exported over both NFS and CIFS.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dataset-info

=begin html

Information about a dataset.

=end html



B<Fields>

=over 2

=item * I<application-info>  =>   B<L<"application-info">, optional>

=begin html

<br>If is-application-data is true, then this element must be present and it will contain information about the application which manages this dataset.

=end html

=back



=over 2

=item * I<application-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the application policy associated with this dataset.

=end html

=back



=over 2

=item * I<application-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the application policy associated with this dataset.

=end html

=back



=over 2

=item * I<application-resource-namespaces>  =>   B<application-resource-namespace[], optional>

=begin html

<br>This is only returned if can-contain-application-resources is true. If this list is empty, then the dataset can contain any type of application resources. This would be the case where the dataset has no members and no application policy attached. Otherwise, it will list out an array of namespaces from which new members can be added to this dataset.

=end html

=back



=over 2

=item * I<can-contain-application-resources>  =>   B<boolean, optional>

=begin html

<br>True, if application resources can be added to this dataset. Otherwise, false. Examples of application resources are virtual machines, datastores etc. An empty dataset without any policy can have both can-contain-application-resources and can-contain-storage-resources set to true at the same time. Always present in the output. Ignored in the input. Default is true.

=end html

=back



=over 2

=item * I<can-contain-storage-resources>  =>   B<boolean, optional>

=begin html

<br>True, if storage resources can be added to this dataset. Otherwise, false. Examples of storage resources are hosts, aggregates, volumes, qtrees, OSSV directories etc. An empty dataset without any policy can have both can-contain-application-resources and can-contain-storage-resources set to true at the same time. Always present in the output. Ignored in the input. Default is true.

=end html

=back



=over 2

=item * I<dataset-access-details>  =>   B<L<"dataset-access-details">, optional>

=begin html

<br>Data access details for a dataset. This is returned only when a dataset is configured to be capable of transparent migration.

=end html

=back



=over 2

=item * I<dataset-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact information for the dataset, such as the owner's e-mail address.

=end html

=back



=over 2

=item * I<dataset-description>  =>   B<string>

=begin html

<br>Description of the dataset, up to 255 characters long.

=end html

=back



=over 2

=item * I<dataset-export-info>  =>   B<L<"dataset-export-info">, optional>

=begin html

<br>Specifies the NAS or SAN export settings for the root node of the dataset. This field is present only if the include-export-settings field was set to true in dataset-list-info-iter-start for this iteration.

=end html

=back



=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Identifier of dataset.

=end html

=back



=over 2

=item * I<dataset-map>  =>   B<L<"dataset-map-entry">[], optional>

=begin html

<br>List the policy node to storage set mapping. This shows how the storage set are wired together based on the policy topology for the dataset.

=end html

=back



=over 2

=item * I<dataset-metadata>  =>   B<L<"dfm-metadata-field">[], optional>

=begin html

<br>Opaque metadata for dataset. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<dataset-migration-info>  =>   B<L<"dataset-migration-info">, optional>

=begin html

<br>Dataset's migration information. This will be present only if include-migration-info is set to true in dataset-list-info-iter-start api. If the dataset is not migrating this element will not be present.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of dataset.

=end html

=back



=over 2

=item * I<dataset-owner>  =>   B<string, optional>

=begin html

<br>Name of the owner of the dataset, up to 255 characters long.

=end html

=back



=over 2

=item * I<dataset-status>  =>   B<L<"dataset-status">>

=begin html

<br>The complex status of the dataset at the time it was last calculated. If suppress-dataset-status was not set to true, then the resource status will be re-calculated as part of the iteration. The resource status is the only aspect of dataset-status that is ever refreshed when iterated.

=end html

=back



=over 2

=item * I<dr-state>  =>   B<dr-state, optional>

=begin html

<br>Disaster recovery state of the dataset. <P> If the dataset list iteration's output element <b>is-dr-capable</b> is true, then this element appears in the output. Otherwise, if <b>is-dr-capable</b> is false, this element does not appear in the output.

=end html

=back



=over 2

=item * I<dynamic-reference-count>  =>   B<integer>

=begin html

<br>The count of dynamic references to members in the dataset. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<has-protection>  =>   B<boolean>

=begin html

<br>True if the dataset satisfies at least one of the following conditions: <ul> <li>A dataset with a single node protection policy assigned. <li>A dataset with no protection policy attached but has an application policy attached to it. <li>A dataset that has a multi-node protection policy attached to it and has conformed at least once. </ul>

=end html

=back



=over 2

=item * I<has-protection-policy>  =>   B<boolean>

=begin html

<br>True if this dataset has a data protection policy associated with it.

=end html

=back



=over 2

=item * I<is-allow-custom-settings>  =>   B<boolean, optional>

=begin html

<br>If true, conformance check of some volume options is disabled for the dataset. These volume options include, fractional-reserve, autodelete commitment and autodelete trigger attributes only. This option is applicable only for datasets which have san thin provisioning policy associated. For other datasets the option is ignored. default value is false.

=end html

=back



=over 2

=item * I<is-application-data>  =>   B<boolean>

=begin html

<br>If true, the dataset is an application dataset managed by an external application. application-info element is required if this element is true.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean>

=begin html

<br>True if an administrator has chosen to ignore this dataset for purposes of data protection. Data sets with this attribute set to true are not returned when the client requests datasets which are not ignored. This attribute has no other significance to the system.

=end html

=back



=over 2

=item * I<is-dp-suspended>  =>   B<boolean>

=begin html

<br>True if an administrator has chosen to suspend data protection of this dataset. <P> Deprecated field. Retained for backward compatibility. This field is deprecated in favour of is-suspended, which suspends the dataset for all automated actions (data protection and conformance check of the dataset).

=end html

=back



=over 2

=item * I<is-dr-capable>  =>   B<boolean>

=begin html

<br>True if this dataset has a data protection policy associated with it that is disaster recovery capable.

=end html

=back



=over 2

=item * I<is-enable-write-guarantee-checks>  =>   B<boolean, optional>

=begin html

<br>If true, periodic write guarantee checks are enabled for the dataset. This option is applicable only for datasets which have SAN thin provisioning policy associated. Presence of lun-clones, flex-clones, SFSR operations in the volume may effect write guarantees in SAN thin provisioning configurations. Periodic write guarantee checks detect such condition and generate alerts. For other datasets the option is ignored. default value is true.

=end html

=back



=over 2

=item * I<is-none-guaranteed-provision>  =>   B<boolean, optional>

=begin html

<br>If true, the volume provisioned for this dataset will be created with none guarantee, and it will override the default behavior that is provided by a NAS provisioning policy. This option is applicable only for datasets which have NAS thin provisioning policy associated. default value is false.

=end html

=back



=over 2

=item * I<is-protected>  =>   B<boolean>

=begin html

<br>True if this dataset has a data protection policy associated with it. <P> Deprecated field. Retained for backward compatibility. This field is deprecated and to be replaced by has-protection-policy.

=end html

=back



=over 2

=item * I<is-skip-autosize-conformance>  =>   B<boolean, optional>

=begin html

<br>If true, conformance check of autosize volume options is disabled for the dataset. This option is applicable only for datasets which have thin provisioning policy associated. For other datasets the option is ignored. default value is false.

=end html

=back



=over 2

=item * I<is-suspended>  =>   B<boolean>

=begin html

<br>True if an administrator has chosen to suspend this dataset for all automated actions (data protection and conformance check of the dataset).

=end html

=back



=over 2

=item * I<is-vfiler-created-for-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the vFiler unit attached to the dataset node was created by Provisioning Manager for migration. This element is present only when vfiler-id element is present. Default: false.

=end html

=back



=over 2

=item * I<maximum-luns-per-volume>  =>   B<integer, optional>

=begin html

<br>Dataset level option that specifies the maximum number of luns that can be provisioned in a volume. If the value is empty, then the value of the global option maxLUNsPerVolume is applicable for the dataset.

=end html

=back



=over 2

=item * I<maximum-qtrees-per-volume>  =>   B<integer, optional>

=begin html

<br>Dataset level option that specifies the maximum number of qtrees that can be provisioned in a volume. If the value is empty, then the value of the global option maxQtreesPerVolume is applicable for the dataset.

=end html

=back



=over 2

=item * I<member-count>  =>   B<integer>

=begin html

<br>The count of direct members in the dataset. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<online-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates, that this dataset is capable of non-disruptive migration. This field is valid only when either dataset-access-details or vfiler-id is not empty. By default the migration will be assumed to be disruptive. Default: false.

=end html

=back



=over 2

=item * I<primary-volume-name-format>  =>   B<primary-volume-name-format>

=begin html

<br>Format for primary volume name

=end html

=back



=over 2

=item * I<protection-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the protection policy governing this dataset.

=end html

=back



=over 2

=item * I<protection-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the protection policy governing this dataset.

=end html

=back



=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the provisioning policy associated with primary node of the dataset.

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the provisioning policy associated with the primary node of the dataset.

=end html

=back



=over 2

=item * I<requires-non-disruptive-restore>  =>   B<requires-non-disruptive-restore>

=begin html

<br>Specifies whether the dataset is configured to enable non-disruptive restores.

=end html

=back



=over 2

=item * I<resourcepool-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the resource pool assigned to the root storage set. The output element is omitted if no resouce pool has been assigned to the root storage set. <P> If more than one resource pool is assigned to the dataset node, then the resource pool with the least valued identifier is returned in this field. <P> This is a legacy parameter and resourcepools field should be used instead to get the list of all resource pools assigned to the dataset node.

=end html

=back



=over 2

=item * I<resourcepool-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the resource pool assigned to the root storage set. The output element is omitted if no resource pool has been assigned to the root storage set. <P> If more than one resource pool is assigned to the dataset node, then the name of the resource pool with the least valued identifier is returned in this field. <P> This is a legacy parameter and resourcepools field should be used instead to get the list of all resource pools assigned to the dataset node.

=end html

=back



=over 2

=item * I<resourcepools>  =>   B<L<"dataset-resourcepool-info">[], optional>

=begin html

<br>Information of the resource pool(s) assigned to the root storage set. The output element is omitted if no resource pool(s) has been assigned to the root storage set.

=end html

=back



=over 2

=item * I<secondary-qtree-name-format>  =>   B<secondary-qtree-name-format>

=begin html

<br>Format for secondary qtree name.

=end html

=back



=over 2

=item * I<secondary-volume-name-format>  =>   B<secondary-volume-name-format>

=begin html

<br>Format for secondary volume name

=end html

=back



=over 2

=item * I<snapshot-name-format>  =>   B<snapshot-name-format>

=begin html

<br>Format for snapshot name

=end html

=back



=over 2

=item * I<storage-service-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the storage service to which this dataset is attached. This will not be present if the dataset is not attached to a storage service.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the storage service to which this dataset is attached. This will not be present if the dataset is not attached to a storage service.

=end html

=back



=over 2

=item * I<storageset-id>  =>   B<obj-id>

=begin html

<br>Identifier of the storage set representing the primary data, or "root," of the dataset.

=end html

=back



=over 2

=item * I<storageset-name>  =>   B<obj-name>

=begin html

<br>Name of the storage set representing the primary data, or "root," of the dataset.

=end html

=back



=over 2

=item * I<storageset-timezone>  =>   B<string>

=begin html

<br>Time zone, if any, of the root storage set. Return an empty string if no time zone has been assigned to the root storage set. Currently valid time zones can be listed by timezone-list-info-iter.

=end html

=back



=over 2

=item * I<vfiler-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the vFiler unit attached to the primary node of the dataset.

=end html

=back



=over 2

=item * I<vfiler-name>  =>   B<obj-full-name, optional>

=begin html

<br>Name of the vFiler unit attached to the primary node of the dataset.

=end html

=back



=over 2

=item * I<volume-qtree-name-prefix>  =>   B<string>

=begin html

<br>Prefix for volume and qtree names, up to 60 characters long.

=end html

=back



=head2 dataset-io-metric-info

=begin html

A single I/O usage measurement record for a dataset node.

=end html



B<Fields>

=over 2

=item * I<dataset-node>  =>   B<L<"metric-dataset-node-info">>

=begin html

<br>Information about the dataset node.

=end html

=back



=over 2

=item * I<io-measurement>  =>   B<L<"io-measurement">>

=begin html

<br>I/O usage measurements.

=end html

=back



=over 2

=item * I<is-io-data-partial>  =>   B<boolean, optional>

=begin html

<br>Is set to true if IO information for one or more volume belonging to the dataset node was not available while computing the usage metric. If not present in output, it defaults to false.

=end html

=back



=over 2

=item * I<is-overcharge>  =>   B<boolean, optional>

=begin html

<br>Is set to true if the dataset has one or more qtree members while generating the metric. For qtree members of dataset, their containing volume information is used to compute the usage metric. So we flag such metrics as overcharge. If not present in output, it defaults to false.

=end html

=back



=over 2

=item * I<timestamp>  =>   B<dp-timestamp>

=begin html

<br>Timestamp of the sample. The value is in seconds since January 1, 1970

=end html

=back



=head2 dataset-lun-mapping-info

=begin html

Specifies the hosts and/or initiators to which LUNs in this dataset node will be mapped, and the igroup OS type.

=end html



B<Fields>

=over 2

=item * I<igroup-os-type>  =>   B<string>

=begin html

<br>Specifies the OS type for initiators to map LUNs in the dataset node to. Possible values are: 'windows', 'windows_gpt', 'windows_2008', 'hpux', 'aix, 'linux, 'solaris', 'vmware', 'netware', 'hyper_v', 'xen', 'solaris_efi', and 'openvms' Here "windows_gpt" refers to Windows using GPT (GUID Partition Type) partitioning style and "windows_2008" refers to Windows Longhorn systems.

=end html

=back



=over 2

=item * I<lun-mapping-initiators>  =>   B<L<"lun-mapping-initiator">[]>

=begin html

<br>Specifies the initiators to map LUNs in the dataset node to, and, optionally, the host to which they belong.

=end html

=back



=head2 dataset-map-entry

=begin html

Map a storage set to a policy node. The root node is not included in the map.

=end html



B<Fields>

=over 2

=item * I<dataset-access-details>  =>   B<L<"dataset-access-details">, optional>

=begin html

<br>Data access details for a dataset. This is returned only when a dataset is configured to be capable of transparent migration.

=end html

=back



=over 2

=item * I<dataset-export-info>  =>   B<L<"dataset-export-info">, optional>

=begin html

<br>Specifies the NAS or SAN export settings for the storage set. This field is present only if the include-export-settings field was set to true in dataset-list-info-iter-start for this iteration.

=end html

=back



=over 2

=item * I<dp-node-id>  =>   B<integer>

=begin html

<br>ID of the node in the data protection policy. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name>

=begin html

<br>Name of the node in the data protection policy topology.

=end html

=back



=over 2

=item * I<is-dr-capable>  =>   B<boolean>

=begin html

<br>True if this node is the destination of a disaster recovery capable connection in the data protection policy.

=end html

=back



=over 2

=item * I<is-vfiler-created-for-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the vFiler unit attached to the dataset node was created by Provisioning Manager This element is present only when vfiler-id element is present. Note: This field will be also be true if vFiler unit was created by Provisioning manager and attached to secondary nodes, although secondary nodes do not support migration.

=end html

=back



=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the provisioning policy associated with the dataset node.

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the provisioning policy associated with the dataset node.

=end html

=back



=over 2

=item * I<resourcepool-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the resource pool assigned to the storage set that maps to the policy node. The output element is omitted if no resource pool has been assigned to the storage set. <P> If more than one resource pool is assigned to the dataset node, then one of them is returned in this field. <P> This is a legacy parameter and resourcepools field should be used instead to get the list of all resource pools assigned to the dataset node.

=end html

=back



=over 2

=item * I<resourcepool-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the resource pool assigned to the storage set that maps to the policy node. The output element is omitted if no resource pool has been assigned to the storage set. <p> If more than one resource pool is assigned to the dataset node, then the name of the resource pool with the least valued identifier is returned in this field. <P> This is a legacy parameter and resourcepools field should be used instead to get the list of all resource pools assigned to the dataset node.

=end html

=back



=over 2

=item * I<resourcepools>  =>   B<L<"dataset-resourcepool-info">[], optional>

=begin html

<br>Name Information of the resource pool(s) assigned to the storage set that maps to the policy node. The output element is omitted if no resource pool(s) has been assigned to the storage set.

=end html

=back



=over 2

=item * I<storageset-id>  =>   B<obj-id>

=begin html

<br>Identifier of the storage set that maps to the policy node.

=end html

=back



=over 2

=item * I<storageset-name>  =>   B<obj-name>

=begin html

<br>Name of the storage set that maps to the node.

=end html

=back



=over 2

=item * I<storageset-timezone>  =>   B<string>

=begin html

<br>Time zone specification, if any, of the storage set. Storage sets without time zones use a time zone from the resource pool the storage came from, or from a default time zone. Return an empty string if no time zone has been assigned to the storage set. Currently valid time zones can be listed by timezone-list-info-iter.

=end html

=back



=over 2

=item * I<vfiler-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the vFiler unit attached to the dataset node.

=end html

=back



=over 2

=item * I<vfiler-name>  =>   B<obj-full-name, optional>

=begin html

<br>Name of the vFiler unit attached to the dataset node.

=end html

=back



=head2 dataset-member-info

=begin html

Information about one member of a dataset.

=end html



B<Fields>

=over 2

=item * I<cifs-share-names>  =>   B<cifs-share-name[], optional>

=begin html

<br>List of share names for accesing the storage container (volume/qtree) when access protocol of storage set is "CIFS" or "Mixed".

=end html

=back



=over 2

=item * I<cifs-shares-info>  =>   B<L<"cifs-share-info">[]>

=begin html

<br>CIFS share settings of a dataset member. Applicable is the dataset member (volume/qtree) is exported over CIFS protocol.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Display name of the policy node to which the member is attached. This element is only included if a data protection policy is associated with the dataset.

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>True if this object and all of its parents are up or online. Only valid for members of type "ossv-host," "ossv-dir," "filer," "vfiler," "aggregate," "volume," or "qtree".

=end html

=back



=over 2

=item * I<is-deleted>  =>   B<boolean, optional>

=begin html

<br>True if this member object is marked as deleted in the database.

=end html

=back



=over 2

=item * I<lun-igroups-info>  =>   B<L<"lun-igroup-info">[], optional>

=begin html

<br>If the LUN has been mapped to any igroups or hosts, this field contains information relevant to the same. This field is present only for LUNs, and absent if the LUN is not mapped to any initiator groups.

=end html

=back



=over 2

=item * I<member-id>  =>   B<obj-id>

=begin html

<br>Identifier of the member.

=end html

=back



=over 2

=item * I<member-name>  =>   B<obj-name>

=begin html

<br>Display name of the member.

=end html

=back



=over 2

=item * I<member-perf-status>  =>   B<obj-status>

=begin html

<br>Current status of the member based on the worst performance event.

=end html

=back



=over 2

=item * I<member-status>  =>   B<obj-status>

=begin html

<br>Current status of the member.

=end html

=back



=over 2

=item * I<member-type>  =>   B<string>

=begin html

<br>Type of the member. Possible values for direct members are: "volume", "qtree" or "ossv_directory". When include-exports-info is true in dataset-member-list-info-iter-start, this can also be "lun_path".

=end html

=back



=over 2

=item * I<nfs-export-name>  =>   B<string, optional>

=begin html

<br>Name by which the storage container(volume/qtree) has been exported. The volume or qtree can be exported with a different path from its physical path on the filer (with -actual option in the NFS export rule. Example: "/vol/myvol/myqtree" can be exported as "myexport") if not this will be same as full path of the container.

=end html

=back



=over 2

=item * I<nfs-export-rules>  =>   B<L<"nfs-export-rules">>

=begin html

<br>NFS export rule information of a dataset member. Applicatble if the dataset member (volume/qtree) is exported over NFS protocol.

=end html

=back



=over 2

=item * I<space-info>  =>   B<L<"space-info">, optional>

=begin html

<br>Space related information of a dataset member. Included in the output only if include-space-info was true in the call to dataset-member-list-info-iter-start. Note that some members will not have space related information. Those type of members are: <ul> <li> Non qtree data <li> Qtrees without hard disk quota limit. </ul> In these cases, it is considered that the space status of such members is unknown.

=end html

=back



=over 2

=item * I<storageset-id>  =>   B<obj-id>

=begin html

<br>Identifier of the storage set to which the member belongs.

=end html

=back



=over 2

=item * I<storageset-name>  =>   B<obj-name>

=begin html

<br>Name of the storage set to which the member belongs.

=end html

=back



=head2 dataset-member-parameter

=begin html

Information about one member of a dataset.

=end html



B<Fields>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the data protection policy node associated with the object. If dp-node-name is not specified, the object is added to the root data protection policy node.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Identifier of the object to add to or remove from the dataset.

=end html

=back



=head2 dataset-migration-info

=begin html

Dataset's migration information.

=end html



B<Fields>

=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>description associated with the migration task

=end html

=back



=over 2

=item * I<destination-filer-id>  =>   B<obj-id>

=begin html

<br>Database ID of the destination storage system

=end html

=back



=over 2

=item * I<destination-filer-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the destination storage system

=end html

=back



=over 2

=item * I<destination-vfiler-id>  =>   B<obj-id, optional>

=begin html

<br>Database ID of the destination vfiler. If the migration status is 'migrate_failed' and the destination vfiler has been destroyed as a result of rollback activity. this field will not be present.

=end html

=back



=over 2

=item * I<destination-vfiler-name>  =>   B<obj-full-name, optional>

=begin html

<br>Full name of the destination vfiler. If the migration status is 'migrate_failed' and the destination vfiler has been destroyed as a result of rollback activity. this field will not be present.

=end html

=back



=over 2

=item * I<migration-status>  =>   B<migration-status>

=begin html

<br>Migration status of the dataset

=end html

=back



=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Provisioning policy used to provision the migration destination

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-full-name, optional>

=begin html

<br>Name of the provisioning policy used to provision the migration destination.

=end html

=back



=over 2

=item * I<source-filer-id>  =>   B<obj-id>

=begin html

<br>Database ID of the source storage system

=end html

=back



=over 2

=item * I<source-filer-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the source storage system

=end html

=back



=over 2

=item * I<source-vfiler-id>  =>   B<obj-id>

=begin html

<br>Database ID of the source vfiler

=end html

=back



=over 2

=item * I<source-vfiler-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the source vfiler

=end html

=back



=head2 dataset-nfs-export-setting

=begin html

If storage inside this dataset node is exported over NFS, this specifies some of the common properties that will be applied to all such provisioned storage.

=end html



B<Fields>

=over 2

=item * I<anonymous-access-user>  =>   B<string, optional>

=begin html

<br>If the client accessing the export is not present in the root access list for the export, the effective user for root is the value specified for this field. Default value is 65534 which maps to user nobody. It could be an integer Range: [0..65534] or a user name not more than 255 characters.

=end html

=back



=over 2

=item * I<disable-setuid>  =>   B<boolean, optional>

=begin html

<br>If true, causes the server file system to ignore attempts to enable the setuid or setgid mode bits. Default value is true.

=end html

=back



=over 2

=item * I<is-readonly-for-all-hosts>  =>   B<boolean, optional>

=begin html

<br>Specifies that all hosts receive read-only permissions on nfs exports in this dataset node. Equivalent to specifying "ro" on the filer. Default value is false. If true, is-readwrite-for-all-hosts must be false.

=end html

=back



=over 2

=item * I<is-readwrite-for-all-hosts>  =>   B<boolean, optional>

=begin html

<br>Specifies that all hosts receive read-write permissions on nfs exports in this dataset node. Equivalent to specifying "rw" on the filer. Default value is false. If true, is-readonly-for-all-hosts must be false.

=end html

=back



=over 2

=item * I<nfs-export-ro-hosts>  =>   B<L<"nfs-export-host">[], optional>

=begin html

<br>A list of hosts with read-only permissions on exports in this dataset node. If a non empty list of nfs-export-ro-hosts is present along with is-readonly-for-all-hosts as true, then ZAPI will throw an error.

=end html

=back



=over 2

=item * I<nfs-export-root-hosts>  =>   B<L<"nfs-export-host">[], optional>

=begin html

<br>A list of hosts with the root user having read-only or read-write permissions on exports in this dataset node.

=end html

=back



=over 2

=item * I<nfs-export-rw-hosts>  =>   B<L<"nfs-export-host">[], optional>

=begin html

<br>A list of hosts with read-write permissions on exports in this dataset node. If a non empty list of nfs-export-rw-hosts is present along with is-readwrite-for-all-hosts as true, then ZAPI will throw an error.

=end html

=back



=over 2

=item * I<nfs-protocol-version>  =>   B<string, optional>

=begin html

<br>NFS protocol version, valid values are "v2", "v3" and "v4". Default value is "v3". If set, the storage systems that have the given version enabled will be selected to provision storage for the dataset.

=end html

=back



=over 2

=item * I<nfs-security-flavors>  =>   B<nfs-security-flavor[], optional>

=begin html

<br>List of strings specifying the security flavors supported on exports in this dataset node. If this field is not specified, the default value of 'sys' is assumed.

=end html

=back



=head2 dataset-node-info

=begin html

Information about a dataset node.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>ID of the dataset. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name or the dataset.

=end html

=back



=over 2

=item * I<dp-node-id>  =>   B<integer>

=begin html

<br>ID of the node in the data protection policy associated with the dataset. If there is no protection policy assigned to the dataset, then the value 1 is returned. Range:[1..2^31-1]

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name>

=begin html

<br>Name of the node in the data protection policy associated with the dataset. If there is no data protection policy assigned to the dataset, then the name of the dataset is returned as the node name.

=end html

=back



=over 2

=item * I<is-dp-node-effective-primary>  =>   B<boolean>

=begin html

<br>This value will be true when the node in the dataset is the effective primary node of the dataset.

=end html

=back



=head2 dataset-resourcepool-info

=begin html

Information about resource pools associated with dataset.

=end html



B<Fields>

=over 2

=item * I<resourcepool-id>  =>   B<obj-id>

=begin html

<br>Identifier of the resource pool assigned to the storage set.

=end html

=back



=over 2

=item * I<resourcepool-name>  =>   B<obj-name>

=begin html

<br>Name of the resource pool assigned to the storage set. storage set.

=end html

=back



=head2 dataset-space-metric-info

=begin html

A single space usage measurement record for a dataset node.

=end html



B<Fields>

=over 2

=item * I<avg-space-measurement>  =>   B<L<"space-measurement">>

=begin html

<br>The average values of space usage measurements.

=end html

=back



=over 2

=item * I<dataset-node>  =>   B<L<"metric-dataset-node-info">>

=begin html

<br>Information about the dataset node.

=end html

=back



=over 2

=item * I<is-overcharge>  =>   B<boolean, optional>

=begin html

<br>Is set to true if the dataset has one or more qtree members while generating the metric. For qtree members of dataset, their containing volume information is used to compute the usage metric. So we flag such metrics as overcharge. If not present in output, it defaults to false.

=end html

=back



=over 2

=item * I<is-space-data-partial>  =>   B<boolean, optional>

=begin html

<br>Is set to true if space information for one or more volume belonging to the dataset node was not available while computing the usage metric. If not present in output, it defaults to false.

=end html

=back



=over 2

=item * I<max-space-measurement>  =>   B<L<"space-measurement">>

=begin html

<br>The maximum values of space usage measurements.

=end html

=back



=over 2

=item * I<timestamp>  =>   B<dp-timestamp>

=begin html

<br>Timestamp of the sample. The value is in seconds since January 1, 1970

=end html

=back



=head2 dataset-status

=begin html

The complex status of the dataset at the time it was last re-calculated.

=end html



B<Fields>

=over 2

=item * I<conformance-check-results>  =>   B<L<"conformance-run-result">[], optional>

=begin html

<br>Results of the most recent conformance check. If the dataset does not have a data protection policy assigned to it, this element will not be present.

=end html

=back



=over 2

=item * I<conformance-status>  =>   B<string>

=begin html

<br>A dataset is in conformance if it is configured according to policy. For example, a data protection policy might require provisioned secondary and tertiary volumes and the creation of backup and mirroring relationships. If they are properly configured, then the dataset is conformant. <p> If the dataset is not conformant, but the system is currently in the process of bringing the data set into conformance, then the dataset is conforming. If the system is unable to satisfy one or more policy requirements, then the dataset is nonconformant. <p> Possible values are: 'conformant', 'conforming', 'nonconformant'.

=end html

=back



=over 2

=item * I<dr-protection-status>  =>   B<string, optional>

=begin html

<br>The DR protection status only applies to datasets with data protection policies and only to protection policy connections which are disaster recovery capable. <p> A system may be up and running and properly configured, yet not protecting data. For example, if the lag thresholds specified by the policy are exceeded, then the data is not being sufficiently protected. <p> <P> Possible values are <ul> <li> <b>protected</b> : Dataset has complete backup versions on all nodes of the dataset that are to retain backups as per policy. This is a normal condition. <li> <b>no_app_policy</b> : Dataset doesn't have an application policy. This is a normal condition. <li> <b>uninitialized</b> : Dataset is missing some data protection relationships. This is a warning condition. <li> <b>protection_suspended</b> : Dataset has been suspended as administrator requested and is not performing data protection or conformance operations. This is a warning condition. <li> <b>protection_failure</b> : Dataset has a job failure while protecting data. This is a warning condition. <li> <b>lag_warning</b> : Last successful data transfer on the connection or the most recent protected data on the primary node is older than the lag warning threshold. This is a warning condition. <li> <b>lag_error</b> : Last successful data transfer on the connection or the most recent protected data on the primary node is older than the lag error threshold. This is an error condition. <li> <b>baseline_failure</b> : Dataset has a baseline job failure and is not able to register any backup version. This is an error condition. </ul> <P>

=end html

=back



=over 2

=item * I<dr-status>  =>   B<dr-status, optional>

=begin html

<br>The status of the dataset with regard to Disaster Recovery. The DR status determines how successful a DR operation such as a failover likely would be if it were performed on the dataset.

=end html

=back



=over 2

=item * I<dr-status-problems>  =>   B<L<"dr-status-problem">[], optional>

=begin html

<br>A list of the problems found that cause the data set not to have a <b>dr-status</b> of "normal". This list is not guaranteed to contain all problems related to DR status. <P> If <b>dr-status</b> is present and does not have the value "normal", then this element appears in the output, and the list contains at least one item. Otherwise, it does not appear.

=end html

=back



=over 2

=item * I<performance-status>  =>   B<obj-status>

=begin html

<br>Performance status of the dataset based on the worst performance events on its members.

=end html

=back



=over 2

=item * I<protection-status>  =>   B<string, optional>

=begin html

<br>A system may be up and running and properly configured, yet not protecting data. For example, if the lag thresholds specified by the policy are exceeded, then the data is not being sufficiently protected. <p> <P> Possible values are <ul> <li> <b>protected</b> : Dataset has complete backup versions on all nodes of the dataset that are to retain backups as per policy. This is a normal condition. <li> <b>no_app_policy</b> : Dataset doesn't have an application policy. This is a normal condition. <li> <b>uninitialized</b> : The dataset either doesn't have any data in it or it has a "local snapshots only" policy (it is a one-node dataset) and the schedule for that policy haven't kicked off any jobs as of yet (or there is no schedule at all). An application dataset could also reach this status after it has been created and no scheduled job is run. This is a warning condition. <li> <b>protection_suspended</b> : Dataset has been suspended as administrator requested and is not performing data protection or conformance operations. This is a warning condition. <li> <b>protection_failure</b> : Dataset has a job failure while protecting data. This is a warning condition. <li> <b>lag_warning</b> : Last successful data transfer on the connection or the most recent protected data on the primary node is older than the lag warning threshold. This is a warning condition. <li> <b>lag_error</b> : Last successful data transfer on the connection or the most recent protected data on the primary node is older than the lag error threshold. This is an error condition. <li> <b>baseline_failure</b> : Dataset has a baseline job failure and is not able to register any backup version. This is an error condition. </ul> <P>

=end html

=back



=over 2

=item * I<protection-status-problems>  =>   B<L<"protection-status-problem">[], optional>

=begin html

<br>A list of the problems found that cause the dataset not to have a <b>protection-status</b> of "protected". This list is not guaranteed to contain all problems related to protection status. <P> If <b>protection-status</b> does not have the value "protected", then this element will be present in the output as long as the include-protection-status-problems is set to true and only one dataset is specified in the dataset-list-info-iter-start api. Otherwise, it does not appear.

=end html

=back



=over 2

=item * I<resource-status>  =>   B<obj-status>

=begin html

<br>The resource status is the "worst" status of the resources relevant to the dataset. Resource status is calculated using the same rules as for DFM resource group status.

=end html

=back



=over 2

=item * I<space-status>  =>   B<space-status, optional>

=begin html

<br>Space status of the dataset. Space status of every member of every node of the data set is considered and the worst space status is considered as the space status of the dataset. Space status for members of a dataset node is calculated only if a provisioning policy is associated with that dataset node.

=end html

=back



=head2 dedupe-member-request-info

=begin html

Details of the dedupe member request.

=end html



B<Fields>

=over 2

=item * I<full-volume-dedupe>  =>   B<boolean, optional>

=begin html

<br>If true, full volume dedupe scan is performed. Otherwise only new data since last deduplication operation is scanned. Default value is false.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of a volume member of a dataset.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-name, optional>

=begin html

<br>Name of a volume member of the dataset. Either volume-id or volume-name has to be specified. If volume-id is specified then volume-name is ignored.

=end html

=back



=head2 delete-snapshots-request-info

=begin html

Details on which Snapshot copies are to be deleted.

=end html



B<Fields>

=over 2

=item * I<snapshots>  =>   B<L<"snapshot">[]>

=begin html

<br>List of Snapshot copies to be deleted from the volume. A minimum of 1 and a maximum of 255 Snapshot copies can be listed for deletion.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the volume whose Snapshot copies are to be deleted. This volume should be a member of the effective primary node of the dataset either through direct or indirect membership.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the volume whose Snapshot copies are to be deleted. This volume should be a member of the effective primary node of the dataset either through direct or indirect membership. Either volume-id or volume-name has to be specified. If volume-id is specified then volume-name is ignored.

=end html

=back



=head2 dfm-metadata-field

=begin html

Named field in the metadata.

=end html



B<Fields>

=over 2

=item * I<field-name>  =>   B<string>

=begin html

<br>Name of the metadata field. Field names are up to 255 characters in length and are case- insensitive.

=end html

=back



=over 2

=item * I<field-value>  =>   B<string>

=begin html

<br>Arbitrary, user-defined data expressed as a string. The string is opaque to the server and must not exceed 16384 (16k) characters in length.

=end html

=back



=head2 dr-state

=begin html

Disaster recovery states of a dataset. Possible values are: <ul> <li> "ready": The dataset is prepared to fail over. <li> "failing_over": The dataset is in the process of failing over. Eventually, the state of the dataset will change to either "failed_over" or "failover_error". <li> "failed_over": The dataset has failed over. The primary data is now considered unavailable and the mirror relationships from the primary to the DR node have been broken. <li> "failover_error": The dataset attempted to fail over but encountered an error. User intervention is required to change the state to either "failed_over" or "ready". </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dr-status

=begin html

The DR status has one of the following values: <ul> <li> <b>normal</b> : A DR operation would likely succeed, and the amount of lost data would be within the duration specified by the lag warning threshold. <li> <b>warning</b> : A DR operation would likely succeed, but the amount of lost data would exceed that specified by the policy's lag warning threshold. <li> <b>error</b> : A DR operation would likely fail, or would succeed but the amount of lost data would be unacceptable. </ul> <P> The DR status is computed based on all of the following: <ul> <li> The resource status of the dataset's DR secondaries. The specific condition that impacts the resource status is the availability of the secondary filers and volumes. The status will be error if either is unavailable. <li> Whether there is sufficient space on the DR secondaries to meet the space guarantees of the primaries. <li> The existence and state of the relationships associated with the dataset's disaster recovery capable connection. <li> Whether the relationships associated with the dataset's DR-capable connection are within their thresholds for lag warnings and errors. </ul> <P> If the dataset list iteration's output element <b>is-dr-capable</b> is true, then this element appears in the output. Otherwise, if <b>is-dr-capable</b> is false, this element does not appear in the output.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dr-status-problem

=begin html

An explanation of a single problem that causes the dataset not to have a <b>dr-status</b> of "normal".

=end html



B<Fields>

=over 2

=item * I<dr-status-description>  =>   B<string>

=begin html

<br>A human-readable message describing the problem.

=end html

=back



=over 2

=item * I<dr-status-severity>  =>   B<string>

=begin html

<br>Value is "warning" if the problem causes the data set to have a <b>dr-status</b> of at least "warning". Value is "error" if the problem causes the dataset to have a <b>dr-status</b> of at least "error".

=end html

=back



=head2 dry-run-result

=begin html

A description of one action and the predicted effects of taking that action.

=end html



B<Fields>

=over 2

=item * I<dry-run-action>  =>   B<string>

=begin html

<br>An action the system would take.

=end html

=back



=over 2

=item * I<dry-run-effect>  =>   B<string>

=begin html

<br>The predicted effect of the action.

=end html

=back



=over 2

=item * I<dry-run-reason>  =>   B<string, optional>

=begin html

<br>Present only if severity is error or warning. Specifies possible reasons for the error, warning. If there are no reasons to specify, this element will not be present.

=end html

=back



=over 2

=item * I<dry-run-reason-details>  =>   B<L<"result-detail">[], optional>

=begin html

<br>These details apply to the associated dry-run-reason within the same dry-run-result. These offer additional information such as the reasons individual reasources may not have been selected for the dry-run-action in this same dry-run-result.

=end html

=back



=over 2

=item * I<dry-run-severity>  =>   B<obj-status>

=begin html

<br>severity of the dry-run result. Possible values are "information", "error" or "warning".

=end html

=back



=over 2

=item * I<dry-run-suggestion>  =>   B<string>

=begin html

<br>Present only if severity is error or warning. Specifies any suggestions to rectify the warnings, errors. If there are no suggestions to specify, this element will not be present.

=end html

=back



=head2 excluded-object-info

=begin html

Information about a datastore in a dataset.

=end html



B<Fields>

=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>Identifier of the object to be excluded.

=end html

=back



=over 2

=item * I<object-name>  =>   B<obj-name>

=begin html

<br>Display name of the object.

=end html

=back



=over 2

=item * I<object-type>  =>   B<string>

=begin html

<br>Type of the object.

=end html

=back



=head2 initiator-id

=begin html

For FCP initiators, this is a string composed of 16 hexadecimal digits. For iSCSI initiators, this is an initiator name in the dotted-domain notation.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 io-measurement

=begin html

Dataset node's I/O usage measurements.

=end html



B<Fields>

=over 2

=item * I<data-read>  =>   B<integer>

=begin html

<br>Total bytes read by the user. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<data-written>  =>   B<integer>

=begin html

<br>Total bytes written by the user. Range: [0..2^63-1]

=end html

=back



=head2 job-info

=begin html

Job information of provisioning request.

=end html



B<Fields>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job started for the provisioning request.

=end html

=back



=head2 lun-igroup-info

=begin html

If the LUN has been mapped to any igroups or hosts, this structure contains information relevant to the same.

=end html



B<Fields>

=over 2

=item * I<igroup-initiators>  =>   B<L<"lun-mapping-initiator">[], optional>

=begin html

<br>Specifies the initiators and/or hosts to which the LUN is mapped, if any.

=end html

=back



=over 2

=item * I<igroup-lun-id>  =>   B<integer>

=begin html

<br>If the LUN has been mapped to any initiator groups, this field contains the ID generated by the storage system for the LUN. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<igroup-name>  =>   B<obj-name>

=begin html

<br>Name of the igroup.

=end html

=back



=over 2

=item * I<igroup-os-type>  =>   B<string>

=begin html

<br>Specifies the OS type of the igroup. Possible values: "solaris", "windows_gpt", "windows_2008", "windows", "hpux", "aix", "linux", "netware", "vmware", "hyper_v", "xen", "solaris_efi" and "openvms". Here "windows_gpt" refers to Windows using GPT (GUID Partition Type) partitioning style and "windows_2008" refers to Windows Longhorn systems.

=end html

=back



=over 2

=item * I<igroup-protocol>  =>   B<string>

=begin html

<br>Specifies the protocol for the initiator group. Possible values: "fcp", "iscsi".

=end html

=back



=head2 lun-mapping-initiator

=begin html

Specifies an initiator to map LUNs in the dataset node to, and, optionally, the host to which it belongs.

=end html



B<Fields>

=over 2

=item * I<hostname>  =>   B<string, optional>

=begin html

<br>Specifies the name of the host which owns the initiator.

=end html

=back



=over 2

=item * I<initiator-id>  =>   B<initiator-id>

=begin html

<br>Specifies an initiator id on a host to which a LUN should be mapped.

=end html

=back



=head2 metric-dataset-node-info

=begin html

Information about the dataset node

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Identifier of dataset.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of dataset.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>For deleted datasets this field give the time of deletion. This element is absent for non-deleted datasets. The value is in seconds since January 1, 1970.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the dataset node e.g. primary, backup, mirror, etc. Can be absent if no protection policy is associated with the dataset.

=end html

=back



=over 2

=item * I<protection-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the protection policy associated with the dataset at the time of the metric sample. Can be absent if no protection policy was associated with the dataset.

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the provisioning policy associated with the dataset node at the time of the metric sample. Can be absent if no provisioning policy was associated with the dataset node.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the storage service associated with the dataset at the time of the metric sample. Can be absent if no storage service was associated with the dataset.

=end html

=back



=head2 migration-status

=begin html

Migration status for an ongoing vFiler unit migration. Possible values: "in_progress", "migrating", "migrated", "migrated_with_errors", "migrate_failed", "rolled_back", "rolled_back_with_errors".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 missing-member-info

=begin html

Information about one missing member of a dataset.

=end html



B<Fields>

=over 2

=item * I<aggregate-id>  =>   B<obj-id>

=begin html

<br>Identifier of the aggregate to which the member belongs.

=end html

=back



=over 2

=item * I<aggregate-name>  =>   B<obj-name>

=begin html

<br>Name of the aggregate to which the member belongs.

=end html

=back



=over 2

=item * I<cifs-share-names>  =>   B<cifs-share-name[], optional>

=begin html

<br>List of share names for accesing the storage container (volume/qtree) when access protocol of storage set is "CIFS" or "Mixed". Example \\server\sharename.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp>

=begin html

<br>The time and date when the object was deleted.

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Identifier of the host to which the member belongs.

=end html

=back



=over 2

=item * I<hostname>  =>   B<obj-name>

=begin html

<br>Name of the host to which the member belongs.

=end html

=back



=over 2

=item * I<member-id>  =>   B<obj-id>

=begin html

<br>Identifier of the missing member.

=end html

=back



=over 2

=item * I<member-name>  =>   B<obj-name>

=begin html

<br>Display name of the missing member.

=end html

=back



=over 2

=item * I<member-type>  =>   B<string>

=begin html

<br>Type of the missing member. Possible values are 'volume', 'qtree'.

=end html

=back



=over 2

=item * I<nfs-export-name>  =>   B<string, optional>

=begin html

<br>Name by which the storage container(volume/qtree) has been exported, when access protocol of storage set is "NFS" or "Mixed". The volume or qtree can be exported with a different path from its physical path on the filer (with -actual option in the NFS export rule. Ex "/vol/myvol/myqtree" can be exported as "myexport") if not this will be same as full path of the container.

=end html

=back



=over 2

=item * I<quota-hard-limit>  =>   B<integer, optional>

=begin html

<br>The hard limit on the amount of space a user can use in kilobytes. Range: [1..2^63-1] Valid only for qtree members.

=end html

=back



=over 2

=item * I<quota-soft-limit>  =>   B<integer, optional>

=begin html

<br>The soft limit on the amount of space a user can use in kilobytes. Range: [1..2^63-1] Valid only for qtree members.

=end html

=back



=over 2

=item * I<space-guarantee>  =>   B<string, optional>

=begin html

<br>The space guarantee setting for a volume member. Possible values are "none," "file," or "volume." Valid only for volume members.

=end html

=back



=over 2

=item * I<total-space>  =>   B<integer, optional>

=begin html

<br>Specifies the total capacity of the dataset member, in kilobytes. Range: [1..2^63-1] Valid only for volume members.

=end html

=back



=head2 nfs-export-host

=begin html

Specifies a single host or all-hosts. A host can be a host name (DNS name), an IP address, a subnet or a domain name. If an 'all-hosts' entry is present, all other host name entries must be negated.

=end html



B<Fields>

=over 2

=item * I<hostname>  =>   B<string, optional>

=begin html

<br>Specifies a single host name entry. A host name may be a DNS name, an IP address, a subnet (specified as &lt;subnet address&gt;/&lt;prefix length&gt; i.e. CIDR notation or '[network] &lt;subnet-address&gt; [netmask] &lt;netmask&gt;'), a domain, or a workgroup.

=end html

=back



=over 2

=item * I<is-an-exception>  =>   B<boolean, optional>

=begin html

<br>Specifies that the rule does not apply to this host. Should be used when it is required to grant permissions to hosts in a subnet or a domain or all hosts excluding some. Default value is false.

=end html

=back



=head2 nfs-export-rules

=begin html

Specifies the NFS security configuration options provided by Data ONTAP operating system.

=end html



B<Fields>

=over 2

=item * I<anonymous-access-user>  =>   B<string, optional>

=begin html

<br>If the client accessing the export is not present in the root access list for the export, the effective user for root is the value specified for this field. Default value is 65534 which maps to user nobody. It could be an integer Range: [0..65534] or a user name not more than 255 characters.

=end html

=back



=over 2

=item * I<disable-setuid>  =>   B<boolean, optional>

=begin html

<br>If true, causes the server file system to ignore attempts to enable the setuid or setgid mode bits. Default value is true.

=end html

=back



=over 2

=item * I<is-readonly-for-all-hosts>  =>   B<boolean, optional>

=begin html

<br>Specifies that all hosts receive read-only permissions on nfs exports in this dataset node. Equivalent to specifying "ro" on the filer. Default value is false. If true, is-readwrite-for-all-hosts must be false.

=end html

=back



=over 2

=item * I<is-readwrite-for-all-hosts>  =>   B<boolean, optional>

=begin html

<br>Specifies that all hosts receive read-write permissions on nfs exports in this dataset node. Equivalent to specifying "rw" on the filer. Default value is false. If true, is-readonly-for-all-hosts must be false.

=end html

=back



=over 2

=item * I<nfs-export-ro-hosts>  =>   B<L<"nfs-export-host">[], optional>

=begin html

<br>A list of hosts with read-only permissions on exports in this dataset node. If a non empty list of nfs-export-ro-hosts is present along with is-readonly-for-all-hosts as true, then ZAPI will throw an error.

=end html

=back



=over 2

=item * I<nfs-export-root-hosts>  =>   B<L<"nfs-export-host">[], optional>

=begin html

<br>A list of hosts with the root user having read-only or read-write permissions on exports in this dataset node.

=end html

=back



=over 2

=item * I<nfs-export-rw-hosts>  =>   B<L<"nfs-export-host">[], optional>

=begin html

<br>A list of hosts with read-write permissions on exports in this dataset node. If a non empty list of nfs-export-rw-hosts is present along with is-readwrite-for-all-hosts as true, then ZAPI will throw an error.

=end html

=back



=over 2

=item * I<nfs-security-flavors>  =>   B<nfs-security-flavor[], optional>

=begin html

<br>List of strings specifying the security flavors supported on exports in this dataset node. If this field is not specified, the default value of 'sys' is assumed.

=end html

=back



=head2 nfs-security-flavor

=begin html

A security flavor to be applied on nfs exports. Possible values are 'none', 'sys' (Unix Style), 'krb5' (Kerberos v5) , krb5i' (Kerberos v5 integrity) and 'krb5p' (Kerberos v5 privacy). Default value is 'sys'.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 primary-volume-name-format

=begin html

Name format string for the primary volumes created by Provisioning Manager. Allowed values for this element "" (empty string) OR free form text with substitution tokens. The allowed tokens are: <ol> <li>%L: Dataset label (dl), previously called the dataset prefix. This is the <b>volume-qtree-name-prefix</b> element specified in <b>dataset-create</b> or <b>dataset-modify</b>. If the dataset label is not set, substitute the dataset name instead. <li>%D: Dataset name. </ol> For configurable naming using %L and %D, users can use all the attributes or some of them and they can order them anyway they want combined by user defined text e.g. %L_%D. Order of the attributes can change for example. %D_%L.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 protection-status-job-detail

=begin html

Details about a job that led to a protection-status-problem

=end html



B<Fields>

=over 2

=item * I<protection-status-job-description>  =>   B<string>

=begin html

<br>Description of what the job is trying to accomplish.

=end html

=back



=over 2

=item * I<protection-status-job-id>  =>   B<integer>

=begin html

<br>Identifier of the job. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<protection-status-job-status>  =>   B<dp-job-overall-status>

=begin html

<br>Overall status of the job based on job-progress and job-state.

=end html

=back



=over 2

=item * I<protection-status-job-type>  =>   B<dp-job-type>

=begin html

<br>Type of data protection job.

=end html

=back



=head2 protection-status-problem

=begin html

Information about a problem that resulted in the dataset to not have <b>protection-status</b> as "protected".

=end html



B<Fields>

=over 2

=item * I<protection-status-description>  =>   B<string>

=begin html

<br>A human readable description of why protection-status was not found to be "protected". The description may also contain suggestions that may be helpful in resolving the protection status problem.

=end html

=back



=over 2

=item * I<protection-status-job-details>  =>   B<L<"protection-status-job-detail">[], optional>

=begin html

<br>Details about one or more jobs that caused this protection-status-problem.

=end html

=back



=over 2

=item * I<protection-status-name>  =>   B<string>

=begin html

<br>A short name for a type of protection-status problem. This name is intended to ease machine readability and is not expected to be displayed to a user. <P> Possible values are <ul> <li> <b>uninitialized_no_dp_policy</b> : No protection policy is assigned. <li> <b>uninitialized_dp_policy_none</b> : The policy named 'No Protection' is assigned. <li> <b>uninitialized_no_data_to_protect</b> : The dataset does not contain any data to be protected. <li> <b>uninitialized_no_destination_storage</b> : The dataset does not contain storage for one or more destination nodes. <li> <b>uninitialized_no_relationships</b> : The dataset has no relationships in one or more connections. <li> <b>uninitialized_conforming</b> : The dataset is conforming. <li> <b>uninitialized_nonconformant</b> : The dataset is not in a conformant state. <li> <b>suspended</b> : Dataset is suspended so no protection schedules will create backup versions in this state. <li> <b>uninitialized_single_node_no_backups</b> : Dataset has one node and no backups have finished <li> <b>no_backup_version</b> : The multi-node dataset does not have any backup versions. <li> <b>uninitialized_application_dataset</b> : Application dataset requires at least one backup version. <li> <b>failed_baseline</b> : At least one initial baseline data transfer failed to create a relationship. <li> <b>failed_local_backup</b> : Local backups failed on the primary node. <li> <b>failed_backup_job</b> : One or more backup jobs has failed. <li> <b>failed_mirror_job</b> : One or more mirror copy jobs has failed. <li> <b>lag_warning_local_backup</b> : The most recent local backup (Snapshot copy) on the primary node is older than the threshold setting permits. <li> <b>lag_warning_since_last_backup</b> : The time since the last successful backup job exceeds the lag warning threshold. <li> <b>lag_warning_since_last_mirror</b> : The time since the last successful mirror copy job exceeds the lag warning threshold. <li> <b>lag_error_local_backup</b> : The most recent local backup (Snapshot copy) on the primary node is older than the threshold setting permits. <li> <b>lag_error_since_last_backup</b> : The time since the last successful backup job exceeds the lag error threshold. <li> <b>lag_error_since_last_mirror</b> : The time since the last successful mirror copy job exceeds the lag error threshold. </ul> <P>

=end html

=back



=head2 provision-member-comment

=begin html

One comment field to fill in as part of the request

=end html



B<Fields>

=over 2

=item * I<comment-field-name-or-id>  =>   B<comment-field-name-or-id>

=begin html

<br>Name or identifier of the comment field.

=end html

=back



=over 2

=item * I<comment-value>  =>   B<comment-value>

=begin html

<br>Value of the comment field. An empty string can be used to unset the value of the comment field for this object.

=end html

=back



=head2 provision-member-request-info

=begin html

Details specific to the 'provision_member' request.

=end html



B<Fields>

=over 2

=item * I<comments>  =>   B<L<"provision-member-comment">[], optional>

=begin html

<br>Comment values to assign to the newly provisioned storage object.

=end html

=back



=over 2

=item * I<create-new-vfiler>  =>   B<boolean, optional>

=begin html

<br>True, if new vFiler Unit needs to be created during provisioning. The provisioned storage container is then moved to the vFiler Unit. This input is applicable only in the context of resourcepool-member-list-info-iter-start zapi and run-provisioning-checks is specified as 'true'. This input is ignored in dataset-provision-member and storage-service-dataset-provision zapi. The default value is 'false'.

=end html

=back



=over 2

=item * I<dataset-export-info>  =>   B<L<"dataset-export-info">, optional>

=begin html

<br>Specifies the NAS or SAN export settings for the the provisioning member. Member level export settings cannot be specified, if export settings have been configured at node level.

=end html

=back



=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>Description of the provisioning request. The length of this string cannot be more than 255 characters.

=end html

=back



=over 2

=item * I<initial-snapshot-space>  =>   B<integer, optional>

=begin html

<br>Applicable when provisioning members in SAN data sets (i.e. datasets associated with provisioning policy of type 'san'). Specify the initial disk space in bytes that needs to be allocated upfront for Snapshot copies of the member. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<maximum-data-size>  =>   B<integer, optional>

=begin html

<br>Maximum storage space for the dataset member. Applicable when provisioning members in NFS data sets (i.e. datasets associated with provisioning policy of type 'nas' and export over 'NFS' protocol). Storage clients can write data up to this limit if the containing aggregate has space. The value is specified in bytes. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<maximum-snapshot-space>  =>   B<integer, optional>

=begin html

<br>Applicable when provisioning members in SAN data sets (i.e. datasets associated with provisioning policy of type 'san'). Specify the maximum disk space in bytes for the Snapshot copies of the member. Once the space consumed by Snapshot copies reaches this value, further Snapshot copies will fail. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>Name of the storage container. If this is a NAS dataset, i.e the provisioning policy associated with the primary node of the dataset is of type 'nas', then this name corresponds to the qtree or volume created. If this is a SAN dataset, i.e the provisioning policy associated with the primary node of the dataset is of type 'san', then this name corresponds to the LUN or volume that will be provisioned as part of this request. The length of this string cannot be more than 255 characters.

=end html

=back



=over 2

=item * I<online-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates whether pre checks related to online migration has to be performed on the storage system during provisioning. This input is applicable only in the context of resourcepool-member-list-info-iter-start API and run-provisioning-checks is specified as true and either create-new-vfiler is true or vfiler-name-or-id is specified. This input is ignored in storage-service-dataset-provision and dataset-provision-member APIs.

=end html

=back



=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Name or identifier of the provisioning policy used with this request. Ignored for dataset-provision-member and storage-service-dataset-provision and is used only when listing provisioning requests and jobs.

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-full-name, optional>

=begin html

<br>Name of the provisioning policy used with this request. Present only if the request type is 'provision_member'. Ignored for dataset-provision-member and storage-service-dataset-provision and is used only when listing provisioning requests and jobs.

=end html

=back



=over 2

=item * I<resource-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the resource object from which storage space will be provisioned. valid types of objects are:- <UL> <LI> Filer <LI> Aggregate </UL> The filer or aggregate specified should belong to the resource pool(s) associated with primary node of the dataset.

=end html

=back



=over 2

=item * I<size>  =>   B<integer>

=begin html

<br>Amount of storage space for data. Whether this space has to allocated on demand or reserved upfront from an aggregate in resource pool is decided based on the provisioning policy settings. The value is specified in bytes. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<vfiler-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of the vFiler Unit, if specified the newly provisioned dataset member will be moved to the specified vFiler Unit and accessed via the vFiler Unit's IP addresses. Ignored for storage-service-dataset-provision.

=end html

=back



=head2 replace-result

=begin html

A description of one replace action.

=end html



B<Fields>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the data protection policy node associated with the secondary volume or qtree.

=end html

=back



=over 2

=item * I<member-type>  =>   B<string>

=begin html

<br>Type of the object replaced. Possible values are "volume", or "qtree".

=end html

=back



=over 2

=item * I<new-primary-member-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the new primary member replacing the old. new-primary-member-id is omitted if the replace-status is "not_found".

=end html

=back



=over 2

=item * I<new-primary-member-name>  =>   B<obj-name, optional>

=begin html

<br>Display name of the new primary member replacing the old. new-primary-member-name is omitted if the replace-status is "not_found".

=end html

=back



=over 2

=item * I<old-primary-member-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the primary member that needs to be replaced. old-primary-member-id is omitted if the replace-status is "not_required".

=end html

=back



=over 2

=item * I<old-primary-member-name>  =>   B<obj-name, optional>

=begin html

<br>Display name of the primary member that was replaced. old-primary-member-name is omitted if the replace-status is "not_required".

=end html

=back



=over 2

=item * I<replace-status>  =>   B<string>

=begin html

<br>Possible values are "not_found", "not_required", or "replaced". "not_found" is returned if a replacement primary was not found. "not_required" is returned if the primary did not need to be replaced. "replaced" is returned if the primary was successfully replaced.

=end html

=back



=over 2

=item * I<secondary-member-id>  =>   B<obj-id>

=begin html

<br>Identifier of the secondary member whose primary member needs to be replaced.

=end html

=back



=over 2

=item * I<secondary-member-name>  =>   B<obj-name>

=begin html

<br>Displayed name of the secondary member whose primary member needs to be replaced.

=end html

=back



=head2 requires-non-disruptive-restore

=begin html

When this attribute is set, the dataset is configured to allow LUNs to be restored from backups in such a way that the host need not detach from the LUN. <P>Configuring the dataset for non-disruptive restore does not guarantee that all backup instances may be restored non-disruptively. It only applies to backup instances reached through a <b>Backup</b> connection. The caller must check the <b>supports-non-disruptive-restore</b> output element returned by <b>dp-backup-list-info-next</b> to tell whether a given backup instance can be restored non-disruptively. <P>Specifically, when this attribute is set: <ul> <li>All storage systems must be running ONTAP 7.3 or later. <li>Protection Manager must have working ZAPI credentials for all storage systems in use by this dataset. <li>All <b>Backup</b> connections will be implemented using SnapVault, not Qtree SnapMirror. <li>All non-primary storage systems used by the data set must have a SnapVault Secondary license. </ul> <P>If any of these constraints is not met when adding a member to the dataset, the dataset will not be in conformance and the addition will generate conformance errors. Addition of members with ONTAP version less than 7.3 to the primary node of the dataset will fail with errors. <P><b>requires-nondisruptive-restore</b> may only be specified if: <ul> <li> No <b>Backup</b> connection in the protection policy used by the dataset is DR capable (i.e. the <b>is-dr-capable</b> attribute may not be set for any <b>Backup</b> connection of the policy). <li> The dataset must be an application dataset. </ul> Thus, if <b>requires-non-disruptive-restore</b> is specified as true, <b>is-application-data</b> must also be present and true. Callers may check the <b>non-disruptive-restore-compatible</b> output element of the <b>dp-policy-list-info-iter-next</b> API to tell which policies may be applied to datasets requiring non-disruptive restores.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 resize-member-request-info

=begin html

Details of the resize request.

=end html



B<Fields>

=over 2

=item * I<maximum-capacity>  =>   B<integer, optional>

=begin html

<br>Specify the new maximum capacity value for a flexbile volume. The value is specified in bytes. Valid only if the filer to which the volume belongs is of ONTAP version 7.1 or above only. This input is valid only if member-id or member-name refers to a flexible volume. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<member-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the dataset member on which the resize operation has to be carried out. This member can be either a flexible volume or a qtree which is a member of the effective primary node of the dataset either through direct or indirect membership.

=end html

=back



=over 2

=item * I<member-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the dataset member on which the resize operation has to be carried out. This member can be either a flexible volume or a qtree which is a member of the effective primary node of the dataset either through direct or indirect membership. Either member-id or member-name has to be specified. If member-id is specified then member-name is ignored.

=end html

=back



=over 2

=item * I<new-size>  =>   B<integer, optional>

=begin html

<br>Specify the new size of the dataset member. The value is specified in bytes. If the member is a volume, this corresponds to the size of the volume. If the member is a qtree, this corresponds to hard disk quota limit for the qtree. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<snap-reserve>  =>   B<integer, optional>

=begin html

<br>Specifies the percetage of space set aside for snapshots in a volume. The value is specified in percentage of the total size of the volume. This input is valid only if member-id or member-name refers to a flexible volume. Range: [0..100]

=end html

=back



=head2 result-detail

=begin html

Details on a specific action that adds information intended to explain more about a higher level result. For example, the detail may be used to explain a dry-run result by explaining why resources were not selected.

=end html



B<Fields>

=over 2

=item * I<action>  =>   B<string>

=begin html

<br>An action or check the system had taken.

=end html

=back



=over 2

=item * I<effect>  =>   B<string>

=begin html

<br>The result of the action or check.

=end html

=back



=over 2

=item * I<reason>  =>   B<string, optional>

=begin html

<br>Specifies possible reasons for the this result. If there are no reasons to specify, this element will not be present.

=end html

=back



=over 2

=item * I<severity>  =>   B<obj-status>

=begin html

<br>severity of the result result. Possible values are "information", "error" "warning". It is normal for "information" to be used to explain why a resource was not selected.

=end html

=back



=over 2

=item * I<suggestion>  =>   B<string>

=begin html

<br>Specifies any suggestions to rectify the information, warnings, errors. If there are no suggestions to specify, this element will not be present.

=end html

=back



=head2 secondary-qtree-name-format

=begin html

Name format string for the secondary qtrees created by Protection Manager. This string is free form text with substitution tokens. The allowed substitution tokens are: <ol> <li>%Q: Primary qtree name. <li>%L: Dataset label (dl), previously called the dataset prefix. This is the <b>volume-qtree-name-prefix</b> element specified in <b>dataset-create</b> or <b>dataset-modify</b>. If the dataset label is not set, substitute the dataset name instead. <li>%S: Primary storage system name. The name of the storage system of the source volume in the primary root node to which the current secondary volume has a relationship with. <li>%V Primary volume name. It is the name of the source volume in the primary root node to which the current secondary volume has a relationship with. </ol> Users can use any or all of the substitution tokens in any order.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 secondary-volume-name-format

=begin html

Format string used to generate names for secondary volumes created by Protection Manager. Allowed values for this element "" (empty string) OR free form text with substitution tokens. The allowed tokens are <ol> <li>%L: Dataset label (dl), previously called the dataset prefix. This is the <b>volume-qtree-name-prefix</b> element specified in <b>dataset-create</b> or <b>dataset-modify</b>. If the dataset label is not set, substitute the dataset name instead. <li>%S: Primary storage system name. The name of the storage system of the source volume in the primary root node to which the current secondary volume has a relationship with. <li>%V: Primary volume name. It is the name of the source volume in the primary root node to which the current secondary volume has a relationship with. <li>%C: Type of connection. It has only two values, "mirror" or "backup" </ol> For configurable naming using %L, %C, %S and %V, users can use all the attributes or some of them and they can order them anyway they want combined by user defined text e.g. %L_%C_%S_%V. Order of the attributes can change for example. %C_%S_%L.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 snapshot-name-format

=begin html

Format string for creating snapshot names. This string is free form text with substitution tokens. Allowed substitution tokens are: <ol> <li>%T: Scheduled creation time of snapshot in format yyyy-mm-dd_hh.mm.ss<utc offset>. The time is in the dataset time zone and if no time zone is assigned to the dataset, then default system time zone will be used. <utc offset> is the offset from utc in standard format (+hhmm or ?hhmm). For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich). If the timezone is "UTC" or "GMT", no offset is included in the name. <li>%R: Retention type of snapshot. Values are "hourly", "daily", "weekly" "monthly" or "unlimited". <li>%L: Dataset label (dl), previously called the dataset prefix. This is the <b>volume-qtree-name-prefix</b> element specified in <b>dataset-create</b> or <b>dataset-modify</b>. If the dataset label is not set, substitute the dataset name instead. <li>%H: Name of storage system which owns the volume which will contain the snapshot. <li>%N: Name of volume which will contain the snapshot. <li>%A: Application-specific data. When included, allow the utility, creating the snapshot name for the application, to embed any application specific data that the utility wants in the snapshot name. User has no control over what goes in this field. </ol> Format string can include any or all substitution tokens in any order. %T is mandatory.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 space-condition

=begin html

Represents a space condition of a dataset member.

=end html



B<Fields>

=over 2

=item * I<condition>  =>   B<string>

=begin html

<br>Space condition. Possible values: <ul> <li>"volume-used-vs-size-above-nearly-full" Used space of the volume vs volume usable data space has crossed nearly full threshold specified in the policy <li>"volume-used-vs-size-above-full" Used space of the volume vs volume usable data space has crossed full threshold specified in the policy <li>"volume-used-vs-maximum-size-above-nearly-full" Used space of the volume vs volume usable maximum data space has crossed nearly full threshold specified in the policy <li>"volume-used-vs-maximum-size-above-full" Used space of the volume vs volume usable maximum data space has crossed full threshold specified in the policy <li>"qtree-used-vs-quota-above-nearly-full" Qtree used space vs qtree hard limit has crossed nearly full threhsold specified in policy <li>"qtree-used-vs-quota-above-full" Qtree used space vs qtree hard limit has crossed full threhsold specified in policy <li>"volume-snapshot-used-above-full-threshold" Snapshot used space in the volume has crossed volSnapshotFullThreshold specified in Operations Manager. <li>"volume-no-next-snapshot" Next snapshot is not possible in the volume due to space contraints </ul>

=end html

=back



=over 2

=item * I<reason>  =>   B<string, optional>

=begin html

<br>Reason for this space condition. This can be a maximum of 1024 characters.

=end html

=back



=over 2

=item * I<severity>  =>   B<string, optional>

=begin html

<br>Severity of this space condition. Possible values are: "unknown", "ok", "warning", "error"

=end html

=back



=over 2

=item * I<suggestion>  =>   B<string, optional>

=begin html

<br>Possible action that can be taken to correct this. This can be a maximum of 1024 characters.

=end html

=back



=head2 space-info

=begin html

Specifies the total, available and used space in a dataset member, the space status and various space related conditions of the member.

=end html



B<Fields>

=over 2

=item * I<available-space>  =>   B<integer, optional>

=begin html

<br>Specifies the space available in the dataset member, in bytes. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<space-conditions>  =>   B<L<"space-condition">[], optional>

=begin html

<br>Various space conditions of a dataset member. Present only if the space-status of the dataset member is one of 'error' or 'warning'.

=end html

=back



=over 2

=item * I<space-status>  =>   B<space-status, optional>

=begin html

<br>Space status of the member.

=end html

=back



=over 2

=item * I<total-space>  =>   B<integer, optional>

=begin html

<br>Specifies the total capacity of the dataset member, in bytes. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<used-space>  =>   B<integer, optional>

=begin html

<br>Specifies the capacity used in the dataset member, in bytes. Range: [1..2^63-1]

=end html

=back



=head2 space-measurement

=begin html

Dataset node's space usage measurements.

=end html



B<Fields>

=over 2

=item * I<effective-used-data-space>  =>   B<integer>

=begin html

<br>Effective data space used in bytes. This is the space used before data sharing (dedupe and sis clones) Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<guaranteed-space>  =>   B<integer>

=begin html

<br>Physical space allocated for data and snapshot in bytes. This is the space used by the dataset node from the aggregate. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<physical-used-data-space>  =>   B<integer>

=begin html

<br>Physical space used in bytes. This is the space used after data sharing (dedupe and sis clones). Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<snapshot-reserve>  =>   B<integer, optional>

=begin html

<br>Total space allocated for snapshot in bytes. This element will be present only for dataset's primary node. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<total-data-space>  =>   B<integer, optional>

=begin html

<br>Total space allocated for data in bytes. This element will be present only for dataset's primary node. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<total-space>  =>   B<integer, optional>

=begin html

<br>Total space allocated for data and snapshot in bytes. This element will be present only for dataset's primary node. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<used-snapshot-space>  =>   B<integer>

=begin html

<br>Physical space used in bytes by volume snapshots. Range: [0..2^63-1]

=end html

=back



=head2 space-status

=begin html

Worst space status of a dataset or a member. Possible values are: 'unknown', 'ok', 'warning', 'error'

=end html



B<Fields>

=over 2

=item * None

=back



=head2 undedupe-member-request-info

=begin html

Details of the undedupe member request.

=end html



B<Fields>

=over 2

=item * I<volume-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of a volume member of a dataset.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-name, optional>

=begin html

<br>Name of a volume member of the dataset. Either volume-id or volume-name has to be specified. If volume-id is specified then volume-name is ignored.

=end html

=back



=head2 api-stat

=begin html

Statistics about a single server API

=end html



B<Fields>

=over 2

=item * I<api-name>  =>   B<string>

=begin html

<br>Name of the API

=end html

=back



=over 2

=item * I<call-count>  =>   B<integer>

=begin html

<br>The number of times the API has been invoked. Range:[1..2^32-1)]

=end html

=back



=over 2

=item * I<cpu-max-time>  =>   B<integer>

=begin html

<br>Maximum CPU time spent during the API execution Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<cpu-mean-time>  =>   B<integer>

=begin html

<br>Mean CPU time spent during the API execution Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<cpu-min-time>  =>   B<integer>

=begin html

<br>Minimum CPU time spent during the API execution Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<db-max-calls>  =>   B<integer>

=begin html

<br>Maximum number of database operations by this API Range:[0..2^32-1)]

=end html

=back



=over 2

=item * I<db-max-time>  =>   B<integer>

=begin html

<br>Maximum database time spent during the API execution Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<db-mean-calls>  =>   B<integer>

=begin html

<br>Mean number of database operations by this API Range:[0..2^32-1)]

=end html

=back



=over 2

=item * I<db-mean-time>  =>   B<integer>

=begin html

<br>Mean database time spent during the API execution Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<db-min-calls>  =>   B<integer>

=begin html

<br>Minimum number of database operations by this API Range:[0..2^32-1)]

=end html

=back



=over 2

=item * I<db-min-time>  =>   B<integer>

=begin html

<br>Minimum database time spent during the API execution Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<max-time>  =>   B<integer>

=begin html

<br>Maximum execution time for the API. Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<mean-time>  =>   B<integer>

=begin html

<br>Mean execution time for the API. Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=over 2

=item * I<min-time>  =>   B<integer>

=begin html

<br>Minimum execution time for the API. Range:[0..2^63-1]Units: Wall-clock milliseconds

=end html

=back



=head2 backup-type

=begin html

Type of DFM database backup. Possible values are 'archive' and 'snapshot'. The 'archive' type backups are used when the data resides on a conventional disk. The 'snapshot' type backups are used for data residing on a LUN.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 child-count

=begin html

Count of children of one type for the specified object. An element of this type is returned if count is 1 or more.

=end html



B<Fields>

=over 2

=item * I<count>  =>   B<integer>

=begin html

<br>Number of children of this type. <p> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Object type of the child object. Valid values are: 'vfiler', 'aggregate' 'volume', 'qtree', 'lun' and 'disk'.

=end html

=back



=head2 dfm-diag-counter-group

=begin html

Descriptive diagnostic information about a counter group.

=end html



B<Fields>

=over 2

=item * I<group-name>  =>   B<string>

=begin html

<br>The name of the counter group.

=end html

=back



=over 2

=item * I<histogram>  =>   B<string>

=begin html

<br>Comma delimited list of counter values.

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>The name of the monitored host.

=end html

=back



=over 2

=item * I<last-updated>  =>   B<integer>

=begin html

<br>Timestamp of the last time this counter group was monitored (seconds since 1/1/1970).

=end html

=back



=head2 dfm-monitoring-timestamp

=begin html

The timestamp of last monitoring done for a monitor on various objects of DFM.

=end html



B<Fields>

=over 2

=item * I<last-monitoring-timestamp>  =>   B<integer>

=begin html

<br>Time in seconds since 00:00:00 Jan 1, 1970, UTC. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<monitor-name>  =>   B<monitor-name>

=begin html

<br>Name of the DFM monitor. Applicable monitors for Host Agent are <UL> <LI>"agent" - refreshes agent information <LI>"ping" - refreshes ping status <LI>"san" - refreshes SAN information <LI>"sysinfo" - refreshes system information <LI>"srm" - refreshes SRM information </UL> Applicable monitors for OSSV Host are <UL> <LI>"agent" - refreshes agent information <LI>"snapmirror" - refreshes snap mirror information <LI>"snapvault" - refreshes snap vault information <LI>"sysinfo" - refreshes system information </UL> Applicable monitors for vFiler unit are <UL> <LI>"config_conformance" - checks a storage system's configuration for conformance <LI>"cpu" - refreshes cpu related information <LI>"disk_free_space" - refreshes disk free space <LI>"file_system" - refreshes file system information <LI>"lun" - collects lun information <LI>"ping" - refreshes ping status <LI>"qtree" - refreshes qtree data using snmp <LI>"qtree_xml" - refreshes qtree data using zapi <LI>"rbac" - refreshes RBAC information <LI>"snapmirror" - refreshes snap mirror information <LI>"snapshot" - refreshes snap shot information <LI>"snapvault" - refreshes snap vault information <LI>"sysinfo" - refreshes system information <LI>"vfiler" - refreshes vfiler information <LI>"userquota" - refreshes user quota information </UL> Applicable monitors for Data ONTAP 7-Mode storage system are <UL> <LI>"config_conformance" - checks a storage system's configuration for conformance <LI>"cpu" - refreshes cpu related information <LI>"cluster_failover" - refreshes cluster fail over information <LI>"disk_free_space" - refreshes disk free space of a host <LI>"disk_status" - refreshes disk status of a Host <LI>"env" - refreshes environmentals of a Host <LI>"fibre_channel" - refreshes fibre channel information <LI>"file_system" - refreshes file system information of Host <LI>"interface_status" - refreshes network related information of a Host <LI>"license" - collects license information from Hosts <LI>"lun" - collects lun information from Host <LI>"ops" - refreshes file system operation count of a Host <LI>"ping" - refreshes ping status of a Host <LI>"qtree" - refreshes qtree data using snmp <LI>"qtree_xml" - refreshes qtree data using zapi <LI>"rbac" - refreshes RBAC information <LI>"snapmirror" - refreshes snap mirror information <LI>"snapshot" - refreshes snap shot information <LI>"snapvault" - refreshes snap vault information <LI>"status" - refreshes global status of a Host <LI>"sysinfo" - refreshes system information of a Host <LI>"vfiler" - refreshes vfiler information of a hosting storage system <LI>"userquota" - refreshes user quota information of a host </UL> Applicable monitors for Data ONTAP Cluster-Mode storage system are <UL> <LI>"cpu" - refreshes cpu related information <LI>"cluster" - refreshes cluster information <LI>"disk_free_space" - refreshes disk free space of a host <LI>"env" - refreshes environmentals of a Host <LI>"file_system" - refreshes file system information of Host <LI>"interface_status" - refreshes network related information of a Host <LI>"license" - collects license information from Hosts <LI>"ping" - refreshes ping status of a Host <LI>"snapshot" - refreshes snap shot information <LI>"sysinfo" - refreshes system information of a Host <LI>"vserver" - refreshes vserver information of a Host </UL>

=end html

=back



=head2 directory-info

=begin html

Lists the information about DFM directories. These directories include Performance Advisor data directory, Database Backup directory, Data Export directory and Reports Archival directory.

=end html



B<Fields>

=over 2

=item * I<disk-free-space>  =>   B<integer, optional>

=begin html

<br>Free space for the file system containing the directory (in bytes). This field is returned only when include-directory-size-info is true in input. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<disk-free-space-percent>  =>   B<string, optional>

=begin html

<br>Free disk space percentage for the file system containing the directory (in percent). This field is returned only when include-directory-size-info is true in input.

=end html

=back



=over 2

=item * I<file-count>  =>   B<integer, optional>

=begin html

<br>Number of files in the directory. This field is returned only for Performance Data directory. Range:[0..2^31-1] This field is not returned if the file count of the directory is unknown.

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>Name of the directory. For example, "opt/NTAPdfm/perfdata".

=end html

=back



=over 2

=item * I<size>  =>   B<integer, optional>

=begin html

<br>Size of the directory in bytes. Range:[0..2^63-1] This field is not returned if the size is unknown.

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Type of the DFM directory. Possible values: "install", "performance_data", "database_backup", "reports_archive" and "data_export".

=end html

=back



=head2 email-address-list

=begin html

A list of email addresses. If more than one email address is specified, the addresses must be seperated by a ','. Spaces (and other white space) are not allowed, either between addresses or in them. Unprintable characters are also invalid. The list may contain up to 255 characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 feature

=begin html

Information about a licensed feature.

=end html



B<Fields>

=over 2

=item * I<is-license-expired>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the license for the feature has expired. Returned only when the license has expired. Default value is false.

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>name of the feature

=end html

=back



=over 2

=item * I<summary>  =>   B<string>

=begin html

<br>Information about the license for the feature such as status, type and expiration date.

=end html

=back



=head2 file-system-block-type

=begin html

Block Type of the file system. The volumes on both the source and destination sides of a SnapMirror relationship must be of the same block type. Volumes contained in a larger parent agregate may have a block-type of 64_bit. For upgraded systems it is possible that this value may be unknown until the system can determine the block-type. Possible values are: <ul> <li> 32_bit <li> 64_bit <li> unknown </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-service-unique-id

=begin html

Identifier generated by the host service that is unique within the host service.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 ip-address

=begin html

IP address in string format. The length of this string cannot be more than 40 characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 key-value-pair

=begin html

The key/value for a generic object attribute.

=end html



B<Fields>

=over 2

=item * I<key>  =>   B<string>

=begin html

<br>key of the generic object attribute

=end html

=back



=over 2

=item * I<value>  =>   B<string>

=begin html

<br>Value of the generic object attribute

=end html

=back



=head2 monitor-name

=begin html

Specifies name of a monitor to be scheduled to run. Possible values are as follows: <UL> <LI>"agent" - refreshes agent information <LI>"cache" - refreshes net cache information <LI>"cluster_failover" - refreshes cluster fail over information <LI>"config_conformance" - checks a storage system's configuration for conformance <LI>"connectivity" - checks connectivity of a given Host <LI>"cpu" - refreshes cpu related information <LI>"disk_free_space" - refreshes disk free space of a Host <LI>"disk_status" - refreshes disk status of a Host <LI>"env" - refreshes environmentals of a Host <LI>"fibre_channel" - refreshes fibre channel information <LI>"file_system" - refreshes file system information of Host <LI>"interface_status" - refreshes network related information of a Host <LI>"license" - collects license information from Hosts <LI>"lun" - collects lun information from Host <LI>"ndmp" - refreshes ndmp ping timestamp <LI>"ndmp_credentials" - refreshes ndmp credentials timestamp <LI>"ops" - refreshes file system operation count of a Host <LI>"ping" - refreshes ping status of a Host <LI>"qtree" - refreshes qtree data using snmp <LI>"qtree_xml" - refreshes qtree data using zapi <LI>"san" - refresh SAN information of a Host Agent <LI>"share" - refreshes shares information of a Host <LI>"snapmirror" - refreshes snap mirror information <LI>"snapshot" - refreshes snap shot information <LI>"snapvault" - refreshes snap vault information <LI>"snapvault_dir" - refreshes directories on OSSV Hosts; monitor applicable only for OSSV Hosts <LI>"srm" - refresh SRM information of a Host Agent <LI>"status" - refreshes global status of a Host <LI>"sysinfo" - refreshes system information of a Host <LI>"userquota" - refreshes user quota information of a host <LI>"vfiler" - refreshes vfiler information of a hosting storage system </UL>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 network-address

=begin html

IP address of the network or host

=end html



B<Fields>

=over 2

=item * None

=back



=head2 network-snmp-credential-info

=begin html

SNMP credential information of a network or host.

=end html



B<Fields>

=over 2

=item * I<host-name>  =>   B<string, optional>

=begin html

<br>Fully qualified name of the host. This will be returned only for hosts, not for networks.

=end html

=back



=over 2

=item * I<is-snmp-privacy-enabled>  =>   B<boolean>

=begin html

<br>This will be returned only if the snmp-version is snmp_v3. It indicates if the privacy-password was set when adding snmp credentials for network.

=end html

=back



=over 2

=item * I<network-address>  =>   B<string>

=begin html

<br>IP Address of the network or host.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<integer>

=begin html

<br>It represents the prefix length. This should be 32 for IPv4 and 128 for IPv6 if the network-address is a host address.

=end html

=back



=over 2

=item * I<snmp-authentication-login>  =>   B<string>

=begin html

<br>The name of the user to be used for SNMPv3 discovery and monitoring. This will be returned only if the snmp-version is snmp_v3.

=end html

=back



=over 2

=item * I<snmp-authentication-protocol>  =>   B<string>

=begin html

<br>Authentication protocol for use with SNMPv3. This will be returned only if the snmp-version is snmp_v3.

=end html

=back



=over 2

=item * I<snmp-community-name>  =>   B<string>

=begin html

<br>This represents the community name of snmpv1. It will be returned only if the snmp-version is snmp_v1.

=end html

=back



=over 2

=item * I<snmp-id>  =>   B<snmp-id>

=begin html

<br>A unique identifier representing the SNMP credential setting in dfm. This id was generated when snmp setting was added.

=end html

=back



=over 2

=item * I<snmp-version>  =>   B<snmp-version>

=begin html

<br>Represents snmp version that will be used for discovering network.

=end html

=back



=head2 obj-full-name

=begin html

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

=end html



B<Fields>

=over 2

=item * None

=back



=head2 obj-id

=begin html

Identification number (ID) for a DFM object. This typedef is an alias for the builtin ZAPI type <b>integer</b>. 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. <p> 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 <b>obj-id</b> 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. <p> If the value of an <b>obj-id</b> 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 <b>EOBJECTNOTFOUND</b>. 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.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 obj-name

=begin html

Name of a DFM object. This typedef is an alias for the built in ZAPI type <b>string</b>. An object name must conform to the following format: <ul> <li> It must contain between 1 and 64 characters. <li> 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'). <li> 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. </ul> The behavior of a ZAPI when it encounters an error involving an <b>obj-name</b> input element depends on how the ZAPI uses the input element. Here are the general rules: <ul> <li> 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 <b>EINVALIDINPUTERROR</b>. Note that because <b>EINVALIDINPUTERROR</b> is such a common error code, ZAPI specifications are not required to document cases when they may return it. <li> 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 <b>EOBJECTNOTFOUND</b>. Generally the ZAPI specification documents cases when it may return this error code. </ul> 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. <p> 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. <p> 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. <p> 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 <b>obj-name</b> 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". <p> ZAPIs that operate on <b>obj-name</b> values and do not follow these general rules about case sensitivity must document the rules that they do follow. <p> 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.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 obj-name-or-id

=begin html

Name or internal ID of a DFM object. This typedef is an alias for the builtin ZAPI type <b>string</b>. An <b>obj-name-or-id</b> must contain between 1 and 64 characters, and must conform to one of the following formats: <ul> <li> It must have the format of an <b>obj-name</b>, or <li> It must be the decimal numeric string form of a positive integer whose value is in the range [1..2^31 - 1]. <li> In case of application resources from the Host Service, this field can contain unique identifier assigned to the object by the Host Service e.g. for a Virtual Machine, it can be a GUID of the VM. One exception is when such unique identifier is a decimal numeric string containing only digits from 0 through 9. In that case, you cannot use such identifier as obj-name-or-id input. </ul> Elements of type <b>obj-name-or-id</b> 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. <p> If the format of an <b>obj-name-or-id</b> 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 <b>EOBJECTNOTFOUND</b>. A ZAPI may return more specific error codes. In such cases, the ZAPI specification must document its behavior. <p> 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 <b>optional</b>, and the absence of the input element represents a null value.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 obj-status

=begin html

A status value which can be associated with a DFM object. This typedef is an alias for the builtin ZAPI type <b>string</b>. The severity associated with an event has this type.<p> Possible values are: 'unknown', 'normal', 'information', 'unmanaged' 'warning', 'error', 'critical', 'emergency'. <ul> <li>unknown: An object has an unknown status when it transitions from one state to another. Ideally, an object will have this status briefly. For example, when an object has been added, but not yet discovered. <li>normal: An object has normal status when it is working within the thresholds specified in DFM. <li>information: The information events are normal occurrences on an object for which you can define alarms. <li>unmanaged: An object is considered to be unmanaged when the login and password are not set for the storage system or agent. <li>warning: An object has the warning status when an event related to the object occurred that an administrator should know about. The event will not cause service disruption. <li>error: An object has error status when it does not cause any service disruption, but it may affect performance. <li>critical: An object has critical status when it is still performing, but service disruption may occur if corrective action is not taken immediately. <li>emergency: An object is in emergency status when it stops performing unexpectedly and could lose data. </ul> In some contexts, it is important that severities are ordered (as above). For example, an alarm might be triggered if an event with a given severity "or worse" occurs. In this example, worse means "after" in the list above.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 obj-status-info

=begin html

Status of the dfm object

=end html



B<Fields>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Identifier of the dfm object. This corresponds to an entry in the input "objects" array.

=end html

=back



=over 2

=item * I<object-perf-status>  =>   B<obj-status>

=begin html

<br>Status for the object based on performance events If the object is not present or is ambiguous, the status is set to "Unknown"

=end html

=back



=over 2

=item * I<object-status>  =>   B<obj-status>

=begin html

<br>Status for the object based on all events If the object is not present or is ambiguous, the status is set to "Unknown"

=end html

=back



=head2 parent-dataset

=begin html

Information about one dataset. A parent dataset is returned if the authenticated user has DFM.Database.Read privilege on the dataset.

=end html



B<Fields>

=over 2

=item * I<id>  =>   B<obj-id>

=begin html

<br>Identifier of the dataset

=end html

=back



=over 2

=item * I<name>  =>   B<obj-name>

=begin html

<br>Name of the dataset

=end html

=back



=head2 parent-group

=begin html

Information about one resource group. A parent group is returned if the user has DFM.Database.Read privilege on the group.

=end html



B<Fields>

=over 2

=item * I<full-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the group

=end html

=back



=over 2

=item * I<id>  =>   B<obj-id>

=begin html

<br>Identifier of the group

=end html

=back



=over 2

=item * I<name>  =>   B<obj-name>

=begin html

<br>Name of the group

=end html

=back



=head2 parent-object

=begin html

Information about one parent object. A parent object is returned if the authenticated user has DFM.Database.Read privilege on that object.

=end html



B<Fields>

=over 2

=item * I<full-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the parent

=end html

=back



=over 2

=item * I<id>  =>   B<obj-id>

=begin html

<br>Identifier of the parent

=end html

=back



=over 2

=item * I<name>  =>   B<obj-name>

=begin html

<br>Name of the parent

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Object type of the parent object. Valid values are: 'filer', 'vfiler', 'aggregate' 'volume' and 'qtree'.

=end html

=back



=head2 parent-resourcepool

=begin html

Information about one resource pool. A parent resource pool is returned if the authenticated user has DFM.Database.Read privilege on that resource pool.

=end html



B<Fields>

=over 2

=item * I<id>  =>   B<obj-id>

=begin html

<br>Identifier of the resource pool

=end html

=back



=over 2

=item * I<name>  =>   B<obj-name>

=begin html

<br>Name of the resource pool

=end html

=back



=head2 plugin

=begin html

Installed plugins.

=end html



B<Fields>

=over 2

=item * I<plugin-type>  =>   B<string, optional>

=begin html

<br>type of the plugin. The possible types are, 'filer-config' for storage system plugins, 'netcache-config' for NetCache plugins and 'unknown' for unknown type plugins.

=end html

=back



=over 2

=item * I<product-version>  =>   B<string>

=begin html

<br>product and version of the product

=end html

=back



=over 2

=item * I<special-build>  =>   B<string>

=begin html

<br>information about the build of the plugin used

=end html

=back



=head2 prefix-length

=begin html

Prefix length of the network or host

=end html



B<Fields>

=over 2

=item * None

=back



=head2 resource-property-values

=begin html

Provides information on resource properties and the possible values

=end html



B<Fields>

=over 2

=item * I<resource-property>  =>   B<string>

=begin html

<br>The resource property name

=end html

=back



=over 2

=item * I<values>  =>   B<string>

=begin html

<br>A comma seperated list of possible values for the resource properties Maximum length of 2048 characters

=end html

=back



=head2 snmp-authentication-protocol

=begin html

It represents the protocol used for authorization in snmp version 3. Possible values are: <UL> <LI>md5</LI> <LI>sha<LI> </UL>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 snmp-id

=begin html

null

=end html



B<Fields>

=over 2

=item * None

=back



=head2 snmp-version

=begin html

Represents snmp version that will be used for discovering network. Possible values are: <UL> <LI>snmp_v1</LI> <LI>snmp_v3</LI> </UL>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 daily-info

=begin html

The attributes of a daily schedule. May only be used in a daily schedule.

=end html



B<Fields>

=over 2

=item * I<item-id>  =>   B<integer, optional>

=begin html

<br>ID of the daily item within the schedule. Ignored for dfm-schedule-create/modify and Required for all other calls. Will be presented in output. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<start-hour>  =>   B<integer>

=begin html

<br>Start hour of the daily schedule. Range: [0..23]

=end html

=back



=over 2

=item * I<start-minute>  =>   B<integer>

=begin html

<br>Start minute of the daily schedule. Range: [0..59]

=end html

=back



=head2 hourly-info

=begin html

The attributes of an hourly schedule. May only be used in a daily schedule.

=end html



B<Fields>

=over 2

=item * I<end-hour>  =>   B<integer>

=begin html

<br>End hour of the hourly schedule. Range: [0..23]

=end html

=back



=over 2

=item * I<end-minute>  =>   B<integer>

=begin html

<br>End minute of the hourly schedule. Range: [0..59]

=end html

=back



=over 2

=item * I<frequency>  =>   B<integer>

=begin html

<br>Number of minutes between each schedule. Range: [5..1440]

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer, optional>

=begin html

<br>ID of the hourly item within the schedule. Ignored for dfm-schedule-create/modify and Required for all other calls. Will be presented in output. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<start-hour>  =>   B<integer>

=begin html

<br>Start hour of the hourly schedule. Range: [0..23]

=end html

=back



=over 2

=item * I<start-minute>  =>   B<integer>

=begin html

<br>Start minute of the hourly schedule. Range: [0..59]

=end html

=back



=head2 monthly-info

=begin html

The attributes of a monthly schedule. May only be used in a monthly schedule.

=end html



B<Fields>

=over 2

=item * I<day-of-month>  =>   B<integer, optional>

=begin html

<br>If day-of-month is 29, 30, or 31, it will be interpretted as the last day of the month for months with fewer than that many days. if day-of-month is set, then both week-of-month and day-of-week must not be set. Range: [1..31]

=end html

=back



=over 2

=item * I<day-of-week>  =>   B<integer, optional>

=begin html

<br>Day of week for the schedule. If day-of-week is set, then week-of-month must also be set and day-of-month must not be set. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer, optional>

=begin html

<br>ID of the monthly item within the schedule. Ignored for dfm-schedule-create/modify and Required for all other calls. Will be presented in output. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<start-hour>  =>   B<integer>

=begin html

<br>Start hour of the monthly schedule. Range: [0..23]

=end html

=back



=over 2

=item * I<start-minute>  =>   B<integer>

=begin html

<br>Start minute of the monthly schedule. Range: [0..59]

=end html

=back



=over 2

=item * I<week-of-month>  =>   B<integer, optional>

=begin html

<br>A value of 5 indicates the last week of the month. If week-of-month is set, then day-of-week must also be set and day-of-month must not be set. Range: [1..5]

=end html

=back



=head2 monthly-subschedule-info

=begin html

The attributes of a monthly subschedule. May only be used in a monthly schedule.

=end html



B<Fields>

=over 2

=item * I<subschedule-id>  =>   B<obj-id>

=begin html

<br>ID of the subschedule to be used. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<subschedule-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the subschedule to be used Ignored for dfm-schedule-create/modify. Required for all other calls. Will be presented in output. Range: [1..(2^31)-1]

=end html

=back



=head2 schedule-assignee

=begin html

Description of a DFM object using the schedule.

=end html



B<Fields>

=over 2

=item * I<assignee-full-name>  =>   B<obj-full-name>

=begin html

<br>Full name of a DFM object.

=end html

=back



=over 2

=item * I<assignee-id>  =>   B<obj-id>

=begin html

<br>Identification number of a DFM object.

=end html

=back



=over 2

=item * I<assignee-type>  =>   B<string>

=begin html

<br>Type of DFM object. Possible values are: 'dp_policy', 'dp_schedule', 'dfm_schedule' and 'report_schedule'.

=end html

=back



=head2 schedule-content-info

=begin html

Detailed schedule contents. A schedule can be a daily, weekly, or monthly schedule. A daily schedule may include both multiple recurring hourly schedules (hourly-list element) and/or individual non-recurring daily schedules (daily-list element). A weekly schedule may include multiple references to daily schedules to be run on specific days of the week (weekly-subschedule-list element) and/or individual non-recurring weekly schedules (weekly-list element). A monthly schedule may include multiple non-recurring monthly schedules (monthly-list element). In addition, a monthly schedule may include a single reference to either a daily schedule or a montly schedule, not both. User may only specify one monthly-subschedule-info element in the monthly-subschedule-list.

=end html



B<Fields>

=over 2

=item * I<daily-list>  =>   B<L<"daily-info">[], optional>

=begin html

<br>List of daily schedules. May only be used in a daily schedule.

=end html

=back



=over 2

=item * I<hourly-list>  =>   B<L<"hourly-info">[], optional>

=begin html

<br>List of hourly schedules. May only be used in a daily schedule.

=end html

=back



=over 2

=item * I<is-modifiable>  =>   B<boolean, optional>

=begin html

<br>If <b>false</b>, this schedule is one of the sample schedules that is created at installation time, therefore it may not be modified, renamed or destroyed. If <b>true</b>, it is not one of the sample schedules, therefore it may be modified, renamed or destroyed. <b>is-modifiable</b> always appears in the output. It is not possible to use it as input.

=end html

=back



=over 2

=item * I<monthly-list>  =>   B<L<"monthly-info">[], optional>

=begin html

<br>List of monthly schedules. May only be used in a monthly schedule.

=end html

=back



=over 2

=item * I<monthly-subschedule-list>  =>   B<L<"monthly-subschedule-info">[], optional>

=begin html

<br>List of monthly sub-schedules used by the schedule. May only be used in a monthly schedule.

=end html

=back



=over 2

=item * I<schedule-category>  =>   B<string, optional>

=begin html

<br>Specifies the category of the schedule. Possible values are: 'dfm_schedule', 'dp_schedule'. The default value is 'dp_schedule'.

=end html

=back



=over 2

=item * I<schedule-description>  =>   B<string, optional>

=begin html

<br>Description of the schedule. It may contain from 0 to 255 characters. The <b>description</b> always appears in the output. If the description is omitted, then the default value is the empty string "".

=end html

=back



=over 2

=item * I<schedule-id>  =>   B<obj-id, optional>

=begin html

<br>ID of the schedule. Ignored for dfm-schedule-create. Required for all other calls. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-name>  =>   B<obj-name>

=begin html

<br>Name of the schedule. May not be numeric.

=end html

=back



=over 2

=item * I<schedule-type>  =>   B<string>

=begin html

<br>Type of schedule. Possible values are: 'daily', 'weekly', 'monthly'. Note that the type cannot be changed once the schedule is created. User has to delete the schedule before creating a new schedule using the same name with different type

=end html

=back



=over 2

=item * I<weekly-list>  =>   B<L<"weekly-info">[], optional>

=begin html

<br>List of weekly schedules. May only be used in a weekly schedule.

=end html

=back



=over 2

=item * I<weekly-subschedule-list>  =>   B<L<"weekly-subschedule-info">[], optional>

=begin html

<br>List of weekly sub-schedules used by the schedule. May only be used in a weekly schedule.

=end html

=back



=head2 schedule-id-info

=begin html

The attributes of a id list

=end html



B<Fields>

=over 2

=item * I<id>  =>   B<obj-id>

=begin html

<br>ID of the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<name>  =>   B<obj-name>

=begin html

<br>Name of the schedule. May not be numeric.

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Type of schedule. Possible values are: daily, weekly, monthly

=end html

=back



=head2 weekly-info

=begin html

The attributes of a weekly schedule. May only be used in a weekly schedule.

=end html



B<Fields>

=over 2

=item * I<day-of-week>  =>   B<integer>

=begin html

<br>Day of week for the schedule. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer, optional>

=begin html

<br>ID of the weekly item within the schedule Ignored for dfm-schedule-create/modify and Required for all other calls. Will be presented in output. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<start-hour>  =>   B<integer>

=begin html

<br>Start hour of the weekly schedule. Range: [0..23]

=end html

=back



=over 2

=item * I<start-minute>  =>   B<integer>

=begin html

<br>Start minute of the weekly schedule. Range: [0..59]

=end html

=back



=head2 weekly-subschedule-info

=begin html

The attributes of a weekly subschedule. May only be used in a weekly schedule.

=end html



B<Fields>

=over 2

=item * I<end-day-of-week>  =>   B<integer>

=begin html

<br>End day to be applied to the schedule being used. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer, optional>

=begin html

<br>ID of the use type within the schedule. Ignored for dfm-schedule-create/modify and Required for all other calls. Will be presented in output. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<start-day-of-week>  =>   B<integer>

=begin html

<br>Start day to be applied to the schedule being used. Range: [0..6] (0 = "Sun")

=end html

=back



=over 2

=item * I<subschedule-id>  =>   B<obj-id>

=begin html

<br>ID of the subschedule to be used. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<subschedule-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the subschedule to be used Ignored for dfm-schedule-create/modify. Required for all other calls. Will be presented in output. Range: [1..(2^31)-1]

=end html

=back



=head2 disk-info

=begin html

Information about a disk.

=end html



B<Fields>

=over 2

=item * I<aggregate-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of aggregate to which the disk belongs. When aggregate the disk belongs to is not known or disk is a spare disk, aggregate-id will not be returned.

=end html

=back



=over 2

=item * I<aggregate-name>  =>   B<obj-full-name, optional>

=begin html

<br>Name of aggregate to which the disk belongs. When aggregate the disk belongs to is not known or disk is a spare disk, aggregate-name will not be returned. The name is any simple name such as myaggr.

=end html

=back



=over 2

=item * I<disk-id>  =>   B<obj-id>

=begin html

<br>Identifier of the disk. Always present in the output.

=end html

=back



=over 2

=item * I<disk-name>  =>   B<string>

=begin html

<br>Name of the disk. Always present in the output. The name will look like "data disk 0b.18", "parity disk 0b.17", "dparity disk 0b.16" etc. Maximum length of 64 characters.

=end html

=back



=over 2

=item * I<disk-size>  =>   B<integer>

=begin html

<br>Disk size in bytes. Range : [0..2^63-1].

=end html

=back



=over 2

=item * I<disk-type>  =>   B<string>

=begin html

<br>Type of the disk. Maximum length of 64 characters.

=end html

=back



=over 2

=item * I<disk-uid-or-wwn>  =>   B<string, optional>

=begin html

<br>Identifier of the disk. For hosts running Data ONTAP versions prior to 7.0.1, this will be the World Wide Name (WWN) of the disk. For hosts running Data ONTAP versions 7.0.1 and later, this will be the Unique Identifier (UID) of the disk. When UID or WWN of a disk is not known, this field will not be returned. Maximum length of 90 characters. Format of disk WWN will look like: 20:00:00:0c:50:45:7d:bc Format of disk UUID will look like: 2000000C:50A9022F:00000000:00000000:00000000:00000000: 00000000:00000000:00000000:00000000

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Identifier of host to which the disk belongs. Always present in the output.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name>

=begin html

<br>Name of host to which the disk belongs. Always present in the output. The name is any simple name such as myhost.

=end html

=back



=over 2

=item * I<plex-name>  =>   B<string, optional>

=begin html

<br>Name of plex to which the disk belongs. The name is any simple name such as plex0. When plex the disk belongs to is not known or disk is a spare disk, plex-name will not be returned. Maximum length of 64 characters.

=end html

=back



=over 2

=item * I<raidgroup-name>  =>   B<string, optional>

=begin html

<br>Name of raidgroup to which the disk belongs. The name is any simple name such as rg0. When raidgroup the disk belongs to is not known or disk is a spare disk, raidgroup-name will not be returned. Maximum length of 64 characters.

=end html

=back



=head2 application-backup-info

=begin html

Contains all the information about the application objects in the backup.

=end html



B<Fields>

=over 2

=item * I<application-backup-properties>  =>   B<L<"property-info">[]>

=begin html

<br>List of properties, for application resource backup.

=end html

=back



=over 2

=item * I<application-resource-namespace>  =>   B<application-resource-namespace>

=begin html

<br>Name of the application resource namespace. The application resources contained in this backup, belong to this namespace.

=end html

=back



=over 2

=item * I<backup-graph-info>  =>   B<L<"backup-graph-info">, optional>

=begin html

<br>Resource graph has the information about the application objects contained in the backup.

=end html

=back



=over 2

=item * I<host-service-backup-id>  =>   B<host-service-unique-id>

=begin html

<br>Unique identifier of the application object as generated by the Host Service.

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Object ID of the host service, where the backup resides.

=end html

=back



=head2 application-object-type

=begin html

Describes the application object type, for a resource. This string is the type id of the application object that comes from the plug-in. <P> It must contain between 1 and 255 characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 backup-graph-edge-info

=begin html

An edge in the backup graph. These are used to traverse from a resource to another resource in the backup graph, to extract more specific information.

=end html



B<Fields>

=over 2

=item * I<from-resource-id>  =>   B<obj-id>

=begin html

<br>Object Id of the "from" resource.

=end html

=back



=over 2

=item * I<to-resource-id>  =>   B<obj-id>

=begin html

<br>Object Id of the "to" resource.

=end html

=back



=head2 backup-graph-info

=begin html

Contains the information about the various resources and edges to and from these resources, for a backup. The application objects, are stored in the resource-graph, in form of resources and edges connecting these resources.

=end html



B<Fields>

=over 2

=item * I<graph-edges>  =>   B<L<"backup-graph-edge-info">[]>

=begin html

<br>Edges in the backup graph.

=end html

=back



=over 2

=item * I<graph-resources>  =>   B<L<"backup-graph-resource-info">[]>

=begin html

<br>Resources in the backup graph.

=end html

=back



=head2 backup-graph-resource-info

=begin html

Resource is an application object.

=end html



B<Fields>

=over 2

=item * I<application-resource-properties>  =>   B<L<"property-info">[]>

=begin html

<br>List of properties, for an application resource contained in a backup.

=end html

=back



=over 2

=item * I<host-service-object-id>  =>   B<host-service-unique-id>

=begin html

<br>Unique identifier of the application object as generated by the Host Service

=end html

=back



=over 2

=item * I<is-restorable>  =>   B<boolean>

=begin html

<br>Indicates if the restore be done at the level of this object. Object may have been backed up fully but still the restore may not be possible at this object level. You may have to restore one or more of its children. This value may be different for replica of the primary backup if the backup only got partially transferred to the secondary.

=end html

=back



=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>DFM Object ID of the resource.

=end html

=back



=over 2

=item * I<object-name>  =>   B<obj-name>

=begin html

<br>The application object name might have changed. This string represents the current name of the resource, which might be different from the "object-name-when-backed-up".

=end html

=back



=over 2

=item * I<object-name-when-backed-up>  =>   B<obj-name>

=begin html

<br>Name of the resource when it was backed up.

=end html

=back



=over 2

=item * I<resource-type>  =>   B<application-object-type>

=begin html

<br>Type of the resource. This field indicates what type of application object, a resource is.

=end html

=back



=over 2

=item * I<snapshots>  =>   B<L<"snapshot-member-info">[], optional>

=begin html

<br>Contains information about primary snapshots for a backup. Present only when 'is-restorable' is true

=end html

=back



=head2 backup-location-info

=begin html

location information for backup. Only the members which are found are returned.

=end html



B<Fields>

=over 2

=item * I<backup-id>  =>   B<integer, optional>

=begin html

<br>Actual backup instance used to restore Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<member-id>  =>   B<obj-id>

=begin html

<br>ID of the qtree or OSSV directory. member-id is for the primary qtree or OSSV dir.

=end html

=back



=over 2

=item * I<member-name>  =>   B<obj-name>

=begin html

<br>Name of the qtree or OSSV directory. member-name is for the primary qtree or OSSV dir.

=end html

=back



=over 2

=item * I<path>  =>   B<string, optional>

=begin html

<br>Name of the path. The maximum path length is 32767 characters. This path is relative to 'member-id' path in the storage system or OSSV host. For storage system and ossv unix hosts this is a unix-like path (ex: '/dir1/dir2'). For ossv windows host this is a windows path (ex: '\dir1\dir2').

=end html

=back



=over 2

=item * I<path-found>  =>   B<boolean>

=begin html

<br>TRUE if the path is found in a backup-version. The following elements will be set only if path-found is TRUE.

=end html

=back



=over 2

=item * I<primary-snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy on the primary where the data originated.

=end html

=back



=over 2

=item * I<primary-snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of the Snapshot copy on the primary where the data originated. Currently, this is the Snapshot copy's creation time.

=end html

=back



=over 2

=item * I<secondary-qtree-id>  =>   B<obj-id, optional>

=begin html

<br>ID of the secondary qtree which is protecting the member-id.

=end html

=back



=over 2

=item * I<secondary-qtree-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the secondary qtree which is protecting the member-id.

=end html

=back



=over 2

=item * I<snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the snapshot in the backup which contains the backup of the member.

=end html

=back



=over 2

=item * I<storage-system-id>  =>   B<obj-id, optional>

=begin html

<br>ID of the storage system on which the secondary Snapshot copy resides. Always present in the output if the path is found.

=end html

=back



=over 2

=item * I<storage-system-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the storage system on which the secondary Snapshot copy resides. Always present in the output if the path is found.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the volume on which the snapshot resides.

=end html

=back



=head2 backup-mount-info

=begin html

Indicates the mount information of the backup.

=end html



B<Fields>

=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Identifier of host on which the backup is mounted.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name>

=begin html

<br>Name of the host on which the backup is mounted.

=end html

=back



=over 2

=item * I<mount-id>  =>   B<integer>

=begin html

<br>Identifier of the mount session that mounted the backup. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<mount-job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the job that is mounting or has mounted the backup. The job id will not be available if the mount state has changed to "mounting" but the job has not started yet. The job id will be available for "mounted" backups. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<mount-state>  =>   B<mount-state>

=begin html

<br>The mount state of the backup.

=end html

=back



=over 2

=item * I<mounted-by>  =>   B<string>

=begin html

<br>The name of the user who mounted the backup.

=end html

=back



=over 2

=item * I<unmount-job-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the job that is unmounting the backup. This element will be present only if the backup is in the 'unmounting' state. Range: [1..2^31-1]

=end html

=back



=head2 dfm-metadata

=begin html

Named field in the metadata.

=end html



B<Fields>

=over 2

=item * I<field-name>  =>   B<string>

=begin html

<br>Name of the metadata field. Field names are up to 255 characters in length and are case- insensitive.

=end html

=back



=over 2

=item * I<field-value>  =>   B<string>

=begin html

<br>Arbitrary, user-defined data expressed as a string. The string is opaque to the server and must not exceed 16384 (16k) characters in length.

=end html

=back



=head2 dp-backup-content-info

=begin html

Information about contents of a backup of dataset.

=end html



B<Fields>

=over 2

=item * I<dp-file-info>  =>   B<L<"dp-file-info">, optional>

=begin html

<br>Information about file (or directory etc.) in a backup. This element will not be present in case of top-level contents.

=end html

=back



=over 2

=item * I<primary-snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy on the primary where the data originated.

=end html

=back



=over 2

=item * I<primary-snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of the Snapshot copy on the primary where the data originated. Currently, this is the Snapshot copy's creation time. This can be used to differentiate between versions of the same file in the same backup.

=end html

=back



=over 2

=item * I<root-object-id>  =>   B<obj-id, optional>

=begin html

<br>Id of a dataset member that is at the root of the file tree. This may be qtree, ossv directory or volume that is source of the physical data protection relationship.

=end html

=back



=over 2

=item * I<root-object-name>  =>   B<string, optional>

=begin html

<br>Object name for root-object-id.

=end html

=back



=over 2

=item * I<root-object-type>  =>   B<string, optional>

=begin html

<br>Object type for root-object-id. Possible values: 'qtree', 'directory', 'volume', 'virtual_machine'.

=end html

=back



=head2 dp-backup-id-info

=begin html

Backup-version instance information including id and node name for this version.

=end html



B<Fields>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>Identifier of the backup instance. The management station assigns a unique id to each backup instance. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-metadata>  =>   B<L<"dfm-metadata">[], optional>

=begin html

<br>Opaque metadata for the backup. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier for the job creating this backup.

=end html

=back



=over 2

=item * I<node-id>  =>   B<integer>

=begin html

<br>ID of the node in the data protection policy. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<node-name>  =>   B<string, optional>

=begin html

<br>Name of policy node that corresponds to the storage set that holds backup. May not be present if a different policy has been associated with this dataset, and the storage set containing this backup has no corresponding node in the current policy. It may be possible to restore contents from such orphaned backups if the physical relationships continue to exist.

=end html

=back



=head2 dp-backup-info

=begin html

Backup is a single backed up image of a dataset. If backup is too large to fit on a single volume, the management station uses multiple volumes in the same storageset. In such cases, a single backup may span multiple volumes in a single storageset. The management station keeps track of actual volumes that hold the backup. Caller can identify backup by its numeric identifier.

=end html



B<Fields>

=over 2

=item * I<application-backup-infos>  =>   B<L<"application-backup-info">[], optional>

=begin html

<br>Contains all the information about the application resources in the backup, created by host services. It is present only if the backup contains application objects.

=end html

=back



=over 2

=item * I<backup-description>  =>   B<string, optional>

=begin html

<br>User specified description of backup for unscheduled backup started by dp-backup-start. The maximum length of this string is 255 characters.

=end html

=back



=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>Identifier of the backup instance. The management station assigns a unique id to each backup instance. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-metadata>  =>   B<L<"dfm-metadata">[], optional>

=begin html

<br>Opaque metadata for the backup. Metadata is usually set and interpreted by an application that is using the dataset. DFM does not look into the contents of the metadata.

=end html

=back



=over 2

=item * I<backup-mount-infos>  =>   B<L<"backup-mount-info">[], optional>

=begin html

<br>Indicates the mount information for the backup. Currently, there can only be one member in this list since a backup can be mounted only once.

=end html

=back



=over 2

=item * I<backup-transfer-infos>  =>   B<L<"dp-backup-transfer-info">[]>

=begin html

<br>Indicates the transfer status of this backup to each of the destination nodes directly connected to the node on which this backup exists.

=end html

=back



=over 2

=item * I<backup-transfer-status>  =>   B<string, optional>

=begin html

<br>This field has been deprecated, use backup-transfer-infos instead. Indicates the transfer status of this backup. This field is meant for internal use. It is set by backup transfer job only for backups on the Primary node of an application dataset. Possible values: 'transferring', 'transferred', 'transfer_failed', and ''.

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp>

=begin html

<br>Timestamp when the backup was taken. Backups of same dataset at different locations have same version if their contents are identical. The management station keeps track of which backups have identical contents and assigns same version to them. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<dataset-id>  =>   B<obj-id, optional>

=begin html

<br>Object ID of dataset that the backup was for. Always present in the output, but ignored in the input.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name, optional>

=begin html

<br>Name of dataset that the backup was for. Always present in the output, but ignored in the input.

=end html

=back



=over 2

=item * I<is-adding-members>  =>   B<boolean>

=begin html

<br>Indicates whether more members are being added to the version-members element of this backup. <P> If this element is true, Protection Manager expects more members to be added to the version-members element of this backup. The job that is transferring this backup, periodically checks to see if the new members have been added and starts transferring them. The transfer job does not exit until this input is set to false by calling dp-backup-version-modify API (or until the timeout occurs). <P> If this element is false, the job exits after transferring any members that it could find in this backup. Any new members that got added to the backup will be transferred by the next job. <P> This element can be used when creating a local backup potentially takes a very long time and you want the Protection Manager to start the transfers without waiting for the local backup to complete.

=end html

=back



=over 2

=item * I<is-backup-destination-node>  =>   B<boolean, optional>

=begin html

<br>This will be true if the node has an incoming backup connection, false otherwise. This value may not be present if policy has been modified in such a way that storageset has no corresponding node in policy. If the node is the primary node of the dataset, this value will be false.

=end html

=back



=over 2

=item * I<is-for-propagation>  =>   B<boolean, optional>

=begin html

<br>Indicates whether or not this backup version should be propagated according to the data protection policy. If false, the backup version will not be propagated to other nodes. Default value is true.

=end html

=back



=over 2

=item * I<is-mirror-destination-node>  =>   B<boolean, optional>

=begin html

<br>This will be true if the node has an incoming mirror connection, false otherwise. This element may not be present if policy has been modified in such a way that storageset has no corresponding node in policy. If the node is the primary node of the dataset, this value will be false.

=end html

=back



=over 2

=item * I<node-id>  =>   B<integer, optional>

=begin html

<br>Id of policy node that corresponds to the storageset that holds backup. May not be present if policy has been modified in such a way that storageset has no corresponding node in policy. It may be possible to restore contents from such orphaned backup if the physical relationships continue to exist. The node-id values start at 1. The node id of the primary node is always 1.

=end html

=back



=over 2

=item * I<node-name>  =>   B<string, optional>

=begin html

<br>Name of policy node that corresponds to the storageset that holds backup. May not be present if policy has been modified in such a way that storageset has no corresponding node in policy. It may be possible to restore contents from such orphaned backup if the physical relationships continue to exist.

=end html

=back



=over 2

=item * I<retention-duration>  =>   B<integer, optional>

=begin html

<br>The age, in seconds, after which this backup expires. This value is relative to the backup version timestamp. If retention-duration is not present, the backup does not expire. Range: [0..2^31 - 1].

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type>

=begin html

<br>Type of retention for the backup.

=end html

=back



=over 2

=item * I<supports-non-disruptive-restore>  =>   B<requires-non-disruptive-restore>

=begin html

<br>Indicates whether a non disruptive restore is possible from this backup version. If true then non disruptive restore is possible.

=end html

=back



=over 2

=item * I<version-members>  =>   B<L<"version-member-info">[]>

=begin html

<br>describes snapshot members of this backup version.

=end html

=back



=head2 dp-backup-path-info

=begin html

Information about backup path

=end html



B<Fields>

=over 2

=item * I<member-id>  =>   B<obj-id, optional>

=begin html

<br>The qtree or OSSV dir ID. Either member-id or member-name must be supplied. If member-id is supplied member-name should not be supplied.

=end html

=back



=over 2

=item * I<member-name>  =>   B<obj-name, optional>

=begin html

<br>The qtree or OSSV dir name. Either member-id or member-name must be supplied. member-name is only used if member-id is not supplied

=end html

=back



=over 2

=item * I<path>  =>   B<string, optional>

=begin html

<br>Name of the path. The maximum path length is 32767 characters. This path is relative to 'member-id' path in the storage system or OSSV host. For storage system and ossv unix hosts this is a unix-like path (ex: '/dir1/dir2'). For ossv windows host this is a windows path (ex: '\dir1\dir2').

=end html

=back



=over 2

=item * I<primary-snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy on the primary where the data originated. This is ignored if primary-snapshot-unique-id is specified.

=end html

=back



=over 2

=item * I<primary-snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of the Snapshot copy on the primary where the data originated. Currently, this is the Snapshot copy's creation time. This should be specified when member exists in more than one Snapshot copies in the same backup.

=end html

=back



=head2 dp-backup-retention-type

=begin html

Retention type to which the backup should be archived. Possible values are: 'hourly', 'daily', 'weekly', 'monthly' and 'unlimited'.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-backup-transfer-info

=begin html

Indicates the transfer status of the backup between the two nodes directly connected to each other. When present in the input, you must specify at least one of destination-storageset-id, destination-node-name or destination-node-id.

=end html



B<Fields>

=over 2

=item * I<backup-transfer-needed>  =>   B<boolean, optional>

=begin html

<br>Indicates if the backup needs to be transferred to the destination storage set. This field is for internal use by the Protection Manager.

=end html

=back



=over 2

=item * I<backup-transfer-status>  =>   B<string, optional>

=begin html

<br>Indicates the transfer status of the backup to the destination node. <P> Possible values: 'transferring', 'transferred', 'transfer_failed', and ''. <P> 'transferring' indicates that a job is currently transferring the backup to the destination node. <P> 'transferred' indicates that backup was successfully transferred to the destination node. <P> '' indicates that no transfer has started. <P> In the case of a mirror relationship, transfer_failed is not a terminal state. The transfer could be retried as part of a subsequent mirror update.

=end html

=back



=over 2

=item * I<connection-type>  =>   B<string, optional>

=begin html

<br>Type of the policy connection between source and destination nodes. Possible values: 'backup', 'mirror'. Present in the output only. Ignored if present in the input. May not be present in the output if the policy connection could not be found.

=end html

=back



=over 2

=item * I<destination-backup-id>  =>   B<integer, optional>

=begin html

<br>Identifier of backup on the destination node. Present in the output only. Ignored if specified in the input. May not be present in the output if the backup version does not exist on the destination node yet. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<destination-node-id>  =>   B<integer, optional>

=begin html

<br>ID of destination node in the data protection policy that corresponds to the destination storage set. May not be present in the output if the destination storage set cannot be mapped to any node in the policy. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<destination-node-name>  =>   B<string, optional>

=begin html

<br>Name of destination node in the data protection policy that corresponds to the destination storage set. May not be present in the output if the destination storage set cannot be mapped to any node in the policy.

=end html

=back



=over 2

=item * I<destination-storageset-id>  =>   B<integer, optional>

=begin html

<br>ID of the destination storage set. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer, optional>

=begin html

<br>Identifier for the job that is transferring or has transferred this backup to the destination storage set.

=end html

=back



=over 2

=item * I<source-backup-id>  =>   B<integer, optional>

=begin html

<br>Identifier of backup on the source node. Present in the output only. Ignored if specified in the input. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<source-node-id>  =>   B<integer, optional>

=begin html

<br>ID of source node in the data protection policy that corresponds to the source storage set. Present in the output only. Ignored if specified in the input. May not be present in the output if the source storage set cannot be mapped to any node in the policy. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<source-node-name>  =>   B<string, optional>

=begin html

<br>Name of source node in the data protection policy that corresponds to the source storage set. Present in the output only. Ignored if specified in the input. May not be present in the output if the destination storage set cannot be mapped to any node in the policy.

=end html

=back



=over 2

=item * I<source-storageset-id>  =>   B<integer, optional>

=begin html

<br>ID of the source storage set. Present in the output only. Ignored if specified in the input. Range: [1..2^31-1].

=end html

=back



=head2 dp-backup-version-info

=begin html

Backup-version information including list of all instances of this version.

=end html



B<Fields>

=over 2

=item * I<backup-description>  =>   B<string, optional>

=begin html

<br>Description for the backup. It may be any arbitrary string meaningful to the agent spawning the backup. The maximum length of this string is 255 characters.

=end html

=back



=over 2

=item * I<backup-id-infos>  =>   B<L<"dp-backup-id-info">[]>

=begin html

<br>List of backup instances.

=end html

=back



=over 2

=item * I<backup-transfer-infos>  =>   B<L<"dp-backup-transfer-info">[]>

=begin html

<br>Indicates the transfer status of this backup version between each pairs of the source and destination nodes which have direct connection in the data protection policy.

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp>

=begin html

<br>Timestamp when the backup was taken. Backups of same dataset at different locations have same version if their contents are identical. The management station keeps track of which backups have identical contents and assigns same version to them. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<is-fully-propagated>  =>   B<boolean>

=begin html

<br>Indicates that this version is a complete backup of the dataset on all nodes specified by the protection policy.

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type>

=begin html

<br>Type of retention for the backup.

=end html

=back



=over 2

=item * I<version-members>  =>   B<L<"version-member-info">[]>

=begin html

<br>Describes snapshot members of this backup version.

=end html

=back



=head2 dp-file-info

=begin html

Information about file, directory, qtree, drive etc. on a primary host or in a backup.

=end html



B<Fields>

=over 2

=item * I<child-count>  =>   B<integer>

=begin html

<br>Count of children. This is zero when value of file-type element is 'file'. Otherwise, it can be zero or non-zero. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<file-name>  =>   B<string>

=begin html

<br>Name of the file.

=end html

=back



=over 2

=item * I<file-size>  =>   B<integer, optional>

=begin html

<br>Size of file in bytes. Range: [0..2^64-1]

=end html

=back



=over 2

=item * I<file-type>  =>   B<string>

=begin html

<br>Type of the file. Possible values: 'file', 'directory', 'qtree', 'volume', 'drive', 'fifo', 'cspec', 'bspec', 'symlink', 'socket', 'registry', 'stream', 'lun', and 'other'.

=end html

=back



=over 2

=item * I<is-empty>  =>   B<boolean, optional>

=begin html

<br>This element is present only if the file-type is a directory and the version of ONTAP on the storage systems in 7.3.2 and higher. For all other cases, this element will be absent. It determines if the directory is is an empty directory. The value of the element is TRUE is directory is empty, it is FALSE otherwise. Directory is considered empty if it only contains entries for "." and ".."

=end html

=back



=over 2

=item * I<last-modified-timestamp>  =>   B<integer, optional>

=begin html

<br>Timestamp when the file was last modified. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=head2 dp-job-data

=begin html

Describes an unscheduled data protection job. Type of job is specified in dp-job-type element. Only one of all possible dp-*-job-data elements can be present.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Id of the dataset being protected by the job.

=end html

=back



=over 2

=item * I<dp-job-type>  =>   B<string>

=begin html

<br>Type of the dp job. Possible values: 'snapvault', 'snapmirror' and 'local_snapshot'.

=end html

=back



=over 2

=item * I<dp-local-snapshot-job-data>  =>   B<L<"dp-local-snapshot-job-data">, optional>

=begin html

<br>Data for local-snapshot job.

=end html

=back



=over 2

=item * I<dp-snapmirror-transfer-job-data>  =>   B<L<"dp-snapmirror-transfer-job-data">, optional>

=begin html

<br>Data for snapmirror-transfer job.

=end html

=back



=over 2

=item * I<dp-snapvault-transfer-job-data>  =>   B<L<"dp-snapvault-transfer-job-data">, optional>

=begin html

<br>Data for snapvault-transfer job.

=end html

=back



=head2 mount-state

=begin html

Mount session state. Possible values are: 'mounting', 'mounted', 'unmounting'.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 property-info

=begin html

Describes a property of an object.

=end html



B<Fields>

=over 2

=item * I<property-name>  =>   B<string>

=begin html

<br>The name of the property field. Property names are upto 255 characters in length and are case- sensitive.

=end html

=back



=over 2

=item * I<property-value>  =>   B<string>

=begin html

<br>Value of the backup property. Property values are upto 255 characters in length and are case- sensitive.

=end html

=back



=head2 search-key

=begin html

Key to search the backups by. This key is matched against: <UL> <LI> partial description of the backup, <LI> partial current name of a primary object in the backup, <LI> partial name of a primary application resources when the backup was taken, <LI> UUID of a primary application resources in the backup. </UL>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 snapshot-member-info

=begin html

Information of one qtree or ossv dir that is in snapshot.

=end html



B<Fields>

=over 2

=item * I<primary-id>  =>   B<obj-id, optional>

=begin html

<br>Always returned on output, either primary-id or primary-name must be specified on input. Primary qtree or OSSV directory ID.

=end html

=back



=over 2

=item * I<primary-name>  =>   B<obj-name, optional>

=begin html

<br>Always returned on output, either primary-id or primary-name must be specified on input. The name of a qtree or OSSV directory whose data is in the Snapshot.

=end html

=back



=over 2

=item * I<primary-snapshot-host-service-id>  =>   B<string, optional>

=begin html

<br>Id assigned to the Snapshot copy on the primary by the Host Service. This is filled in only for the backups containing resources from the Host Service in which case it is set to the ObjectId of the Snapshot copy as reported by the Host Service. Ignored in the input.

=end html

=back



=over 2

=item * I<primary-snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy on the primary where the data originated.

=end html

=back



=over 2

=item * I<primary-snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of the Snapshot copy on the primary where the data originated. Currently, this is the Snapshot copy's creation time.

=end html

=back



=over 2

=item * I<secondary-qtree-id>  =>   B<obj-id, optional>

=begin html

<br>Corresponding secondary qtree id. This legacy parameter if supplied along with secondary-qtree-name-or-id will be ignored unless it references a different qtree in which case an error will be returned. Not included if the backup version consists of local snapshots.

=end html

=back



=over 2

=item * I<secondary-qtree-name>  =>   B<string, optional>

=begin html

<br>Corresponding secondary qtree name. This is ignored on input. Use secondary-qtree-name-or-id to specify by name. On output this will be returned along with secondary-qtree-id. Not included if the backup version consists of local snapshots.

=end html

=back



=over 2

=item * I<secondary-qtree-name-or-id>  =>   B<string, optional>

=begin html

<br>Corresponding secondary qtree name or identifier. This is used to lookup the secondary-qtree-id if present. If this is present, secondary-qtree-id will be ignored. Not included if the backup version consists of local snapshots.

=end html

=back



=head2 version-member-info

=begin html

Describes one snapshot member of a backup version.

=end html



B<Fields>

=over 2

=item * I<host-address>  =>   B<ip-address, optional>

=begin html

<br>The primary IP address of the host to which the volume belongs to. Always present in the output. Ignored in the input.

=end html

=back



=over 2

=item * I<host-fqdn>  =>   B<string, optional>

=begin html

<br>The fully qualified domain name of the host to which the volume belongs to. Always present in the output. Ignored in the input. Length: [1..255]

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id, optional>

=begin html

<br>This is the identifier of the host to which the volume belongs to. Always present in the output. Ignored in the input.

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>Whether this snapshot is available for a restore. A snapshot is considered available if the containing filer is responding to ping requests and the containing volume is online. These values will be based on information returned by the most recent DFM pass, not by querying the filer in real-time.

=end html

=back



=over 2

=item * I<snapshot-contents>  =>   B<L<"snapshot-member-info">[]>

=begin html

<br>Contents of the snapshot.

=end html

=back



=over 2

=item * I<snapshot-name>  =>   B<string>

=begin html

<br>Name of the snapshot.

=end html

=back



=over 2

=item * I<snapshot-unique-id>  =>   B<string>

=begin html

<br>Unique id of the snapshot. currently this is snapshot creation time.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id, optional>

=begin html

<br>Always included in output, either volume-id or volume-name must be specified in input. ID of the volume corresponding to member snapshot.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-name, optional>

=begin html

<br>Always included in output, either volume-id or volume-name must be specified in input. The name of the volume this Snapshot resides on.

=end html

=back



=head2 application-resource-info

=begin html

Information about an application resource's namespace, type and count.

=end html



B<Fields>

=over 2

=item * I<application-object-type>  =>   B<application-object-type>

=begin html

<br>Type of the application resource.

=end html

=back



=over 2

=item * I<application-resource-namespace>  =>   B<application-resource-namespace>

=begin html

<br>Namespace of the application resource.

=end html

=back



=over 2

=item * I<count>  =>   B<integer>

=begin html

<br>Number of application resources. <BR> Range: [0..2^31-1]

=end html

=back



=head2 dp-dataset-lag-info

=begin html

Information about a single dataset.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>ID of the dataset.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of the dataset.

=end html

=back



=over 2

=item * I<lag-status>  =>   B<obj-status>

=begin html

<br>Lag status of the relationship lag versus the DP policy lag threshold settings. Possible values are "unknown", "normal", "warning" and "error".

=end html

=back



=over 2

=item * I<worst-lag>  =>   B<integer>

=begin html

<br>Worst lag time of all the relationships in the datasets. The lag time is the number of seconds since the completion of the last successful transfer to the destination for each relationship. Range: [0..2^63-1]

=end html

=back



=head2 dp-relationship-lag-info

=begin html

Information about a single SnapVault or SnapMirror relationship.

=end html



B<Fields>

=over 2

=item * I<lag>  =>   B<integer>

=begin html

<br>Seconds since the completion of the last successful transfer to the destination. If no transfer has ever succeeded, this value is 0. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<relationship-id>  =>   B<obj-id>

=begin html

<br>Identifier of the relationship.

=end html

=back



=over 2

=item * I<relationship-source>  =>   B<obj-name>

=begin html

<br>Full path of the source object of the relationship.

=end html

=back



=over 2

=item * I<relationship-state>  =>   B<relationship-state>

=begin html

<br>State of the relationship

=end html

=back



=over 2

=item * I<relationship-type>  =>   B<relationship-type>

=begin html

<br>Type of the relationship.

=end html

=back



=head2 dr-state-status-count

=begin html

Number of DR-enabled datasets with a single distinct dr-state/dr-status combination.

=end html



B<Fields>

=over 2

=item * I<count>  =>   B<integer>

=begin html

<br>Number of DR-enabled datasets with a state of dr-state and status of dr-status. Only return state and status combinations which have at least one dataset in them. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<dr-state>  =>   B<dr-state>

=begin html

<br>DR state of all datasets

=end html

=back



=over 2

=item * I<dr-status>  =>   B<dr-status>

=begin html

<br>DR status of all datasets

=end html

=back



=head2 cifs-acl

=begin html

Information about the user and the permission with which the user can access the CIFS share.

=end html



B<Fields>

=over 2

=item * I<access-rights>  =>   B<string>

=begin html

<br>Access right of the user accessing the CIFS share. Possible values are 'no_access', 'read', 'change' and 'full_control'

=end html

=back



=over 2

=item * I<user-name>  =>   B<string>

=begin html

<br>Name of the user accessing the CIFS share. The username may be the name of an actual domain user or one of the built-in names like 'administrator' or 'everyone'. This can be a maximum of 128 characters.

=end html

=back



=head2 destroy-member-request-info

=begin html

Details specific to the 'destroy_member' request.

=end html



B<Fields>

=over 2

=item * I<member-id>  =>   B<obj-id>

=begin html

<br>This is the id of the dataset member on which the action was performed.

=end html

=back



=over 2

=item * I<member-name>  =>   B<obj-full-name>

=begin html

<br>This is the full name of the dataset member on which the action is performed.

=end html

=back



=over 2

=item * I<member-type>  =>   B<string>

=begin html

<br>Type of the dataset member on which the action was or is to be performed. Possible values are 'volume', 'qtree' and 'lun'.

=end html

=back



=head2 dp-job-info

=begin html

A job is used to run one or more Data Protection or provisioning operations.

=end html



B<Fields>

=over 2

=item * I<abort-requested-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp when request was received to abort job. If unspecified, no such request was received.

=end html

=back



=over 2

=item * I<bytes-transferred>  =>   B<integer>

=begin html

<br>Bytes transferred in this operation. Zero when transfer starts. Range: [0..2^63-1]. It will be always zero for a provisioning or configuration job.

=end html

=back



=over 2

=item * I<completed-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp when the job was completed. If unspecified, the job has not yet reached completion.

=end html

=back



=over 2

=item * I<dataset-id>  =>   B<integer, optional>

=begin html

<br>Database ID of the dataset on which this job was carried out. This field is optional and will be returned only when the job is carried out on a dataset. This field is deprecated in favor of object-name and object-type. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<string, optional>

=begin html

<br>Name of the dataset on which this job was carried out. This field is optional and will be returned only when the job is carried out on a dataset. This field is deprecated in favor of object-name and object-type.

=end html

=back



=over 2

=item * I<destination-node-id>  =>   B<integer, optional>

=begin html

<br>Destination policy node id associated with this job. Not present if this job is only associated with a single node (e.g. a snapshot job or a provisioning job). Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<destination-node-name>  =>   B<string, optional>

=begin html

<br>Destination policy node name associated with this job. Not present if this job is only associated with a single node (e.g. a snapshot job or provisioning job).

=end html

=back



=over 2

=item * I<job-context-application-resource-namespaces>  =>   B<application-resource-namespace[], optional>

=begin html

<br>List of namespaces, from which the application resources have been added to the job context dataset. Not returned, if job-context-application-resources-only is false, in dp-job-list-iter-start API, for this iteration.

=end html

=back



=over 2

=item * I<job-context-obj-id>  =>   B<obj-id>

=begin html

<br>Identifier of the job context object. If there was no job context when the job is submitted, then the identifier of the job object on which the job ran will be returned as the job context object identifier. <P> Refer to <b> job-context-obj-type</b> for valid types of job context objects.

=end html

=back



=over 2

=item * I<job-context-obj-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the job context object. If there was no job context when the job is submitted, then the full name of the job object on which the job ran will be returned as the job context object full name. <P> Refer to <b> job-context-obj-type</b> for valid types of job context objects.

=end html

=back



=over 2

=item * I<job-context-obj-type>  =>   B<string>

=begin html

<br>Type of the job context object. Possible values are :- <UL> <LI> aggregate <LI> dataset <LI> mgmt_station <LI> vfiler <LI> lun_path </UL>

=end html

=back



=over 2

=item * I<job-description>  =>   B<string>

=begin html

<br>Description of what job is trying to accomplish.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of the job. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<job-overall-status>  =>   B<dp-job-overall-status>

=begin html

<br>Overall status of the job based on job-progress and job-state.

=end html

=back



=over 2

=item * I<job-progress>  =>   B<dp-job-progress>

=begin html

<br>The current progress of the data protection or provisioning job.

=end html

=back



=over 2

=item * I<job-state>  =>   B<dp-job-state>

=begin html

<br>State of the job.

=end html

=back



=over 2

=item * I<job-type>  =>   B<dp-job-type>

=begin html

<br>Type of data protection or provisioning job.

=end html

=back



=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>Identifier of the object on which this job was carried out.

=end html

=back



=over 2

=item * I<object-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the object on which this job was carried out.

=end html

=back



=over 2

=item * I<object-type>  =>   B<string>

=begin html

<br>Type of the object on which this job was carried out. Possible values: <UL> <LI> dataset <LI> mgmt_station <LI> vfiler <LI> volume </UL>

=end html

=back



=over 2

=item * I<policy-id>  =>   B<integer, optional>

=begin html

<br>Database ID of the data protection policy or the application policy responsible for spawning this job. If unspecified, the job was not invoked in response to a policy. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<policy-name>  =>   B<string, optional>

=begin html

<br>Name of the data protection policy or the application policy responsible for spawning this job. If unspecified, the job was not invoked in response to a policy.

=end html

=back



=over 2

=item * I<provision-request-info>  =>   B<L<"provision-request-info">, optional>

=begin html

<br>Information of the provisioning request. Present only if the job-type is one of 'provision_member', 'resize_member', 'delete_snapshots', 'destroy_member', 'dedupe_member' or 'undedupe_member'.

=end html

=back



=over 2

=item * I<source-node-id>  =>   B<integer, optional>

=begin html

<br>Source policy node id associated with this job. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<source-node-name>  =>   B<string, optional>

=begin html

<br>Source policy node name associated with this job.

=end html

=back



=over 2

=item * I<started-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>Timestamp when job was started. If unspecified, the job has not yet started running and is queued.

=end html

=back



=over 2

=item * I<submitted-by>  =>   B<string, optional>

=begin html

<br>User who submitted the job. If unspecified, the job was submitted by one of the internal DFM services such as the scheduler. The length of this string cannot be more than 255 characters.

=end html

=back



=head2 dp-job-overall-status

=begin html

The overall status of the data protection/provisioning job. The possible values are "queued", "canceling", "canceled", "running", "running_with_failures", "partially_failed", "succeeded", and "failed". This field is derived from dp-job-state and dp-job-progress. <BR> The current mappings are as follow: <PRE> dp-job-state dp-job-progress dp-job-overall-status <BR> ===================================================== <BR> queued * queued <BR> running in_progress running <BR> running success running <BR> running partial_success running_with_failures <BR> running failure running_with_failures <BR> aborting * canceling <BR> aborted * canceled <BR> completed partial_success partially_failed <BR> completed failure failed <BR> completed success succeeded <BR> completed in_progress canceled <BR> </PRE>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-job-progress

=begin html

The progress of data protection job. Valid values are "in_progress", "partial_success", "success" and "failure".<BR> "in_progress" - No transfers have completed till now.<BR> "success" - Atleast one transfer succeeded, none failed till now <BR> "failure" - Atleast one transfer failed, none succeeded till now. <BR> "partial_success" - Atleast one transfer failed and atleast one transfer succeeded till now. <BR> The progress of the data protection job follows the following state diagram, depending on the success and failure of the transfers handled by the data protection job. <PRE> +------"in_progress"---+<BR> | |<BR> | |<BR> failure? success?<BR> | |<BR> v v<BR> "failure" "success"<BR> | |<BR> | |<BR> success? failure?<BR> | |<BR> +-->"partial_success"<-+<BR> </PRE>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-job-progress-event-info

=begin html

One historical progress event for a data protection or provisioning job.

=end html



B<Fields>

=over 2

=item * I<dp-progress-backup-info>  =>   B<L<"dp-progress-backup-info">, optional>

=begin html

<br>Information about the creation or deletion of a backup version.

=end html

=back



=over 2

=item * I<dp-progress-failover-info>  =>   B<L<"dp-progress-failover-info">, optional>

=begin html

<br>Information about a failover job.

=end html

=back



=over 2

=item * I<dp-progress-job-abort-info>  =>   B<L<"dp-progress-job-abort-info">, optional>

=begin html

<br>Information about the abort of a job.

=end html

=back



=over 2

=item * I<dp-progress-relationship-info>  =>   B<L<"dp-progress-relationship-info">, optional>

=begin html

<br>Information about creation or destruction of a SnapVault or SnapMirror relationship.

=end html

=back



=over 2

=item * I<dp-progress-restore-info>  =>   B<L<"dp-progress-restore-info">, optional>

=begin html

<br>Information about restore of a path.

=end html

=back



=over 2

=item * I<dp-progress-snapmirror-info>  =>   B<L<"dp-progress-snapmirror-info">, optional>

=begin html

<br>Information about a SnapMirror transfer. SnapMirror transfers will generally log a start message, zero or more progress messages, and finally either an end or error message.

=end html

=back



=over 2

=item * I<dp-progress-snapshot-info>  =>   B<L<"dp-progress-snapshot-info">, optional>

=begin html

<br>Information about a newly created snapshot.

=end html

=back



=over 2

=item * I<dp-progress-snapvault-info>  =>   B<L<"dp-progress-snapvault-info">, optional>

=begin html

<br>Information about a SnapVault transfer. SnapVault transfers will generally log a start message, zero or more progress messages, and finally either an end or error message.

=end html

=back



=over 2

=item * I<error-message>  =>   B<string, optional>

=begin html

<br>If present, a human readable error message. If absent, there has been no error.

=end html

=back



=over 2

=item * I<event-id>  =>   B<integer>

=begin html

<br>Unique ID of this progress event. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<event-message>  =>   B<string>

=begin html

<br>Human-readable message describing event.

=end html

=back



=over 2

=item * I<event-status>  =>   B<obj-status>

=begin html

<br>The status of the progress event. Possible values: 'normal', 'warning' and 'error'

=end html

=back



=over 2

=item * I<event-timestamp>  =>   B<dp-timestamp>

=begin html

<br>Time of event

=end html

=back



=over 2

=item * I<event-type>  =>   B<string>

=begin html

<br>Type of event. Values are: <ul> <li> 'job-start' </li> <li> 'job-progress' </li> <li> 'job-abort' (dp-progress-job-abort-info) </li> <li> 'job-end' </li> <li> 'job-retry' </li> <li> 'rel-create-start' (dp-progress-relationship-info) </li> <li> 'rel-create-progress' (dp-progress-relationship-info) </li> <li> 'rel-create-end' (dp-progress-relationship-info) </li> <li> 'rel-destroy-start' (dp-progress-relationship-info) </li> <li> 'rel-destroy-progress' (dp-progress-relationship-info) </li> <li> 'rel-destroy-end' (dp-progress-relationship-info) </li> <li> 'snapshot-create' (dp-progress-snapshot-info) </li> <li> 'snapshot-delete' (dp-progress-snapshot-info) </li> <li> 'backup-create' (dp-progress-backup-info) </li> <li> 'backup-delete' (dp-progress-backup-info) </li> <li> 'snapvault-start' (dp-progress-snapvault-info) </li> <li> 'snapvault-progress' (dp-progress-snapvault-info) </li> <li> 'snapvault-end' (dp-progress-snapvault-info) </li> <li> 'snapmirror-start' (dp-progress-snapmirror-info) </li> <li> 'snapmirror-progress' (dp-progress-snapmirror-info) </li> <li> 'snapmirror-end' (dp-progress-snapmirror-info) </li> <li> 'restore-start' (dp-progress-restore-info) </li> <li> 'restore-progress' (dp-progress-restore-info) </li> <li> 'restore-end' (dp-progress-restore-info) </li> <li> 'migrate-start' (dp-progress-restore-info) </li> <li> 'migrate-progress' (dp-progress-restore-info) </li> <li> 'migrate-end' (dp-progress-restore-info) </li> <li> 'mirror-break-script-start' (dp-progress-failover-info) </li> <li> 'mirror-break-script-end' (dp-progress-failover-info) </li> <li> 'mirror-break-quiesce-start' (dp-progress-failover-info) </li> <li> 'mirror-break-quiesce-end' (dp-progress-failover-info) </li> <li> 'mirror-break-start' (dp-progress-failover-info) </li> <li> 'mirror-break-end' (dp-progress-failover-info) </li> <li> 'volume-create' (progress-volume-info) </li> <li> 'volume-option-set' (progress-volume-option-info) </li> <li> 'snapshot-reserve-resize' (progress-volume-info) </li> <li> 'volume-autosize' (progress-volume-info) </li> <li> 'snapshot-autodelete' (progress-volume-info) </li> <li> 'lun-create' (progress-lun-info) </li> <li> 'lun-destroy' (progress-lun-info) </li> <li> 'lun-map' (progress-lun-map-info) </li> <li> 'lun-unmap' (progress-lun-map-info) </li> <li> 'igroup-create' (progress-igroup-info) </li> <li> 'igroup-destroy' (progress-igroup-info) </li> <li> 'igroup-add' (progress-igroup-config-info) </li> <li> 'igroup-remove' (progress-igroup-config-info) </li> <li> 'qtree-create' (progress-qtree-info) </li> <li> 'quota-set' (progress-quota-info) </li> <li> 'nfsexport-create' (progress-nfsexport-info) </li> <li> 'cifs-share-create' (progress-cifs-share-info) </li> <li> 'cifs-share-modify' (progress-cifs-share-info) </li> <li> 'cifs-share-delete' (progress-cifs-share-info) </li> <li> 'volume-offline' (progress-volume-info) </li> <li> 'volume-destroy' (progress-volume-info) </li> <li> 'qtree-destroy' (progress-qtree-info) </li> <li> 'vfiler-storage-add' (progress-vfiler-storage-info) </li> <li> 'script-run' (progress-script-run-info) </li> <li> 'vfiler-create' (progress-vfiler-info) </li> <li> 'vfiler-setup' (progress-vfiler-info) </li> <li> 'volume-dedupe' (progress-volume-dedupe-info) </li> <li> 'volume-dedupe-enable' (progress-volume-dedupe-info) </li> <li> 'volume-dedupe-disable' (progress-volume-dedupe-info) </li> <li> 'volume-dedupe-schedule-set' (progress-volume-dedupe-info) </li> <li> 'aggregate-space' (progress-aggregate-info) </li> <li> 'storage-system-discover' (progress-storage-system-info) </li> <li> 'resource-pool-create' (progress-resource-pool-info) </li> <li> 'resource-pool-members-add' (progress-resource-pool-info) </li> <li> 'storage-service-configure' (progress-storage-service-info) </li> <li> 'host-service-operation-start' (progress-host-service-info) </li> <li> 'host-service-operation-end' (progress-host-service-info) </li> <li> 'host-service-operation-abort' (progress-host-service-info) </li> <li> 'host-service-operation-progress' (progress-host-service-info) </li> </ul> <P/> Each event type has a corresponding element with event-specific fields broken out. The name of the event-specific element is listed after the event type. Only the name of the event is returned. The value in the parenthesis is the type of element returned for that type of event.

=end html

=back



=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>The ID of the job that generated this event. Range: [1..2^31-1].

=end html

=back



=over 2

=item * I<job-type>  =>   B<dp-job-type>

=begin html

<br>Type of data protection or provisioning job.

=end html

=back



=over 2

=item * I<progress-aggregate-info>  =>   B<L<"progress-aggregate-info">, optional>

=begin html

<br>Information about aggregate.

=end html

=back



=over 2

=item * I<progress-cifs-share-info>  =>   B<L<"progress-cifs-share-info">, optional>

=begin html

<br>CIFS share information.

=end html

=back



=over 2

=item * I<progress-host-service-info>  =>   B<L<"progress-host-service-info">, optional>

=begin html

<br>Information about the host service.

=end html

=back



=over 2

=item * I<progress-igroup-config-info>  =>   B<L<"progress-igroup-config-info">, optional>

=begin html

<br>Information about the initiators added or removed from an initiator group.

=end html

=back



=over 2

=item * I<progress-igroup-info>  =>   B<L<"progress-igroup-info">, optional>

=begin html

<br>Information about the initiator group on which the mapping operation is executed.

=end html

=back



=over 2

=item * I<progress-lun-info>  =>   B<L<"progress-lun-info">, optional>

=begin html

<br>Information about the lun being provisioned.

=end html

=back



=over 2

=item * I<progress-lun-map-info>  =>   B<L<"progress-lun-map-info">, optional>

=begin html

<br>Information about the lun on which the mapping operation is executed.

=end html

=back



=over 2

=item * I<progress-nfsexport-info>  =>   B<L<"progress-nfsexport-info">, optional>

=begin html

<br>NFS export information.

=end html

=back



=over 2

=item * I<progress-qtree-info>  =>   B<L<"progress-qtree-info">, optional>

=begin html

<br>Information about the qtree provisioned.

=end html

=back



=over 2

=item * I<progress-quota-info>  =>   B<L<"progress-quota-info">, optional>

=begin html

<br>Information about the quota being modified/set.

=end html

=back



=over 2

=item * I<progress-resource-pool-info>  =>   B<L<"progress-resource-pool-info">, optional>

=begin html

<br>Information about the resource pool.

=end html

=back



=over 2

=item * I<progress-script-run-info>  =>   B<L<"progress-script-run-info">, optional>

=begin html

<br>Information about the script which is run.

=end html

=back



=over 2

=item * I<progress-storage-service-info>  =>   B<L<"progress-storage-service-info">, optional>

=begin html

<br>Information about the storage service.

=end html

=back



=over 2

=item * I<progress-storage-system-info>  =>   B<L<"progress-storage-system-info">, optional>

=begin html

<br>Information about the discovered storage system.

=end html

=back



=over 2

=item * I<progress-vfiler-info>  =>   B<L<"progress-vfiler-info">, optional>

=begin html

<br>Information about the vfiler which is being created.

=end html

=back



=over 2

=item * I<progress-vfiler-storage-info>  =>   B<L<"progress-vfiler-storage-info">, optional>

=begin html

<br>Information about the vfiler on which storage is added or removed.

=end html

=back



=over 2

=item * I<progress-volume-dedupe-info>  =>   B<L<"progress-volume-dedupe-info">, optional>

=begin html

<br>Information about dedupe operation on the volume.

=end html

=back



=over 2

=item * I<progress-volume-info>  =>   B<L<"progress-volume-info">, optional>

=begin html

<br>Information about the volume on which the provisioning operation is executed.

=end html

=back



=over 2

=item * I<progress-volume-option-info>  =>   B<L<"progress-volume-option-info">, optional>

=begin html

<br>Information about the name and value of various volume options.

=end html

=back



=head2 dp-job-state

=begin html

The state of the data protection/provisioning job. The possible values are "queued", "running", "completed", "aborting", "aborted". This state is derived from completed-timestamp, abort-requested-timestamp and started-timestamp.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-job-type

=begin html

The type of data protection, provisioning, migration, space management, configuration and Host Service related jobs. <P> Valid values for data protection jobs are "local_backup", "local_then_remote_backup", "remote_backup", "mirror", "on_demand_backup", "local_backup_confirmation", "restore", "create_relationship", "destroy_relationship", "failover", "backup_mount" and "backup_unmount". <P> Valid values for provisioning job types are "provision_member", "resize_member", "destroy_member", "delete_snapshots", "dedupe_member", "undedupe_member", "dedupe_volume" and "pm_re_export". <P> Valid space management jobs are: "dedupe_volume", "migrate_volume", "resize_volume", "delete_snapshot" and "delete_backup". "resize_lun" and "destroy_lun". <P> Valid migration job types are: "migrate_start", "migrate_complete", "migrate_cancel", "migrate_cleanup", "migrate_update". <P> Valid configuration job type is: "configuration". <P> Valid Host Service related jobs are: "hs_configure", "hs_discover", "hs_import_storage_config".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-local-snapshot-job-data

=begin html

Data for local-snapshot job. If this element is present, job is responsible for taking a local snapshot of data on the storageset associated with the specified node.

=end html



B<Fields>

=over 2

=item * I<is-confirmation-data>  =>   B<boolean, optional>

=begin html

<br>If the element: "is-confirmation-data" is set to 'true', this job only confirms backups have been created on the primary node. An external agent, such as a SnapManager/SnapDrive, is responsible for creating these backups. This element can only be true for application data sets. If set to true, the job type will be "local_backup_confirmation" and the job will update the protection status without creating a local backup.

=end html

=back



=over 2

=item * I<node-id>  =>   B<integer>

=begin html

<br>Id of the node that needs local snapshot. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type>

=begin html

<br>Retention to be used for the local snapshot.

=end html

=back



=head2 dp-progress-backup-info

=begin html

Information about the creation or deletion of a backup version.

=end html



B<Fields>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>ID of the new backup instance. Each copy of a backup version gets a unique backup ID. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp>

=begin html

<br>Time at which backup image was created. All backups with the same backup-version are copies of the same point-in-time image of the original data.

=end html

=back



=over 2

=item * I<retention>  =>   B<dp-backup-retention-type>

=begin html

<br>Retention type of backup.

=end html

=back



=head2 dp-progress-failover-info

=begin html

Information about a failover job.

=end html



B<Fields>

=over 2

=item * I<destination-path>  =>   B<string, optional>

=begin html

<br>Destination path for the SnapMirror break operation. This element is not present for event type 'mirror-break-script-start' and 'mirror-break-script-end'.

=end html

=back



=over 2

=item * I<environment-variable-list>  =>   B<L<"environment-variable-info">[], optional>

=begin html

<br>List of environment variables related to the dataset to be passed to the failover script. This element is present only for event type 'mirror-break-script-start'.

=end html

=back



=over 2

=item * I<relationship-id>  =>   B<obj-id, optional>

=begin html

<br>The relationship ID for performing mirror break. This element is not present for event type 'mirror-break-script-start' and 'mirror-break-script-end'.

=end html

=back



=over 2

=item * I<script-exit-status>  =>   B<integer, optional>

=begin html

<br>Exit code of the script. This element is present only for event type 'mirror-break-script-end'. Range: [-2^31..2^31-1]

=end html

=back



=over 2

=item * I<script-path>  =>   B<string, optional>

=begin html

<br>Path of the failover script. This element is present only for event type 'mirror-break-script-start' and 'mirror-break-script-end'.

=end html

=back



=over 2

=item * I<script-run-as>  =>   B<string, optional>

=begin html

<br>Username used to run the failover script. This element is present only for event type 'mirror-break-script-start' and 'mirror-break-script-end'.

=end html

=back



=over 2

=item * I<script-summary>  =>   B<string, optional>

=begin html

<br>Detailed output from the failover script. This element is present only for event type 'mirror-break-script-end'.

=end html

=back



=head2 dp-progress-job-abort-info

=begin html

Information about the abort of a job.

=end html



B<Fields>

=over 2

=item * I<aborted-by>  =>   B<string>

=begin html

<br>User who aborted the job.

=end html

=back



=head2 dp-progress-relationship-info

=begin html

Information about the creation or destruction of a SnapVault or SnapMirror relationship.

=end html



B<Fields>

=over 2

=item * I<bytes-transferred>  =>   B<integer>

=begin html

<br>Bytes transferred as a result of creating a relationship. Zero when for relationship destroy messages. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<destination-volume-or-qtree-id>  =>   B<integer>

=begin html

<br>Numeric ID of destination volume or qtree. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<destination-volume-or-qtree-name>  =>   B<string>

=begin html

<br>Name of the destination volume or qtree. The format is <host-name>:/<volume-name>/<qtree-name>.

=end html

=back



=over 2

=item * I<relationship-type>  =>   B<string>

=begin html

<br>Type of relationship being created or destroyed. Legal values are "snapvault" or "snapmirror".

=end html

=back



=over 2

=item * I<source-volume-or-qtree-id>  =>   B<integer>

=begin html

<br>Numeric ID of the source volume or qtree. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<source-volume-or-qtree-name>  =>   B<string>

=begin html

<br>Numeric ID of the source volume or qtree. The format is <host-name>:/<volume-name>/<qtree-name>.

=end html

=back



=head2 dp-progress-restore-info

=begin html

Information about restore of a path.

=end html



B<Fields>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>ID of the backup instance used for restore. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp>

=begin html

<br>The backup version used for restore.

=end html

=back



=over 2

=item * I<bytes-transferred>  =>   B<integer, optional>

=begin html

<br>Bytes transferred in this operation. Zero when transfer starts. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<destination-path>  =>   B<string, optional>

=begin html

<br>The full path to restore the dataset member to. The format is <host-name>:/<full-path>

=end html

=back



=over 2

=item * I<member-id>  =>   B<integer>

=begin html

<br>The ID of the dataset member to be restored. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<member-name>  =>   B<string>

=begin html

<br>The full name of the dataset member to be restored.

=end html

=back



=over 2

=item * I<path>  =>   B<string>

=begin html

<br>Path to be restored.

=end html

=back



=head2 dp-progress-snapmirror-info

=begin html

Information about the start and end of a SnapMirror transfer.

=end html



B<Fields>

=over 2

=item * I<bytes-transferred>  =>   B<integer>

=begin html

<br>Bytes transferred in this operation. Zero when transfer starts. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<destination-volume-or-qtree-id>  =>   B<integer>

=begin html

<br>Numeric ID of destination volume or qtree of the mirror. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<destination-volume-or-qtree-name>  =>   B<string>

=begin html

<br>Full name of destination volume or qtree of the mirror. The format is <host-name>:/<volume-name>.

=end html

=back



=over 2

=item * I<source-volume-or-qtree-id>  =>   B<integer>

=begin html

<br>Numeric ID of volume or qtree being mirrored. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<source-volume-or-qtree-name>  =>   B<string>

=begin html

<br>Name of volume or qtree being mirrored. The format is <host-name>:/<volume-name>.

=end html

=back



=head2 dp-progress-snapshot-info

=begin html

Information about the creation or deletion of a snapshot.

=end html



B<Fields>

=over 2

=item * I<snapshot-name>  =>   B<string>

=begin html

<br>Name of snapshot

=end html

=back



=over 2

=item * I<volume-id>  =>   B<integer>

=begin html

<br>Numeric ID of volume getting snapshot. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<volume-name>  =>   B<string>

=begin html

<br>Full name of the volume object getting the snapshot. The format is <host-name>:/<volume-name>

=end html

=back



=head2 dp-progress-snapvault-info

=begin html

Information about the start and end of a SnapVault transfer.

=end html



B<Fields>

=over 2

=item * I<bytes-transferred>  =>   B<integer>

=begin html

<br>Bytes transferred in this operation. Zero when transfer starts. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<destination-qtree-id>  =>   B<integer>

=begin html

<br>Numeric ID of qtree receiving back up. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<destination-qtree-name>  =>   B<string>

=begin html

<br>Name of qtree receiving backed up. The format is <host-name>:/<volume-name>/<qtree-name>.

=end html

=back



=over 2

=item * I<source-qtree-id>  =>   B<integer>

=begin html

<br>Numeric ID of qtree being backed up. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<source-qtree-name>  =>   B<string>

=begin html

<br>Name of qtree being backed up. The format is <host-name>:/<volume-name>/<qtree-name>

=end html

=back



=head2 dp-scheduled-job

=begin html

Describes a scheduled data protection job. Each job has a scheduled start time and protects a single dataset. Scheduler service is responsible for starting job at its scheduled time. Type of job is inferred from which dp-*-job-data element is present. Only one of all possible dp-*-job-data elements can be present. Scheduled job does not have a job id. When scheduler service is about to start the job, it creates a job record in the persistent database and at that time job gets its id.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<integer>

=begin html

<br>Id of the dataset being protected by the job. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<dp-local-snapshot-job-data>  =>   B<L<"dp-local-snapshot-job-data">, optional>

=begin html

<br>Data for local-snapshot job.

=end html

=back



=over 2

=item * I<dp-snapmirror-transfer-job-data>  =>   B<L<"dp-snapmirror-transfer-job-data">, optional>

=begin html

<br>Data for snapmirror-transfer job.

=end html

=back



=over 2

=item * I<dp-snapvault-transfer-job-data>  =>   B<L<"dp-snapvault-transfer-job-data">, optional>

=begin html

<br>Data for snapvault-transfer job.

=end html

=back



=over 2

=item * I<scheduled-time>  =>   B<integer>

=begin html

<br>Time when job is scheduled to start. Value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. Sometimes, the start time of the job can be delayed and the start time in that case will reflect the delay. The scheduled-time will always indicate the time when the job was scheduled to start.

=end html

=back



=over 2

=item * I<start-time>  =>   B<integer>

=begin html

<br>Time when job needs to start. Value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. Scheduler service is responsible for starting the job at this time.

=end html

=back



=head2 dp-snapmirror-transfer-job-data

=begin html

Data for snapmirror-transfer job. If this element is present, job is responsible for transferring data between two storagesets associated with the specified connection using SnapMirror protocol.

=end html



B<Fields>

=over 2

=item * I<connection-id>  =>   B<integer>

=begin html

<br>Id of the policy connection that needs SnapMirror transfer. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type>

=begin html

<br>Retention to be used for the pre/post backup script in the snapmirror-transfer job only.

=end html

=back



=head2 dp-snapvault-transfer-job-data

=begin html

Data for snapvault-transfer job. If this element is present, job is responsible for transferring data between two storagesets associated with the specified connection using SnapVault protocol.

=end html



B<Fields>

=over 2

=item * I<connection-id>  =>   B<integer>

=begin html

<br>Id of the policy connection that needs SnapVault transfer. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type>

=begin html

<br>Retention to be used for the backup created by snapvault-transfer job.

=end html

=back



=head2 dp-timestamp

=begin html

Seconds since 1/1/1970 in UTC. Range: [0..2^31-1]. This runs out in 2036, so update the API some time before then.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 environment-variable-info

=begin html

Information about an environment variable.

=end html



B<Fields>

=over 2

=item * I<name>  =>   B<string>

=begin html

<br>Environment variable name.

=end html

=back



=over 2

=item * I<value>  =>   B<string>

=begin html

<br>Value of an environment variable.

=end html

=back



=head2 job-type

=begin html

Job type.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 progress-aggregate-info

=begin html

Information about the aggregate

=end html



B<Fields>

=over 2

=item * I<aggregate-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the aggregate

=end html

=back



=over 2

=item * I<aggregate-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the aggregate

=end html

=back



=head2 progress-cifs-share-info

=begin html

Information about the CIFS share created as part of provisioning operation.

=end html



B<Fields>

=over 2

=item * I<cifs-acl-list>  =>   B<L<"cifs-acl">[], optional>

=begin html

<br>CIFS access control list set on the CIFS share.

=end html

=back



=over 2

=item * I<cifs-share-name>  =>   B<string>

=begin html

<br>Name of the CIFS share.

=end html

=back



=over 2

=item * I<vol-or-qtree-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the volume or qtree for which the CIFS share is created.

=end html

=back



=over 2

=item * I<vol-or-qtree-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the volume or qtree for which the CIFS share is created.

=end html

=back



=head2 progress-host-service-info

=begin html

Information about the storage service.

=end html



B<Fields>

=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the host service.

=end html

=back



=over 2

=item * I<host-service-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the host service.

=end html

=back



=over 2

=item * I<operation-id>  =>   B<host-service-unique-id>

=begin html

<br>Id of the operation assigned by the host service.

=end html

=back



=head2 progress-igroup-config-info

=begin html

Information about initiators being added or removed to/from an initiator group of a job.

=end html



B<Fields>

=over 2

=item * I<igroup-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the initiator group to which initiators are added or destroyed in a provisioning job.

=end html

=back



=over 2

=item * I<igroup-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the initiator group to which initiators are added or destroyed in a provisioning job.

=end html

=back



=over 2

=item * I<initiators>  =>   B<string>

=begin html

<br>Comma separated list of initiators that are added or removed in this provisioning job.

=end html

=back



=head2 progress-igroup-info

=begin html

Information about the initiator group of a job.

=end html



B<Fields>

=over 2

=item * I<igroup-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the initiator group which is created or destroyed in the provisioning job.

=end html

=back



=over 2

=item * I<igroup-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the initiator group which is created or destroyed in the provisioning job.

=end html

=back



=head2 progress-lun-info

=begin html

Information about the lun being provisioned or destroyed in a provisioning job.

=end html



B<Fields>

=over 2

=item * I<lun-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the LUN that is provisioned or destroyed

=end html

=back



=over 2

=item * I<lun-path-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the LUN.

=end html

=back



=head2 progress-lun-map-info

=begin html

Information about the mapping of a LUN.

=end html



B<Fields>

=over 2

=item * I<igroup-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the initiator group to which the LUN is mapped.

=end html

=back



=over 2

=item * I<igroup-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the initiator group to which the LUN is mapped.

=end html

=back



=over 2

=item * I<lun-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the LUN that is mapped.

=end html

=back



=over 2

=item * I<lun-path-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the LUN that is mapped.

=end html

=back



=head2 progress-nfsexport-info

=begin html

Information about the NFS export created as part of provisioning operation.

=end html



B<Fields>

=over 2

=item * I<path>  =>   B<string>

=begin html

<br>Name of the NFS export by which it can be accessed.

=end html

=back



=over 2

=item * I<qtree-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the qtree for which the NFS export is created.

=end html

=back



=over 2

=item * I<qtree-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the qtree for which the NFS export is created.

=end html

=back



=head2 progress-qtree-info

=begin html

Information about a qtree which is created or destroyed in the provisioning job.

=end html



B<Fields>

=over 2

=item * I<qtree-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the qtree provisioned or destroyed.

=end html

=back



=over 2

=item * I<qtree-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the qtree provisioned or destroyed.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the volume to which the qtree belongs to.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the volume to which the qtree belongs to.

=end html

=back



=head2 progress-quota-info

=begin html

Information about the quota of a qtree.

=end html



B<Fields>

=over 2

=item * I<default-group-quota>  =>   B<integer, optional>

=begin html

<br>Default group quota value set in bytes. Range: [1..2^63-1].

=end html

=back



=over 2

=item * I<default-user-quota>  =>   B<integer, optional>

=begin html

<br>Default user quota value set in bytes. Range: [1..2^63-1].

=end html

=back



=over 2

=item * I<qtree-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the qtree on which the quotas are set.

=end html

=back



=over 2

=item * I<qtree-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the qtree on which the quotas are set.

=end html

=back



=over 2

=item * I<tree-quota>  =>   B<integer, optional>

=begin html

<br>Tree quota value set in bytes. Range: [1..2^63-1].

=end html

=back



=head2 progress-resource-pool-info

=begin html

Information about the resource pool and its members.

=end html



B<Fields>

=over 2

=item * I<resource-pool-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the resource pool.

=end html

=back



=over 2

=item * I<resource-pool-members>  =>   B<L<"resource-pool-member">[]>

=begin html

<br>Information about the members of the resource pool.

=end html

=back



=over 2

=item * I<resource-pool-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the reource pool.

=end html

=back



=head2 progress-script-run-info

=begin html

Information about the post provisioning script which is run.

=end html



B<Fields>

=over 2

=item * I<script-name>  =>   B<string>

=begin html

<br>Name of the script with its absolute path.

=end html

=back



=head2 progress-storage-service-info

=begin html

Information about the storage service.

=end html



B<Fields>

=over 2

=item * I<storage-service-description>  =>   B<string>

=begin html

<br>Description of the storage service.

=end html

=back



=over 2

=item * I<storage-service-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the storage service.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the storage service.

=end html

=back



=head2 progress-storage-system-info

=begin html

Information about the discovered storage system.

=end html



B<Fields>

=over 2

=item * I<storage-system-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the storage system.

=end html

=back



=over 2

=item * I<storage-system-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the storage system.

=end html

=back



=head2 progress-vfiler-info

=begin html

Information about creating a vfiler

=end html



B<Fields>

=over 2

=item * I<filer-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the storage system.

=end html

=back



=over 2

=item * I<filer-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the storage system on which the vfiler is being created.

=end html

=back



=over 2

=item * I<ipaddress>  =>   B<string>

=begin html

<br>IP address of the vfiler

=end html

=back



=over 2

=item * I<ipspace>  =>   B<string>

=begin html

<br>IPspace of the vfiler

=end html

=back



=over 2

=item * I<vfiler-id>  =>   B<obj-id, optional>

=begin html

<br>Database identifier of the vFiler unit

=end html

=back



=over 2

=item * I<vfiler-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the vFiler unit which is created

=end html

=back



=head2 progress-vfiler-storage-info

=begin html

Information about adding storage to a vFiler.

=end html



B<Fields>

=over 2

=item * I<vfiler-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the vFiler to which storage is added.

=end html

=back



=over 2

=item * I<vfiler-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the vFiler to which storage is added.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the volume which is added to the vFiler.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the volume which is added to the vFiler.

=end html

=back



=head2 progress-volume-dedupe-info

=begin html

Information about the deduplication operation on the volume.

=end html



B<Fields>

=over 2

=item * I<dedupe-progress>  =>   B<string, optional>

=begin html

<br>The progress of the current deduplication operation on the volume with information as to which stage of deduplication is currently in progress and how much data is processed for that stage. For eg: "25 MB Scanned, 20MB Searched, 40MB (20%) Done , 30MB Verified".

=end html

=back



=over 2

=item * I<dedupe-schedule>  =>   B<string, optional>

=begin html

<br>Specifies the deduplication schedule set on the volume.

=end html

=back



=over 2

=item * I<dedupe-status>  =>   B<string, optional>

=begin html

<br>Deduplication operation status of the volume. Possible values: "idle", "active", "pending", or "undoing".

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the volume on which the deduplication is run.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the volume on which the deduplication operation is run.

=end html

=back



=head2 progress-volume-info

=begin html

Information about the volume of on which a provisioning operation is executed.

=end html



B<Fields>

=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the volume on which the provisioning operation is executed.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the volume on which the provisioning operation is executed.

=end html

=back



=head2 progress-volume-option-info

=begin html

Information about the volume options set.

=end html



B<Fields>

=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the volume on which the provisioning operation is executed.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the volume on which the provisioning operation is executed.

=end html

=back



=over 2

=item * I<volume-options>  =>   B<L<"volume-option">[]>

=begin html

<br>A list of of volume options and its values.

=end html

=back



=head2 provision-request-info

=begin html

Information of a single provisioning request

=end html



B<Fields>

=over 2

=item * I<dedupe-member-request-info>  =>   B<L<"dedupe-member-request-info">, optional>

=begin html

<br>Information specific to the 'dedupe_member' request. Returned only when job-type is 'dedupe_member'.

=end html

=back



=over 2

=item * I<delete-snapshots-request-info>  =>   B<L<"delete-snapshots-request-info">, optional>

=begin html

<br>Information specific to the snapshot deletion request. Returned only when the job-type is 'delete_snapshots'.

=end html

=back



=over 2

=item * I<destroy-member-request-info>  =>   B<L<"destroy-member-request-info">, optional>

=begin html

<br>Information specific to the 'destroy_member' request. Returned only when job-type is 'destroy_member'.

=end html

=back



=over 2

=item * I<provision-member-request-info>  =>   B<L<"provision-member-request-info">, optional>

=begin html

<br>Information specific to the 'provision_member' request. Returned only when job-type is 'provision_member'.

=end html

=back



=over 2

=item * I<resize-member-request-info>  =>   B<L<"resize-member-request-info">, optional>

=begin html

<br>Information specific to the resize related provisioning request. Returned only when job-type is 'resize_member'.

=end html

=back



=over 2

=item * I<undedupe-member-request-info>  =>   B<L<"undedupe-member-request-info">, optional>

=begin html

<br>Information specific to the 'undedupe_member' request. Returned only when job-type is 'undedupe_member'.

=end html

=back



=head2 resource-pool-member

=begin html

Information about the member of the resource pool.

=end html



B<Fields>

=over 2

=item * I<resource-pool-member-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the resource pool member.

=end html

=back



=over 2

=item * I<resource-pool-member-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the reource pool member.

=end html

=back



=head2 volume-option

=begin html

Information about option and its value.

=end html



B<Fields>

=over 2

=item * I<option-name>  =>   B<string>

=begin html

<br>Name of a volume option as defined in ONTAP.

=end html

=back



=over 2

=item * I<option-value>  =>   B<string>

=begin html

<br>Value of the volume option as allowed in ONTAP.

=end html

=back



=head2 dataset-reference

=begin html

The name and id of a dataset.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Identifier for the dataset. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of the dataset.

=end html

=back



=head2 dp-ossv-directory-info

=begin html

Information about one directory.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<integer, optional>

=begin html

<br>If is-in-dataset is true, then this is the ID number of the dataset to which the directory belongs. This field is deprecated in favor of datasets, which lists all datasets the directory belongs to. It is still populated with one of the dataset ids.

=end html

=back



=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>A list of the names and identifiers of the datasets this directory belongs to. If is-in-dataset is false, this list will be empty.

=end html

=back



=over 2

=item * I<dir-id>  =>   B<integer>

=begin html

<br>ID of the directory. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<host-id>  =>   B<integer>

=begin html

<br>ID of the host that contains this directory. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>Name of the host that contains this directory.

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>True if this directory and it's parent host are up and online. Since OSSV hosts can only be contacted with valid credentials, if the login credentials are unset or invalid, the is-available status will be false. Only output if the call to iter-start included the "include-is-available" flag.

=end html

=back



=over 2

=item * I<is-browsable>  =>   B<boolean>

=begin html

<br>Set to true if the directory path can be used as an input to dp-ossv-directory-browse-iter-start. If set to false, this path is guaranteed not to have browsable child paths.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean>

=begin html

<br>Indicates that the directory is marked as ignored by Freya/DFM for the purposes of data protection.

=end html

=back



=over 2

=item * I<is-in-backup-relationship>  =>   B<boolean>

=begin html

<br>Indicates that the directory is in a backup relationship.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean>

=begin html

<br>Indicates if the directory is a member of any dataset.

=end html

=back



=over 2

=item * I<path>  =>   B<string>

=begin html

<br>Path of the directory.

=end html

=back



=head2 dp-ossv-directory-name

=begin html

Name of one subdirectory. The name is relative to the parent directory ("directory-path" in the dp-ossv-directory-browse-iter-start API). If the parent directory was empty, then this will be an absolute path. The name will always end with a slash character appropriate to the host operating system of the OSSV agent, unless the path is a special directory which has no children.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-ossv-directory-root-info

=begin html

Information about one filesystem root.

=end html



B<Fields>

=over 2

=item * I<filesystem-device>  =>   B<string, optional>

=begin html

<br>Filesystem device from NDMP. Included only if fs-info is true.

=end html

=back



=over 2

=item * I<filesystem-state>  =>   B<string, optional>

=begin html

<br>Filesystem state from NDMP. Included only if fs-info is true.

=end html

=back



=over 2

=item * I<filesystem-type>  =>   B<string, optional>

=begin html

<br>Filesystem type from NDMP. Included only if fs-info is true.

=end html

=back



=over 2

=item * I<host-id>  =>   B<integer>

=begin html

<br>ID of the host that contains this root. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>Name of the host that contains this root.

=end html

=back



=over 2

=item * I<root-path>  =>   B<string>

=begin html

<br>Path of the filesystem root. For example: "C:\" or "/".

=end html

=back



=head2 ossv-application-info

=begin html

Application related information.

=end html



B<Fields>

=over 2

=item * I<can-backup>  =>   B<boolean>

=begin html

<br>If true this component can be added to a dataset.

=end html

=back



=over 2

=item * I<is-leaf>  =>   B<boolean>

=begin html

<br>If true this path cannot be browsed further. If false the path can be specified as input to the dp-ossv-application-list-info-iter-start zapi.

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>The display name for the application component.

=end html

=back



=over 2

=item * I<path>  =>   B<string>

=begin html

<br>The application path to be used for further browsing components under this path.

=end html

=back



=over 2

=item * I<unique-id>  =>   B<string, optional>

=begin html

<br>Universal unique identifier for the application component.

=end html

=back



=head2 ossv-application-restore-destination-info

=begin html

OSSV host related information.

=end html



B<Fields>

=over 2

=item * I<host-full-name>  =>   B<obj-full-name>

=begin html

<br>The fully qualified domain name of the host.

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>The ID of the OSSV host.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name>

=begin html

<br>The name of the OSSV host.

=end html

=back



=head2 ossv-host-name-or-id

=begin html

Name or ID of a host. IP addresses are also accepted.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-policy-connection-info

=begin html

Information about a connection from one node to another in a DP policy. The connection's properties are represented by optional elements. The rules for when a property is present or absent are defined in the property's <b>Description</b>, and depend on the type of connection.

=end html



B<Fields>

=over 2

=item * I<backup-schedule-id>  =>   B<obj-id, optional>

=begin html

<br>An object ID for the backup schedule for this connection. The backup schedule specifies when to create backup snapshots and transfer them to backup secondaries. <p> The value of <b>backup-schedule-id</b> may be 0, in which case no backup schedule is set for this connection, and backups will be created only when initiated by the user. If the value is not 0, it must be the ID of a DP schedule object. <p> If both <b>backup-schedule-id</b> and <b>backup-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>backup-schedule-id</b> determines the ID of the backup schedule, and the value of <b>backup-schedule-name</b> is ignored. If neither <b>backup-schedule-id</b> nor <b>backup-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is an ID of 0 (equivalent to a name of ""), which means no backup schedule is set. <p> Both <b>backup-schedule-id</b> and <b>backup-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b> for backup connections. <p> This property is present only for backup connections.

=end html

=back



=over 2

=item * I<backup-schedule-name>  =>   B<obj-name, optional>

=begin html

<br>An object name for the backup schedule for this connection. The backup schedule specifies when to create backup snapshots and transfer them to backup secondaries. The value of <b>backup-schedule-name</b> may be the empty string (""), in which case no backup schedule is set for this connection, and backups will be created only when initiated by the user. If the value is not "", it must be the name of a DP schedule object. <p> If both <b>backup-schedule-id</b> and <b>backup-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>backup-schedule-id</b> determines the ID of the backup schedule, and the value of <b>backup-schedule-name</b> is ignored. If neither <b>backup-schedule-id</b> nor <b>backup-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is a name of "" (equivalent to an ID of 0), which means no backup schedule is set. <p> Both <b>backup-schedule-id</b> and <b>backup-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b> for backup connections. <p> This property is present only for backup connections.

=end html

=back



=over 2

=item * I<from-node-id>  =>   B<integer>

=begin html

<br>ID of node at source of the connection. This is assigned by the system, and therefore may not be modified. The node at the root of the graph is id 1. Range: [1..2^31 - 1].

=end html

=back



=over 2

=item * I<from-node-name>  =>   B<string>

=begin html

<br>Name of node at source of the connection. It is returned in the policy list query with a maximum length of 255 characters.

=end html

=back



=over 2

=item * I<id>  =>   B<integer>

=begin html

<br>ID of the connection. This is assigned by the system, and therefore may not be modified. Range: [1..2^31 - 1].

=end html

=back



=over 2

=item * I<is-dr-capable>  =>   B<boolean>

=begin html

<br>Indicates whether this link is DR capable. This read only flag cannot be changed by dp-policy-modify but will be returned by the dp-policy-list-iter-next ZAPI.

=end html

=back



=over 2

=item * I<is-lag-error-enabled>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the system should generate an error event when the newest backup or mirrored copy is older than <b>lag-error-threshold</b>. The default value of this property is <b>true</b>. <p> This property is present for both backup and mirror connections.

=end html

=back



=over 2

=item * I<is-lag-warning-enabled>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the system should generate a warning event when the newest backup or mirrored copy is older than <b>lag-warning-threshold</b>. The default value of this property is <b>true</b>. <p> This property is present for both backup and mirror connections.

=end html

=back



=over 2

=item * I<lag-error-threshold>  =>   B<integer, optional>

=begin html

<br>Lag, in seconds. If backup or mirrored copy is older than this amount and if <b>is-lag-error-enabled</b> is set, the system generates an error event. The default value of this property is 172800 seconds (which is 2 days). Range: [1..2^31 - 1]. <p> This property is present for both backup and mirror connections.

=end html

=back



=over 2

=item * I<lag-warning-threshold>  =>   B<integer, optional>

=begin html

<br>Lag, in seconds. If backup or mirrored copy is older than this amount and if <b>is-lag-warning-enabled</b> is set, the system generates a warning event. The default value of this property is 129600 seconds (which is 1.5 days). Range: [1..2^31 - 1]. <p> This property is present for both backup and mirror connections.

=end html

=back



=over 2

=item * I<mirror-schedule-id>  =>   B<obj-id, optional>

=begin html

<br>An object ID for the mirror schedule for this connection. The mirror schedule specifies when to transfer data via an <b>asynchronous</b> mirror. Synchronous and semi-synchronous mirrors are not supported. <p> The value of <b>mirror-schedule-id</b> may be 0, in which case no mirror schedule is set for this connection. If the value is not 0, it must be the ID of a DP schedule object. <p> If no mirror schedule is set for this connection, then the mirror relationship is <b>idle</b>, which means mirroring occurs only when the user initiates it manually. <p> If both <b>mirror-schedule-id</b> and <b>mirror-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>mirror-schedule-id</b> determines the ID of the mirror schedule, and the value of <b>mirror-schedule-name</b> is ignored. If neither <b>mirror-schedule-id</b> nor <b>mirror-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is an ID of 0 (equivalent to a name of ""), which means no mirror schedule is set. <p> Both <b>mirror-schedule-id</b> and <b>mirror-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b> for mirror connections. <p> This property is present only for mirror connections.

=end html

=back



=over 2

=item * I<mirror-schedule-name>  =>   B<obj-name, optional>

=begin html

<br>An object name for the mirror schedule for this connection. The mirror schedule specifies when to transfer data via an <b>asynchronous</b> mirror. Synchronous and semi-synchronous mirrors are not supported. <p> The value of <b>mirror-schedule-name</b> may be the empty string (""), in which case no mirror schedule is set for this connection. If the value is not "", it must be the name of a DP schedule object. <p> If no mirror schedule is set for this connection, then the mirror relationship is <b>idle</b>, which means mirroring occurs only when the user initiates it manually. <p> If both <b>mirror-schedule-id</b> and <b>mirror-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>mirror-schedule-id</b> determines the ID of the mirror schedule, and the value of <b>mirror-schedule-name</b> is ignored. If neither <b>mirror-schedule-id</b> nor <b>mirror-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is a name of "" (equivalent to an ID of 0), which means no mirror schedule is set. <p> Both <b>mirror-schedule-id</b> and <b>mirror-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b> for mirror connections. <p> This property is present only for mirror connections.

=end html

=back



=over 2

=item * I<throttle-schedule-id>  =>   B<obj-id, optional>

=begin html

<br>An object ID that specifies the throttle schedule for this connection. A throttle schedule specifies an upper limit, varying over time, on the network bandwidth used to make backups for a single dataset. This limit applies to the total amount of bandwidth that may be used at one time by all active transfers over protection relationships associated with this connection. <p> The value of <b>throttle-schedule-id</b> may be 0, in which case no throttle is set for this connection, and there is no limit on data transfer bandwidth. If the value is not 0, it must be the ID of a DP throttle object. <p> If both <b>throttle-schedule-id</b> and <b>throttle-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>throttle-schedule-id</b> determines the ID of the throttle, and the value of <b>throttle-schedule-name</b> is ignored. If neither <b>throttle-schedule-id</b> nor <b>throttle-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is an ID of 0 (equivalent to a name of ""), which means no throttle is set. <p> Both <b>throttle-schedule-id</b> and <b>throttle-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b>. <p> This property is present for both backup and mirror connections.

=end html

=back



=over 2

=item * I<throttle-schedule-name>  =>   B<obj-name, optional>

=begin html

<br>An object name that specifies the throttle schedule for this connection. A throttle schedule specifies an upper limit, varying over time, on the network bandwidth used to make backups for a single dataset. This limit applies to the total amount of bandwidth that may be used at one time by all active transfers over protection relationships associated with this connection. <p> The value of <b>throttle-schedule-name</b> may be the empty string (""), in which case no throttle is set for this connection, and there is no limit on data transfer bandwidth. If the value is not "", it must be the name of a DP throttle object. <p> If both <b>throttle-schedule-id</b> and <b>throttle-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>throttle-schedule-id</b> determines the ID of the throttle, and the value of <b>throttle-schedule-name</b> is ignored. If neither <b>throttle-schedule-id</b> nor <b>throttle-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is a name of "" (equivalent to an ID of 0), which means no throttle is set. <p> Both <b>throttle-schedule-id</b> and <b>throttle-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b>. <p> This property is present for both backup and mirror connections.

=end html

=back



=over 2

=item * I<to-node-id>  =>   B<integer>

=begin html

<br>ID of node at destination of the connection. This is assigned by the system, and therefore may not be modified. The node at the root of the graph is id 1. Range: [1..2^31 - 1].

=end html

=back



=over 2

=item * I<to-node-name>  =>   B<string>

=begin html

<br>Name of node at destination of the connection. It is returned in the policy list query with a maximum length of 255 characters.

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Type of the connection. Allowed values are "backup" or "mirror". This element may not be modified.

=end html

=back



=head2 dp-policy-content

=begin html

All content of a single policy, including its name, description, topology (nodes and connections), and the properties for each node and connection.

=end html



B<Fields>

=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>Description of the policy. It may contain from 0 to 255 characters. If the length of a <b>description</b> passed as input to <b>dp-policy-modify</b> is longer than 255 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY. The <b>description</b> always appears in the output from <b>dp-policy-list-iter-next</b>. If the <b>description</b> is omitted from the input to <b>dp-policy-modify</b>, then the default value is the empty string "".

=end html

=back



=over 2

=item * I<dp-policy-connections>  =>   B<L<"dp-policy-connection-info">[], optional>

=begin html

<br>List of connections between nodes of the policy. In the output from <b>dp-policy-list-iter-next</b>, this list is sorted in order of increasing connection ID. In the input to <b>dp-policy-modify</b>, it need not be sorted. However, in input to <b>dp-policy-modify</b>, there must be a one-one mapping between entries in this array and connections in the policy graph, or else the call fails because it is attempting to change the policy's topology. <p> The default value is an empty list. If a policy has only a single node and therefore no connections, you may omit this element from the input to <b>dp-policy-modify</b>. It is always present in the output from <b>dp-policy-list-iter-next</b>.

=end html

=back



=over 2

=item * I<dp-policy-nodes>  =>   B<L<"dp-policy-node-info">[]>

=begin html

<br>List of nodes in the policy. In the output from <b>dp-policy-list-iter-next</b>, this list is sorted in order of increasing node ID. In the input to <b>dp-policy-modify</b>, it need not be sorted. However, in input to <b>dp-policy-modify</b>, there must be a one-one mapping between entries in this array and nodes in the policy graph, or else the call fails because it is attempting to change the policy's topology.

=end html

=back



=over 2

=item * I<name>  =>   B<obj-name>

=begin html

<br>Name of the policy. Each DP policy has a name that is unique among DP policies, but may be the same as an object of some other type.

=end html

=back



=head2 dp-policy-info

=begin html

Contains all information about a single DP policy, including its content and metadata such as its ID.

=end html



B<Fields>

=over 2

=item * I<dp-policy-content>  =>   B<L<"dp-policy-content">>

=begin html

<br>Content of the policy.

=end html

=back



=over 2

=item * I<id>  =>   B<obj-id>

=begin html

<br>Object ID for the policy.

=end html

=back



=over 2

=item * I<is-application-compatible>  =>   B<boolean>

=begin html

<br>If <b>false</b>, this policy cannot be assigned to an application dataset.

=end html

=back



=over 2

=item * I<is-modifiable>  =>   B<boolean>

=begin html

<br>If <b>false</b>, this policy is one of the sample policies that is created at installation time, therefore it may not be deleted using <b>dp-policy-destroy</b> and may not be modified using <b>dp-policy-modify</b>. If <b>true</b>, it is not one of the sample policies, therefore it may be deleted or modified. This element cannot be modified.

=end html

=back



=over 2

=item * I<is-non-disruptive-restore-compatible>  =>   B<boolean>

=begin html

<br>If <b>false</b>, this policy can not be assigned to a dataset with the <b>requires-non-disruptive-restore</b> attribute set. If set to <b>true</b> and applied to a data set with the <b>requires-non-disruptive-restore</b> attribute set to true, Protection Manager will configure the dataset such that Backup connections will support non-disruptive restores. This does not mean that all backup versions and restore requests will support non-disruptive restore &mdash; the caller must check the <b>supports-non-disruptive-restore</b> output element from the <b>dp-backup-list</b> iterator.

=end html

=back



=head2 dp-policy-node-info

=begin html

Information about a node in a DP policy. The node's properties are represented by optional elements. The rules for when a property is present or absent are defined in the property's <b>Description</b>, and depend on the type of node. <p> There is a set of properties associated with nodes that determine how long the system retains backups. Each backup falls into one of these four <b>retention classes</b>: <b>hourly</b>, <b>daily</b>, <b>weekly</b>, or <b>monthly</b>. The following eight properties determine how long backups are retained for each of the retention classes: <UL> <LI> <b>hourly-retention-count</b> <LI> <b>hourly-retention-duration</b> <LI> <b>daily-retention-count</b> <LI> <b>daily-retention-duration</b> <LI> <b>weekly-retention-count</b> <LI> <b>weekly-retention-duration</b> <LI> <b>monthly-retention-count</b> <LI> <b>monthly-retention-duration</b> </UL> A backup <b>expires</b> when its age, in seconds, exceeds the retention duration set for its retention class on the node on which it is stored. After a backup expires, whenever the number of newer backups in its retention class at least equals the retention count for its class, then the expired backup is deleted. <p> All eight of the retention properties are present only on the root node and on backup secondary nodes. On the root node, the retention properties apply to local snapshots created on the root node. On backup secondary nodes, the retention properties apply to backups of primary node data that are stored on the backup secondary node. The retention properties are absent from mirror destination nodes because a mirror destination retains the same set of backups as its mirror source.

=end html



B<Fields>

=over 2

=item * I<backup-script-path>  =>   B<string, optional>

=begin html

<br>Absolute path on the management station to the script to invoke both before and after backing up a backup primary node. The script is invoked when either a primary node is backed up to a secondary node or a local backup is created on the root node. <p> The path consists of 0 to 255 characters. If the length of a <b>backup-script-path</b> passed as input to <b>dp-policy-modify</b> is longer than 255 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY. An empty string value "" indicates no script is invoked. The system does not check whether a non-empty path string actually refers to an executable script prior to attempting to run the script. The default value of this property is the empty string "". <p> This property is present only for the root node.

=end html

=back



=over 2

=item * I<backup-script-run-as>  =>   B<string, optional>

=begin html

<br>The backup script is run on the management station by the user with this username. The value of this property is used only if the management system is running on a Unix host. On Windows the script is always invoked using the LocalSystem account. <p> The username consists of 0 to 64 characters. If the length of a <b>backup-script-run-as</b> passed as input to <b>dp-policy-modify</b> is longer than 64 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY. The system does not check whether a user with this username actually exists prior to attempting to run the script. <p> The default value of this property is the empty string "". If the property value is "", then on Unix the script is run by the superuser ("root"). <p> This property is present only for the root node.

=end html

=back



=over 2

=item * I<daily-retention-count>  =>   B<integer, optional>

=begin html

<br>Minimum number of backups from the daily retention class that the system retains on this node. Range: [0..252]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=over 2

=item * I<daily-retention-duration>  =>   B<integer, optional>

=begin html

<br>The age, in seconds, after which a backup from the daily retention class expires on this node. Range: [0..2^31 - 1]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=over 2

=item * I<failover-script-path>  =>   B<string, optional>

=begin html

<br>Absolute path on the management station to the script to invoke both before and after breaking mirrors during a failover operation. <p> The path consists of 0 to 255 characters. If the length of a <b>failover-script-path</b> passed as input to <b>dp-policy-modify</b> is longer than 255 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY. An empty string value "" indicates no script is invoked. The system does not check whether a non-empty path string actually refers to an executable script prior to attempting to run the script. The default value of this property is the empty string "". <p> This property is present only for the root node.

=end html

=back



=over 2

=item * I<failover-script-run-as>  =>   B<string, optional>

=begin html

<br>The failover script is run on the management station by the user with this username. The value of this property is used only if the management system is running on a Unix host. On Windows the script is always invoked using the LocalSystem account. <p> The username consists of 0 to 64 characters. If the length of a <b>failover-script-run-as</b> passed as input to <b>dp-policy-modify</b> is longer than 64 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY. The system does not check whether a user with this username actually exists prior to attempting to run the script. <p> The default value of this property is the empty string "". If the property value is "", then on Unix the script is run by the superuser ("root"). <p> This property is present only for the root node.

=end html

=back



=over 2

=item * I<hourly-retention-count>  =>   B<integer, optional>

=begin html

<br>Minimum number of backups from the hourly retention class that the system retains on this node. Range: [0..252]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=over 2

=item * I<hourly-retention-duration>  =>   B<integer, optional>

=begin html

<br>The age, in seconds, after which a backup from the hourly retention class expires on this node. Range: [0..2^31 - 1]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=over 2

=item * I<id>  =>   B<integer>

=begin html

<br>Identifier of the node. This is assigned by the system, and therefore may not be modified. The node at the root of the graph is id 1. Range: [1..2^31 - 1].

=end html

=back



=over 2

=item * I<is-lag-error-enabled>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the system should generate an error event when the newest local backup copy is older than <b>lag-error-threshold</b>. The default value of this property is <b>true</b>. <p> This property is present for root node only.

=end html

=back



=over 2

=item * I<is-lag-warning-enabled>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the system should generate a warning event when the newest local backup copy is older than <b>lag-warning-threshold</b>. The default value of this property is <b>true</b>. <p> This property is present for root node only.

=end html

=back



=over 2

=item * I<lag-error-threshold>  =>   B<integer, optional>

=begin html

<br>Lag, in seconds. If local backup copy is older than this amount and if <b>is-lag-error-enabled</b> is set, the system generates an error event. The default value of this property is 172800 seconds (which is 2 days). Range: [1..2^31 - 1]. <p> This property is present for root node only.

=end html

=back



=over 2

=item * I<lag-warning-threshold>  =>   B<integer, optional>

=begin html

<br>Lag, in seconds. If local backup copy is older than this amount and if <b>is-lag-warning-enabled</b> is set, the system generates a warning event. The default value of this property is 129600 seconds (which is 1.5 days). Range: [1..2^31 - 1]. <p> This property is present for root node only.

=end html

=back



=over 2

=item * I<monthly-retention-count>  =>   B<integer, optional>

=begin html

<br>Minimum number of backups from the monthly retention class that the system retains on this node. Range: [0..252]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=over 2

=item * I<monthly-retention-duration>  =>   B<integer, optional>

=begin html

<br>The age, in seconds, after which a backup from the monthly retention class expires on this node. Range: [0..2^31 - 1]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=over 2

=item * I<name>  =>   B<dp-policy-node-name>

=begin html

<br>Name of the node. Each node has a name that is unique within its policy, but nodes in different policies may share the same name. If the length of a <b>name</b> passed as input to <b>dp-policy-modify</b> is longer than 64 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY.

=end html

=back



=over 2

=item * I<snapshot-schedule-id>  =>   B<obj-id, optional>

=begin html

<br>An object ID for the snapshot schedule for this node. The snapshot schedule specifies when to create local point-in-time snapshot images on the storage elements that map to this node. <p> The value of <b>snapshot-schedule-id</b> may be 0, in which case no snapshot schedule is set for this node. If no snapshot schedule is set, no local snapshots are created. If the value is not 0, it must be the ID of a DP schedule object. <p> If both <b>snapshot-schedule-id</b> and <b>snapshot-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>snapshot-schedule-id</b> determines the ID of the snapshot schedule, and the value of <b>snapshot-schedule-name</b> is ignored. If neither <b>snapshot-schedule-id</b> nor <b>snapshot-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is an ID of 0 (equivalent to a name of ""), which means no snapshot schedule is set. <p> Both <b>snapshot-schedule-id</b> and <b>snapshot-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b> for the root node of a policy. <p> This property is present only for the root node. This is because all data on a non-root node comes from mirror or backup connections, and mirroring and backups create their own snapshots. Therefore there is no reason for a non-root node to generate additional snapshots on its own schedule, because they would contain no new data. <p> If a policy has been applied to a dataset whose root storage set contains OSSV directories, then you cannot set a snapshot schedule for the root node of the policy. This restriction exists because OSSV hosts cannot create local snapshots.

=end html

=back



=over 2

=item * I<snapshot-schedule-name>  =>   B<obj-name, optional>

=begin html

<br>An object name for the snapshot schedule for this node. The snapshot schedule specifies when to create local point-in-time snapshot images on the storage elements that map to this node. <p> The value of <b>snapshot-schedule-name</b> may be the empty string (""), in which case no snapshot schedule is set for this node. If no snapshot schedule is set, no local snapshots are created. If the value is not "", it must be the name of a DP schedule object. <p> If both <b>snapshot-schedule-id</b> and <b>snapshot-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then <b>snapshot-schedule-id</b> determines the ID of the snapshot schedule, and the value of <b>snapshot-schedule-name</b> is ignored. If neither <b>snapshot-schedule-id</b> nor <b>snapshot-schedule-name</b> appear in the input to <b>dp-policy-modify</b>, then the default value is a name of "" (equivalent to an ID of 0), which means no snapshot schedule is set. <p> Both <b>snapshot-schedule-id</b> and <b>snapshot-schedule-name</b> always appear in the output from <b>dp-policy-list-iter-next</b> for the root node of a policy. <p> This property is present only for the root node. This is because all data on a non-root node comes from mirror or backup connections, and mirroring and backups create their own snapshots. Therefore there is no reason for a non-root node to generate additional snapshots on its own schedule, because they would contain no new data. <p> If a policy has been applied to a dataset whose root storage set contains OSSV directories, then you cannot set a snapshot schedule for the root node of the policy. This restriction exists because OSSV hosts cannot create local snapshots.

=end html

=back



=over 2

=item * I<weekly-retention-count>  =>   B<integer, optional>

=begin html

<br>Minimum number of backups from the weekly retention class that the system retains on this node. Range: [0..252]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=over 2

=item * I<weekly-retention-duration>  =>   B<integer, optional>

=begin html

<br>The age, in seconds, after which a backup from the weekly retention class expires on this node. Range: [0..2^31 - 1]. The default value of this property is 0. <p> This property is present only for root and backup secondary nodes. <p> For more details, see the description of <b>dp-policy-node-info</b>.

=end html

=back



=head2 dp-policy-node-name

=begin html

Name of a node in a DP policy graph. This typedef is an alias for the builtin ZAPI type <b>string</b>. A node name may contain from 1 to 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'). <p> The name of each node in a DP policy must be unique, but nodes in different policies may share the same name. Node names are always compared in a case-insensitive manner. This means that, for example, "a" and "A" are considered to be the same name for purposes of: creating new nodes for a new policy, renaming nodes of an existing policy, or looking up a policy's nodes by name. On the other hand, ZAPIs that return node names do not change the capitalization at all. For example, if a node's name has been set to "Backup", then <b>dp-policy-list-iter-next</b> returns its name as "Backup". <p> Note that a node name has the same format as an <b>obj-name</b>, and has similar properties such as case-insensitivity. However, a node name is not a kind of <b>obj-name</b> because a DP policy node is a part of a DP policy object, but is not itself a first-class DFM object.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-relationship-info

=begin html

Information about a single SnapVault or SnapMirror relationship. Currently, there are three kinds of relationships: SnapVault, Qtree SnapMirror (QSM) and Volume SnapMirror (VSM).

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id, optional>

=begin html

<br>ID of the dataset this relationship is protecting. Not present if this relationship is not protecting a component of a dataset.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the dataset this relationship is protecting. Not present if this relationship is not a protecting a component of a dataset.

=end html

=back



=over 2

=item * I<deleted-by>  =>   B<string, optional>

=begin html

<br>The user who deleted the relationship.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>The time and date when the relationship was deleted.

=end html

=back



=over 2

=item * I<destination-aggregate-id>  =>   B<obj-id, optional>

=begin html

<br>DFM object ID of destination aggregate. If the destination object is a qtree, this is the ID of the aggregate containing the volume that contains the qtree.

=end html

=back



=over 2

=item * I<destination-full-name>  =>   B<obj-full-name>

=begin html

<br>Full name of storage object where this relationship ends.

=end html

=back



=over 2

=item * I<destination-host-id>  =>   B<obj-id>

=begin html

<br>DFM object ID of destination host.

=end html

=back



=over 2

=item * I<destination-host-name>  =>   B<obj-full-name>

=begin html

<br>Fully-qualified domain name of destination host.

=end html

=back



=over 2

=item * I<destination-id>  =>   B<obj-id>

=begin html

<br>DFM Object ID of storage object where this relationship ends.

=end html

=back



=over 2

=item * I<destination-name>  =>   B<obj-name>

=begin html

<br>Name of storage object where this relationship ends.

=end html

=back



=over 2

=item * I<destination-storageset-id>  =>   B<obj-id, optional>

=begin html

<br>DFM object ID of the storage set for the destination for this relationship. This element is only valid for the query if connection-id was supplied.

=end html

=back



=over 2

=item * I<destination-type>  =>   B<relationship-endpoint-type>

=begin html

<br>Type of the destination storage object. SnapVault and Qtree SnapMirror relationships always terminate at a Qtree. Volume SnapMirror relationships always terminate at a Volume.

=end html

=back



=over 2

=item * I<destination-volume-id>  =>   B<obj-id, optional>

=begin html

<br>DFM object ID of destination volume. If the destination object is a qtree, this is the ID of the volume containing that qtree.

=end html

=back



=over 2

=item * I<discovered-timestamp>  =>   B<dp-timestamp>

=begin html

<br>The time and date when the relationship was discovered.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean>

=begin html

<br>True if the source object for this relationship is being ignored by Protection Manager. See the discussion section for the meaning of "ignoring" objects.

=end html

=back



=over 2

=item * I<is-dp-imported>  =>   B<boolean>

=begin html

<br>True if this relationship was at some earlier time imported into a Protection Manager dataset. A relationship may be marked as imported and dp managed and yet not be in a dataset.

=end html

=back



=over 2

=item * I<is-dp-managed>  =>   B<boolean>

=begin html

<br>True if this relationship is set to be managed by Protection Manager. See the discussion section for the meaning of "being managed".

=end html

=back



=over 2

=item * I<is-dp-orphan>  =>   B<boolean>

=begin html

<br>True if this relationship is considered an orphan by Protection Manager. An orphan relationship is a relationship that is managed by Protection Manager and was once part of a dataset but is no longer contained in a dataset.

=end html

=back



=over 2

=item * I<is-dp-redundant>  =>   B<boolean>

=begin html

<br>True if this relationship is considered to be a redundant relationship by Protection Manager. A redundant relationship duplicates the need of a dataset connection by having it's source and destination between the same two nodes as another relationship in the same dataset. It is possible to have more than one redundant relationship in the same dataset.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean>

=begin html

<br>True if the source object for this relationship matches a dataset. <P> A relationship is considered to match a data set if: <ul> <li> the source object is a member of a storage set <li> the destination object is a member of a storage set <li> both storage sets are assigned to adjacent nodes of a single dataset. </ul> <P> If the relationship does not match the above criteria, it is not considered part of a dataset.

=end html

=back



=over 2

=item * I<lag>  =>   B<integer>

=begin html

<br>Seconds since the completion of the last successful transfer to the destination. This value is undefined and will be returned as 0 for Unintialized relationshaps. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<lag-status>  =>   B<obj-status>

=begin html

<br>Lag status of the relationship lag versus the DP policy lag threshold settings. Possible values are "unknown", "normal", "warning" and "error".

=end html

=back



=over 2

=item * I<operational-status>  =>   B<operational-status>

=begin html

<br>Status of the relationship

=end html

=back



=over 2

=item * I<relationship-id>  =>   B<obj-id>

=begin html

<br>Identifier of the relationship.

=end html

=back



=over 2

=item * I<relationship-state>  =>   B<relationship-state>

=begin html

<br>State of the relationship

=end html

=back



=over 2

=item * I<relationship-type>  =>   B<relationship-type>

=begin html

<br>Type of the relationship.

=end html

=back



=over 2

=item * I<source-aggregate-id>  =>   B<obj-id, optional>

=begin html

<br>DFM object ID of source aggregate. Not present if the source object is an OSSV directory.

=end html

=back



=over 2

=item * I<source-full-name>  =>   B<obj-full-name>

=begin html

<br>Full name of storage object where this relationship originates.

=end html

=back



=over 2

=item * I<source-host-id>  =>   B<obj-id>

=begin html

<br>DFM object ID of source host.

=end html

=back



=over 2

=item * I<source-host-name>  =>   B<obj-full-name>

=begin html

<br>Fully-qualified domain name of source host.

=end html

=back



=over 2

=item * I<source-id>  =>   B<obj-id>

=begin html

<br>DFM object ID of storage object where this relationship originates.

=end html

=back



=over 2

=item * I<source-name>  =>   B<obj-name>

=begin html

<br>Name of storage object where this relationship originates.

=end html

=back



=over 2

=item * I<source-storageset-id>  =>   B<obj-id, optional>

=begin html

<br>DFM object ID of the storage set for the source for this relationship. This element is only valid for the query if connection-id was supplied.

=end html

=back



=over 2

=item * I<source-type>  =>   B<relationship-endpoint-type>

=begin html

<br>Type of the source storage object. SnapVault relationships originate at either a Qtree or OSSV Directory. Qtree SnapMirror relationships originate at a Qtree. Volume SnapMirror relationships originate at a Volume.

=end html

=back



=over 2

=item * I<source-volume-id>  =>   B<obj-id, optional>

=begin html

<br>DFM object ID of source volume. Not present if the source object is an OSSV directory.

=end html

=back



=head2 operational-status

=begin html

Status of the relationship. Possible values are "idle", "transferring", "pending", "aborting", "migrating", "quiescing", "resyncing", "waiting", "syncing", "in_sync" or "paused". <ul> <li>idle: No data is being transferred. <li>transferring: Transfer has been initiated, but has not yet finished, or is just finishing. <li>pending: The secondary storage system cannot be updated because of a resource issue; the transfer is retried automatically. <li>aborting: A transfer is being aborted and cleaned up. <li>migrating: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. <li>quiescing: The specified volume or qtree is waiting for all existing transfers to complete. The destination is being brought into a stable state. <li>resyncing: The specified volume or qtree is being matched with data in the common Snapshot copy. <li>waiting: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. SnapMirror is waiting for a new tape to be put in the tape device. <li>syncing: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. <li>in_sync: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. <li>paused: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 relationship-endpoint-type

=begin html

Type of an object at either the source or destination of a data protection relationship. Values for source objects are "ossv_directory", "volume" or "qtree". Values for destination objects are "volume" or "qtree".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 relationship-state

=begin html

State of the relationship. Possible values are "uninitialized", "snapvaulted", "snapmirrored", "broken_off", "quiesced", "source", "unknown" or "restoring" <ul> <li>uninitialized: The destination storage volume or qtree is not yet initialized or is being initialized. <li>snapvaulted: Valid only in case of 'snapvault' relationships. The relationship is created and the qtree is a SnapVault secondary destination. <li>snapmirrored: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. The destination volume or qtree is in a SnapMirror relationship. <li>broken_off: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. The destination was in a SnapMirror relationship, but a snapmirror break command made the volume or qtree writable. This state is reported as long as the base Snapshot copy is still present in the volume. If the Snapshot copy is deleted, the state is listed as "uninitialized" if the destination is in the /etc/snapmirror.conf filen then the Snapshot copy is no longer listed. A successful snapmirror resync command restores the snapmirrored status. <li>quiesced: Valid only in case of 'qtree_snapmirror' or 'volume_snapmirror' relationships. SnapMirror is in a consistent internal state and no SnapMirror activity is occurring. In this state, you can create Snapshot copies with confidence that all destinations are consistent. The snapmirror quiesce command brings the destination into this state. The snapmirror resume command restarts all SnapMirror activities. <li>source: This state is reported when the snapvault status or snapmirror status command is run on the primary storage system. When the destination is on another system, its status is unknown, so the source status is reported. In case of 'snapvault' relationships, it also appears if snapvault status is run on secondary storage systems after the snapvault restore command was run on an associated primary storage system. <li>unknown: The destination volume or the volume that contains the destination qtree is in an unknown state. It might be offline or restricted <li>restoring: Valid only in case of 'snapvault' relationships. </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 relationship-type

=begin html

Type of a data protection relationship. Legal values are "snapvault", "qtree_snapmirror" and "volume_snapmirror".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 dp-path-info

=begin html

Information about a path inside a dataset.

=end html



B<Fields>

=over 2

=item * I<member-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the dataset component that is at the root of the file tree. This may be qtree, ossv directory or volume id that is source of the physical data protection relationship.

=end html

=back



=over 2

=item * I<path>  =>   B<string>

=begin html

<br>Name of the path. The maximum path length is 32767 characters. This path is relative to "member-name-or-id" path in the storage system or OSSV host. Path cannot be empty.

=end html

=back



=over 2

=item * I<primary-snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy on the primary where the data being restored originated. This is ignored if primary-snapshot-unique-id is specified.

=end html

=back



=over 2

=item * I<primary-snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of the Snapshot copy on the primary where the data being restored originated. Currently, this is the Snapshot copy's creation time. This is used to differentiate between multiple copies of the root object (specified by member-name-or-id input) in the same backup. If not specified and different versions of the root object exist in two Snapshot copies in the backup, then the restore might be ambiguous.

=end html

=back



=over 2

=item * I<restore-configuration>  =>   B<boolean, optional>

=begin html

<br>Valid only when an OSSV directory being restored is a Virtual Machine. If false the configuration of the Virtual Machine is not changed, only disks are restored. If true, the configuration and data are restored. Default value is true.

=end html

=back



=head2 dp-recover-member-info

=begin html

Information about a member inside a dataset.

=end html



B<Fields>

=over 2

=item * I<destination-host>  =>   B<obj-name-or-id>

=begin html

<br>Host to restore this dataset member to. The destination host must be compatible with the member type of the member being restored. For example, if the member is a volume, then this destination host must be a storage system.

=end html

=back



=over 2

=item * I<destination-path>  =>   B<string, optional>

=begin html

<br>Path to restore this dataset member to. The path will be interpreted relative to destination-host. <BR> If the destination host is a storage system, the path must not already exist. If the destination host is an OSSV, the path will be overwritten. In case of a Virtual Machine restore to the original location: <li>The path must either be an empty string or not be specified. <li>The restore will happen through the destination host. <BR> The format of this value depends on the host type of destination-host. If destination-host is a storage system, then it should be of the form "/vol1/[qtree1][/dir1..]". If a full volume restore is being specified, then the destination path must be a volume "/vol". If a full qtree restore is specified, and if the destination is a storage system, destination path can be either "/vol" or "/vol/qtree" and if it is "/vol", the server automatically appends the qtree name to the destination path to turn it into "/vol/qtree" format. If destination-host is an OSSV host, then it should be a pathname appropriate for the OSSV host. A Windows host will accept paths such as "C:\My Documents" and a UNIX host will accepts paths such as "/home/user". <P> If the specified dataset-name-or-id is of an <b>application data set</b>, all the above rules apply. In addition, the files will be restored under a uniquely named directory under the destination path. The directory name is created by adding together three separate pieces of information (listed below) separated by a "_" character: <ul> <li> Name of the primary Snapshot where data originated. All characters except [A-Z], [a-z], [0-9], '.', '-', '_', ')' and '(' are stripped from the Snapshot name and the name is trimmed to the first 42 characters before it is used. The 42 character limit ensures that the total length of the uniquely named directory does not exceed 64 characters. <li> The DFM identifier of the primary qtree where the data originated. <li> The DFM identifier of the Snapshot. This is currently the timestamp when the Snapshot was created. </ul> <BR> The maximum destination length is 32767 characters. In some cases, shorter destination lengths will fail due to limitations of underlying storage systems. Default value is an empty string.

=end html

=back



=over 2

=item * I<destination-path-skip-extra-directory>  =>   B<boolean, optional>

=begin html

<br>If this input is specified and is true, no extra directory will be added to the destination path. See destination-path for more information on how an extra directory is added to the destination path for an application dataset. If this input is true, file/ directory names may collide. In case of name collision, an error will be thrown indicating which paths are colliding. This input can then be set as false or repeat API invocation which includes colliding source path(s) to be restored to an alternative destination path Default is false.

=end html

=back



=over 2

=item * I<member-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the dataset component that is at the root of the file tree. This may be qtree, ossv directory or volume id that is source of the physical data protection relationship.

=end html

=back



=over 2

=item * I<path>  =>   B<string>

=begin html

<br>Name of the path. The maximum path length is 32767 characters. This path is relative to "member-name-or-id" path in the storage system or OSSV host. Path cannot be empty. "/" is considered as full member restore when the member is a volume, qtree or OSSV directory.

=end html

=back



=over 2

=item * I<primary-snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy on the primary where the data being restored originated. This is ignored if primary-snapshot-unique-id is specified.

=end html

=back



=over 2

=item * I<primary-snapshot-unique-id>  =>   B<string, optional>

=begin html

<br>Unique id of the Snapshot copy on the primary where the data being restored originated. Currently, this is the Snapshot copy's creation time. This is used to differentiate between multiple copies of the root object (specified by member-name-or-id input) in the same backup. If not specified and different versions of the root object exist in two Snapshot copies in the backup, then the restore might be ambiguous.

=end html

=back



=over 2

=item * I<restore-configuration>  =>   B<boolean, optional>

=begin html

<br>Valid only when an OSSV directory being restored is a Virtual Machine. If false the configuration of the Virtual Machine is not changed, only disks are restored. If true, the configuration and data are restored. Default value is true.

=end html

=back



=head2 dp-vi-hyperv-restore-settings

=begin html

Hyper-V specific restore settings.

=end html



B<Fields>

=over 2

=item * I<start-vm-after-restore>  =>   B<boolean, optional>

=begin html

<br>Bring the VM online after restore. This option is applicable only when restoring a VM and will be ignored otherwise. If this input is not specified, it will default to <b>false</b>.

=end html

=back



=head2 dp-vi-object-restore-settings

=begin html

Various settings for a virtual object to be restored.

=end html



B<Fields>

=over 2

=item * I<dp-vi-vmware-object-restore-settings>  =>   B<L<"dp-vi-vmware-object-restore-settings">, optional>

=begin html

<br>Object level settings for individual VMware objects.

=end html

=back



=head2 dp-vi-restore-object

=begin html

A list of virtual objects to be restored, and per object settings for this restore operation.

=end html



B<Fields>

=over 2

=item * I<dp-vi-object-restore-settings>  =>   B<L<"dp-vi-object-restore-settings">, optional>

=begin html

<br>Object level settings for individual virtual objects that need to be restored.

=end html

=back



=over 2

=item * I<restore-object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or ID of the virtual object to restore. The object must be present in the specified backup and must be restorable. If the object is not restorable, error EOBJECTNOTRESTORABLE will be returned.

=end html

=back



=head2 dp-vi-restore-settings

=begin html

Various settings for the operation to restore the virtualization objects.

=end html



B<Fields>

=over 2

=item * I<dp-vi-hyperv-restore-settings>  =>   B<L<"dp-vi-hyperv-restore-settings">, optional>

=begin html

<br>Operation level settings for restoring Hyper-V objects.

=end html

=back



=over 2

=item * I<dp-vi-vmware-restore-settings>  =>   B<L<"dp-vi-vmware-restore-settings">, optional>

=begin html

<br>Operation level settings for restoring VMware objects.

=end html

=back



=over 2

=item * I<restore-script>  =>   B<string, optional>

=begin html

<br>Name of the script to be invoked on the Host Services station both before and after the restore. <p> The restore-script consists of 0 to 255 characters. The default value of this property is the empty string "". <p> An empty string value "" indicates no script is invoked. The system does not check whether a non-empty path string actually refers to an executable script prior to attempting to run the script. For example, %env%\scripts\restore.ps1 OR c:\program..\HS\scripts\restore.ps1 OR k:\program..\HS\scripts\restore.ps1 [k is a network share] OR UNC path \\SCRIPTSSVR\share\scripts\restore.ps

=end html

=back



=head2 dp-vi-vmware-object-restore-settings

=begin html

Various settings for a VMWare object to be restored.

=end html



B<Fields>

=over 2

=item * I<destination-datastore-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name of the datastore to restore the object to. This option is valid only when object being restored is a VMDK. If unspecified, it will default to original datastore associated with the VMDK.

=end html

=back



=head2 dp-vi-vmware-restore-settings

=begin html

VMware specific restore settings.

=end html



B<Fields>

=over 2

=item * I<esx-server-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or ID of the ESX server to mount the backup to during restore. If this input is not specified, it will not be sent to the VMWare plugin, and it is up to the discretion of the plugin to choose its behavior.

=end html

=back



=over 2

=item * I<start-vm-after-restore>  =>   B<boolean, optional>

=begin html

<br>Bring the VM online after restore. This option is applicable only when restoring a VM and will be ignored otherwise. If this input is not specified, it will default to <b>false</b>.

=end html

=back



=head2 overwrite-result

=begin html

Information about the member and the destination.

=end html



B<Fields>

=over 2

=item * I<dest-host>  =>   B<string>

=begin html

<br>Destination host where file will be restored..

=end html

=back



=over 2

=item * I<file-path>  =>   B<string>

=begin html

<br>destination path where the file was being restored. The path includes the name of the file being restored.

=end html

=back



=over 2

=item * I<overwrite-status>  =>   B<string>

=begin html

<br>For ONTAP version below 7.3.0, we cannot check for overwrite. In that case, this element will return a predefined string indicating overwrite status could not be checked. For other cases, the overwrite status will be returned. Possible values : "overwrite", "overwrite_check_unsupported"

=end html

=back



=head2 space-status-result

=begin html

Information about the destination volume which does not have enough space for the restore

=end html



B<Fields>

=over 2

=item * I<avail-space>  =>   B<integer>

=begin html

<br>Free space available in the volume in KB. <BR> Range: [0..2^64-1]

=end html

=back



=over 2

=item * I<dest-host>  =>   B<string>

=begin html

<br>Name of the destination host where the restore would take place.

=end html

=back



=over 2

=item * I<dest-vol>  =>   B<string>

=begin html

<br>Name of the destination volume where the restore would take place.

=end html

=back



=over 2

=item * I<req-space>  =>   B<integer>

=begin html

<br>Space required in the volume for restore in KB. <BR> Range: [0..2^64-1]

=end html

=back



=head2 day-info

=begin html

The attributes of a day list

=end html



B<Fields>

=over 2

=item * I<day>  =>   B<integer>

=begin html

<br>day of the week. Range: [0..6]. (Sun = 0)

=end html

=back



=head2 throttle-assignee

=begin html

Description of a DFM object using the DP throttle.

=end html



B<Fields>

=over 2

=item * I<assignee-full-name>  =>   B<obj-full-name>

=begin html

<br>Full name of a DFM object.

=end html

=back



=over 2

=item * I<assignee-id>  =>   B<obj-id>

=begin html

<br>Identification number of a DFM object.

=end html

=back



=head2 throttle-content

=begin html

Attributes of a throttle schedule

=end html



B<Fields>

=over 2

=item * I<is-modifiable>  =>   B<boolean, optional>

=begin html

<br>If <b>false</b>, this throttle is one of the sample throttle that is created at installation time, therefore it may not be modified, renamed or destroyed. If <b>true</b>, it is not one of the sample throttles, therefore it may be modified, renamed or destroyed. <b>is-modifiable</b> always appears in the output. It is not possible to use it as input.

=end html

=back



=over 2

=item * I<throttle-description>  =>   B<string, optional>

=begin html

<br>Description of the throttle. It may contain from 0 to 255 characters. The <b>description</b> always appears in the output. If the description is omitted, then the default value is the empty string "".

=end html

=back



=over 2

=item * I<throttle-id>  =>   B<integer, optional>

=begin html

<br>ID of the throttle schedule. Element is ignored for throttle-create. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<throttle-item-list>  =>   B<L<"throttle-item-info">[], optional>

=begin html

<br>List of individual throttle items to be added

=end html

=back



=over 2

=item * I<throttle-name>  =>   B<string>

=begin html

<br>Name of the throttle schedule

=end html

=back



=head2 throttle-item-info

=begin html

The attributes of a throttle item

=end html



B<Fields>

=over 2

=item * I<day-list>  =>   B<L<"day-info">[], optional>

=begin html

<br>List of days applied to the throttle item. If none is supplied, it will be applied to every day.

=end html

=back



=over 2

=item * I<end-hour>  =>   B<integer>

=begin html

<br>End hour of the throttle item. Range: [0..23]

=end html

=back



=over 2

=item * I<end-minute>  =>   B<integer>

=begin html

<br>End minute of the throttle item. Range: [0..59]

=end html

=back



=over 2

=item * I<item-id>  =>   B<integer, optional>

=begin html

<br>Identifier for the throttle item. Ignored in input by all zapi calls. Will be present in output. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<start-hour>  =>   B<integer>

=begin html

<br>Start hour of the throttle item. Range: [0..23]

=end html

=back



=over 2

=item * I<start-minute>  =>   B<integer>

=begin html

<br>Start minute of the throttle item. Range: [0..59]

=end html

=back



=over 2

=item * I<throughput>  =>   B<integer>

=begin html

<br>Throttle throughput in KBytes. Range: [0..(2^63)-1]

=end html

=back



=head2 event-action-info

=begin html

Result of action taken on event. Timestamp returned on success, and error code on failure.

=end html



B<Fields>

=over 2

=item * I<error-code>  =>   B<integer, optional>

=begin html

<br>Error code corresponding to errno returned from event acknowledge/delete. Absent on success. Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<error-message>  =>   B<string, optional>

=begin html

<br>Error message returned from event acknowledge/delete. Absent on success.

=end html

=back



=over 2

=item * I<event-id>  =>   B<integer>

=begin html

<br>The input event identifier. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<timestamp>  =>   B<integer, optional>

=begin html

<br>Timestamp when the event was acknowledged/deleted. Timestamps absent for IDs that can not be found, or have already been acknowledged/deleted. Range: [0..2^32-1]

=end html

=back



=head2 event-application-type

=begin html

Denotes the kind of application the event is for. <P> Possible values: 'monitoring', 'data_protection' , 'performance' , 'performance_diagnosis'

=end html



B<Fields>

=over 2

=item * None

=back



=head2 event-id-type

=begin html

Event identifier. Range: [1..2^32-1]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 event-info

=begin html

Event information structure

=end html



B<Fields>

=over 2

=item * I<event-about>  =>   B<string>

=begin html

<br>Description of the event type

=end html

=back



=over 2

=item * I<event-acknowledged>  =>   B<integer>

=begin html

<br>Timestamp when event is acknowledged, or 0 if not acknowledged.

=end html

=back



=over 2

=item * I<event-acknowledged-user>  =>   B<string>

=begin html

<br>User who acknowledged the event.

=end html

=back



=over 2

=item * I<event-arguments>  =>   B<L<"key-value-pair">[], optional>

=begin html

<br>Argument list for this particular event. Present only if include-event-arguments was set to true in the event-list-iter-start call. If the event has no arguments, this element will be empty. For example, some possible arguments are jobId, backupJobId, protectionJobId, or datasetId (the values for these all integer ids). The arguments returned are dependent on the event type and status. The list of possible arguments is variable with each version and large which is why it is not included here.

=end html

=back



=over 2

=item * I<event-condition>  =>   B<string>

=begin html

<br>Condition of the event

=end html

=back



=over 2

=item * I<event-deleted>  =>   B<integer>

=begin html

<br>Timestamp when event is deleted, or 0 if not deleted.

=end html

=back



=over 2

=item * I<event-deleted-user>  =>   B<string>

=begin html

<br>User who deleted the event.

=end html

=back



=over 2

=item * I<event-id>  =>   B<integer>

=begin html

<br>Id of the event. Range: [1..2^31 - 1]

=end html

=back



=over 2

=item * I<event-name>  =>   B<string>

=begin html

<br>Name of the event. The list of all event names can be obtained using eventclass-list APIs. The element eventclass-info -> event-names[] -> event-name-pretty gives the name of an event.

=end html

=back



=over 2

=item * I<event-originating-id>  =>   B<integer, optional>

=begin html

<br>This is only returned if the event-type is object-deleted. It's the ID of the deleted object. And in this case, the event-source-id is the management station ID. Range: [1..2^31 - 1]

=end html

=back



=over 2

=item * I<event-severity>  =>   B<obj-status>

=begin html

<br>Severity of the event

=end html

=back



=over 2

=item * I<event-source-id>  =>   B<integer>

=begin html

<br>Id of the source of the event. Range: [1..2^31 - 1]

=end html

=back



=over 2

=item * I<event-source-name>  =>   B<string>

=begin html

<br>Name of the source of the event. Example: "storage01.example.com".

=end html

=back



=over 2

=item * I<event-source-node-name>  =>   B<string, optional>

=begin html

<br>This is the name of the dataset node the event source is contained in. This is only returned in the case where include-dataset-resource-status-events is set to true.

=end html

=back



=over 2

=item * I<event-source-type>  =>   B<string>

=begin html

<br>Type of object that generated the event. Possible values: <BR> unknown <BR> resource_group <BR> host <BR> aggregate <BR> volume <BR> qtree <BR> interface <BR> administrator <BR> network <BR> mgmt_station <BR> configuration <BR> quotauser <BR> initiator_group <BR> lun_path <BR> fc_switch_port <BR> fcp_target <BR> directory <BR> hba <BR> fcp_initiator <BR> san_host_cluster <BR> srm_path <BR> mirror <BR> script <BR> script_schedule <BR> script_job <BR> role <BR> data_set <BR> storage_set <BR> resource_pool <BR> dp_policy <BR> dp_schedule <BR> dp_throttle <BR> ossv_directory <BR> prov_policy <BR> vfiler_template <BR> disk <BR> port

=end html

=back



=over 2

=item * I<event-time>  =>   B<integer>

=begin html

<br>Time when the event was fired.

=end html

=back



=over 2

=item * I<event-type>  =>   B<string>

=begin html

<br>Type or class to which the event belongs to. A list of event types can be obtained by using eventclass-list-iter APIs. The element eventclass-info -> event-class-name in eventclass-info gives the name of an event type.

=end html

=back



=over 2

=item * I<is-deleted>  =>   B<boolean>

=begin html

<br>Deprecated in favor of event-deleted which returns the deleted timestamp

=end html

=back



=head2 event-timestamp-range

=begin html

range of event timestamps

=end html



B<Fields>

=over 2

=item * I<end-time>  =>   B<integer>

=begin html

<br>End timestamp, in seconds elapsed since midnight on January 1, 1970.(UTC)

=end html

=back



=over 2

=item * I<start-time>  =>   B<integer>

=begin html

<br>Start timestamp, in seconds elapsed since midnight on January 1, 1970.(UTC)

=end html

=back



=head2 event-type-filter

=begin html

Array of event filters.

=end html



B<Fields>

=over 2

=item * I<event-filter>  =>   B<string>

=begin html

<br>name of the event-filter.

=end html

=back



=head2 event-class-info

=begin html

Information about an event class.

=end html



B<Fields>

=over 2

=item * I<about-message>  =>   B<string>

=begin html

<br>Description of the event class.

=end html

=back



=over 2

=item * I<event-class-id>  =>   B<integer>

=begin html

<br>Database identifier of the custom event class or 0 in case of a canned event class.

=end html

=back



=over 2

=item * I<event-class-name>  =>   B<string>

=begin html

<br>event class name.

=end html

=back



=over 2

=item * I<event-names>  =>   B<L<"event-name-info">[]>

=begin html

<br>List of event names for this event class.

=end html

=back



=over 2

=item * I<is-allow-duplicates>  =>   B<boolean>

=begin html

<br>Event service will not drop duplicate events of this event class if is-allow-duplicates is true. Event is duplicate if it has same event-name as previous event with same event-class and the same event-source. It is false by default.

=end html

=back



=over 2

=item * I<is-multi-current>  =>   B<boolean>

=begin html

<br>Event service keeps multiple current events of this event-class for each event-source. Valid only with allow-duplicates. It is false by default.

=end html

=back



=head2 event-class-object

=begin html

Custom event class.

=end html



B<Fields>

=over 2

=item * I<event-class-name>  =>   B<string>

=begin html

<br>Custom event class name or its database identifier.

=end html

=back



=head2 event-name-info

=begin html

Information about an event name.

=end html



B<Fields>

=over 2

=item * I<event-name-pretty>  =>   B<string>

=begin html

<br>Display name of the event name.

=end html

=back



=over 2

=item * I<event-name-short>  =>   B<string>

=begin html

<br>Short name of the event name.

=end html

=back



=over 2

=item * I<severity>  =>   B<string>

=begin html

<br>Severity of the event name. Possible values: Emergency, Critical, Error, Warning, Information, Normal.

=end html

=back



=head2 target-info

=begin html

Information of about one target.

=end html



B<Fields>

=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Identifier of the Storage System on which the target is present.

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>DNS name of the Storage System on which the target is present.

=end html

=back



=over 2

=item * I<target-id>  =>   B<obj-id>

=begin html

<br>Identifier of target in DFM Server database.

=end html

=back



=over 2

=item * I<target-name>  =>   B<obj-name>

=begin html

<br>Name of the target (ex: 0c).

=end html

=back



=over 2

=item * I<target-port-name>  =>   B<string>

=begin html

<br>WWPN of the target.

=end html

=back



=over 2

=item * I<target-status>  =>   B<string>

=begin html

<br>Operation status of the target,Possible values: "startup","uninitialized","initializing_fw", "link_not_connected","waiting_for_link_up", "online","link_disconnected","resetting", "offline","offlined_by_user_system", "unknown".

=end html

=back



=head2 graph-line-value-info

=begin html

The sample values of a line in a graph.

=end html



B<Fields>

=over 2

=item * I<sample-name>  =>   B<string>

=begin html

<br>Name of the sample. Maximum length: 64 characters.

=end html

=back



=over 2

=item * I<sample-values>  =>   B<string>

=begin html

<br>A comma separated list of 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. If the value of the sample is not available for a particular time, then the value returned will be empty e.g. (1188779400:).

=end html

=back



=head2 group-info

=begin html

Information about a single group.

=end html



B<Fields>

=over 2

=item * I<group-perf-status>  =>   B<obj-status>

=begin html

<br>Status of the group based on performance events

=end html

=back



=over 2

=item * I<group-status>  =>   B<obj-status>

=begin html

<br>Status of the group based on all events

=end html

=back



=over 2

=item * I<has-privilege>  =>   B<boolean>

=begin html

<br>Indicates if user has the privilege checked by group-list-iter-start API. If TRUE, user has the requested privilege on this group. If FALSE, user does not have the requested privilege, but group is included because user has the requested privilege on one or more subgroups of this group. Group privileges are set using the RBAC APIs.

=end html

=back



=over 2

=item * I<id>  =>   B<integer>

=begin html

<br>Numeric identifier of the group. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>Name of the group.

=end html

=back



=over 2

=item * I<parent-group-id>  =>   B<integer, optional>

=begin html

<br>Numeric identifier of the parent group, if any. This element is not present for top level groups. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<short-name>  =>   B<string>

=begin html

<br>Short name of the group. This is a short name which does not include name of the parent.

=end html

=back



=over 2

=item * I<subgroup-count>  =>   B<integer>

=begin html

<br>Number of sub-groups under this parent group. <BR> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>The type of the members of the group. Multiple values are separated by commas. Possible values: Empty, Hosts, Volumes, Qtrees, Configurations, Lun Paths, SRM Paths, Aggregates, Datasets, and Resource Pools.

=end html

=back



=head2 group-name-or-id

=begin html

Name or ID of a group. If a group name is specified, it must be fully qualified.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 group-option-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<chargeback-rate>  =>   B<string, optional>

=begin html

<br>The monthly chargeback cost, represented as a decimal floating-point number. Default: 0

=end html

=back



=over 2

=item * I<group-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact of the resource group. This is modifiable. Possible value is e-mail of the owner.

=end html

=back



=over 2

=item * I<group-owner>  =>   B<string, optional>

=begin html

<br>Owner of the resource group. This is modifiable.

=end html

=back



=over 2

=item * I<srm-max-large-files>  =>   B<string, optional>

=begin html

<br>Maximum number of large files to track during SRM walks on paths in this group. Default: 20 <BR> Range: [0..100000]

=end html

=back



=over 2

=item * I<srm-max-new-mtime-files>  =>   B<string, optional>

=begin html

<br>Maximum number of files with new mtimes to track during SRM walks on paths in this group. Default: 20 <BR> Range: [0..100000]

=end html

=back



=over 2

=item * I<srm-max-old-atime-files>  =>   B<string, optional>

=begin html

<br>Maximum number of files with old atimes to track during SRM walks on paths in this group. Default: 20 <BR> Range: [0..100000]

=end html

=back



=over 2

=item * I<srm-max-old-mtime-files>  =>   B<string, optional>

=begin html

<br>Maximum number of files with old mtimes to track during SRM walks on paths in this group. Default: 20 <BR> Range: [0..100000]

=end html

=back



=head2 object-name-or-id

=begin html

Name or ID of an object.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 group

=begin html

group name or identifier

=end html



B<Fields>

=over 2

=item * None

=back



=head2 group-member-attribute

=begin html

Additional named attributes of the DFM object Current attributes are: 'OS Version', 'OS Revision', and 'Primary Address'

=end html



B<Fields>

=over 2

=item * I<name>  =>   B<string>

=begin html

<br>name of the attribute.

=end html

=back



=over 2

=item * I<value>  =>   B<string, optional>

=begin html

<br>value of the attribute.

=end html

=back



=head2 group-member-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<group-member-attributes>  =>   B<L<"group-member-attribute">[], optional>

=begin html

<br>Attributes of the DFM object

=end html

=back



=over 2

=item * I<id>  =>   B<string>

=begin html

<br>DFM id of the DFM object

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>DFM name of the DFM object

=end html

=back



=over 2

=item * I<perf-status>  =>   B<obj-status>

=begin html

<br>The performance status of the DFM object

=end html

=back



=over 2

=item * I<status>  =>   B<obj-status>

=begin html

<br>The status of the DFM object

=end html

=back



=over 2

=item * I<sub-type>  =>   B<string, optional>

=begin html

<br>For members of type Host, this is the kind of host; possible values: filer, vfiler, agent, ossv, cluster, vserver. For all other members, this field is absent.

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Type of the DFM object which can be one of Host, Aggregate, Volume, Qtree, Configuration, Initiator Group, Lun Path, FCP Target, FCP Initiator, SRM Path, Resource Pool, Dataset, App Object or Host Service.

=end html

=back



=head2 access-object-description

=begin html

Description of an access object. An access object can be a role, usergroup, local user, or a domain user. Description of an access object can include any alphanumeric character, a space, or a punctuation character other than <b>:</b>(colon). Maximum Length: 128 characters

=end html



B<Fields>

=over 2

=item * None

=back



=head2 access-object-id

=begin html

Identification number (ID) for an access object. An access object can be a role, usergroup, local user or a domain user. The ID for an access object is always assigned by the DFM system. This typedef is an alias for the built-in type <b>integer</b>. Access object IDs are unsigned integers in the range [1..2^31-1].

=end html



B<Fields>

=over 2

=item * None

=back



=head2 access-object-name

=begin html

Name of an access object. An access object can be a role, usergroup, local user, or a domain user. The rules defined here are not applicable for domain users and usergroups. An access object can contain between 1 and 32 characters and include any alphanumeric character, a space, or a punctuation character that is not one of: <br>" * + , / : ; < = > ? [ ] |

=end html



B<Fields>

=over 2

=item * None

=back



=head2 access-object-name-or-id

=begin html

Name or id of an access object. An access object can be a role, usergroup, local user, or a domain user. This must conform to the format of either access-object-name or access-object-id.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 capability

=begin html

Name of a capability on the host. This must conform to one of the following formats: <ul> <li> "*" <li> "login-*" <li> "security-*" <li> "cli-*" <li> "api-*" </ul> Here, instead of *, commands and sub-commands can be specified directly. Maximum Length: 64 characters

=end html



B<Fields>

=over 2

=item * None

=back



=head2 domainuser-name

=begin html

Name of the user in domain\username format. (Ex:NETAPP\rohan) Maximum Length: 288 characters (Domain name can contain up to 255 characters, and username can contain up to 32 characters)

=end html



B<Fields>

=over 2

=item * None

=back



=head2 domainuser-name-or-id-or-sid

=begin html

Name or id or the SID of domain user. This must conform to one of the following: <ul> <li> domainuser-name <li> sid <li> access-cotrol-id </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 full-ndmp-credentials

=begin html

A full set of ndmp credentials with no empty fields which is a specific requirement for this zapi since ndmp-username and ndmp-password are both required in order to add an ossv host.

=end html



B<Fields>

=over 2

=item * I<ndmp-password>  =>   B<host-password>

=begin html

<br>Password name for logging into the host. Encrypted using 2-way encryption.

=end html

=back



=over 2

=item * I<ndmp-port>  =>   B<ip-port-number, optional>

=begin html

<br>Port to connect on.

=end html

=back



=over 2

=item * I<ndmp-username>  =>   B<ndmp-username>

=begin html

<br>User name for logging into the host.

=end html

=back



=head2 host-defaults

=begin html

The default values for the attributes defined by the host.

=end html



B<Fields>

=over 2

=item * I<admin-port-agent>  =>   B<ip-port-number>

=begin html

<br>The agent's default administrative port for executing ONTAP APIs. Valid only for Host Agents.

=end html

=back



=over 2

=item * I<admin-port-cache-http>  =>   B<ip-port-number>

=begin html

<br>The host's default HTTP administrative port for executing ONTAP APIs. Valid only for NetCache appliances.

=end html

=back



=over 2

=item * I<admin-port-cache-https>  =>   B<ip-port-number>

=begin html

<br>The host's default HTTPS administrative port for executing ONTAP APIs. Valid only for NetCache appliances.

=end html

=back



=over 2

=item * I<admin-port-host>  =>   B<ip-port-number>

=begin html

<br>The host's default administrative port for executing ONTAP APIs. Valid only for storage systems.

=end html

=back



=over 2

=item * I<admin-port-host-http>  =>   B<ip-port-number>

=begin html

<br>The host's default HTTP administrative port for executing ONTAP APIs. Valid only for storage systems.

=end html

=back



=over 2

=item * I<admin-port-host-https>  =>   B<ip-port-number>

=begin html

<br>The host's default HTTPS administrative port for executing ONTAP APIs. Valid only for storage systems.

=end html

=back



=over 2

=item * I<admin-transport-agent>  =>   B<string>

=begin html

<br>The default value for the transport used for communicating to the Agent. Possible values: are "http", "https"

=end html

=back



=over 2

=item * I<admin-transport-cache>  =>   B<string>

=begin html

<br>The default value for the transport used for communicating to the cache. Possible values: "http", "https"

=end html

=back



=over 2

=item * I<admin-transport-host>  =>   B<string>

=begin html

<br>The default value for the transport used for communicating to the host. Possible values: "http", "https"

=end html

=back



=over 2

=item * I<ndmp-port>  =>   B<ip-port-number>

=begin html

<br>Default value for NDMP port. Valid only for storage systems and OSSV agents.

=end html

=back



=over 2

=item * I<perf-advisor-transport-host>  =>   B<string>

=begin html

<br>The default value for the transport setting for communicating to the host for collecting performance data. Valid only for storage systems. Possible values: "http_only", "https_ok"

=end html

=back



=over 2

=item * I<snapvault-max-backup-threads>  =>   B<integer>

=begin html

<br>Default maximum number of threads the DFM can use to coordinate in parallel the backup transfers for different backup relationships to the same secondary volume. This field is applicable only to storage systems that are SnapVault Secondary hosts. <P> Range: [1..144]

=end html

=back



=over 2

=item * I<timeout>  =>   B<integer>

=begin html

<br>Default value of timeout we use in zapis that accept timeout arguments. Time is in seconds. Range: [1..100]

=end html

=back



=over 2

=item * I<use-hosts-equiv>  =>   B<boolean>

=begin html

<br>The setting for communicating to the host using hosts.equiv authentication. Valid only for storage systems and vFiler units.

=end html

=back



=head2 host-domainuser-info

=begin html

Describes the contents of a domain user on the host. The host can be a Storage System or a vFiler unit. Output will always contain all the elements present in the type definition.

=end html



B<Fields>

=over 2

=item * I<SID>  =>   B<sid, optional>

=begin html

<br>SID of the domain user on the host.

=end html

=back



=over 2

=item * I<capabilities>  =>   B<capability[], optional>

=begin html

<br>List of capabilities of the domain user inherited from the usergroup(s) in which user is member of.

=end html

=back



=over 2

=item * I<host-domainuser-id>  =>   B<access-object-id>

=begin html

<br>Internal id of domain user on the host.

=end html

=back



=over 2

=item * I<host-domainuser-name>  =>   B<domainuser-name>

=begin html

<br>Name of the domain user on the host.

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Id of the host on which the domain user is present.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name>

=begin html

<br>Name of the host on which the domain user is present.

=end html

=back



=over 2

=item * I<host-role-ids>  =>   B<host-role-id[], optional>

=begin html

<br>List of ids of roles contained by usergroup(s) in which the domain user is member of.

=end html

=back



=over 2

=item * I<host-role-names>  =>   B<host-role-name[], optional>

=begin html

<br>List of names of roles contained by usergroup(s) in which the domain user is member of.

=end html

=back



=over 2

=item * I<host-usergroup-ids>  =>   B<host-usergroup-id[], optional>

=begin html

<br>List of ids of usergroups in which the domain user is member of.

=end html

=back



=over 2

=item * I<host-usergroup-names>  =>   B<host-usergroup-name[], optional>

=begin html

<br>List of usergroup names in which the domain user is member of.

=end html

=back



=head2 host-dp-filter-info

=begin html

Data Protection specific information for this iterator. Default is false.

=end html



B<Fields>

=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>If true, only list aggregates that have been set to be ignored for purposes of data protection. If false, only list aggregates that have not been set to be ignored for purposes of data protection. If not specified, list all aggregates without taking into account whether they have been ignored or not.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean, optional>

=begin html

<br>If true, only hosts in a dataset are listed Default is false.

=end html

=back



=over 2

=item * I<is-in-resourcepool>  =>   B<boolean, optional>

=begin html

<br>If true, only hosts in a resource pool are listed Default is false.

=end html

=back



=over 2

=item * I<is-snapmirrored-only>  =>   B<boolean, optional>

=begin html

<br>If true, only SnapMirror hosts are listed. Host could be either a source or a destination for SnapMirror. Default is false.

=end html

=back



=over 2

=item * I<is-snapvault-primary-only>  =>   B<boolean, optional>

=begin html

<br>If true, only SnapVault primary systems are listed. Default is false.

=end html

=back



=over 2

=item * I<is-snapvault-secondary-only>  =>   B<boolean, optional>

=begin html

<br>If true, only SnapVault secondary systems are listed. Default is false.

=end html

=back



=over 2

=item * I<is-unprotected>  =>   B<boolean, optional>

=begin html

<br>If true, only list hosts which are not protected, which means it is: <ul> <li> 1. not in any resource pool. <li> and 2. not a member of a node in a dataset with protection policy assigned. </ul> If false or not set, list all hosts.

=end html

=back



=head2 host-dp-info

=begin html

Data Protection specific information for this iterator.

=end html



B<Fields>

=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>List of datasets the host is a member of. If is-in-dataset is false, this list will be empty.

=end html

=back



=over 2

=item * I<host-dataset>  =>   B<obj-name, optional>

=begin html

<br>Name of the dataset the host is a member of. This element will not be present if the host is not a member of a dataset. This field is deprecated in favor of datasets, which lists all datasets the host belongs to. It is still populated with one of the dataset ids.

=end html

=back



=over 2

=item * I<host-resourcepool>  =>   B<obj-name, optional>

=begin html

<br>Name of the resource pool the host is a member of. This element will not be present if the host is not a member of a resource pool.

=end html

=back



=over 2

=item * I<is-agent-ossv-enabled>  =>   B<boolean, optional>

=begin html

<br>Indicates if the ossv service has been enabled. Valid only for Host Agents.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean>

=begin html

<br>Indicates if an administrator has chosen to ignore this host for purposes of data protection.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean>

=begin html

<br>Indicates if this host is a member of any dataset.

=end html

=back



=over 2

=item * I<is-linux-primary>  =>   B<boolean, optional>

=begin html

<br>Indicates if host is being managed as having a Linux primary license. Default value is "false".

=end html

=back



=over 2

=item * I<is-ndmp-enabled>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to enable ndmp on this host.

=end html

=back



=over 2

=item * I<is-nearstore>  =>   B<boolean, optional>

=begin html

<br>Indicates if host is being managed as having a Nearstore license. Default value is "false".

=end html

=back



=over 2

=item * I<is-snapmirror-enabled>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to enable snapmirror on this host.

=end html

=back



=over 2

=item * I<is-snapmirror-host>  =>   B<boolean, optional>

=begin html

<br>Indicates if host is being managed as a SnapMirror host. Default value is "false".

=end html

=back



=over 2

=item * I<is-snapvault-enabled>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to enable snapvault on this host.

=end html

=back



=over 2

=item * I<is-snapvault-primary>  =>   B<boolean>

=begin html

<br>Indicates if host is being managed as a SnapVault primary system.

=end html

=back



=over 2

=item * I<is-snapvault-secondary>  =>   B<boolean>

=begin html

<br>Indicates if host is being managed as a SnapVault secondary system.

=end html

=back



=over 2

=item * I<is-unix-primary>  =>   B<boolean, optional>

=begin html

<br>Indicates if host is being managed as having a Unix primary license. Default value is "false".

=end html

=back



=over 2

=item * I<is-windows-ofm-primary>  =>   B<boolean, optional>

=begin html

<br>Indicates if host is being managed as having a Windows Open File Manager (OFM) primary license. Default value is "false".

=end html

=back



=over 2

=item * I<is-windows-primary>  =>   B<boolean, optional>

=begin html

<br>Indicates if host is being managed as having a Windows primary license. Default value is "false".

=end html

=back



=over 2

=item * I<ndmp-access-specifier>  =>   B<string, optional>

=begin html

<br>This is the access expression ndmp uses to determine who has access. Valid only for storage systems. See na_protocolaccess(8) for access specifier syntax and usage. Examples of valid values include "all", or "host=abc,xyz AND if=e0". See na_protocolaccess(8) for access specifier syntax and usage. Length: [0..255]

=end html

=back



=over 2

=item * I<snapmirror-access-specifier>  =>   B<string>

=begin html

<br>This is the access expression snapmirror uses to determine who has access. Valid only for storage systems. Examples of valid values include "all", or "host=abc,xyz AND if=e0". See na_protocolaccess(8) for access specifier syntax and usage. Length: [0..255]

=end html

=back



=over 2

=item * I<snapvault-access-specifier>  =>   B<string>

=begin html

<br>This is the access expression snapvault uses to determine who has access. Valid only for storage systems. Examples of valid values include "all", or "host=abc,xyz AND if=e0". See na_protocolaccess(8) for access specifier syntax and usage. Length: [0..255]

=end html

=back



=over 2

=item * I<snapvault-max-backup-threads>  =>   B<integer, optional>

=begin html

<br>Maximum number of threads the DFM can use to coordinate in parallel the backup transfers for different backup relationships to the same secondary volume. If this element is present and empty, the global default value is used. This field is applicable only to SnapVault Secondary hosts. Use host-get-defaults to determine the global default value. <P> Range: [1..144]

=end html

=back



=head2 host-dp-modify-info

=begin html

Data protection specific host information.

=end html



B<Fields>

=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>True if an administrator has chosen to ignore this host for purposes of data protection. The default value is false. If not present, the current setting is not modified.

=end html

=back



=over 2

=item * I<snapvault-max-backup-threads>  =>   B<integer, optional>

=begin html

<br>Maximum number of threads DFM can use to coordinate in parallel the backup transfers for different backup relationships to the same secondary volume. This field is applicable only to SnapVault Secondary hosts. If the element is present and empty or the value is 0, the default value set in the global options will be used. If not present, the current setting is not modified. <P> Range: [0..144]

=end html

=back



=head2 host-id

=begin html

DFM host identifier. <P> Range: [1..2^31-1]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-info

=begin html

Host's information.

=end html



B<Fields>

=over 2

=item * I<admin-port>  =>   B<ip-port-number>

=begin html

<br>The host's administrative port for executing Manage OnTap APIs. Valid only for Storage Systems, NetCache appliances, and Host Agents. If this element is present and empty, the global default value is used. Use host-get-defaults to determine the global default value.

=end html

=back



=over 2

=item * I<admin-transport>  =>   B<string>

=begin html

<br>The transport used for communicating to the host. Possible values: "http", "https". If this element is present and empty, the global default value is used. Use host-get-defaults to determine the global default value.

=end html

=back



=over 2

=item * I<cifs-domain-info>  =>   B<L<"cifs-domain-info">, optional>

=begin html

<br>CIFS domain informaiton of storage systems or vFiler unit.

=end html

=back



=over 2

=item * I<host-address>  =>   B<string>

=begin html

<br>The host's primary IP address.

=end html

=back



=over 2

=item * I<host-communication-status>  =>   B<string, optional>

=begin html

<br>Whether we are able to establish a connection to validate the host credentials. Valid only for storage systems and Host Agents. Possible values: "unknown", "up", or "down".

=end html

=back



=over 2

=item * I<host-credentials-status>  =>   B<string, optional>

=begin html

<br>The current status of the Storage System or Host Agent credentials. Possible values: "not_applicable", "unknown", "bad", "good", "read_only" (Storage System will never have a status of "read_only"). This value reflects whether the credentials were validated or invalidated by the Storage System or Host Agent. <P> "unknown" means that the DFM has not been able to test the credentials (username/password) against the Storage System or Host Agent. </P><P> The value of this element will not change if we are unable to communicate with the host. The DFM can access the Host Agent if host-credentials-status is "good" or "read_only" and host-communication-status is "up". </P><P> If the Host Agent credentials are guest credentials, and have been validated by the Host Agent, the value will be "read_only". The value "not_applicable" applies to hosts (vFiler units only for now) where login credential status is not meaningful to the DFM. </P>

=end html

=back



=over 2

=item * I<host-description>  =>   B<string>

=begin html

<br>User-specified description of host. Length: [0..255]

=end html

=back



=over 2

=item * I<host-dp-info>  =>   B<L<"host-dp-info">, optional>

=begin html

<br>Data Protection specific information for this host.

=end html

=back



=over 2

=item * I<host-fqdn>  =>   B<string, optional>

=begin html

<br>The fully qualified domain name of the host. Length: [1..255]

=end html

=back



=over 2

=item * I<host-id>  =>   B<host-id>

=begin html

<br>This is the DFM id of the host.

=end html

=back



=over 2

=item * I<host-model>  =>   B<string>

=begin html

<br>Model name or "unknown". Length: [1..255]

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>This is the DFM name of the host. Length: [1..255]

=end html

=back



=over 2

=item * I<host-obj-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the host based on all events

=end html

=back



=over 2

=item * I<host-os>  =>   B<string>

=begin html

<br>This is the OS version for the host. On OSSV Agents this is the Windows OS (Windows 2000, etc.) On all other hosts this is the software release Length: [1..16]

=end html

=back



=over 2

=item * I<host-perf-info>  =>   B<L<"host-perf-info">, optional>

=begin html

<br>Current status of the host based on all events ndmp-credentials-status will not be updated if ndmp-communication-status is bad because the DFM is not able to connect to the ndmp agent on the storage system or OSSV agent to validate the credentials.

=end html

=back



=over 2

=item * I<host-status>  =>   B<string, optional>

=begin html

<br>The current status of the host. This element displays the status of the host os, which is ONTAP in the case of storage systems, and is Windows, Linux etc. in the case of Host Agents or OSSV agents. Possible values: "unknown", "up", or "down".

=end html

=back



=over 2

=item * I<host-type>  =>   B<host-type>

=begin html

<br>Type of the host.

=end html

=back



=over 2

=item * I<host-username>  =>   B<string>

=begin html

<br>This is the administrator username for a requested host. Length: [1..64]

=end html

=back



=over 2

=item * I<host-version>  =>   B<string>

=begin html

<br>This is the software release for a requested host. Length: [1..255]

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>Tells whether or not this host is up. For OSSV clients, if valid login credentials are not set, the is-available state will be false.

=end html

=back



=over 2

=item * I<licenses>  =>   B<license[]>

=begin html

<br>List of licenses installed on the storage system. This will be returned only if the host-type is "filer".

=end html

=back



=over 2

=item * I<ndmp-agent-status>  =>   B<string, optional>

=begin html

<br>The current status of NDMP. Possible values: "unknown", "up", or "down". Valid only for storage systems and OSSV agents. This status is more than the combined result of ndmp-communication-status and ndmp-credentials-status, since a value of "up" indicates the DFM monitor was successful in fully establishing the connection to the point that useful messages can be sent (this requires steps beyond exchanging credentials). If the value is "down" you need to look at ndmp-communication-status or ndmp-credentials-status. If those status values do not indicate problems, the problem may be occurring after credentials have been exchanged.

=end html

=back



=over 2

=item * I<ndmp-communication-status>  =>   B<string, optional>

=begin html

<br>Whether we are able to establish a connection to validate the NDMP credentials. Valid only for storage systems and OSSV agents. Possible values: "unknown", "up", or "down".

=end html

=back



=over 2

=item * I<ndmp-communication-timestamp>  =>   B<integer, optional>

=begin html

<br>Date of the last attempt to establish a connection to validate the NDMP credentials. Valid only for storage systems and OSSV agents. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<ndmp-credentials>  =>   B<L<"ndmp-credentials">, optional>

=begin html

<br>NDMP credentials for the host. Valid only for storage systems and OSSV agents. The ndmp password will always be empty for security reasons.

=end html

=back



=over 2

=item * I<ndmp-credentials-status>  =>   B<string, optional>

=begin html

<br>The current status of the NDMP credentials. Valid only for storage systems and OSSV agents. Possible values: "not_applicable", "unknown", "good", or "bad". The value "not_applicable" applies to hosts (vFiler units only for now) where ndmp credential status is not meaningful.

=end html

=back



=over 2

=item * I<ndmp-timestamp>  =>   B<integer, optional>

=begin html

<br>Date of the last successful connection (i.e. the last time ndmp-agent-status was "up"). Valid only for storage systems and OSSV agents. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<other-host-id>  =>   B<host-id, optional>

=begin html

<br>A Host Agent and an OSSV Agent on the same machine will have different IDs. If this host is an OSSV Agent and DFM knows about a Host Agent on the same machine, or if this host is an Host Agent and DFM knows about a OSSV Agent on the same machine, this value is the ID of the other host.

=end html

=back



=over 2

=item * I<partner-storage-system-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the partner storage system. This element is present only for storage systems in an Active/Active configuration.

=end html

=back



=over 2

=item * I<partner-storage-system-name>  =>   B<obj-full-name, optional>

=begin html

<br>Full name of the partner storage system. This element is present only for storage systems in an Active/Active configuration.

=end html

=back



=over 2

=item * I<perf-advisor-transport>  =>   B<perf-advisor-transport, optional>

=begin html

<br>The transport setting for communicating to the host for collecting performance data. Valid only for storage systems. If this element is present and empty, the global default value is used. Use host-get-defaults to determine the global default value.

=end html

=back



=over 2

=item * I<service-statuses>  =>   B<L<"service-status">[]>

=begin html

<br>List of services and their statuses. This element will be present only for a storage system or a vFiler unit.

=end html

=back



=over 2

=item * I<use-hosts-equiv>  =>   B<boolean, optional>

=begin html

<br>The setting for communicating to the host using hosts.equiv authentication. Valid only for storage systems and vFiler units. If this element is present and empty, the global default value is used. Use host-get-defaults to determine the global default value.

=end html

=back



=over 2

=item * I<vfiler-info>  =>   B<L<"vfiler-info">, optional>

=begin html

<br>Information about a vFiler unit. This element is present only when host-type is "vfiler".

=end html

=back



=head2 host-modify-info

=begin html

Host information.

=end html



B<Fields>

=over 2

=item * I<admin-port>  =>   B<ip-port-number, optional>

=begin html

<br>The host's administrative port for executing APIs. Valid only for Host Agents or Storage Systems. If the port is being modified for a Host Agent operating under UNIX, the port number has to be greater than or equal to 1025.

=end html

=back



=over 2

=item * I<admin-transport>  =>   B<string, optional>

=begin html

<br>The transport used for API communication with the host. Possible values are: 'http', 'https' Valid only for storage systems, ignored for others.

=end html

=back



=over 2

=item * I<host-address>  =>   B<string, optional>

=begin html

<br>Primary IP address for the host. If not present, the current setting is not modified. <P> Length: [0..39]

=end html

=back



=over 2

=item * I<host-description>  =>   B<string, optional>

=begin html

<br>User-specified description of host. If not present, the current setting is not modified. Length: [0..255]

=end html

=back



=over 2

=item * I<host-dp-modify-info>  =>   B<L<"host-dp-modify-info">, optional>

=begin html

<br>Data protection specific host information. If not present, the current settings are not modified.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name, optional>

=begin html

<br>New name for the host. This name cannot be set to the empty string. If not present, the current setting is not modified.

=end html

=back



=over 2

=item * I<host-password>  =>   B<host-password, optional>

=begin html

<br>Password for logging into the host.

=end html

=back



=over 2

=item * I<host-username>  =>   B<string, optional>

=begin html

<br>User name for logging into the host. If not present, the current setting is not modified. <P> Length: [0..64]

=end html

=back



=over 2

=item * I<ndmp-credentials>  =>   B<L<"ndmp-credentials">, optional>

=begin html

<br>NDMP credentials for the host. Valid only for storage systems and OSSV agents. If not present, the current settings are not modified.

=end html

=back



=over 2

=item * I<perf-advisor-transport>  =>   B<perf-advisor-transport, optional>

=begin html

<br>The transport setting for communicating to the host for collecting performance data. Valid only for storage systems.

=end html

=back



=over 2

=item * I<use-hosts-equiv>  =>   B<boolean, optional>

=begin html

<br>The setting for communicating to the host using hosts.equiv authentication. Valid only for storage systems and vFiler units. <p> If the element is present and empty, the default value set in the global options will be used. If not present, the current setting is not modified.

=end html

=back



=head2 host-name-or-id

=begin html

DFM host. A host can be a storage system, a vFiler unit, a switch, or an agent. Value can be a DFM object name (maximum 255 characters), a fully qualified domain name (FQDN)(maximum 255 characters), the ip address, or the DFM id [1..2^31-1].

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-password

=begin html

Password for logging in. Encrypted using 2-way encryption. <P> Length: [0..64]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-perf-info

=begin html

Performance specific information for this iterator

=end html



B<Fields>

=over 2

=item * I<data-unavailable-reason>  =>   B<L<"perf-status-error">[], optional>

=begin html

<br>This element is included only if is-data-available is set to false and indicates the reason(s) for failure.

=end html

=back



=over 2

=item * I<host-perf-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the host based on performance events

=end html

=back



=over 2

=item * I<is-cluster-config-shared>  =>   B<boolean, optional>

=begin html

<br>Present in output only for Data ONTAP Cluster-Mode nodes. True if the node shares the collection configuration of the cluster it belongs to, false otherwise.

=end html

=back



=over 2

=item * I<is-data-available>  =>   B<boolean>

=begin html

<br>Returns if the performance data can be collected for this host This will be present only for storage systems and vFiler units.

=end html

=back



=over 2

=item * I<last-client-stats-collection-time>  =>   B<timestamp, optional>

=begin html

<br>Present in output only. This specifies the last time per-client statistics were collected for the host. It will not be present if per-client statistics were never collected for the host from Performance Advisor. This element is returned for Storage Systems only.

=end html

=back



=over 2

=item * I<percentage-space-consumed>  =>   B<string, optional>

=begin html

<br>Present in output only. Indicates the percentage of total space consumed by this host's performance data. This element will be returned only is include-perf-space-details is set to true. It will be returned for Storage Systems only.

=end html

=back



=over 2

=item * I<space-consumed>  =>   B<integer, optional>

=begin html

<br>Present in output only. Indicates the amount of server storage currently consumed by the performance data in bytes. This element will be returned only is include-perf-space-details is set to true. It will be returned for Storage Systems only.

=end html

=back



=over 2

=item * I<space-projected>  =>   B<integer, optional>

=begin html

<br>Present in output only. Indicates the maximum amount of server storage required to store performance data in bytes. This element will be returned only is include-perf-space-details is set to true. It will be returned for Storage Systems only.

=end html

=back



=head2 host-role-id

=begin html

Id of the role on the host. <p> The ID for a host role is always assigned by the DFM system. Range: [1..2^31-1].

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-role-info

=begin html

Describes the contents of a role on the host. The host can be a storage system or a vFiler unit. Output will always contain all the elements present in the type definition.

=end html



B<Fields>

=over 2

=item * I<capabilities>  =>   B<capability[], optional>

=begin html

<br>List of capabilities the role is allowed.

=end html

=back



=over 2

=item * I<description>  =>   B<access-object-description, optional>

=begin html

<br>Description of the role.

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id, optional>

=begin html

<br>Id of the host on which the role is present.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the host on which the role is present.

=end html

=back



=over 2

=item * I<host-role-id>  =>   B<access-object-id, optional>

=begin html

<br>Internal id of the role on the host.

=end html

=back



=over 2

=item * I<host-role-name>  =>   B<access-object-name, optional>

=begin html

<br>Name of the role on the host.

=end html

=back



=head2 host-role-name

=begin html

Name of the role on the host. <p> A host role name contains between 1 and 32 characters and can include any alphanumeric character, a space, or a punctuation character that is not one of: <br>" * + , / : ; < = > ? [ ] |

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-type

=begin html

Type of host. Possible values are: filer, vfiler, cluster, cluster-controller, vserver, agent, ossv, and switch.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-user-info

=begin html

Describes the contents of a local user on the host. The host type can be a Storage System or a vFiler unit. Minimum password age, Maximum password age, and status are applicable for hosts running ONTAP versions 7.1 and above. Apart from these fields, output will always contain all the elements present in the type definition.

=end html



B<Fields>

=over 2

=item * I<capabilities>  =>   B<capability[], optional>

=begin html

<br>List of capabilities of the local user inherited from the usergroup(s) in which user is member of.

=end html

=back



=over 2

=item * I<description>  =>   B<access-object-description, optional>

=begin html

<br>Description of the local user.

=end html

=back



=over 2

=item * I<full-name>  =>   B<string, optional>

=begin html

<br>Full name of the local user. It should not contain colon(:). Maximum Length:256 characters

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id, optional>

=begin html

<br>Id of the host on which the local user is present.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the host on which the local user is present.

=end html

=back



=over 2

=item * I<host-role-ids>  =>   B<host-role-id[], optional>

=begin html

<br>List of ids of roles contained by usergroup(s) in which the local user is member of.

=end html

=back



=over 2

=item * I<host-role-names>  =>   B<host-role-name[], optional>

=begin html

<br>List of names of roles contained by usergroup(s) in which the local user is member of.

=end html

=back



=over 2

=item * I<host-user-id>  =>   B<access-object-id, optional>

=begin html

<br>Internal id of local user on the host.

=end html

=back



=over 2

=item * I<host-user-name>  =>   B<access-object-name, optional>

=begin html

<br>Name of the local user on the host.

=end html

=back



=over 2

=item * I<host-usergroup-ids>  =>   B<host-usergroup-id[], optional>

=begin html

<br>List of ids of usergroups in which the local user is member of.

=end html

=back



=over 2

=item * I<host-usergroup-names>  =>   B<host-usergroup-name[], optional>

=begin html

<br>List of usergroup names on which the user is member of.

=end html

=back



=over 2

=item * I<maximum-password-age>  =>   B<integer, optional>

=begin html

<br>Maximum age of the password(in days) before it has to be changed. Range: [0..2^32-1] Default Value: (2^32-1) days

=end html

=back



=over 2

=item * I<minimum-password-age>  =>   B<integer, optional>

=begin html

<br>Minimum age of the password(in days) before it can be changed. Range: [0..2^32-1] Default Value: 0

=end html

=back



=over 2

=item * I<password>  =>   B<host-user-password, optional>

=begin html

<br>Password of the local user.

=end html

=back



=over 2

=item * I<status>  =>   B<string, optional>

=begin html

<br>Status of the local user on the host. This element cannot be used as an input. Possible values: <ul> <li> "enabled" <li> "disabled" <li> "expired" </ul>

=end html

=back



=head2 host-user-password

=begin html

Password of the local user on the host. Encrypted using standard 2-way encryption. This must conform to the rules found in options "security.passwd.rules". By default, the password can contain 8 to 256 characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-usergroup-id

=begin html

Id of the usergroup on the host <p> The ID for a host usergroup is always assigned by the DFM system. Range: [1..2^31-1].

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-usergroup-info

=begin html

Describes the contents of a usergroup on the host. The host can be a storage system or a vFiler. Output will always contain all the elements present in the type definition.

=end html



B<Fields>

=over 2

=item * I<capabilities>  =>   B<capability[], optional>

=begin html

<br>List of capabilities the usergroup has inherited from the member roles.

=end html

=back



=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>Description of the usergroup on the host. Maximum Length: 128 characters

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id, optional>

=begin html

<br>Id of the host on which the usergroup is present.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the host on which the usergroup is present.

=end html

=back



=over 2

=item * I<host-role-ids>  =>   B<host-role-id[], optional>

=begin html

<br>List of ids of roles the usergroup contains.

=end html

=back



=over 2

=item * I<host-role-names>  =>   B<host-role-name[], optional>

=begin html

<br>List of role names the usergroup contains.

=end html

=back



=over 2

=item * I<host-usergroup-id>  =>   B<access-object-id, optional>

=begin html

<br>Internal id of the usergroup on the host.

=end html

=back



=over 2

=item * I<host-usergroup-name>  =>   B<usergroup-name, optional>

=begin html

<br>Name of the usergroup on the host.

=end html

=back



=head2 host-usergroup-name

=begin html

Name of the usergroup on the host. <p> A host usergroup name contains between 1 and 32 characters and can include any alphanumeric character, a space, or a punctuation character that is not one of: <br>" * + , / : ; < = > ? [ ] |

=end html



B<Fields>

=over 2

=item * None

=back



=head2 host-usergroup-name-or-id

=begin html

Name or id of usergroup. This must conform to the format of either usergroup-name or access-object-id.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 ip-port-number

=begin html

IP port number. <P> Range: [0..2^16-1]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 license

=begin html

Name of the licensed Data ONTAP service. <BR>Possible values: "nfs", "cifs", "iscsi", "fcp", "multistore", "a_sis", "snapmirror_sync".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 ndmp-credentials

=begin html

NDMP credentials for a host or a network. Valid only for storage systems and OSSV agents.

=end html



B<Fields>

=over 2

=item * I<ndmp-password>  =>   B<host-password, optional>

=begin html

<br>NDMP password.

=end html

=back



=over 2

=item * I<ndmp-port>  =>   B<ip-port-number, optional>

=begin html

<br>NDMP port. Valid only for storage systems and OSSV agents. If not present, the current setting is not modified.

=end html

=back



=over 2

=item * I<ndmp-username>  =>   B<ndmp-username, optional>

=begin html

<br>NDMP user name. Valid only for storage systems and OSSV agents. If not present, the current setting is not modified.

=end html

=back



=head2 ndmp-username

=begin html

Name of NDMP user. <P> Length: [1..32]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 perf-advisor-transport

=begin html

The transport setting for communicating to the host for collecting performance data. Data collection is disabled when this option is set to Disabled. <P> Possible values: "http_only", "https_ok", "disabled"

=end html



B<Fields>

=over 2

=item * None

=back



=head2 service-status

=begin html

Status indicating whether a service is up or down.

=end html



B<Fields>

=over 2

=item * I<service>  =>   B<string, optional>

=begin html

<br>Indicates whether the service is up or not. Possible values: "up", "down".

=end html

=back



=head2 sid

=begin html

SID (Security Identifier) describing a user. Length: [5..128] characters Format: S-1-5-21-int-int-int-rid RID is a unique random integer generated by storage system/vFiler unit.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 usergroup-name

=begin html

Name of a usergroup on storage system or vFiler unit. Usergroup name can contain between 1 and 256 characters and include any alphanumeric character, a space, or a punctuation character that is not one of: <br>" * + , / : ; < = > ? [ ] |

=end html



B<Fields>

=over 2

=item * None

=back



=head2 usergroup-name-or-id

=begin html

Name or id of usergroup on storage system or vFiler unit. This must conform to the format of either usergroup-name or access-object-id.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 vfiler-info

=begin html

information of a vFiler unit. Avaiblable only if host-type is "vfiler".

=end html



B<Fields>

=over 2

=item * I<hosting-filer-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the hosting filer of the vFiler unit.

=end html

=back



=over 2

=item * I<hosting-filer-name>  =>   B<obj-full-name, optional>

=begin html

<br>DNS name of the hosting filer of the vFiler unit.

=end html

=back



=over 2

=item * I<vfiler-allowed-protocols>  =>   B<protocol[], optional>

=begin html

<br>List of allowed protocols on the vFiler unit.

=end html

=back



=over 2

=item * I<vfiler-ipspace>  =>   B<string, optional>

=begin html

<br>IPSpace of the vFiler unit.

=end html

=back



=over 2

=item * I<vfiler-migration-info>  =>   B<L<"vfiler-migration-info">>

=begin html

<br>Migration information for the vFiler unit. This will be returned only if the vFiler is in migrating state and if include-migration-info is true in host-list-info-iter-start.

=end html

=back



=over 2

=item * I<vfiler-network-resources>  =>   B<L<"vfiler-network-resource">[]>

=begin html

<br>Network interface information of a vFiler unit.

=end html

=back



=head2 vfiler-ipspace

=begin html

Ipspace of vFiler unit.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 vfiler-migration-info

=begin html

Migration information for a vFiler unit.

=end html



B<Fields>

=over 2

=item * I<destination-filer-id>  =>   B<obj-id>

=begin html

<br>Database ID of the destination storage system

=end html

=back



=over 2

=item * I<destination-filer-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the destination storage system

=end html

=back



=over 2

=item * I<destination-vfiler-id>  =>   B<obj-id>

=begin html

<br>Database ID of the destination vFiler unit

=end html

=back



=over 2

=item * I<destination-vfiler-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the destination vFiler Unit

=end html

=back



=over 2

=item * I<migration-status>  =>   B<migration-status>

=begin html

<br>Migration status of the vFiler unit

=end html

=back



=over 2

=item * I<source-filer-id>  =>   B<obj-id>

=begin html

<br>Database ID of the source storage system

=end html

=back



=over 2

=item * I<source-filer-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the source storage system

=end html

=back



=over 2

=item * I<source-vfiler-id>  =>   B<obj-id>

=begin html

<br>Database ID of the source vFiler unit

=end html

=back



=over 2

=item * I<source-vfiler-name>  =>   B<obj-full-name>

=begin html

<br>Full name of the source vFiler Unit

=end html

=back



=head2 vfiler-network-resource

=begin html

Information about one vFiler unit IP address

=end html



B<Fields>

=over 2

=item * I<interface-id>  =>   B<obj-id, optional>

=begin html

<br>Interface identifier to which the IP address is bound. Present only if the IP address is bound to an interface

=end html

=back



=over 2

=item * I<interface-name>  =>   B<obj-name, optional>

=begin html

<br>Interface name to which the IP address is bound. Present only if the IP address is bound to an interface

=end html

=back



=over 2

=item * I<ip-address>  =>   B<ip-address>

=begin html

<br>IP Address assigned to the vFiler

=end html

=back



=over 2

=item * I<mtu-size>  =>   B<integer, optional>

=begin html

<br>Mtu size for the above bounded interface.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<integer>

=begin html

<br>null

=end html

=back



=head2 host-service-info

=begin html

Information about a host service.

=end html



B<Fields>

=over 2

=item * I<admin-port>  =>   B<integer>

=begin html

<br>Admin port of the Host Service. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<deleted-by>  =>   B<string>

=begin html

<br>The user who deleted the Host Service.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<integer>

=begin html

<br>The time and date when the Host Service was deleted. Range: [1..2^64-1]

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Object Identifier of the Host Service.

=end html

=back



=over 2

=item * I<host-service-ip-address>  =>   B<string>

=begin html

<br>IP address of the host where Host Service is installed

=end html

=back



=over 2

=item * I<host-service-name>  =>   B<string>

=begin html

<br>FQDN address of the host where Host Service is installed

=end html

=back



=over 2

=item * I<host-service-plugins>  =>   B<L<"host-service-plugin-info">[]>

=begin html

<br>plugins information configured on the host service

=end html

=back



=over 2

=item * I<host-service-status>  =>   B<string>

=begin html

<br>Status of the Host Service. Valid values are : 'up', 'down' and 'unknown'.

=end html

=back



=over 2

=item * I<host-service-version>  =>   B<string>

=begin html

<br>host service version

=end html

=back



=over 2

=item * I<is-authorized>  =>   B<boolean>

=begin html

<br>Indicates if host service registration authorized. false value indicates that the host service is registered but not yet authorized by the Dafabric Manager administrator. All the operations on host service like dicovery, configuration, backup and restore of virtual machine data are not allowed until the host service is authorized.

=end html

=back



=over 2

=item * I<last-discovery-status>  =>   B<string>

=begin html

<br>Status of the last discovery operation performed on the Host Service. Valid values are : 'unknown','failed', and 'ok'

=end html

=back



=over 2

=item * I<mgmt-port>  =>   B<integer>

=begin html

<br>Management port of the Host Service. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<needs-upgrade>  =>   B<string>

=begin html

<br>Valid values are : 'unknown', 'yes','no', and 'running' 'yes' if a new version of Host Service package is registered with DataFabric Manager server and the current version of the Host Service is older than the newly registered Host Service package. <BR> 'unknown': if the upgrade required status can not be determined 'no': if there are no later packages added to DFM 'running' : if an upgrade is already in progress

=end html

=back



=over 2

=item * I<timezone-info>  =>   B<L<"timezone-info">>

=begin html

<br>Timezone of the host, where the Host Service is installed. Returns an empty string, if Host Service does not return valid timezone. Currently valid time zones can be listed by timezone-list-info-iter.

=end html

=back



=over 2

=item * I<update-service-port>  =>   B<integer>

=begin html

<br>Port number on which update service is running. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<update-service-version>  =>   B<string>

=begin html

<br>Version of the update service.

=end html

=back



=head2 host-service-package-info

=begin html

Information about host service package.

=end html



B<Fields>

=over 2

=item * I<package-id>  =>   B<integer>

=begin html

<br>Object Id of host service package.

=end html

=back



=over 2

=item * I<package-name>  =>   B<string>

=begin html

<br>Name of the host service package.

=end html

=back



=over 2

=item * I<package-version>  =>   B<string>

=begin html

<br>Version of the package.

=end html

=back



=head2 host-service-plugin-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<plugin-type>  =>   B<string>

=begin html

<br>Type of Host Service plugin.

=end html

=back



=over 2

=item * I<plugin-version>  =>   B<string>

=begin html

<br>Version of the Host Service plugin.

=end html

=back



=head2 storage-system-configuration

=begin html

storage system configuration.

=end html



B<Fields>

=over 2

=item * I<login-protocol>  =>   B<string, optional>

=begin html

<br>Protocol that host service needs to use when calling ONTAP APIs on the storage systems. Value values are 'http', 'https' and 'rpc'. If not specified, Default is 'https'.

=end html

=back



=over 2

=item * I<push-credentials>  =>   B<boolean>

=begin html

<br>Push credentials stored in DataFabric Manager database to the host service.

=end html

=back



=over 2

=item * I<storage-system-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>Name or Id of the storage system.

=end html

=back



=head2 storage-system-info

=begin html

Information about a storage system.

=end html



B<Fields>

=over 2

=item * I<access-protocol>  =>   B<string, optional>

=begin html

<br>Protocol used by host service to communicate with the storage system. Valid values are : http, https, rpc

=end html

=back



=over 2

=item * I<login-status-from-dfm>  =>   B<string, optional>

=begin html

<br>Indicates if DFM has the valid credentials for storage system. Possible values are : 'good', 'bad', 'unknown'.

=end html

=back



=over 2

=item * I<login-status-from-hs>  =>   B<string, optional>

=begin html

<br>Indicates if host service has the valid credentials for storage system. Possible values are : 'good', 'bad', 'unknown'.

=end html

=back



=over 2

=item * I<ndmp-cred-status-from-dfm>  =>   B<string, optional>

=begin html

<br>Indicates if DFM has the valid NDMP credential for storage system. Possible values are : 'good', 'bad', 'unknown'.

=end html

=back



=over 2

=item * I<ndmp-username>  =>   B<string, optional>

=begin html

<br>ndmp username.

=end html

=back



=over 2

=item * I<storage-system-id>  =>   B<obj-id>

=begin html

<br>Object Identifier of the storage system in DataFabric Manager.

=end html

=back



=over 2

=item * I<storage-system-ip-address>  =>   B<string, optional>

=begin html

<br>IP address of the storage system.

=end html

=back



=over 2

=item * I<storage-system-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the storage system.

=end html

=back



=over 2

=item * I<storage-system-status>  =>   B<string, optional>

=begin html

<br>Status of storage system. Possbile valus are 'up', 'down', 'unknown'.

=end html

=back



=over 2

=item * I<storage-system-type>  =>   B<string, optional>

=begin html

<br>storage system type. Possbile valus are 'filer', 'vfiler', 'unknown'.

=end html

=back



=over 2

=item * I<storage-system-username>  =>   B<string, optional>

=begin html

<br>login name in case of 'filer'.

=end html

=back



=head2 ifc-info

=begin html

Information of about one interface.

=end html



B<Fields>

=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Identifier of the Filer on which the interface is present.

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>DNS name of the Filer on which the interface is present.

=end html

=back



=over 2

=item * I<ifc-id>  =>   B<obj-id>

=begin html

<br>Identifier of interface in DFM Server database. <BR> Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<ifc-name>  =>   B<obj-name>

=begin html

<br>Name of the interface (ex: e0a).

=end html

=back



=over 2

=item * I<ip-address>  =>   B<string, optional>

=begin html

<br>IP address configured for the interface. Empty in case the interface in unconfigured.

=end html

=back



=over 2

=item * I<ip-address-type>  =>   B<string>

=begin html

<br>Type of IP address configured for the interface. Possible values are: <ul> <li> ipv4 <li> ipv6 </ul>

=end html

=back



=over 2

=item * I<ipspace>  =>   B<string>

=begin html

<br>Name of the IPSpace to which the interface belongs.

=end html

=back



=over 2

=item * I<is-vlan-capable>  =>   B<boolean, optional>

=begin html

<br>Specifies if the interface is capable of supporting VLAN tagging. An interface will not support VLAN tagging if: <ul> <li> It is not VLAN capable (at present only some INTEL NICs are supported for VLAN tagging.) <li> It is a physical interface on which a VIF is configured. <li> It is an interface that is already accepting traffic. </ul>

=end html

=back



=over 2

=item * I<mtu-size>  =>   B<integer, optional>

=begin html

<br>Interface mtu size.

=end html

=back



=over 2

=item * I<netmask>  =>   B<string, optional>

=begin html

<br>Netmask configured for the interface. Empty in case the interface is unconfigured or configured with IPv6 address.

=end html

=back



=over 2

=item * I<partner-interface-id>  =>   B<obj-id, optional>

=begin html

<br>Partner interface identifier. This element is present only when the storage system on which the interface is present is in an Active/Active configuration and there is a partner interface configured for this interface.

=end html

=back



=over 2

=item * I<partner-interface-name>  =>   B<obj-full-name, optional>

=begin html

<br>Partner interface name. This element is present only when the storage system on which the interface is present is in an Active/Active configuration and there is a partner interface configured for this interface.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<integer, optional>

=begin html

<br>Prefix length for the IP address configured for the interface. Empty in case the interface is unconfigured. In case of IPv4 address, it is number of netmask bits. Range: [1..127]

=end html

=back



=over 2

=item * I<status>  =>   B<string>

=begin html

<br>Operation status of the interface, valid values are "up", "down", "testing", "unknown".

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Type of interface. <BR>Possible values are "ethernet", "fddi", "loopback", "atm", "vif", "vlan", "unknown".

=end html

=back



=head2 ldap-server

=begin html

Information of one LDAP server contains ip address and port number. This uniquely identifies the LDAP server in DFM.

=end html



B<Fields>

=over 2

=item * I<ldap-server-addr>  =>   B<network-address>

=begin html

<br>Address of the LDAP server.

=end html

=back



=over 2

=item * I<ldap-server-port>  =>   B<integer, optional>

=begin html

<br>Represents port number on which LDAP server will be listening. The default port number is 389. Range : [1..2^16-1]

=end html

=back



=head2 ldap-server-info

=begin html

Information of one LDAP server.

=end html



B<Fields>

=over 2

=item * I<last-failed-time>  =>   B<timestamp, optional>

=begin html

<br>Represents the last time when DFM communication with LDAP server failed. Absent if DFM communication with LDAP server has not failed.

=end html

=back



=over 2

=item * I<last-used-time>  =>   B<timestamp>

=begin html

<br>Represents the last time when LDAP server was used.

=end html

=back



=over 2

=item * I<ldap-server>  =>   B<L<"ldap-server">>

=begin html

<br>IP address and port details of the LDAP server.

=end html

=back



=head2 igroup-reference

=begin html

Name and Id of an iGroup.

=end html



B<Fields>

=over 2

=item * I<igroup-id>  =>   B<obj-id>

=begin html

<br>Name of the iGroup.

=end html

=back



=over 2

=item * I<igroup-name>  =>   B<obj-name>

=begin html

<br>Name of the iGroup.

=end html

=back



=head2 lun-info

=begin html

Information about a lun.

=end html



B<Fields>

=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Identifier of host on which the lun resides. Always present in the output.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-name>

=begin html

<br>Name of host on which the lun resides. Always present in the output. The name is any simple name such as myhost.

=end html

=back



=over 2

=item * I<igroups>  =>   B<L<"igroup-reference">[], optional>

=begin html

<br>list of igroups to which the LUN is mapped to. Returns emtpy array incase the LUN is not mapped to any igroup.

=end html

=back



=over 2

=item * I<is-lun-space-reserved>  =>   B<boolean>

=begin html

<br>Indicates if the space for LUN is reserved the containing volume.

=end html

=back



=over 2

=item * I<lun-id>  =>   B<obj-id>

=begin html

<br>Identifier of the lun.

=end html

=back



=over 2

=item * I<lun-path>  =>   B<obj-name>

=begin html

<br>Path name of the lun including the volume or qtree where the lun exists. The name will be similar to myvol/mylun or myvol/myqtree/mylun.

=end html

=back



=over 2

=item * I<lun-serial-number>  =>   B<string>

=begin html

<br>Serial Number of the LUN

=end html

=back



=over 2

=item * I<lun-size>  =>   B<integer>

=begin html

<br>Lun size in bytes. Range : [0..2^63-1].

=end html

=back



=over 2

=item * I<lun-used-space>  =>   B<integer>

=begin html

<br>Number of bytes used by the LUN. Range : [0..2^63-1].

=end html

=back



=over 2

=item * I<object-perf-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the lun based on performance events

=end html

=back



=over 2

=item * I<object-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the lun based on all events

=end html

=back



=over 2

=item * I<qtree-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of qtree on which the lun resides. Present in the output only if the lun resides on a qtree. *

=end html

=back



=over 2

=item * I<qtree-name>  =>   B<obj-name, optional>

=begin html

<br>Name of qtree on which the lun resides. Present in the output only if the lun resides on a qtree. The name is any simple name such as myqtree.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Identifier of volume on which the lun resides. Always present in the output.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-name, optional>

=begin html

<br>Name of volume on which the lun resides. The name is any simple name such as myvol. volume-name is not returned if the lun belongs to a qtree on a vfiler and the authenticated admin does not have the required capability. For details of the required capability, see description of rbac-operation input element in lun-list-info-iter-start api.

=end html

=back



=head2 migration-dry-run-result

=begin html

Dry run results of migration of each individual volume

=end html



B<Fields>

=over 2

=item * I<dry-run-results>  =>   B<L<"dry-run-result">[]>

=begin html

<br>Results of a dry run. Each result describes one action the system would take and the predicted effects of that action.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Identifier of the volume to migrate

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-name>

=begin html

<br>Full name of the volume to migrate

=end html

=back



=head2 migration-job-info

=begin html

Job information of volume migration job.

=end html



B<Fields>

=over 2

=item * I<job-id>  =>   B<integer>

=begin html

<br>Identifier of job started for the volume migration.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Identifier of the volume to migrate

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-name>

=begin html

<br>Full name of the volume to migrate

=end html

=back



=head2 migration-request-info

=begin html

Details of a volume migration request.

=end html



B<Fields>

=over 2

=item * I<cleanup-stale-storage>  =>   B<cleanup-stale-storage, optional>

=begin html

<br>Indicates when should the volumes in the source aggregate should be destroyed after successful migration. Default value is "cleanup_after_migration".

=end html

=back



=over 2

=item * I<destination-aggregate-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the destination aggregate to which all the volumes has to be migrated to. If the destination aggregate is not provided, the system will select a suitable aggregate from the resource pools associated with the dataset node to which the volumes belong to.

=end html

=back



=over 2

=item * I<retention-type>  =>   B<dp-backup-retention-type, optional>

=begin html

<br>Retention type to which the backup version created should be archived for the backups created as part of running an on-demand update after successful migration. This element is ignored if run-on-demand-update is false. Default value is "daily".

=end html

=back



=over 2

=item * I<run-dedupe-scan>  =>   B<boolean, optional>

=begin html

<br>Indicates whether a full deduplication scan has to be run on the new volume after migration. This option is applicable only for volumes that are enabled for deduplication and is useful to regenerate the fingerprint database used in deduplication and will be ignored for other volumes. Default value is false.

=end html

=back



=over 2

=item * I<run-on-demand-update>  =>   B<boolean, optional>

=begin html

<br>Indicates whether an on-demand update has to be triggered after successful migration on the dataset to which the volumes that were migrated belong to. Default value is false.

=end html

=back



=over 2

=item * I<volumes>  =>   B<obj-name-or-id[]>

=begin html

<br>Name or ids of one or more volumes to be migrated. Currently, all the volumes should belong to the same aggregate. The volumes, if they belong to a dataset should all belong to the same node of the dataset.

=end html

=back



=head2 route-migration-mode

=begin html

Type of migrating routes. <p> Possible values are: 'static', 'persistent', 'none'. <UL> <LI> static: Static routes present in the IPSpace of the migrating vFiler unit will be migrated. <LI> persistent: Persistent routes present in /etc/rc file related to the migrating vFiler unit will be migrated. <LI> none: None of the routes will be migrated. Choosing this option may lead to non-disruptive migration, if the routes in the migrating vFiler unit are not present on the destination storage system. This option should be chosen only when all the routes are already present on the destination storage system. By default 'static' routes will be migrated. </UL>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 volume-aggregate-pair

=begin html

A volume and aggregate pair.

=end html



B<Fields>

=over 2

=item * I<aggregate>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the aggregate.

=end html

=back



=over 2

=item * I<volume>  =>   B<obj-name-or-id>

=begin html

<br>Name or id of the volume.

=end html

=back



=head2 netif-ip-interface-info

=begin html

Information about one network interface.

=end html



B<Fields>

=over 2

=item * I<administrative-status>  =>   B<string>

=begin html

<br>The desired state of the interface. Possible values are "up", "down", and "testing".

=end html

=back



=over 2

=item * I<bytes-in>  =>   B<integer>

=begin html

<br>The total number of octets received on the interface, including framing characters. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<bytes-out>  =>   B<integer>

=begin html

<br>The total number of octets transmitted out of the interface, including framing characters. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<discards-in>  =>   B<integer>

=begin html

<br>The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<discards-out>  =>   B<integer>

=begin html

<br>The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<errors-in>  =>   B<integer>

=begin html

<br>The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<errors-out>  =>   B<integer>

=begin html

<br>The number of outbound packets that could not be transmitted because of errors. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<ip-addresses>  =>   B<string[]>

=begin html

<br>List of IP addresses mapped to this interface.

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>The name of the interface.

=end html

=back



=over 2

=item * I<operational-status>  =>   B<string>

=begin html

<br>The current operational state of the interface. Possible values are "up", "down", and "testing".

=end html

=back



=over 2

=item * I<packets-in>  =>   B<integer>

=begin html

<br>The number of packets delivered to a higher-layer protocol, including unicast, multicast, and broadcast packets. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<packets-out>  =>   B<integer>

=begin html

<br>The total number of packets that higher-level protocols requested be transmitted, including those that were discarded or not sent. <BR>Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<physical-address>  =>   B<string>

=begin html

<br>The interface's MAC address. <BR>Example: 00:01:00:00:08:fd

=end html

=back



=over 2

=item * I<speed>  =>   B<integer>

=begin html

<br>The interface's current bandwidth in bits per second. <BR>Range: [0..2^32-1]

=end html

=back



=head2 network-id

=begin html

Unique id representing network in DFM. Range: [0..2^31-1]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 network-info

=begin html

Information of one network.

=end html



B<Fields>

=over 2

=item * I<hop-count>  =>   B<integer>

=begin html

<br>Represents hop count for the network. Zero will be returned if network is not discovered. Range: [0..2^31 -1]

=end html

=back



=over 2

=item * I<last-searched-time>  =>   B<timestamp, optional>

=begin html

<br>Represents the time when network was last discovered. Value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<network-address>  =>   B<network-address>

=begin html

<br>Address of the network.

=end html

=back



=over 2

=item * I<network-id>  =>   B<network-id>

=begin html

<br>A unique id representing the network.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<prefix-length>

=begin html

<br>The routing prefix length of the network.

=end html

=back



=head2 cifs-op-stats

=begin html

Contains the CIFS operations performed by the client on the storage system.

=end html



B<Fields>

=over 2

=item * I<other-operations>  =>   B<integer>

=begin html

<br>Specifies operations that do not fall into either read or write categories. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=over 2

=item * I<read-operations>  =>   B<integer>

=begin html

<br>The number of read operations performed by the client on the storage system. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=over 2

=item * I<write-operations>  =>   B<integer>

=begin html

<br>The number of write operations performed by the client on the storage system. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=head2 client-stat-error

=begin html

Describes an error encountered while collecting per-client statistics on the storage system or vfiler.

=end html



B<Fields>

=over 2

=item * I<cifs-error>  =>   B<string, optional>

=begin html

<br>Error encountered while collecting CIFS per-client statistics

=end html

=back



=over 2

=item * I<nfs-error>  =>   B<string, optional>

=begin html

<br>Error encountered while collecting NFS per-client statistics

=end html

=back



=over 2

=item * I<object-name>  =>   B<obj-name>

=begin html

<br>The name of the vFiler unit or storage system for which this error was encountered.

=end html

=back



=head2 client-stats

=begin html

Contains the per-protocol operations performed by a client on a storage system.

=end html



B<Fields>

=over 2

=item * I<cifs-op-stats>  =>   B<L<"cifs-op-stats">, optional>

=begin html

<br>The number of CIFS operations performed by the client.

=end html

=back



=over 2

=item * I<client-name-or-ip>  =>   B<string>

=begin html

<br>The name or IP address of the client.

=end html

=back



=over 2

=item * I<nfs-op-stats>  =>   B<L<"nfs-op-stats">, optional>

=begin html

<br>The number of NFS operations performed by the client.

=end html

=back



=head2 counter-threshold-info

=begin html

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

=end html



B<Fields>

=over 2

=item * I<perf-object-counter>  =>   B<L<"perf-object-counter">>

=begin html

<br>Specifies a combination of an object and a counter, e.g. system:cpu_busy.

=end html

=back



=over 2

=item * I<threshold-type>  =>   B<string, optional>

=begin html

<br>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'

=end html

=back



=over 2

=item * I<threshold-unit>  =>   B<counter-unit>

=begin html

<br>Unit of the counter. The metric used for a counter may vary depending on the ONTAP version.

=end html

=back



=over 2

=item * I<threshold-value>  =>   B<integer>

=begin html

<br>The threshold value to trigger an event. Range: [0..2^64-1].

=end html

=back



=head2 counter-unit

=begin html

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.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 day

=begin html

Day of week. Possible values : 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday' or 'sunday'

=end html



B<Fields>

=over 2

=item * None

=back



=head2 destination-host-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<error-reason>  =>   B<string, optional>

=begin html

<br>If the copy operation failed, this element will have the reason for the failure. This element will not be present when the copy operation was sucessful.

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id>

=begin html

<br>Identifier of the destination storage system.

=end html

=back



=over 2

=item * I<host-name>  =>   B<obj-full-name>

=begin html

<br>Name of the destination storage system.

=end html

=back



=head2 dynamic-data

=begin html

Contains data for top-N objects

=end html



B<Fields>

=over 2

=item * I<hostname>  =>   B<obj-name, optional>

=begin html

<br>Name of the host. Will not be set when the objects are selected within a host

=end html

=back



=over 2

=item * I<instance-name>  =>   B<L<"perf-instance">, optional>

=begin html

<br>Name of the perf instance. Will not be set for single instance objects like system, nfsv3

=end html

=back



=over 2

=item * I<obj-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the object. Will not be set for unmanaged objects

=end html

=back



=over 2

=item * I<value>  =>   B<string>

=begin html

<br>Value for the object Max Length is 32

=end html

=back



=head2 host-client-stats

=begin html

Contains the per-client operations on a host.

=end html



B<Fields>

=over 2

=item * I<collection-period>  =>   B<integer>

=begin html

<br>The duration, in seconds, for which the collection of per-client statistics was enabled. Range: [ 15 .. 60 ]

=end html

=back



=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>The id, in the DFM database, of the storage system for which these client statistics have been collected.

=end html

=back



=over 2

=item * I<object-name>  =>   B<obj-name>

=begin html

<br>The name of the storage system for which the per-client statistics were collected.

=end html

=back



=over 2

=item * I<start-time>  =>   B<timestamp>

=begin html

<br>The time at which the collection of per-client statistics was enabled, in seconds from Epoch time.

=end html

=back



=over 2

=item * I<stat-id>  =>   B<stat-id>

=begin html

<br>The id, in the DFM datbase, of this collection of statistics.

=end html

=back



=over 2

=item * I<stats>  =>   B<L<"client-stats">[]>

=begin html

<br>Contains the operations performed by the top 20 clients operating on the host. If 20 clients are not available, the operations for the maximum available clients will be present.

=end html

=back



=head2 instance-counter-info

=begin html

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

=end html



B<Fields>

=over 2

=item * I<counter-info>  =>   B<L<"perf-object-counter">[]>

=begin html

<br>List of performance counters whose values will be retrieved.

=end html

=back



=over 2

=item * I<instance-name>  =>   B<string, optional>

=begin html

<br>For unmanaged objects, this will be the name of the instance. When this input is specified, the object-name-or-id should have the name or id of the storage system. Maximum length is 255

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>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.

=end html

=back



=head2 invalid-counter-instance

=begin html

A performance counter, an object instance pair.

=end html



B<Fields>

=over 2

=item * I<counter-info>  =>   B<L<"perf-object-counter">>

=begin html

<br>Specification of the performance counter.

=end html

=back



=over 2

=item * I<err-code>  =>   B<string>

=begin html

<br>The string to specify the reason why this counter instance pair is invalid. Possible values are: "invalid_instance": The instance provided is invalid. "invalid_object_type": The object type provided is invalid. "no_instances_available": No instances found for the provided counter. "invalid_counter": The counter specified is not valid. "counter_unavailable": The counter specified is unavailable for this storage system. "incompatible_counter_instance": The counter and instance are incompatible (For example: data requested for a network interface counter but an aggregate is provided as instance).

=end html

=back



=over 2

=item * I<err-reason>  =>   B<string>

=begin html

<br>The reason why this instance pair is invalid.

=end html

=back



=over 2

=item * I<host-id>  =>   B<obj-id, optional>

=begin html

<br>Name of the storage system to which the instance belongs to.

=end html

=back



=over 2

=item * I<instance-name>  =>   B<string, optional>

=begin html

<br>Name of the instance.

=end html

=back



=head2 metric

=begin html

Contains the computation performed and the value

=end html



B<Fields>

=over 2

=item * I<id>  =>   B<string>

=begin html

<br>Unique identifier to be set by the user to map the requested metrics to its value when multiple type of metrics are requested for the same counter. This field is not processed and returned as it is in the output. Length not more than 16 characters.

=end html

=back



=over 2

=item * I<metric-result>  =>   B<string, optional>

=begin html

<br>The computed value. The format multiple comma separated timestamp:value. This is an output-only field.

=end html

=back



=over 2

=item * I<period>  =>   B<integer, optional>

=begin html

<br>Computation window in seconds. Valid only when slide field is specified as "step", "rolling" or "cumulative". One metric value is calculated for each window of size period. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<slide>  =>   B<string, optional>

=begin html

<br>Defines the method to slide the compute window specified by period field. Possible values: <li> "<b>simple</b>": No slide. Compute a single metric for the entire time range. <li> "<b>rolling</b>": Slide the window by one sample at a time. period field has to be specified. <li> "<b>step</b>": Slide the window value equal to period. period field has to be specified. <li> "<b>cumulative</b>": The window keeps growing by the value equal to period<br> Default value: "<b>simple</b>"

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>The computation type Possible values: "<b>mean</b>": Mean of the data for the specified time period. "<b>min</b>": Minimum value "<b>max</b>": Maximum value "<b>value_at_percentile</b>": nth percentile of the samples, where n is specified in the value field.

=end html

=back



=over 2

=item * I<value>  =>   B<string, optional>

=begin html

<br>Valid only when the type field is set to "value_at_percentile" Requested percentile value. This field accepts only positive real numbers as inputs. Range : (0..100]

=end html

=back



=head2 month

=begin html

Month of year. Possible values : 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november' or 'december'

=end html



B<Fields>

=over 2

=item * None

=back



=head2 nfs-op-stats

=begin html

Contains the NFS operations performed by the client on the storage system.

=end html



B<Fields>

=over 2

=item * I<other-operations>  =>   B<integer>

=begin html

<br>Specifies operations that do not fall into either read or write categories. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=over 2

=item * I<read-operations>  =>   B<integer>

=begin html

<br>The number of read operations performed by the client on the storage system. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=over 2

=item * I<write-operations>  =>   B<integer>

=begin html

<br>The number of write operations performed by the client on the storage system. Range: [ 0 .. 2^31 - 1 ]

=end html

=back



=head2 object-info

=begin html

Associated object's information

=end html



B<Fields>

=over 2

=item * I<object-full-name>  =>   B<obj-full-name, optional>

=begin html

<br>The full name of the object that is associated with the view

=end html

=back



=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>The object that is associated with the view

=end html

=back



=over 2

=item * I<object-name>  =>   B<obj-name, optional>

=begin html

<br>object-name is the name of the DFM object

=end html

=back



=over 2

=item * I<object-type>  =>   B<string, optional>

=begin html

<br>Type of the DFM object. The possible values are <ul> <li> "resource_group" <li> "data_set" <li> "resource_pool" <li> "filer" <li> "vfiler" <li> "volume" <li> "qtree" <li> "lun" <li> "aggregate" <li> "interface" </ul>

=end html

=back



=head2 perf-assoc-obj-type

=begin html

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

=end html



B<Fields>

=over 2

=item * None

=back



=head2 perf-chart

=begin html

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

=end html



B<Fields>

=over 2

=item * I<chart-name>  =>   B<string>

=begin html

<br>Name of the chart. This is intended to be a user-visible label like "CPU Graph". It should be unique to the performance view.

=end html

=back



=over 2

=item * I<dynamic-data-sources>  =>   B<L<"perf-dynamic-data-sources">, optional>

=begin html

<br>Lines representing dynamic members. Data for each data source is drawn as one line in the chart.

=end html

=back



=over 2

=item * I<lines>  =>   B<L<"perf-line">[], optional>

=begin html

<br>Line definitions.

=end html

=back



=over 2

=item * I<maximum-y>  =>   B<integer, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<type>  =>   B<string, optional>

=begin html

<br>Type of the chart. Arbitrary string meaningful to the client only.

=end html

=back



=head2 perf-counter

=begin html

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.

=end html



B<Fields>

=over 2

=item * I<base-counter>  =>   B<string, optional>

=begin html

<br>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

=end html

=back



=over 2

=item * I<desc>  =>   B<string>

=begin html

<br>Description of the counter

=end html

=back



=over 2

=item * I<is-display>  =>   B<boolean, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<labels>  =>   B<L<"perf-label">[], optional>

=begin html

<br>A list of labels for this counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info

=end html

=back



=over 2

=item * I<name>  =>   B<string>

=begin html

<br>Name of the counter

=end html

=back



=over 2

=item * I<privilege-level>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<properties>  =>   B<string, optional>

=begin html

<br>Properties of the counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info

=end html

=back



=over 2

=item * I<type>  =>   B<string, optional>

=begin html

<br>Type of the counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info

=end html

=back



=over 2

=item * I<unit>  =>   B<string, optional>

=begin html

<br>Unit of the counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info

=end html

=back



=head2 perf-counter-data

=begin html

Value of the performance counter.

=end html



B<Fields>

=over 2

=item * I<counter-data>  =>   B<string>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<counter-name>  =>   B<string>

=begin html

<br>Name of the counter.

=end html

=back



=over 2

=item * I<label-names>  =>   B<string>

=begin html

<br>A list of comma-separated label names to completely qualify the counter. This element will be empty for counters without labels.

=end html

=back



=over 2

=item * I<metrics>  =>   B<L<"metric">[], optional>

=begin html

<br>Container of computed metric values. Returned only in the perf-get-counter-data ZAPI when metrics value is requested.

=end html

=back



=over 2

=item * I<object-type>  =>   B<string>

=begin html

<br>object-type is the name of the object classification as defined by ONTAP counter manager. Maximum length of 255 characters.

=end html

=back



=over 2

=item * I<unit>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=head2 perf-counter-group

=begin html

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

=end html



B<Fields>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string>

=begin html

<br>Name of the counter group.

=end html

=back



=over 2

=item * I<counter-info>  =>   B<L<"perf-object-counter">[], optional>

=begin html

<br>Counters retrieved.

=end html

=back



=over 2

=item * I<data-sources>  =>   B<L<"perf-data-source">[], optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<data-sources-to-be-disabled>  =>   B<L<"perf-data-source">[], optional>

=begin html

<br>The data sources to be disabled. Presently this parameter is valid for the default cgs. If 'data-sources' field contains a valid data sources to be enabled on this counter group, this field should not be specified.

=end html

=back



=over 2

=item * I<end-time>  =>   B<integer, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<is-default>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the counter group is a "default" counter group. Defaults to false.

=end html

=back



=over 2

=item * I<is-disable-all>  =>   B<boolean, optional>

=begin html

<br>Indicates whether to disable all the counters in the counter group. Default is false.

=end html

=back



=over 2

=item * I<is-stopped>  =>   B<boolean, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<number-records>  =>   B<integer, optional>

=begin html

<br>Present in output only. Indicates the number of records currently collected for the counter group and storage system. This information is sent in the output only if the host information is not consolidated

=end html

=back



=over 2

=item * I<perf-file-name>  =>   B<string, optional>

=begin html

<br>Present in output only. This indicates the name of the file that contains the performance information for the counter group and storage system. This information is sent in the output only if the host information is not consolidated

=end html

=back



=over 2

=item * I<real-time>  =>   B<boolean, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<sample-buffer>  =>   B<integer, optional>

=begin html

<br>Length of sample buffer to retain, in seconds. If unspecified on input, the value will be chosen by the server.

=end html

=back



=over 2

=item * I<sample-rate>  =>   B<integer, optional>

=begin html

<br>Length of interval between samples, in seconds. Defaults to one minute.

=end html

=back



=over 2

=item * I<space-consumed>  =>   B<integer, optional>

=begin html

<br>Present in output only. Indicates the amount of server storage currently consumed by the counter group data, in bytes.Range: [0..2^64-1].

=end html

=back



=over 2

=item * I<space-projected>  =>   B<integer, optional>

=begin html

<br>Present in output only. Indicates the maximum amount of server storage required by the counter group data, in bytes. Range: [0..2^64-1].

=end html

=back



=over 2

=item * I<start-time>  =>   B<integer, optional>

=begin html

<br>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.

=end html

=back



=head2 perf-counter-instance

=begin html

Defines a perf counter for a specific instance.

=end html



B<Fields>

=over 2

=item * I<counter-info>  =>   B<L<"perf-object-counter">>

=begin html

<br>The counter for which data is to be retrieved

=end html

=back



=over 2

=item * I<instance-name>  =>   B<string, optional>

=begin html

<br>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

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>The object for which data is to be retrieved or the id of the parent storage system, if instance-name is specified

=end html

=back



=head2 perf-data-group

=begin html

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

=end html



B<Fields>

=over 2

=item * I<data-group-method>  =>   B<string, optional>

=begin html

<br>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).

=end html

=back



=over 2

=item * I<data-sources>  =>   B<L<"perf-data-source">[]>

=begin html

<br>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.

=end html

=back



=head2 perf-data-source

=begin html

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

=end html



B<Fields>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>The name (or unique ID) of the source storage system. 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.

=end html

=back



=over 2

=item * I<counter-name>  =>   B<string>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<instance-name>  =>   B<string, optional>

=begin html

<br>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 a storage system or a group.

=end html

=back



=over 2

=item * I<label-names>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<object-full-name>  =>   B<obj-full-name, optional>

=begin html

<br>The object id for the specific object referenced

=end html

=back



=over 2

=item * I<object-name>  =>   B<string>

=begin html

<br>The name of the referenced object. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>The object id for the specific object referenced. For dynamic data sources, this will specify the container from which objects will be selected

=end html

=back



=over 2

=item * I<object-type>  =>   B<string, optional>

=begin html

<br>Type of the DFM object. The possible values are <ul> <li> "filer" <li> "vfiler" <li> "volume" <li> "qtree" <li> "lun" <li> "aggregate" </ul>

=end html

=back



=head2 perf-dependent-counter-info

=begin html

Describes a performance counter and its dependent counters list, for example system:load_inbound_mbps is dependent on system:net_data_recv, fcp:fcp_write_data, iscsi:iscsi_write_data counters.

=end html



B<Fields>

=over 2

=item * I<counter-name>  =>   B<string>

=begin html

<br>Name of the counter.

=end html

=back



=over 2

=item * I<object-counters>  =>   B<L<"perf-object-counter">[], optional>

=begin html

<br>List of dependents for this counter.

=end html

=back



=head2 perf-diag-category

=begin html

Diagnosis Category.

=end html



B<Fields>

=over 2

=item * I<category-name>  =>   B<string>

=begin html

<br>Name of the category

=end html

=back



=over 2

=item * I<category-status>  =>   B<obj-status>

=begin html

<br>Violation status of the category The possible status for a Diagnosis Category are "information" (If none of its health checks are violated), "warning" (If it contains only performance tips) and "error" (If atleast one of its health checks are violated). Details of 'Performance tips' shall not be included in the category output if it is not violated.

=end html

=back



=over 2

=item * I<health-checks>  =>   B<L<"perf-health-check">[]>

=begin html

<br>List of Performance Health Checks and performance improvement tips.

=end html

=back



=head2 perf-dynamic-data-sources

=begin html

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.

=end html



B<Fields>

=over 2

=item * I<color>  =>   B<string, optional>

=begin html

<br>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".

=end html

=back



=over 2

=item * I<data-source>  =>   B<L<"perf-data-source">, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<maximum-instances>  =>   B<integer, optional>

=begin html

<br>Maximum number of instances to pick. Default is 5.

=end html

=back



=over 2

=item * I<select-all-instances>  =>   B<boolean, optional>

=begin html

<br>If true, this will pick all the instances being considered. If maximum-instances element is present and select-all-instances is true, then select-all-instances will be considered over maximum-instances. By default this is false.

=end html

=back



=over 2

=item * I<sort-order>  =>   B<string, optional>

=begin html

<br>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".

=end html

=back



=over 2

=item * I<time-interval>  =>   B<integer, optional>

=begin html

<br>When considering the historical data samples, how far back in time (in seconds) we should go. Default is 300.

=end html

=back



=head2 perf-health-check

=begin html

A check which if violated could affect the performance of the given object.

=end html



B<Fields>

=over 2

=item * I<health-check-name>  =>   B<string>

=begin html

<br>Name of the health check

=end html

=back



=over 2

=item * I<health-check-status>  =>   B<obj-status>

=begin html

<br>Violation status of the health check. Possible values are "error", "warning" (in case of performance tip), "information".

=end html

=back



=over 2

=item * I<observation>  =>   B<string>

=begin html

<br>Observations found for the health check.

=end html

=back



=over 2

=item * I<recommendation>  =>   B<string>

=begin html

<br>Recommendation to avoid the issue. This will be "N/A" if the health-check status is "information".

=end html

=back



=head2 perf-instance

=begin html

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".

=end html



B<Fields>

=over 2

=item * I<instance-name>  =>   B<string>

=begin html

<br>Name of the instance.

=end html

=back



=head2 perf-instance-counter-data

=begin html

Array of counter values of an instance.

=end html



B<Fields>

=over 2

=item * I<counters>  =>   B<L<"perf-counter-data">[]>

=begin html

<br>List of counter values for this instance.

=end html

=back



=over 2

=item * I<instance-name>  =>   B<string, optional>

=begin html

<br>Name of the instance to get counter values for.

=end html

=back



=over 2

=item * I<object-id>  =>   B<obj-id>

=begin html

<br>Identifier of the object

=end html

=back



=head2 perf-label

=begin html

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.

=end html



B<Fields>

=over 2

=item * I<label-names>  =>   B<string>

=begin html

<br>A comma-separated list of labels, representing a row in the array of labels.

=end html

=back



=head2 perf-line

=begin html

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).

=end html



B<Fields>

=over 2

=item * I<color>  =>   B<string, optional>

=begin html

<br>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".

=end html

=back



=over 2

=item * I<data-group>  =>   B<L<"perf-data-group">>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<line-name>  =>   B<string>

=begin html

<br>Name of the line. This is intended to be a user-visible label.

=end html

=back



=over 2

=item * I<type>  =>   B<string>

=begin html

<br>Type of display for the line. The values and their interpretation are determined by the client.

=end html

=back



=head2 perf-missing-host-object-counter

=begin html

Counters not available with a particular host.

=end html



B<Fields>

=over 2

=item * I<host-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>DFM host name.

=end html

=back



=over 2

=item * I<missing-object-counters>  =>   B<L<"perf-object-counter">[]>

=begin html

<br>List of unavailable counters.

=end html

=back



=head2 perf-object

=begin html

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.

=end html



B<Fields>

=over 2

=item * I<assoc-obj-type>  =>   B<perf-assoc-obj-type>

=begin html

<br>Name of the DFM object to which the performance object is associated. Performance objects that have single instances such as "system", "cifs", "nfsv3", etc are associated with DFM object "filer". Other performance objects are associated with respective DFM object types.

=end html

=back



=over 2

=item * I<object-name>  =>   B<string>

=begin html

<br>Name of the performance object.

=end html

=back



=head2 perf-object-counter

=begin html

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

=end html



B<Fields>

=over 2

=item * I<counter-description>  =>   B<string, optional>

=begin html

<br>Description of the counter on which the threshold has been set.

=end html

=back



=over 2

=item * I<counter-name>  =>   B<string>

=begin html

<br>The name of the counter measured. Counters are specifc measurable quantities on an instance of a performance object like avg_latency, nfs_ops. <P> Maximum length of 255 characters.

=end html

=back



=over 2

=item * I<is-calculated-stats>  =>   B<boolean, optional>

=begin html

<br>This field says whether the counter is a calculated stat counter or not.

=end html

=back



=over 2

=item * I<label-names>  =>   B<string, optional>

=begin html

<br>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

=end html

=back



=over 2

=item * I<metrics>  =>   B<L<"metric">[], optional>

=begin html

<br>Container of metric requested. Only perf-get-counter-data uses this field, for all other ZAPIs this field is ignored.

=end html

=back



=over 2

=item * I<object-type>  =>   B<string>

=begin html

<br>object-type is the name of the object classification as defined by ONTAP counter manager. <P> Maximum length of 255 characters.

=end html

=back



=over 2

=item * I<perf-labels>  =>   B<L<"perf-label">[], optional>

=begin html

<br>A list of labels for this counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info

=end html

=back



=over 2

=item * I<time-consolidation-method>  =>   B<string, optional>

=begin html

<br>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'

=end html

=back



=head2 perf-object-counter-info

=begin html

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

=end html



B<Fields>

=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id>

=begin html

<br>object-name or object-id for which counter information is being collected.

=end html

=back



=over 2

=item * I<perf-object-counter>  =>   B<L<"perf-object-counter">>

=begin html

<br>Attributes of the counter being collected.

=end html

=back



=head2 perf-purged-host-object-counter

=begin html

Lists the effected counters deatils for a particular host.

=end html



B<Fields>

=over 2

=item * I<host-name-or-id>  =>   B<host-name-or-id>

=begin html

<br>DFM host name.

=end html

=back



=over 2

=item * I<purged-object-counters-details>  =>   B<L<"perf-purged-object-counters-details">[]>

=begin html

<br>Lists the effected counters details.

=end html

=back



=head2 perf-purged-object-counters-details

=begin html

Lists the effected counters for each object along with retention period details.

=end html



B<Fields>

=over 2

=item * I<current-retention-period>  =>   B<integer>

=begin html

<br>Existing retention period in seconds.

=end html

=back



=over 2

=item * I<new-retention-period>  =>   B<integer>

=begin html

<br>New retention period in seconds after applying copy configuration operation.

=end html

=back



=over 2

=item * I<purged-object-counters>  =>   B<L<"perf-object-counter">[]>

=begin html

<br>List of effected counters for which historical data will be purged.

=end html

=back



=head2 perf-report

=begin html

The description of a performance report.

=end html



B<Fields>

=over 2

=item * I<report-name>  =>   B<string>

=begin html

<br>Name of the report.

=end html

=back



=head2 perf-server-status

=begin html

Describes the status of perf server.

=end html



B<Fields>

=over 2

=item * I<data-collection-status>  =>   B<string>

=begin html

<br>Specifies the status of data collection. Possible values are "enabled","disabled" and "disabling"

=end html

=back



=over 2

=item * I<object-update-status>  =>   B<string>

=begin html

<br>Specifies the status of object updates. Possible values are "enabled" and "disabled"

=end html

=back



=over 2

=item * I<server-status>  =>   B<string>

=begin html

<br>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.

=end html

=back



=head2 perf-status-error

=begin html

Possible resons for data unavailability.

=end html



B<Fields>

=over 2

=item * I<error>  =>   B<string>

=begin html

<br>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.

=end html

=back



=head2 perf-threshold

=begin html

The description of a performance threshold.

=end html



B<Fields>

=over 2

=item * I<perf-threshold-name>  =>   B<string>

=begin html

<br>Name of the threshold event.

=end html

=back



=head2 perf-view

=begin html

A performance view.

=end html



B<Fields>

=over 2

=item * I<appliance-name-or-id>  =>   B<string, optional>

=begin html

<br>Name (or unique ID) of the storage system. 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.

=end html

=back



=over 2

=item * I<are-events-shown>  =>   B<boolean, optional>

=begin html

<br>Indicates whether an event block should be shown as part of the view. Defaults to false.

=end html

=back



=over 2

=item * I<assoc-obj-type>  =>   B<perf-assoc-obj-type[], optional>

=begin html

<br>Indicates all the object-type that the view provides information for. Could be more than one for custom views

=end html

=back



=over 2

=item * I<charts>  =>   B<L<"perf-chart">[], optional>

=begin html

<br>The charts (graphs) appearing in this view.

=end html

=back



=over 2

=item * I<counter-group-name>  =>   B<string, optional>

=begin html

<br>Name of the referenced counter group.

=end html

=back



=over 2

=item * I<group-name-or-id>  =>   B<string, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<is-default>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the view is a "default" performance view. Defaults to false.

=end html

=back



=over 2

=item * I<is-stopped>  =>   B<boolean, optional>

=begin html

<br>Indicates whether data collection is stopped for the view. Defaults to false.

=end html

=back



=over 2

=item * I<sample-buffer>  =>   B<integer, optional>

=begin html

<br>Length of sample buffer to retain, in seconds. If unspecified on input, the value will be chosen by the server.

=end html

=back



=over 2

=item * I<sample-rate>  =>   B<integer, optional>

=begin html

<br>Length of interval between samples, in seconds. Defaults to one minute.

=end html

=back



=over 2

=item * I<view-name>  =>   B<string>

=begin html

<br>Name of the view.

=end html

=back



=over 2

=item * I<view-type>  =>   B<view-type, optional>

=begin html

<br>Indicates the type of view. If unspecified during view creation, it defaults to "custom_view".

=end html

=back



=head2 resource-property-condition

=begin html

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.

=end html



B<Fields>

=over 2

=item * I<name>  =>   B<string>

=begin html

<br>The name of the resource property.

=end html

=back



=over 2

=item * I<value>  =>   B<string>

=begin html

<br>The value that this resource property should have.

=end html

=back



=head2 stat-id

=begin html

The id, in the DFM database, of a collection of per-client statistics. Range: [ 1 .. 2^31 - 1 ]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 threshold-id

=begin html

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 <B>integer</B>. Range: [1..2^31-1]

=end html



B<Fields>

=over 2

=item * None

=back



=head2 threshold-info

=begin html

Defines all the attributes of a threshold.

=end html



B<Fields>

=over 2

=item * I<is-enabled>  =>   B<boolean, optional>

=begin html

<br>Specifies if the Threshold is enabled. Default value is TRUE when setting or modifying a threshold.

=end html

=back



=over 2

=item * I<object-full-name>  =>   B<obj-full-name>

=begin html

<br>Fully qualified name of the object. It is used as an output parameter while listing thresholds. This parameter is unused for all other APIs.

=end html

=back



=over 2

=item * I<object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>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. <P> The allowed object types for this argument are <ul> <li> 'Host' <li> 'Aggregate' <li> 'Volume' <li> 'Qtree' <li> 'Lun' </ul>

=end html

=back



=over 2

=item * I<perf-object-counter>  =>   B<L<"perf-object-counter">, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<threshold-id>  =>   B<threshold-id, optional>

=begin html

<br>ID of the threshold. Element is ignored while creating a threshold but is mandatory when modifying them.

=end html

=back



=over 2

=item * I<threshold-interval>  =>   B<integer, optional>

=begin html

<br>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. <P> Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<threshold-type>  =>   B<string, optional>

=begin html

<br>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. <P> Possible values:'upper', 'lower'

=end html

=back



=over 2

=item * I<threshold-unit>  =>   B<string, optional>

=begin html

<br>Unit of the counter. This parameter is mandatory when setting or modifying a threshold. The Possible Values are: <P> 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. <P> Note that the metric used for a counter may vary depending upon the Data ONTAP version.

=end html

=back



=over 2

=item * I<threshold-value>  =>   B<integer, optional>

=begin html

<br>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. <P> Range: [1..2^64-1]

=end html

=back



=head2 threshold-info2

=begin html

Defines a performance counter based threshold.

=end html



B<Fields>

=over 2

=item * I<counter-thresholds>  =>   B<L<"counter-threshold-info">[]>

=begin html

<br>List of thresholds on counters.

=end html

=back



=over 2

=item * I<is-enabled>  =>   B<boolean, optional>

=begin html

<br>If true, the threshold is enabled and events will be generated if it is breached. Default value is true.

=end html

=back



=over 2

=item * I<is-indirect>  =>   B<boolean, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<objects-info>  =>   B<L<"object-info">[], optional>

=begin html

<br>Contains the id, the full name and type of the object on which the threshold is applied directly.

=end html

=back



=over 2

=item * I<resource-property-conditions>  =>   B<L<"resource-property-condition">[], optional>

=begin html

<br>Specifies conditions on properties of the objects to which this threshold applies.

=end html

=back



=over 2

=item * I<template-id>  =>   B<integer, optional>

=begin html

<br>This returns the id of the template to which this threshold belongs. Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<template-name>  =>   B<string, optional>

=begin html

<br>Specifies the name of the template to which this threshold belongs.

=end html

=back



=over 2

=item * I<threshold-event-name>  =>   B<string>

=begin html

<br>Specifies the name of the event that is raised when the threshold is breached. The default name is derived from the counter.

=end html

=back



=over 2

=item * I<threshold-id>  =>   B<threshold-id, optional>

=begin html

<br>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.

=end html

=back



=over 2

=item * I<threshold-interval>  =>   B<integer>

=begin html

<br>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. <P> Range: [0..2^31-1]

=end html

=back



=head2 threshold-template

=begin html

The description of a threshold template.

=end html



B<Fields>

=over 2

=item * I<template-name>  =>   B<string>

=begin html

<br>Name of the template.

=end html

=back



=head2 threshold-template-info

=begin html

Contains info on performance threshold templates

=end html



B<Fields>

=over 2

=item * I<applied-objects>  =>   B<L<"object-info">[]>

=begin html

<br>null

=end html

=back



=over 2

=item * I<is-enabled>  =>   B<boolean, optional>

=begin html

<br>This specifies if the template is enabled or not.

=end html

=back



=over 2

=item * I<member-thresholds>  =>   B<L<"threshold-info2">[], optional>

=begin html

<br>Specifies the thresholds that are to be part of this template.

=end html

=back



=over 2

=item * I<template-description>  =>   B<string, optional>

=begin html

<br>Description of the template.

=end html

=back



=over 2

=item * I<template-id>  =>   B<integer>

=begin html

<br>This returns the id of the template that is created Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<template-name>  =>   B<string, optional>

=begin html

<br>Name of the template.

=end html

=back



=head2 time-filter

=begin html

Filter data based on selected time range.

=end html



B<Fields>

=over 2

=item * I<days>  =>   B<day[], optional>

=begin html

<br>Days of week. Default: no day filter

=end html

=back



=over 2

=item * I<months>  =>   B<month[], optional>

=begin html

<br>Months of year. Default: no month filter

=end html

=back



=over 2

=item * I<time-ranges>  =>   B<L<"time-range">[], optional>

=begin html

<br>Range in minutes of day. Default: no time-range filter

=end html

=back



=head2 time-range

=begin html

Holds the 'from' and 'to' range as minutes in a day. Ex: 9.25AM to 4.45PM will become from=565 and to=1005

=end html



B<Fields>

=over 2

=item * I<from>  =>   B<integer>

=begin html

<br>Start time in minute of day. Ex: 9.25AM corresponds to (9*60)+25 => 565 Range: [0..1439]

=end html

=back



=over 2

=item * I<to>  =>   B<integer>

=begin html

<br>End time in minute of day. Ex: 4.45PM corresponds to (16*60)+45 => 1005 Range: [0..1439]

=end html

=back



=head2 view-type

=begin html

Type of the view. Possible values are: <ul> <li> <b>custom_view</b> - User defined view containing counters of specific instances. Creates a custom counter group to hold the performance data. <li> <b>canned_view</b> - Default views. <li> <b>summary_view</b> - Default views. <li> <b>custom_view_instances</b> - User defined view containing counters of specific instances. Doesn't create custom counter group during view creation but uses data from default counter group. <li> <b>custom_view_object_type</b> - User defined view that is attached to a specific associated object type. Exactly one assoc-obj-type element needs to be specified while creating this view. Counters for specific instances cannot be present in the view. Only counters related to the associated object type can be added to it. Doesn't create custom counter group during view creation but uses data from default counter group. </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 advanced-option-info

=begin html

A set of advanced options to be set on the provisioned storage containers.

=end html



B<Fields>

=over 2

=item * I<option-name>  =>   B<string>

=begin html

<br>Name of the advanced option

=end html

=back



=over 2

=item * I<option-value>  =>   B<string>

=begin html

<br>Value of the advaced option

=end html

=back



=head2 custom-provisioning-script-settings

=begin html

Post provisioning script settings, applicable only for "nas" or "san" type of provisioning policies.

=end html



B<Fields>

=over 2

=item * I<script-path>  =>   B<string, optional>

=begin html

<br>Full path of a script on the management station to perform certain custom steps. The script will be run as the final step in the the provisioning process.

=end html

=back



=head2 dataset-member-used-space-thresholds

=begin html

Full and nearly full thresholds for generating events on used space of dataset members.

=end html



B<Fields>

=over 2

=item * I<full-threshold>  =>   B<integer, optional>

=begin html

<br>Specified as percentage value, if used space of any dataset member crosses this value, a critical event is generated. Range: [1..100]

=end html

=back



=over 2

=item * I<nearly-full-threshold>  =>   B<integer, optional>

=begin html

<br>Specified as percentage value, if the used space of any dataset member crosses this value, a warning event is generated. Range: [1..100]

=end html

=back



=head2 nas-container-settings

=begin html

Details of capacity settings like space guarantees, quotas, out of space actions when provisioning storage for NAS access.

=end html



B<Fields>

=over 2

=item * I<auto-delete-snapshots>  =>   B<boolean, optional>

=begin html

<br>If true, set snapshot autodelete on the provisioned volume. Default is false. This option is automatically enabled if space-on-demand is set to true.

=end html

=back



=over 2

=item * I<auto-grow-capacity>  =>   B<boolean, optional>

=begin html

<br>If true, auto grow capacity on the provisioned volume to a pre-configured maximum size. Default is false. This option is automatically enabled if space-on-demand is set to true.

=end html

=back



=over 2

=item * I<default-group-quota>  =>   B<integer, optional>

=begin html

<br>Default group quota setting on the dataset members. The value is expressed in kilobytes. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<default-user-quota>  =>   B<integer, optional>

=begin html

<br>Default user quota setting on the dataset members. The value is expressed in kilobytes. Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<snapshot-reserve>  =>   B<boolean, optional>

=begin html

<br>If True, 20% of requested space is reserved for Snapshot copies of data.

=end html

=back



=over 2

=item * I<space-on-demand>  =>   B<boolean, optional>

=begin html

<br>If True, volume is provisioned with autogrow and autodelete settings enabled. volume options : try_first=volume_grow. autodelete options : commitment=disrupt. This is deprecated in favor of individual elements auto-grow-capacity and auto-delete-snapshots. If set to true, both those elements are considered as true.

=end html

=back



=over 2

=item * I<storage-container-type>  =>   B<storage-container-type, optional>

=begin html

<br>Container type to provision. Possible values: "volume","qtree". <BR> Provisioning Manager can provision qtrees and export them or provision FlexVols for every provisioning request. Default value is "qtree".

=end html

=back



=over 2

=item * I<thin-provision>  =>   B<boolean, optional>

=begin html

<br>If True, the requested space is not pre-allocated (or reserved) from aggregates. The space from aggregates is actually consumed when users write data to CIFS shares or NFS exports of dataset members.

=end html

=back



=head2 provisioning-policy-info

=begin html

Contains all information about a single provisioning policy.

=end html



B<Fields>

=over 2

=item * I<advanced-options>  =>   B<L<"advanced-option-info">[], optional>

=begin html

<br>A set of advanced options to be set on the storage provisioned with this policy.

=end html

=back



=over 2

=item * I<custom-provisioning-script-settings>  =>   B<L<"custom-provisioning-script-settings">, optional>

=begin html

<br>Script settings used to perform post provisioning steps on the provisioned containers.

=end html

=back



=over 2

=item * I<dataset-member-used-space-thresholds>  =>   B<L<"dataset-member-used-space-thresholds">, optional>

=begin html

<br>Nearly full and full thresholds for generating alerts on used space of dataset members.

=end html

=back



=over 2

=item * I<dedupe-enabled>  =>   B<boolean, optional>

=begin html

<br>Specifies whether dedupe has to be enabled on all the volumes of the dataset with which the provisioning policy is associated. Default value is false.

=end html

=back



=over 2

=item * I<dedupe-schedule>  =>   B<string, optional>

=begin html

<br>Specifies the schedule for deduplication that has to be set on the volumes of the dataset with which the provisioning policy is associated. Valid values are "none", "auto" and the format hour_list&#064;day_list. <br> The 'hour_list' specifies which hours of the day the dedupe operation should run on each scheduled day. Hour ranges such as 8-17 are allowed. Step values can be used in conjunction with ranges. For example, 0-23/2 means "every two hours". <br> The 'day_list' specifies which days of the week the dedupe operation should run. It is a comma-separated list of the first three letters of the day: sun, mon, tue, wed, thu, fri, sat. The names are not case sensitive. Day ranges such as mon-fri can also be given. <br> Default value is "none".

=end html

=back



=over 2

=item * I<is-policy-readonly>  =>   B<boolean, optional>

=begin html

<br>Specifies whether the policy is a golden copy of the canned provisioning policy.

=end html

=back



=over 2

=item * I<nas-container-settings>  =>   B<L<"nas-container-settings">, optional>

=begin html

<br>Space and capacity settings applicable when datasets are accessed over NAS protocols like space guarantees, quotas, snapshot reserve out of space actions. Ignored when policy type is not "nas".

=end html

=back



=over 2

=item * I<provisioning-policy-description>  =>   B<string, optional>

=begin html

<br>Description of the policy. It may contain from 0 to 255 characters. If the length is greater than 255 characters, the ZAPI fails with error code EINVALIDINPUT. The default value is the empty string "".

=end html

=back



=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Object ID of the policy, ignored while creating policy.

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-name>

=begin html

<br>Name of the policy. Each provisioning policy has a name that is unique among provisioning and data protection policies. Should be provided while creating a new policy.

=end html

=back



=over 2

=item * I<provisioning-policy-type>  =>   B<provisioning-policy-type, optional>

=begin html

<br>Type of provisioning policy, valid types are "nas", "san" and "secondary".

=end html

=back



=over 2

=item * I<resource-tag>  =>   B<string, optional>

=begin html

<br>A label associated with a resource pool or its elements (filer/aggregates). A label serves as a filter when selecting resources, during provisioning,i.e only those resources that have a macthing tag are considered for provisioning. <BR> For example: An adminitrator can label resource pools as "low-cost" and create a provisioning policy with <B>resource-tag</B> set to "low-cost" to place datasets on cheap storage. It may contain from 0 to 255 characters.

=end html

=back



=over 2

=item * I<san-container-settings>  =>   B<L<"san-container-settings">, optional>

=begin html

<br>Space and capacity settings applicable when datasets are accessed over SAN protocols Ignored when policy type is not "san".

=end html

=back



=over 2

=item * I<storage-reliability>  =>   B<L<"storage-reliability">, optional>

=begin html

<br>Specifies desired level of storage reliability required for the dataset. Provisioning Manager will try find a resource which is configured to provide desired reliability and provision FlexVols on it, In case such a resource is not available the provisioning request will fail.

=end html

=back



=head2 provisioning-policy-type

=begin html

type of provisioning policy. Possible values are "san", "nas" and "secondary".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 san-container-settings

=begin html

Space settings when provisioning storage for san access, specify how space will be allocated to various components in san environment.

=end html



B<Fields>

=over 2

=item * I<guarantee-writes>  =>   B<boolean, optional>

=begin html

<br>Applicable when over committing storage space. i.e <B>thin-provision</B> is set to "true". <BR><BR> If set to "true", Provisioning Manager creates Volume/LUN configuration such that space for writes to LUNs is always guaranteed but Snapshot copies may or may not be possible depending on space availability, the choice of configuration can be specified in <B>thin-provisioning-configuration</B> input element. <BR><BR> If set to "false", Provisioning Manager creates Volumes/LUNs with no space guarantees at all. As a result the writes to Volumes/LUNs provisioned using such policies can fail at given time.

=end html

=back



=over 2

=item * I<storage-container-type>  =>   B<storage-container-type, optional>

=begin html

<br>Container type to provision. Possible values: "volume","lun". <BR> Provisioning Manager can provision LUNs and map them to server to provide access to the LUNs or provision FlexVols and delegate the task of provisioning LUNs to server administrators using server side tools liks SnapDrive. Default value is "lun".

=end html

=back



=over 2

=item * I<thin-provision>  =>   B<boolean, optional>

=begin html

<br>Enable over-commitment of storage space.

=end html

=back



=over 2

=item * I<thin-provisioning-configuration>  =>   B<string, optional>

=begin html

<br>Specifies the configuration to use when <B>thin-provision</B> and <B>guarantee-writes</B> are set to "true". Each configuration has advantages and space saving objectives. <BR><BR> Possible values are <B>snapshots</B>, <B>data_and_snapshots</B>. <BR><BR> <B>snapshots</B>: This configurations allows thin provisioning of snapshot space, i.e space is allocated for Snapshot copies as needed but space for data and overwrites (after the first Snapshot copy) is preallocated. When the aggregate runs out of space further Snapshot copies may fail, but existing Snapshot copies are preserved. <BR><BR> <B>data_and_snapshots</B>: This configurations allows thin provisioning of space for data overwrites and snapshot space, The space requested initially is allocated upfront but space for data overwrites(after first Snapshot copy) and Snapshot copies is allocated as needed. In situations when aggregate on which volume is placed runs out of space, Snapshot copies in oldest first order will be automatically deleted to allocate space for user writes. <BR><BR> the value is set to "none" when either <B>thin-provision</B> or <B>gurantee-writes</B> is "false". Changing it to another value will result in error with return code set to EINVALIDINPUT.

=end html

=back



=head2 storage-container-type

=begin html

Storage container type to provision as dataset members when provisioning storage for SAN or NAS access. Possible values are "lun" and "volume" and "qtree".<BR> If the value is "lun", Provisioning Manager will provision LUNs into the dataset and map to the hosts specified by creating igroups. This is applicable only when provisioning for SAN access. <BR> If the value is "volume", Provisioning Manager will create FlexVols, the LUNs will then be created using external tools like SnapDrive, or in case of NAS, Provisioning Manager will export the volume to be accessed by clients. <BR> If the value is "qtree", Provisioning Manager will provision qtrees for every provisioning in case of NAS access.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 storage-reliability

=begin html

NetApp Storage Systems offer a wide range of storage availability features which provide protection against various failure like disk drive failures, shelf failures, controller failures or site failures. The required level of reliability of the dataset can be specified in the provisioning policy.

=end html



B<Fields>

=over 2

=item * I<controller-failure>  =>   B<boolean, optional>

=begin html

<br>Resiliency against single controller failure, i.e the dataset can be accessed even after a controller fails. Maps to active/active pair. Default value is "false".

=end html

=back



=over 2

=item * I<disk-failure>  =>   B<string, optional>

=begin html

<br>Resiliency against disk failures, possible values are "single" (Maps to RAID-4 aggregates), "double" (Maps to RAID-DP aggregates) or "any"(either RAID-4 or RAID-DP). Default value is "double".

=end html

=back



=over 2

=item * I<sub-system-failure>  =>   B<boolean, optional>

=begin html

<br>Resiliency against storage sub system failures (or back end failures) like disk shelf, disk shelf adapters, failure of FCAL loops. Maps to "SyncMirror" aggregates. Default value is "false".

=end html

=back



=head2 qtree-info

=begin html

Information about a Qtree.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<integer, optional>

=begin html

<br>ID of dataset where this qtree is in the primary storage set. Range: [1..2^31-1] This field is deprecated in favor of datasets, which lists all datasets the qtree belongs to. It is still populated with one of the dataset ids.

=end html

=back



=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>List of dataset IDs where this qtree is in the primary storage set. If is-in-dataset is false, this list will be empty.

=end html

=back



=over 2

=item * I<filer-id>  =>   B<integer>

=begin html

<br>Identifier of storage system on which the qtree resides. Always present in the output. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<filer-name>  =>   B<string>

=begin html

<br>Name of storage system on which the qtree resides. Always present in the output.

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>True if this object and all of it's parents are up or online. Only output if the call to iter-start included the "include-is-available" flag.

=end html

=back



=over 2

=item * I<is-direct-vfiler-child>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the qtree is a direct or indirect child of a Vfiler. If not present, then qtree is not under a Vfiler.

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean>

=begin html

<br>Indicates whether an admin has decided to ignore this qtree for purposes of data protection.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean>

=begin html

<br>Indicates whether the qtree is a member of any dataset.

=end html

=back



=over 2

=item * I<is-snapvault-secondary-qtree>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the qtree is a secondary volume for storing SnapVault backups.

=end html

=back



=over 2

=item * I<qtree-id>  =>   B<integer>

=begin html

<br>Identifier of the qtree. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<qtree-name>  =>   B<string>

=begin html

<br>Simple name of the qtree. Always present in the output. The qtree name is a simple name without the storage system or volume part. For example, myqtree2.

=end html

=back



=over 2

=item * I<qtree-size>  =>   B<L<"qtree-size-info">>

=begin html

<br>Sizes of various parameters of the qtree.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<integer>

=begin html

<br>Identifier of volume in which the qtree resides. Always present in the output. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<volume-name>  =>   B<string>

=begin html

<br>Name of volume in which the qtree resides. Always present in the output.

=end html

=back



=head2 qtree-size-info

=begin html

Sizes of various parameters of a qtree. File counts are simple counts.

=end html



B<Fields>

=over 2

=item * I<files-limit>  =>   B<integer, optional>

=begin html

<br>Limit of number of files in qtree.

=end html

=back



=over 2

=item * I<files-used>  =>   B<integer, optional>

=begin html

<br>Number of files in qtree.

=end html

=back



=over 2

=item * I<hard-limit>  =>   B<integer, optional>

=begin html

<br>Hard size limit of qtree in bytes. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<qtree-perf-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the qtree based on performance events

=end html

=back



=over 2

=item * I<qtree-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the qtree based on all events

=end html

=back



=over 2

=item * I<soft-limit>  =>   B<integer, optional>

=begin html

<br>Soft size limit of qtree in bytes. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<space-used>  =>   B<integer>

=begin html

<br>Number of bytes used by qtree. Range: [0..2^63-1]

=end html

=back



=head2 admin-info

=begin html

Details of a administrator.

=end html



B<Fields>

=over 2

=item * I<admin-id>  =>   B<integer>

=begin html

<br>The id of the admin or usergroup.

=end html

=back



=over 2

=item * I<admin-name>  =>   B<string>

=begin html

<br>Name of the admin or usergroup.

=end html

=back



=over 2

=item * I<email-address>  =>   B<string, optional>

=begin html

<br>Email address of the administrator if it has been set in the server

=end html

=back



=over 2

=item * I<pager-address>  =>   B<string, optional>

=begin html

<br>Pager address of the administrator if it has been set in the server

=end html

=back



=head2 aggregate-name-or-id

=begin html

Details of an aggregate name or id. When used as input only one of aggregate-name or aggregate-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<aggregate-id>  =>   B<integer, optional>

=begin html

<br>The object id of an aggregate. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<aggregate-name>  =>   B<string, optional>

=begin html

<br>An aggregate name. If this is specified, also need to specify filer-identifier.

=end html

=back



=head2 aggregate-resource

=begin html

Details of an aggregate resource. aggregate-resource-name-or-id must be specified. If aggregate-name is specified, then need to also specify filer-identifier.

=end html



B<Fields>

=over 2

=item * I<aggregate-resource-name-or-id>  =>   B<L<"aggregate-name-or-id">>

=begin html

<br>An aggregate name or id. If an aggregate name is specified, then the filer-identifier must also be specified

=end html

=back



=over 2

=item * I<filer-identifier>  =>   B<L<"filer-resource">, optional>

=begin html

<br>The storage system where the aggregate lives in.

=end html

=back



=head2 dataset-resource

=begin html

Details of a DFM dataset resource. DFM dataset name or object id of a DFM dataset. When used as input only one of dataset-name or dataset-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<integer, optional>

=begin html

<br>Object id of a DFM dataset. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<string, optional>

=begin html

<br>DFM dataset name

=end html

=back



=head2 filer-resource

=begin html

Details of a storage system resource. When used as input only one of filer-name or filer-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<filer-id>  =>   B<integer, optional>

=begin html

<br>The object id or serial number of a storage system. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<filer-name>  =>   B<string, optional>

=begin html

<br>The FQDN of a storage system

=end html

=back



=head2 group-resource

=begin html

Details of a DFM group resource. DFM group name or object id of a DFM group. When used as input only one of group-name or group-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<group-id>  =>   B<integer, optional>

=begin html

<br>Object id of a DFM group. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<group-name>  =>   B<string, optional>

=begin html

<br>DFM group name

=end html

=back



=head2 host-resource

=begin html

Identifies a host resource. When used as input only one of host-name orhost-id is specified. When used as output, both of them will be returned

=end html



B<Fields>

=over 2

=item * I<host-id>  =>   B<integer, optional>

=begin html

<br>An object id of a host. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<host-name>  =>   B<string, optional>

=begin html

<br>A FQDN of a host

=end html

=back



=head2 lun-name-or-id

=begin html

Details of a LUN name or id. When used as input only one of lun-name or lun-id is specified. When used as as output both will be returned. If a lun-name is specified, then either volume-identifier or host-identifier must also be specified.

=end html



B<Fields>

=over 2

=item * I<lun-id>  =>   B<integer, optional>

=begin html

<br>The object id of a lun. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<lun-name>  =>   B<string, optional>

=begin html

<br>The serial number or path name of a LUN. Path name of LUN is written as volume-name/lun-name or volume-name/qtree-name/lun-name. One of either volume-identifier or host-identifier must also be specified. However, if a host-identifier specified, the lun-name must be only a serial number.

=end html

=back



=head2 lun-resource

=begin html

Details of a LUN. lun-identifier-name-or-id must be specified. If lun-name is specified, then either volume-identifier or host-identifier must also be specified. See the description for lun-name for more information.

=end html



B<Fields>

=over 2

=item * I<host-identifier>  =>   B<L<"host-resource">, optional>

=begin html

<br>LUN within a host. lun-name-or-id must be the LUN's serial number or object id (not path).

=end html

=back



=over 2

=item * I<lun-identifier-name-or-id>  =>   B<L<"lun-name-or-id">>

=begin html

<br>A LUN's name or id. If the LUN's name is specified, then either volume-identifier or host-identifier must also be specified.

=end html

=back



=over 2

=item * I<volume-identifier>  =>   B<L<"volume-resource">, optional>

=begin html

<br>LUN within a volume

=end html

=back



=head2 policy-resource

=begin html

Identifies a policy resource. When used as input one or more of policy-name or policy-id is specified. When used as output, both of them will be returned. Policy can refer to either a protection policy, a provisioning policy or an application policy.

=end html



B<Fields>

=over 2

=item * I<policy-id>  =>   B<obj-id, optional>

=begin html

<br>Object identifier of the protection, provisioning or application policy.

=end html

=back



=over 2

=item * I<policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the protection, provisioning or application policy.

=end html

=back



=head2 qtree-name-or-id

=begin html

A qtree name or id. When used as input only one of qtree-name or qtree-id is specified. When used as output, both of them will be returned. If qtree-name is specified, then either host-identifier or volume-identifier must also be specified but not both.

=end html



B<Fields>

=over 2

=item * I<qtree-id>  =>   B<obj-id, optional>

=begin html

<br>The object id of a volume. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<qtree-name>  =>   B<obj-name, optional>

=begin html

<br>The name of a qtree. Also need either host-identifier or volume-identifier.

=end html

=back



=head2 qtree-resource

=begin html

Details of a qtree. qtree-identifier-name-or-id must be specified. If qtree-name is specified, then either volume-identifier or host-identifier must also be specified. See the description for qtree-name for more information.

=end html



B<Fields>

=over 2

=item * I<host-identifier>  =>   B<L<"host-resource">, optional>

=begin html

<br>Host in which the qtree resides.

=end html

=back



=over 2

=item * I<qtree-identifier-name-or-id>  =>   B<L<"qtree-name-or-id">>

=begin html

<br>A qtree's name or id. If the qtree's name is specified, then either volume-identifier or host-identifier must also be specified.

=end html

=back



=over 2

=item * I<volume-identifier>  =>   B<L<"volume-resource">, optional>

=begin html

<br>Volume in which the qtree resides.

=end html

=back



=head2 rbac-admin-name-or-id

=begin html

an admin name or object id

=end html



B<Fields>

=over 2

=item * I<admin-id>  =>   B<string>

=begin html

<br>The adminId of the administrator

=end html

=back



=over 2

=item * I<admin-name>  =>   B<string>

=begin html

<br>The name of an administrator

=end html

=back



=head2 rbac-admin-or-usergroup

=begin html

An admin or usergroup. When used as an input element, specify only one of admin-or-usergroup-name or admin-or-usergroup-id (not both). When used as an output element, both of them are returned.

=end html



B<Fields>

=over 2

=item * I<admin-or-usergroup-id>  =>   B<integer, optional>

=begin html

<br>The id of the admin or usergroup which is an object id from the objects table within the DFM database. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<admin-or-usergroup-name>  =>   B<string, optional>

=begin html

<br>An admin or usergroup name. The format of the admin name consists of a sequence of one or more characters up to a maximum of 255 characters. The usergroup refers to an existing usergroup in Microsoft's Active Directory. The format of the usergroup name is DOMAIN\USER. For example, "ABC\eng"

=end html

=back



=head2 rbac-operation

=begin html

An operation

=end html



B<Fields>

=over 2

=item * I<operation-name>  =>   B<string>

=begin html

<br>Name of a operation. The maximum length allowed is 255 characters. It is of the form: <application>.<category>.<typeOfAccess> For example: "DFM.SRM.Read"

=end html

=back



=over 2

=item * I<operation-name-details>  =>   B<L<"rbac-operation-name-details">>

=begin html

<br>Other details of an operation

=end html

=back



=head2 rbac-operation-name-details

=begin html

more details of an operation

=end html



B<Fields>

=over 2

=item * I<operation-description>  =>   B<string>

=begin html

<br>A longer (multiple line) description suitable for completely explaining the operation and the places where it has an effect. The maximum length allowed is 255 characters.

=end html

=back



=over 2

=item * I<operation-synopsis>  =>   B<string>

=begin html

<br>A short description (only a few words) suitable for use in a user interface when showing/ selecting this operation. The maximum length. Allowed is 255 characters.

=end html

=back



=over 2

=item * I<resource-type>  =>   B<string>

=begin html

<br>Type of resource that the operation applies to. Possible values: "managementstation", "filer", "aggregate", "volume", "lun", "vfiler", "host", "group", "rbac_role", "dataset", "resource_pool". Note that group refers to a DFM resource group.

=end html

=back



=head2 rbac-resource-operation

=begin html

operation assigned to a given resource

=end html



B<Fields>

=over 2

=item * I<operation>  =>   B<L<"rbac-operation">>

=begin html

<br>Complete details of a operation

=end html

=back



=over 2

=item * I<resource>  =>   B<L<"resource-identifier">>

=begin html

<br>The resource for which the operation applies

=end html

=back



=head2 rbac-role-resource

=begin html

Identifies an RBAC role resource. When used as input only one of rbac-role-name or rbac-role-id is specified. When used as output, both of them will be returned

=end html



B<Fields>

=over 2

=item * I<rbac-role-id>  =>   B<integer, optional>

=begin html

<br>The object id of an RBAC role. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<rbac-role-name>  =>   B<string, optional>

=begin html

<br>An RBAC role name. Must be less than or equal to 64 characters in length.

=end html

=back



=head2 resource-identifier

=begin html

Identifies a resource. Only one resource field must be set. i.e. one of resource-id, rbac-role, host, group, storage system, vfiler, aggregate, volume, resource-pool, dataset, qtree, protection policy, provisioning policy, lun or vFiler template. When an object id is specified, it refers to the object id field in the objects table from the DFM database.

=end html



B<Fields>

=over 2

=item * I<aggregate>  =>   B<L<"aggregate-resource">, optional>

=begin html

<br>An aggregate

=end html

=back



=over 2

=item * I<dataset>  =>   B<L<"dataset-resource">, optional>

=begin html

<br>A DFM dataset

=end html

=back



=over 2

=item * I<filer>  =>   B<L<"filer-resource">, optional>

=begin html

<br>A storage system (filer)

=end html

=back



=over 2

=item * I<group>  =>   B<L<"group-resource">, optional>

=begin html

<br>A DFM group

=end html

=back



=over 2

=item * I<host>  =>   B<L<"host-resource">, optional>

=begin html

<br>A host

=end html

=back



=over 2

=item * I<lun>  =>   B<L<"lun-resource">, optional>

=begin html

<br>A lun

=end html

=back



=over 2

=item * I<policy>  =>   B<L<"policy-resource">, optional>

=begin html

<br>A policy can refer to either a protection policy or provisioning policy.

=end html

=back



=over 2

=item * I<qtree>  =>   B<L<"qtree-resource">, optional>

=begin html

<br>A qtree

=end html

=back



=over 2

=item * I<rbac-role>  =>   B<L<"rbac-role-resource">, optional>

=begin html

<br>An RBAC role

=end html

=back



=over 2

=item * I<resource-id>  =>   B<integer, optional>

=begin html

<br>An object id of a resource. A resource-id of 0 represents the global resource which is the global scope. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<resource-pool>  =>   B<L<"resource-pool-resource">, optional>

=begin html

<br>A DFM resource pool

=end html

=back



=over 2

=item * I<storage-service>  =>   B<L<"storage-service-resource">, optional>

=begin html

<br>A Storage Service.

=end html

=back



=over 2

=item * I<vfiler>  =>   B<L<"vfiler-resource">, optional>

=begin html

<br>A vfiler

=end html

=back



=over 2

=item * I<vfiler-template>  =>   B<L<"vfiler-template-resource">, optional>

=begin html

<br>A vFiler template.

=end html

=back



=over 2

=item * I<volume>  =>   B<L<"volume-resource">, optional>

=begin html

<br>A volume

=end html

=back



=head2 resource-pool-resource

=begin html

Details of a DFM resource-pool resource. DFM resource-pool name or object id of a DFM resource-pool. When used as input only one of resource-pool-name or resource-pool-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<resource-pool-id>  =>   B<integer, optional>

=begin html

<br>Object id of a DFM resource pool. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<resource-pool-name>  =>   B<string, optional>

=begin html

<br>DFM resource pool name

=end html

=back



=head2 role-attributes-identifier

=begin html

The attributes of a role: role name and id, inherited roles, capabilities and operations.

=end html



B<Fields>

=over 2

=item * I<capabilities>  =>   B<L<"rbac-resource-operation">[]>

=begin html

<br>Capabilities assigned to the given role and inherited roles.

=end html

=back



=over 2

=item * I<description>  =>   B<string>

=begin html

<br>description of the role

=end html

=back



=over 2

=item * I<inherited-roles>  =>   B<L<"rbac-role-resource">[]>

=begin html

<br>List of inherited roles

=end html

=back



=over 2

=item * I<role-name-and-id>  =>   B<L<"rbac-role-resource">>

=begin html

<br>Role name and its id

=end html

=back



=head2 storage-service-resource

=begin html

Identifies a storage service resource. When used as input, only one of storage-service-name or storage-service-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<storage-service-id>  =>   B<obj-id, optional>

=begin html

<br>A Storage service identifier.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-name, optional>

=begin html

<br>A Storage service name.

=end html

=back



=head2 vfiler-resource

=begin html

Details of a vfiler resource. When used as input only one of vfiler-name-or-uuid or vfiler-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<vfiler-id>  =>   B<integer, optional>

=begin html

<br>The object id of a vfiler. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<vfiler-name-or-uuid>  =>   B<string, optional>

=begin html

<br>The FQDN or UUID of a vfiler

=end html

=back



=head2 vfiler-template-resource

=begin html

Identifies a vfiler template resource. When used as input only one of vfiler-template-name or vfiler-template-id is specified. When used as output, both of them will be returned.

=end html



B<Fields>

=over 2

=item * I<vfiler-template-id>  =>   B<obj-id, optional>

=begin html

<br>A vFiler template identifier.

=end html

=back



=over 2

=item * I<vfiler-template-name>  =>   B<obj-name, optional>

=begin html

<br>A vFiler template name.

=end html

=back



=head2 volume-name-or-id

=begin html

A volume name or id. When used as input only one of volume-name or volume-id is specified. When used as output, both of them will be returned. If volume-name is specified, then either host-identifier, vfiler-identifier or aggregate-identifier must also be specified but not both.

=end html



B<Fields>

=over 2

=item * I<volume-id>  =>   B<integer, optional>

=begin html

<br>The object id of a volume. Range: [0..2^32-1]

=end html

=back



=over 2

=item * I<volume-name>  =>   B<string, optional>

=begin html

<br>The name of a volume. Also need either host-identifier, vfiler-identifier or aggregate-identifier.

=end html

=back



=head2 volume-resource

=begin html

Details of a volume.

=end html



B<Fields>

=over 2

=item * I<aggregate-identifier>  =>   B<L<"aggregate-resource">, optional>

=begin html

<br>volume within an aggregate

=end html

=back



=over 2

=item * I<host-identifier>  =>   B<L<"host-resource">, optional>

=begin html

<br>Host on which the volume resides.

=end html

=back



=over 2

=item * I<vfiler-identifier>  =>   B<L<"vfiler-resource">, optional>

=begin html

<br>volume within a vfiler e.g. vfiler where the volume resides.

=end html

=back



=over 2

=item * I<volume-identifier-name-or-id>  =>   B<L<"volume-name-or-id">>

=begin html

<br>The volume name or id. If a volume name is specified, then either aggregate-identifier, vfiler-identifier or host-identifier must also be specified.

=end html

=back



=head2 category-list-info

=begin html

Contains the details of the categories

=end html



B<Fields>

=over 2

=item * I<category-id>  =>   B<integer>

=begin html

<br>Unique identifier of category. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<category-list>  =>   B<L<"category-list-info">[], optional>

=begin html

<br>contains the list of sub-categories under a category.

=end html

=back



=over 2

=item * I<category-name>  =>   B<string>

=begin html

<br>The name of the category. Max Length: 64 chars

=end html

=back



=over 2

=item * I<is-category-custom>  =>   B<boolean>

=begin html

<br>Indicates that this category is a custom category. true if the category is a custom category. false otherwise.

=end html

=back



=head2 graph-info

=begin html

Describes the meta data of a graph

=end html



B<Fields>

=over 2

=item * I<deprecated-by>  =>   B<string, optional>

=begin html

<br>Name of the graph that replaces this graph. Will be absent for non-deprecated graphs. Only returned via the graph-list-info-iter-next api.

=end html

=back



=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>Description of the graph. Maximum length of 1024 characters. Only returned via the report-graph-list-info-iter-next api.

=end html

=back



=over 2

=item * I<graph-lines>  =>   B<L<"graph-line-info">[], optional>

=begin html

<br>Specifies the list of lines in the graph. Only returned via the graph-list-info-iter-next api.

=end html

=back



=over 2

=item * I<graph-name>  =>   B<string>

=begin html

<br>Unique name of the graph. Maximum length of 64 characters.

=end html

=back



=over 2

=item * I<graph-pretty-name>  =>   B<string>

=begin html

<br>Long name of the graph. Maximum length of 64 characters.

=end html

=back



=over 2

=item * I<is-default>  =>   B<boolean, optional>

=begin html

<br>Specifies whether the graph is the default graph for the report. Only returned via the report-graph-list-info-iter-next api.

=end html

=back



=over 2

=item * I<is-deprecated>  =>   B<boolean, optional>

=begin html

<br>true if the graph is deprecated. Only returned via the graph-list-info-iter-next api.

=end html

=back



=head2 graph-line-info

=begin html

Describes the meta data of a line in a graph.

=end html



B<Fields>

=over 2

=item * I<sample-format>  =>   B<string>

=begin html

<br>The format in which the sample value is returned. Possible values: <ul> <li> 'integer' <li> 'float' </ul> Range of the sample value if integer: [0..(2^63) - 1] Range of the sample value if float: [0..(2^63) - 1]

=end html

=back



=over 2

=item * I<sample-name>  =>   B<string>

=begin html

<br>Name of the sample. Maximum length: 64 characters.

=end html

=back



=over 2

=item * I<sample-pretty-name>  =>   B<string>

=begin html

<br>The name of the sample which can be used for displaying. Maximum length: 64 characters.

=end html

=back



=over 2

=item * I<sample-suffix>  =>   B<string>

=begin html

<br>The unit of the sample. If the unit is not known then 'none' is returned. Possible values: <ul> <li> 'bytes' <li> 'percentage' <li> 'minutes' <li> 'none' </ul>

=end html

=back



=head2 report-application

=begin html

Specifies the application to which a report belongs. This typedef is an alias for the built-in ZAPI type <b>string</b>. Possible values: <ul> <li> 'control_center' <li> 'backup' <li> 'disaster_recovery' </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 report-info

=begin html

Describes the name of the report.

=end html



B<Fields>

=over 2

=item * I<deprecated-by>  =>   B<string, optional>

=begin html

<br>Name of the report that replaces this report. Will be absent for non-deprecated reports.

=end html

=back



=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>Description of the report. Max Length: 1024 chars

=end html

=back



=over 2

=item * I<display-tab>  =>   B<string>

=begin html

<br>The tab where a report is displayed in DFM UI. Possible values: <ul> <li> 'aggregates' <li> 'appliances' <li> 'data_sets' <li> 'events' <li> 'filesrm' <li> 'filesystems' <li> 'luns' <li> 'resource_pools' <li> 'sans' <li> 'scripts' <li> 'vfilers' <li> 'others' </ul>

=end html

=back



=over 2

=item * I<is-deprecated>  =>   B<boolean, optional>

=begin html

<br>true if the report is deprecated.

=end html

=back



=over 2

=item * I<output-format-list>  =>   B<report-output-format[]>

=begin html

<br>The list of output formats supported by report.

=end html

=back



=over 2

=item * I<rbac-operation>  =>   B<string>

=begin html

<br>The name of the RBAC operation required to view the report. Use rbac-operation-info-list to get the list of currently valid operations. Max Length: 255 chars

=end html

=back



=over 2

=item * I<report-application>  =>   B<report-application>

=begin html

<br>Application to which the report belongs.

=end html

=back



=over 2

=item * I<report-id>  =>   B<integer, optional>

=begin html

<br>id of the report in case of Custom reports. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-name>  =>   B<string>

=begin html

<br>Unique name of the report. Max Length: 64 chars

=end html

=back



=over 2

=item * I<report-pretty-name>  =>   B<string>

=begin html

<br>Long name of the report. Max Length: 64 chars

=end html

=back



=over 2

=item * I<report-type>  =>   B<string>

=begin html

<br>Type of the report. Possible values: <ul> <li> 'built_in' <li> 'custom' </ul>

=end html

=back



=head2 report-list-info

=begin html

Contains the details of the reports.

=end html



B<Fields>

=over 2

=item * I<category-id>  =>   B<integer, optional>

=begin html

<br>Unique identifier of category. The category-id is not returned for reports which do not belong to any category. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<is-interval-allowed>  =>   B<boolean>

=begin html

<br>Specifies if the report can be generated for a specific time interval.

=end html

=back



=over 2

=item * I<report-description>  =>   B<string, optional>

=begin html

<br>Description of the report. Max Length: 1024 chars

=end html

=back



=over 2

=item * I<report-design-file-name>  =>   B<string>

=begin html

<br>This contains the name of the rptdesign(design file) of the report. rptdesign is a file format in BIRT. The report design is saved in the rptdesign file. Max Length: 128 chars

=end html

=back



=over 2

=item * I<report-id>  =>   B<integer>

=begin html

<br>This contains the unique id of the report. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<report-name>  =>   B<string>

=begin html

<br>This contains the unique cli name of the report. Max Length: 64 chars

=end html

=back



=over 2

=item * I<report-pretty-name>  =>   B<string>

=begin html

<br>This contains the pretty name of the report displayed in UI. Max Length: 64 chars

=end html

=back



=over 2

=item * I<report-provenance>  =>   B<report-provenance>

=begin html

<br>It describes the category the report belongs.

=end html

=back



=head2 report-output-format

=begin html

The type of output format. This typedef the built-in ZAPI type <b>string</b>. Possible values: <ul> <li> 'csv' <li> 'html' <li> 'paragraph' <li> 'perl' <li> 'text' <li> 'xls' <li> 'xml' </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 report-output-info

=begin html

Describes the contents of an output.

=end html



B<Fields>

=over 2

=item * I<failure-reason>  =>   B<string, optional>

=begin html

<br>Specifies the reason as to why the output failed. Present only in case of failure. Maximum length of 255 characters.

=end html

=back



=over 2

=item * I<graph-name>  =>   B<string, optional>

=begin html

<br>Name of the graph.

=end html

=back



=over 2

=item * I<report-application>  =>   B<report-application>

=begin html

<br>Specifies the application to which a report belongs. Default is 'control_center'.

=end html

=back



=over 2

=item * I<report-id>  =>   B<integer, optional>

=begin html

<br>specifies the id of the report in case of custom reports. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-name>  =>   B<string>

=begin html

<br>Name of the report.

=end html

=back



=over 2

=item * I<report-output-id>  =>   B<integer>

=begin html

<br>Specifies the output id. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-schedule-id>  =>   B<obj-id>

=begin html

<br>Specifies the id of the report schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-schedule-name>  =>   B<obj-name>

=begin html

<br>Specifies the name of the report schedule.

=end html

=back



=over 2

=item * I<run-by>  =>   B<string>

=begin html

<br>Specifies the name of the user who generated the report output. Maximum length of 255 characters.

=end html

=back



=over 2

=item * I<run-status>  =>   B<string>

=begin html

<br>Specifies the status of the report output. Possible values: <ul> <li> 'pending' <li> 'running' <li> 'succeeded' <li> 'failed' <li> 'aborted' </ul>

=end html

=back



=over 2

=item * I<run-time>  =>   B<integer, optional>

=begin html

<br>Specifies the timestamp when the output was saved. Not present if the report output is in pending, running or aborted state. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<target-object-id>  =>   B<integer>

=begin html

<br>Specifies the object on which the output was generated. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<target-object-name>  =>   B<string>

=begin html

<br>Specifies the name of the object on which the output was generated.

=end html

=back



=head2 report-provenance

=begin html

Possible values:"custom" returns only custom and modified_canned reports. "canned" returns only canned reports. If not specified all reports are returned.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 report-schedule-content-info

=begin html

Describes the contents of a report schedule.

=end html



B<Fields>

=over 2

=item * I<archival-format>  =>   B<report-output-format>

=begin html

<br>Specifies the format in which the report is saved.

=end html

=back



=over 2

=item * I<email-address-list>  =>   B<email-address-list, optional>

=begin html

<br>Email addresses of recipients for a mail to be sent with an attachment when the report is generated.

=end html

=back



=over 2

=item * I<graph-name>  =>   B<string, optional>

=begin html

<br>Name of the graph. Maximum length of 64 characters.

=end html

=back



=over 2

=item * I<include-deleted-objects>  =>   B<boolean>

=begin html

<br>Include deleted objects in the report generated.

=end html

=back



=over 2

=item * I<is-enabled>  =>   B<boolean, optional>

=begin html

<br>Specifies whether the state of the report schedule is enabled.

=end html

=back



=over 2

=item * I<is-successful>  =>   B<boolean, optional>

=begin html

<br>Specifies whether the last run result was successful. This element is not present if the report schedule has not run even once.

=end html

=back



=over 2

=item * I<last-run-time>  =>   B<integer, optional>

=begin html

<br>Specifies the timestamp when the report was last run. This element is not present if the report schedule has not run even once. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<report-application>  =>   B<report-application>

=begin html

<br>Specifies the application to which a report belongs. Default is 'control_center'.

=end html

=back



=over 2

=item * I<report-id>  =>   B<integer, optional>

=begin html

<br>Specifies the id of the custom report. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-name>  =>   B<string>

=begin html

<br>Specifies the name of the report.

=end html

=back



=over 2

=item * I<report-schedule-id>  =>   B<obj-id>

=begin html

<br>Specifies the schedule id. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-schedule-name>  =>   B<obj-name>

=begin html

<br>Specifies the name of the report schedule.

=end html

=back



=over 2

=item * I<save-all-fields>  =>   B<boolean>

=begin html

<br>Saves all fields, Only in perl and xml format.

=end html

=back



=over 2

=item * I<schedule-id>  =>   B<integer>

=begin html

<br>Specifies the id of the schedule. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<schedule-name>  =>   B<string>

=begin html

<br>Specifies the name of the schedule.

=end html

=back



=over 2

=item * I<target-object-id>  =>   B<integer>

=begin html

<br>Specifies the id of the object on which the report schedule is scheduled to run. Range: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<target-object-name>  =>   B<string>

=begin html

<br>Specifies the name of the object on which the report schedule is scheduled to run.

=end html

=back



=head2 report-schedule-info

=begin html

Detailed contents of a report schedule.

=end html



B<Fields>

=over 2

=item * I<archival-format>  =>   B<report-output-format, optional>

=begin html

<br>Format of the report to be saved. Default value is html.

=end html

=back



=over 2

=item * I<email-address-list>  =>   B<email-address-list, optional>

=begin html

<br>Email addresses of recipients for a mail to be sent with an attachment when the report is generated.

=end html

=back



=over 2

=item * I<graph-name>  =>   B<string, optional>

=begin html

<br>Name of the graph. The graph name is validated as follows: - It should belong to the report name specified. - It should be applicable to the target object. - The license should support the graph. Maximum length of 64 characters.

=end html

=back



=over 2

=item * I<include-deleted-objects>  =>   B<boolean, optional>

=begin html

<br>Include deleted objects in the report generated. Default value is FALSE.

=end html

=back



=over 2

=item * I<report-application>  =>   B<report-application, optional>

=begin html

<br>Specifies the application to which a report belongs. Default is 'control_center'.

=end html

=back



=over 2

=item * I<report-name-or-id>  =>   B<string, optional>

=begin html

<br>Name of the report. For custom reports it can either be name or id. Required for report-schedule-add API. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<report-schedule-name>  =>   B<obj-name, optional>

=begin html

<br>Specifies the name of the report schedule to be created. This element is mandatory for 'report-schedule-add'.

=end html

=back



=over 2

=item * I<save-all-fields>  =>   B<boolean, optional>

=begin html

<br>Saves all fields, Ignored if archival-format is not perl or xml. Default value is FALSE.

=end html

=back



=over 2

=item * I<schedule-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or id of a schedule. Required for report-schedule-add API. Range for id: [1..(2^31)-1]

=end html

=back



=over 2

=item * I<target-object-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Specifies the target object on which the report has to be scheduled. The object type depends on the name of the report specified. For ex: controller-details report can run on a target object which is of type host. Range for id: [1..(2^31)-1]

=end html

=back



=head2 dataset-space-info

=begin html

Information about a datset consuming space from the aggregate.

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Database identifier of the dataset.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of the dataset.

=end html

=back



=over 2

=item * I<dp-node-id>  =>   B<integer>

=begin html

<br>Identifier of the node in the dataset that is consuming space from the aggregate. If there is no protection policy associated with the dataset, node-id will be 1. Range: [1..2^32-1]

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<string>

=begin html

<br>Name of the node in the dataset that is consuming space from the aggregate. If there is no protection policy associated with the dataset, this would return the name of the dataset.

=end html

=back



=over 2

=item * I<is-capable-of-migration>  =>   B<boolean>

=begin html

<br>Indicates whether the dataset is capable of migration. This is returned true only if the dataset can be migrated in a transparent way using vFiler migration.

=end html

=back



=over 2

=item * I<is-dp-node-effective-primary>  =>   B<boolean>

=begin html

<br>Specifies whether the node in the dataset that is consuming space from the aggregate is the effective primary node or not.

=end html

=back



=over 2

=item * I<used-space>  =>   B<integer>

=begin html

<br>Space used by the dataset on the aggregate in bytes. Range: [0..2^64-1].

=end html

=back



=head2 resource-tag

=begin html

Label for the resource. Can be of maximum 255 characters.

=end html



B<Fields>

=over 2

=item * None

=back



=head2 resourcepool-defaults

=begin html

The default values of the attributes defined by this ZAPI.

=end html



B<Fields>

=over 2

=item * I<resourcepool-full-threshold>  =>   B<integer, optional>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate a "resource pool full" event for this resource pool. Setting threshold percentages higher than 100% allows an administrator to set it in such a way so that it never trigger these events. Range: [0..1000]

=end html

=back



=over 2

=item * I<resourcepool-nearly-full-threshold>  =>   B<integer, optional>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate a "resource pool nearly full" event for this resource pool. Setting threshold percentages higher than 100% allows an administrator to set it in such a way so that it never trigger these events. Range: [0..1000]

=end html

=back



=head2 resourcepool-info

=begin html

Information about a resource pool.

=end html



B<Fields>

=over 2

=item * I<aggregate-nearly-overcommitted-threshold>  =>   B<integer, optional>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate an "resourcepool nearly overcommitted" event for all the resource pools. If the value specified is empty, then the setting is cleared and the value specified in global options for aggrNearlyOvercommittedThreshold will be used. Range: [0..65535]

=end html

=back



=over 2

=item * I<aggregate-overcommitted-threshold>  =>   B<integer, optional>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate an "resourcepool overcommitted" event for all the resource pools. If the value specified is empty, then the setting is cleared and the value specified in global options for aggrOvercommittedThreshold will be used. Range: [0..65535]

=end html

=back



=over 2

=item * I<resource-tag>  =>   B<resource-tag, optional>

=begin html

<br>A label that can be associated with a resource pool.

=end html

=back



=over 2

=item * I<resourcepool-contact>  =>   B<email-address-list, optional>

=begin html

<br>Contact information for the resource pool, such as the owner's e-mail address. This is modifiable.

=end html

=back



=over 2

=item * I<resourcepool-description>  =>   B<string, optional>

=begin html

<br>Description of the resource pool, up to 255 characters long. This is modifiable.

=end html

=back



=over 2

=item * I<resourcepool-free-vfilers>  =>   B<integer, optional>

=begin html

<br>The number of vFiler units that can be created in this resource pool based on the current limit and number of vFiler units present in the storage systems that are members of the resource pool. Ignored for resourcepool-create and resourcepool-modify. Range: [0..2^64-1].

=end html

=back



=over 2

=item * I<resourcepool-full-threshold>  =>   B<integer, optional>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate a "resource pool full" event for this resource pool. If the value specified is empty, then the resource pool setting is cleared and the value specified in resourcepool-get-defaults is used. Range: [0..1000]

=end html

=back



=over 2

=item * I<resourcepool-id>  =>   B<integer, optional>

=begin html

<br>Identifier of the resource pool. Its a valid DFM object id. A valid DFM object id would be in the range of [1..2^31-1]. Ignored for resourcepool-create and resourcepool-modify.

=end html

=back



=over 2

=item * I<resourcepool-is-provisionable>  =>   B<boolean, optional>

=begin html

<br>This is returned in resourcepool-list-info-iter-next if license-filter, resource-tag or reliability information is passed in the input, this is set to true or false depending on whether the resource pool meets all the three filters, Default value is set to TRUE.

=end html

=back



=over 2

=item * I<resourcepool-kbytes-available>  =>   B<integer, optional>

=begin html

<br>Amount of Kbytes of storage available in this resource pool. This value only present if include-free-space was true. Ignored for resourcepool-create and resourcepool-modify. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<resourcepool-kbytes-total>  =>   B<integer, optional>

=begin html

<br>Total amount of Kbytes of storage in this resource pool. This value only present if include-free-space was true. Ignored for resourcepool-create and resourcepool-modify. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<resourcepool-kbytes-used>  =>   B<integer, optional>

=begin html

<br>Amount of Kbytes of storage used in this resource pool. This value only present if include-free-space was true. Ignored for resourcepool-create and resourcepool-modify. Range: [0..2^63-1].

=end html

=back



=over 2

=item * I<resourcepool-member-count>  =>   B<integer, optional>

=begin html

<br>The count of direct members added to the resource pool. This includes number of storage systems and aggregates added to the resource pool. Ignored for resourcepool-create and resourcepool-modify. Range: [0..2^31-1]

=end html

=back



=over 2

=item * I<resourcepool-name>  =>   B<string, optional>

=begin html

<br>Name of the resource pool. This is modifiable. This must be specified in resourcepool-create. Its a valid DFM object name. A valid DFM object name would contain at least one non-numeric character.

=end html

=back



=over 2

=item * I<resourcepool-nearly-full-threshold>  =>   B<integer, optional>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate a "resource pool nearly full" event for this resource pool. If the value specified is empty, then the resource pool setting is cleared and the value specified in resourcepool-get-defaults is used. Range: [0..1000]

=end html

=back



=over 2

=item * I<resourcepool-owner>  =>   B<string, optional>

=begin html

<br>Name of the owner of the resource pool, up to 255 characters long. This is modifiable.

=end html

=back



=over 2

=item * I<resourcepool-perf-status>  =>   B<obj-status, optional>

=begin html

<br>Current performance status of the resource pool. Ignored for resourcepool-create and resourcepool-modify.

=end html

=back



=over 2

=item * I<resourcepool-space-status>  =>   B<string, optional>

=begin html

<br>Space status of the resource pool. Possible values are: <ul> <li> ok : Sum of used space of all aggregates in the resource pool against the sum of total size of all aggregates has not reached or crossed resourcepool-nearly-full-threshold and none of the member aggregates have reached or crossed their full thresholds. <li> member_nearly_full : Atleast one of the member aggregates of the resource pool has reached or crossed its nearly full threshold. <li> nearly_full : Sum of used space of all aggregates in the resource pool against the sum of total size of all aggregates has reached or crossed resourcepool-nearly-full-threshold. <li> member_full : Atleast one of the member aggregates of the resource pool has reached or crossed its full threshold. <li> full : Sum of used space of all aggregates in the resource pool against the sum of total size of all aggregates has reached or crossed resourcepool-full-threshold. </ul> resourcepool-space-status is returned only if include-free-space is true in resourcepool-list-info-iter-start .

=end html

=back



=over 2

=item * I<resourcepool-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the resource pool. Ignored for resourcepool-create and resourcepool-modify.

=end html

=back



=over 2

=item * I<resourcepool-timezone>  =>   B<string, optional>

=begin html

<br>Time zone in which this pool's storage is located. This is modifiable. An empty value means to use the system default (usually GMT). Currently valid time zones can be listed by timezone-list-info-iter.

=end html

=back



=head2 resourcepool-member-info

=begin html

Information about one member of a resource pool.

=end html



B<Fields>

=over 2

=item * I<datasets-space-info>  =>   B<L<"dataset-space-info">[], optional>

=begin html

<br>Space used by each dataset in the aggregate. Returned only when member-type is 'aggregate' and if include-dataset-space-info is set to true in resourcepool-member-list-info-iter-start.

=end html

=back



=over 2

=item * I<member-committed-space>  =>   B<integer>

=begin html

<br>Committed space of the member.

=end html

=back



=over 2

=item * I<member-id>  =>   B<integer>

=begin html

<br>Identifier of the member. Its a valid DFM object id. A valid DFM object id would be in the range of [1..2^31-1].

=end html

=back



=over 2

=item * I<member-name>  =>   B<string>

=begin html

<br>Display name of the member. Its a valid DFM object name. A valid DFM object name would contain at least one non-numeric character.

=end html

=back



=over 2

=item * I<member-size>  =>   B<integer>

=begin html

<br>Total size of the member.

=end html

=back



=over 2

=item * I<member-space-status>  =>   B<object-space-status, optional>

=begin html

<br>Space status of the resource pool member. This indicates the fullness of the aggregate in terms of whether the percentage of used space with respect to total size of the aggregate has reached or crossed the fullness thresholds. This value is returned only when member-type is 'aggregate'.

=end html

=back



=over 2

=item * I<member-status>  =>   B<string>

=begin html

<br>Current status of the member. Possible values are 'normal', 'information', 'unknown', 'warning', 'error', 'critical', 'emergency'.

=end html

=back



=over 2

=item * I<member-type>  =>   B<string>

=begin html

<br>Type of the member. Possible values are 'filer' or 'aggregate'.

=end html

=back



=over 2

=item * I<member-used-space>  =>   B<integer>

=begin html

<br>Used space of the member.

=end html

=back



=over 2

=item * I<provisioning-checks-passed>  =>   B<boolean, optional>

=begin html

<br>Set to true, if all the member passes all the provisioning related checks for given provisioning policy and provisioning request. Applicable only when run-provisioning-checks is set to true at the start of iteration.

=end html

=back



=over 2

=item * I<resource-tag>  =>   B<resource-tag, optional>

=begin html

<br>A label for a resource pool member.

=end html

=back



=head2 backup-info

=begin html

Information of a dataset backup.

=end html



B<Fields>

=over 2

=item * I<backup-id>  =>   B<integer>

=begin html

<br>Identifier of the backup instance. The management station assigns a unique id to each backup instance. Range: [1..2^31-1]

=end html

=back



=over 2

=item * I<backup-version>  =>   B<dp-timestamp>

=begin html

<br>Timestamp when the backup was taken. Backups of same dataset at different locations have same version if their contents are identical. The management station keeps track of which backups have identical contents and assigns same version to them. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

=end html

=back



=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Id of the dataset to which this backup instance is associated with.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of the dataset to which this backup instance is associated with.

=end html

=back



=over 2

=item * I<dp-backup-expiry-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>Time when this backup instance will expire, at which point Protection Manager will delete this backup. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. This will not be returned when the retention type for the backup is unlimited.

=end html

=back



=over 2

=item * I<dp-node-id>  =>   B<integer>

=begin html

<br>Id of the dataset node which holds the backup instance.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<string>

=begin html

<br>Name of the dataset node which holds the backup instance.

=end html

=back



=over 2

=item * I<is-application-backup>  =>   B<boolean>

=begin html

<br>True, if the backup in an application consistent backup.

=end html

=back



=head2 snapshot

=begin html

Information of one Snapshot copy. Either unique-id or name of the Snapshot copy should be specified.

=end html



B<Fields>

=over 2

=item * I<snapshot-name>  =>   B<string, optional>

=begin html

<br>Name of the Snapshot copy. If unique-id is specified, then this element is ignored.

=end html

=back



=over 2

=item * I<unique-id>  =>   B<string, optional>

=begin html

<br>Unique identifier of the Snapshot copy. Currently, this is the Snapshot copy's creation time.

=end html

=back



=head2 snapshot-dependency

=begin html

Application dependent on this Snapshot copy. Possible values: "snapmirror", "snapvault", "dump", "volume_clone", "lun_clone", "snaplock", "acs".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 snapshot-info

=begin html

Information on one particular Snapshot copy.

=end html



B<Fields>

=over 2

=item * I<backups>  =>   B<L<"backup-info">[], optional>

=begin html

<br>List of dataset backups which contain this snapshot. The list is empty if the snapshot is not part of any dataset backup. The element is present only if <b>snapshot-list-info-iter-start</b> was called with <b>include-backup-info</b> as true.

=end html

=back



=over 2

=item * I<creation-timestamp>  =>   B<dp-timestamp>

=begin html

<br>The volume access time when the Snapshot copy was created in seconds since January 1, 1970. This value will not change even if the Snapshot copy is accessed.

=end html

=back



=over 2

=item * I<cumulative-percentage-of-total-blocks>  =>   B<integer>

=begin html

<br>Percentage of blocks owned by this Snapshot copy and all of the more recent Snapshots copies, relative to the total number of blocks in the volume. Range: [0..100]

=end html

=back



=over 2

=item * I<dependencies>  =>   B<snapshot-dependency[], optional>

=begin html

<br>Application(s) dependent on this Snapshot copy.

=end html

=back



=over 2

=item * I<is-busy>  =>   B<boolean>

=begin html

<br>True if the Snapshot copy is being used by an application. If "is-busy" is true, then the Snapshot copy cannot be deleted.

=end html

=back



=over 2

=item * I<is-part-of-backup-version>  =>   B<boolean>

=begin html

<br>True if the Snapshot copy is part of a backup version of a dataset.

=end html

=back



=over 2

=item * I<percentage-of-total-blocks>  =>   B<integer>

=begin html

<br>Percentage of blocks owned by this Snapshot copy, relative to the total number of blocks in the volume. Range: [0..100]

=end html

=back



=over 2

=item * I<snapshot-id>  =>   B<integer>

=begin html

<br>Database identifier of this Snapshot copy. <br> Range: [1..2^63-1]

=end html

=back



=over 2

=item * I<snapshot-name>  =>   B<string>

=begin html

<br>Name of the Snapshot copy.

=end html

=back



=over 2

=item * I<unique-id>  =>   B<string>

=begin html

<br>Unique identifier of the Snapshot copy. Currently, this is the Snapshot copy's creation time.

=end html

=back



=over 2

=item * I<volume-id>  =>   B<obj-id>

=begin html

<br>Idenitifier of the volume to which this Snapshot copy belongs to.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<obj-full-name>

=begin html

<br>Name of the volume to which this Snapshot copy belongs to.

=end html

=back



=head2 srm-file-type-info

=begin html

Information of one SRM file type.

=end html



B<Fields>

=over 2

=item * I<srm-file-type-id>  =>   B<obj-id>

=begin html

<br>A unique identifier representing SRM file type in dfm.

=end html

=back



=over 2

=item * I<srm-file-type-name>  =>   B<string>

=begin html

<br>SRM file type

=end html

=back



=head2 resourcepool-name-or-id

=begin html

Resource Pool. Value can be a DFM object name (maximum 255 characters) or the DFM id [1..2^31-1].

=end html



B<Fields>

=over 2

=item * None

=back



=head2 storage-service-dataset-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<dataset-id>  =>   B<obj-id>

=begin html

<br>Identifier of the dataset.

=end html

=back



=over 2

=item * I<dataset-name>  =>   B<obj-name>

=begin html

<br>Name of the dataset.

=end html

=back



=over 2

=item * I<storage-service-id>  =>   B<obj-id, optional>

=begin html

<br>Name of the storage service. This will not be returned if the dataset is not associated with the storage service.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the storage service. This will not be returned if the dataset is not associated with the storage service.

=end html

=back



=head2 storage-service-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[], optional>

=begin html

<br>List of datasets attached to the storage service.

=end html

=back



=over 2

=item * I<is-dr-capable>  =>   B<boolean, optional>

=begin html

<br>True, if storage service has data protection policy associated with it, which is disaster recovery capable.

=end html

=back



=over 2

=item * I<protection-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the protection policy

=end html

=back



=over 2

=item * I<protection-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the protection policy.

=end html

=back



=over 2

=item * I<storage-service-contact>  =>   B<email-address-list>

=begin html

<br>Contact for the storage service, such as the owner's e-mail address.

=end html

=back



=over 2

=item * I<storage-service-description>  =>   B<string>

=begin html

<br>Description of the new storage service.

=end html

=back



=over 2

=item * I<storage-service-id>  =>   B<obj-id>

=begin html

<br>Identifier of storage service.

=end html

=back



=over 2

=item * I<storage-service-name>  =>   B<obj-name>

=begin html

<br>Name of the storage service.

=end html

=back



=over 2

=item * I<storage-service-nodes>  =>   B<L<"storage-service-node-info">[]>

=begin html

<br>Information about storage service nodes.

=end html

=back



=over 2

=item * I<storage-service-owner>  =>   B<string>

=begin html

<br>Name of the owner of the storage service.

=end html

=back



=head2 storage-service-node-attributes

=begin html

null

=end html



B<Fields>

=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the node in the data protection policy. <b>dp-node-name</b> must match exactly the name of one of the nodes in the data protection policy that is currently assigned to the storage service. This element can be absent if no protection policy was assigned to the storage service, in which case, the details are assumed for the primary node.

=end html

=back



=over 2

=item * I<old-dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the old data protection policy node to be mapped to the new data protection policy node. When the data protection policy of storage service is modified and this element is provided, the node dp-node-name of the new policy will acquire the attributes of this node. Also for all the datasets attached to the storage service, storage sets mapped to old-dp-node-name of the old protection policy will be re-mapped to node dp-node-name of the new protection policy. If not provided when data protection policy is being modified, for all the datasets attached to the storage service, new storage sets would be created for node dp-node-name. This element is only used by storage-service-modify and storage-service-dataset-modify API for 'attach' operation type. This input is ignored in storage-service-create API

=end html

=back



=over 2

=item * I<provisioning-policy-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the provisioning policy to be associated with the node. This element is used only by storage-service-create and storage-service-modify API. This element will be ignored, if specified for storage-service-dataset-modify API. In storage-service-modify API, if the value specified for the element is empty, then the provisioning policy associated with the node will be cleared.

=end html

=back



=over 2

=item * I<resourcepools>  =>   B<resourcepool-name-or-id[], optional>

=begin html

<br>Name or identifier of the resource pools to be associated with the node. This element is used only by storage-service-create and storage-service-modify API. This element will be ignored, if specified for storage-service-dataset-modify API.

=end html

=back



=over 2

=item * I<vfiler-template-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the vFiler template to be used to create a vFiler unit for dataset node. This element is used only by storage-service-create and storage-service-modify API. This element will be ignored, if specified for storage-service-dataset-modify API. In storage-service-modify API, if the value specified for the element is empty, then the vFiler template associated with the node will be cleared.

=end html

=back



=head2 storage-service-node-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<dp-node-id>  =>   B<obj-id>

=begin html

<br>ID of the node in the data protection policy that maps to the storage service node.

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<obj-name>

=begin html

<br>Name of the node in the data protection policy that maps to the storage service node.

=end html

=back



=over 2

=item * I<provisioning-policy-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the provisioning policy associated with the node.

=end html

=back



=over 2

=item * I<provisioning-policy-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the provisioning policy associated with the node.

=end html

=back



=over 2

=item * I<resourcepools>  =>   B<L<"resourcepool-info">[], optional>

=begin html

<br>List of the resource pools associated with the node.

=end html

=back



=over 2

=item * I<vfiler-template-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the vFiler template associated with the node.

=end html

=back



=over 2

=item * I<vfiler-template-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the vFiler template associated with the node.

=end html

=back



=head2 storage-set-info

=begin html

null

=end html



B<Fields>

=over 2

=item * I<dataset-access-details>  =>   B<L<"dataset-access-details">, optional>

=begin html

<br>Details of the vFiler unit to be created through which the dataset members provisioned for this node will be exported. Both server-name-or-id and dataset-access-details cannot be specified for a node.

=end html

=back



=over 2

=item * I<dataset-export-info>  =>   B<L<"dataset-export-info">, optional>

=begin html

<br>Specifies the NAS or SAN export settings for members provisioned in this node of the dataset

=end html

=back



=over 2

=item * I<dp-node-name>  =>   B<dp-policy-node-name, optional>

=begin html

<br>Name of the node in the data protection policy. <b>dp-node-name</b> must match exactly the name of one of the nodes in the data protection policy that is currently assigned to the storage service. This element can be absent if no protection policy was assigned to the storage service, in which case, the details are assumed for the root storage set.

=end html

=back



=over 2

=item * I<server-name-or-id>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the vFiler unit to be attached to the node. If a vFiler unit is attached, then all members provisioned into this node will be exported over this vFiler unit. Both server-name-or-id and dataset-access-details cannot be specified for a node.

=end html

=back



=over 2

=item * I<timezone-name>  =>   B<string, optional>

=begin html

<br>Timezone to assign to the node. If specified, the value must be a timezone-name returned by timezone-list-info-iter-next. If no timezone is assigned, then the default system timezone will be used.

=end html

=back



=head2 timezone-defaults

=begin html

The default time zone settings.

=end html



B<Fields>

=over 2

=item * I<default-timezone>  =>   B<string>

=begin html

<br>Name of the time zone to use for objects that do not specify a time zone. This may be empty, meaning that objects use the server's time zone by default. Set this value with the "dfm option set timezone={new-value}" command.

=end html

=back



=over 2

=item * I<server-timezone-description>  =>   B<string>

=begin html

<br>Description of the time zone in which this DFM server is located. If the "default-timezone" is empty, objects without an explicit time zone setting will use the server's time zone. Example values: <ul> <li> "Pacific Standard Time (GMT -8:00)" <li> "US/Eastern (GMT -4:00)" <li> "SGT (GMT +6:00)" <li> "UTC (GMT +0:00)" </ul>

=end html

=back



=head2 timezone-info

=begin html

Information about a time zone.

=end html



B<Fields>

=over 2

=item * I<timezone-name>  =>   B<string>

=begin html

<br>Name of time zone.

=end html

=back



=head2 user-report-info

=begin html

Report count of users.

=end html



B<Fields>

=over 2

=item * I<count>  =>   B<integer>

=begin html

<br>Number of reports of a user.

=end html

=back



=over 2

=item * I<user-name>  =>   B<string>

=begin html

<br>Name of the user.

=end html

=back



=head2 ip-binding-info

=begin html

vFiler IP Address to interface binding information.

=end html



B<Fields>

=over 2

=item * I<interface>  =>   B<obj-name-or-id>

=begin html

<br>Name or identifier of the interface to bind the vFiler IP Address to. This can be either a physical interface, VIF or a VLAN. Example: "e0a", "myvif", "service_vlan"

=end html

=back



=over 2

=item * I<ip-address>  =>   B<ip-address>

=begin html

<br>IP address of the vFiler which is bound to the interface. If this IP Address is not already added to the vFiler, then the IP Address is first added to the vFiler before binding the IP Address with the given interface.

=end html

=back



=over 2

=item * I<mtu-size>  =>   B<integer, optional>

=begin html

<br>MTU size of the new VLAN interface. This element should be present only if a new VLAN interface is being created during vFiler setup. Also the version of Data ONTAP on the storage system on which the vFiler is being setup, should be 7.3.3 or later. Range: [296..9196]

=end html

=back



=over 2

=item * I<netmask>  =>   B<string, optional>

=begin html

<br>Netmask for the IP address in dotted decimal notation. For IPv4 address, either netmask or prefix-length can be supplied. For IPv6 address, netmask is ignored.

=end html

=back



=over 2

=item * I<partner-interface>  =>   B<obj-name-or-id, optional>

=begin html

<br>Name or identifier of the interface on the partner node. This element is valid when the storage system on which this vFiler unit is present is in a Active/Active configuration. If a new VLAN is getting created on the local node, then a new corresponding VLAN will also be created on the partner node on this interface.

=end html

=back



=over 2

=item * I<prefix-length>  =>   B<integer, optional>

=begin html

<br>Prefix length for the IP address. This is required if IPv6 address is supplied. For IPv4 address, either netmask or prefix-length can be supplied. Range: [1..127]

=end html

=back



=over 2

=item * I<vlan-identifier>  =>   B<integer, optional>

=begin html

<br>Identifier for creating a new VLAN interface. If this element is present, the interface element should refer to a physical VLAN tagged interface. Range: [1..4094]

=end html

=back



=head2 protocol

=begin html

Name of the protocol. Possible values: "nfs", "cifs", "iscsi".

=end html



B<Fields>

=over 2

=item * None

=back



=head2 vfiler-template-info

=begin html

Information about a vFiler Template.

=end html



B<Fields>

=over 2

=item * I<administrative-host-ip-address>  =>   B<ip-address, optional>

=begin html

<br>IP Address of the vFiler's administrative host. By default, this field is empty.

=end html

=back



=over 2

=item * I<cifs-auth-type>  =>   B<string, optional>

=begin html

<br>CIFS authentication mode to be used for the CIFS setup of a vFiler. This determines the method by which clients will be authenticated when connecting to the CIFS service on the vFiler. Possible values: "active_directory", "workgroup". Default value: "workgroup"

=end html

=back



=over 2

=item * I<cifs-domain>  =>   B<string, optional>

=begin html

<br>Active Directory domain to which the vFiler will join to. This can be the NetBIOS or fully qualified domain name. Examples: cifsdomain, cifs.domain.com This field is applicable only when cifs-auth-type is set to "active-directory" and is ignored otherwise.

=end html

=back



=over 2

=item * I<cifs-security-style>  =>   B<string, optional>

=begin html

<br>The security style determines whether or not the CIFS service on vFiler will support multiprotocol access. Possible values: "ntfs", "multiprotocol". Default value is: "multiprotocol"

=end html

=back



=over 2

=item * I<description>  =>   B<string, optional>

=begin html

<br>Description of vFiler template. By default, this field is empty.

=end html

=back



=over 2

=item * I<dns-domain>  =>   B<string, optional>

=begin html

<br>Name of the DNS domain for a vFiler that is setup using this vFiler template. By default, this field is empty.

=end html

=back



=over 2

=item * I<dns-servers>  =>   B<ip-address[], optional>

=begin html

<br>List of DNS servers for a vFiler that is setup using this vFiler template.

=end html

=back



=over 2

=item * I<nis-domain>  =>   B<string, optional>

=begin html

<br>Name of the NIS domain for a vFiler that is setup using this vFiler template. By default, this field is empty.

=end html

=back



=over 2

=item * I<nis-servers>  =>   B<ip-address[], optional>

=begin html

<br>List of NIS servers for a vFiler that is setup using this vFiler template.

=end html

=back



=over 2

=item * I<vfiler-template-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the vFiler template. This is ignored in vfiler-template-create.

=end html

=back



=over 2

=item * I<vfiler-template-name>  =>   B<obj-name, optional>

=begin html

<br>Name of the vFiler template. This must be specified in vfiler-template-create.

=end html

=back



=head2 datacenter

=begin html

Information about a Data Center.

=end html



B<Fields>

=over 2

=item * I<datacenter-id>  =>   B<obj-id>

=begin html

<br>Object Id of the Data Center.

=end html

=back



=over 2

=item * I<datacenter-name>  =>   B<obj-name>

=begin html

<br>Name of the Data Center.

=end html

=back



=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>List of the datasets that the data center belongs to.

=end html

=back



=over 2

=item * I<deleted-by>  =>   B<string, optional>

=begin html

<br>The user who deleted the Data Center. This element is present only if the Data Center is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>The time and date when the Data Center was marked as deleted in DataFabric Manager. This element is present only if the Data Center is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Object id of the Host Service that manages the Data Center.

=end html

=back



=over 2

=item * I<is-protected>  =>   B<boolean>

=begin html

<br>true, if Data Center is protected.

=end html

=back



=over 2

=item * I<virtual-center-reference>  =>   B<L<"virtual-center-reference">>

=begin html

<br>Information about the Virtual Center Server to which the Data Center belongs to.

=end html

=back



=head2 datacenter-reference

=begin html

Information about a hypervisor.

=end html



B<Fields>

=over 2

=item * I<datacenter-id>  =>   B<obj-id>

=begin html

<br>Object Identifier of the Data Center.

=end html

=back



=over 2

=item * I<datacenter-name>  =>   B<obj-name>

=begin html

<br>Name of the Data Center.

=end html

=back



=head2 datastore

=begin html

Information about a Datastore.

=end html



B<Fields>

=over 2

=item * I<allocated-capacity>  =>   B<integer>

=begin html

<br>Allocated capacity in bytes (i.e size) for the Datastore Range: [0..2^64-1]

=end html

=back



=over 2

=item * I<datacenter-reference>  =>   B<L<"datacenter-reference">>

=begin html

<br>Information of the Datacenter to which the Datastore belongs to.

=end html

=back



=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>List of the datasets that the datastore belongs to.

=end html

=back



=over 2

=item * I<datastore-id>  =>   B<obj-id>

=begin html

<br>Object identifier of the Datastore.

=end html

=back



=over 2

=item * I<datastore-name>  =>   B<obj-name>

=begin html

<br>Name of the Datastore.

=end html

=back



=over 2

=item * I<datastore-on-ontap>  =>   B<boolean>

=begin html

<br>true, if backing storage for Datastore is hosted on Data ONTAP system.

=end html

=back



=over 2

=item * I<datastore-type>  =>   B<string>

=begin html

<br>Type of the Datastore. The possible types are :- <ul> <li>vmfs</li> <li>nfs</li> </ul>

=end html

=back



=over 2

=item * I<deleted-by>  =>   B<string, optional>

=begin html

<br>The user who deleted marked the Datastore as deleted. This element is present only if the Datastore is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>The time and date when Datastore was marked as deleted in DataFabric Manager server. This element is present only if the Datastore is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Id for the Host Service that manages the Datastore.

=end html

=back



=over 2

=item * I<is-protected>  =>   B<boolean>

=begin html

<br>true, if Datastore is protected.

=end html

=back



=over 2

=item * I<nfs-export-path>  =>   B<string, optional>

=begin html

<br>File system path on Data ONTAP storage system on which the NFS export is created. Applicable only if the Datastore is of type NFS.

=end html

=back



=over 2

=item * I<used-capacity>  =>   B<integer>

=begin html

<br>Used capacity in bytes for the Datastore Range: [0..2^64-1]

=end html

=back



=over 2

=item * I<virtual-center-reference>  =>   B<L<"virtual-center-reference">>

=begin html

<br>Information on Virtual Center to which the Datastore belongs to.

=end html

=back



=head2 datastore-reference

=begin html

Name and object identifier of the datastore object.

=end html



B<Fields>

=over 2

=item * I<datastore-id>  =>   B<obj-id, optional>

=begin html

<br>Object Id of the Object Datastore in which the Virtual Disk resides.

=end html

=back



=over 2

=item * I<datastore-name>  =>   B<obj-name, optional>

=begin html

<br>Object name of the Datastore in which the Virtual Disk resides.

=end html

=back



=head2 hypervisor-info

=begin html

Information about a Hypervisor.

=end html



B<Fields>

=over 2

=item * I<datacenter-reference>  =>   B<L<"datacenter-reference">, optional>

=begin html

<br>Information of Data Center to which the hypervisor belongs to. Applicable only in case the <b>virtual-infrastructure-type</b> is 'VMwareManagement'.

=end html

=back



=over 2

=item * I<deleted-by>  =>   B<string, optional>

=begin html

<br>The user who marked the Hypervisor as deleted. This element is present only if the Hypervisor is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>The time and date when the Hypervisor was marked as deleted in DataFabric Manager Server. This element is present only if the Hypervisor is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<domain-name>  =>   B<string, optional>

=begin html

<br>Name of the windows domain/workgroup to which the HyperVisor belongs to, applicable only in case the <b>virtual-infrastructure-type</b> is 'HyperVManagement'.

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Object identifier of the Host Service that manages the Hypervisor.

=end html

=back



=over 2

=item * I<hypervisor-id>  =>   B<obj-id>

=begin html

<br>Object Identifier for the hypervisor in DataFabric Manager Server.

=end html

=back



=over 2

=item * I<hypervisor-name>  =>   B<obj-name>

=begin html

<br>Name of the hypervisor.

=end html

=back



=over 2

=item * I<ip-address>  =>   B<ip-address>

=begin html

<br>IP Address of the hypervisor.

=end html

=back



=over 2

=item * I<virtual-center-reference>  =>   B<L<"virtual-center-reference">, optional>

=begin html

<br>Information of the Virtual Center to which the hypervisor belongs to. Applicable only in case the <b>virtual-infrastructure-type</b> is 'VMwareManagement'.

=end html

=back



=over 2

=item * I<virtual-infrastructure-type>  =>   B<virtual-infrastructure-type>

=begin html

<br>Type of the virtual server infrastructure the Hypervisor belongs to.

=end html

=back



=head2 hypervisor-reference

=begin html

Information about a hypervisor.

=end html



B<Fields>

=over 2

=item * I<hypervisor-id>  =>   B<obj-id>

=begin html

<br>Object Identifier of the Hypervisor.

=end html

=back



=over 2

=item * I<hypervisor-name>  =>   B<obj-name>

=begin html

<br>Name of the Hypervisor.

=end html

=back



=head2 virtual-center

=begin html

Virtual Center information.

=end html



B<Fields>

=over 2

=item * I<deleted-by>  =>   B<string, optional>

=begin html

<br>The user who deleted the Virtual Center object. Present only if <b>include-deleted</b> input field is specified when starting the iteration and the Virtual Center is deleted.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>The time and date when Virtual Center object was deleted. Present only if <b>include-deleted</b> input field is specified when starting the iteration and the Virtual Center is deleted.

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Object identifier of the Host Service managing the Virtual Center Server.

=end html

=back



=over 2

=item * I<virtual-center-id>  =>   B<obj-id>

=begin html

<br>Object Id of the Virtual Center.

=end html

=back



=over 2

=item * I<virtual-center-name>  =>   B<obj-name>

=begin html

<br>Name of the Virtual Center.

=end html

=back



=head2 virtual-center-reference

=begin html

Information about a hypervisor.

=end html



B<Fields>

=over 2

=item * I<virtual-center-id>  =>   B<obj-id>

=begin html

<br>Object Identifier of the Virtual Center.

=end html

=back



=over 2

=item * I<virtual-center-name>  =>   B<obj-name>

=begin html

<br>Name of the Virtual Center.

=end html

=back



=head2 virtual-disk

=begin html

Information about Virtual Disk.

=end html



B<Fields>

=over 2

=item * I<datastore-id>  =>   B<obj-id, optional>

=begin html

<br>Object Id of the Object Datastore in which the Virtual Disk resides. This is applicable only if the virtual-infrastructure-type is 'VMwareManagement'. This element is <b>deprecated</b>, use datastore-reference instead.

=end html

=back



=over 2

=item * I<datastore-name>  =>   B<obj-name, optional>

=begin html

<br>Object name of the Datastore in which the Virtual Disk resides. This is applicable only if the virtual-infrastructure-type is 'VMwareManagement'. This element is <b>deprecated</b>, use datastore-reference instead.

=end html

=back



=over 2

=item * I<datastore-reference>  =>   B<L<"datastore-reference">, optional>

=begin html

<br>Information of the datastore object on which the virtual disk resides. This is applicable only if the virtual-infrastructure-type is 'VMwareManagement'.

=end html

=back



=over 2

=item * I<deleted-by>  =>   B<string, optional>

=begin html

<br>The user who deleted the Virtual Disk. This element is present only if the Virtual Disk is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>The time and date when the Virtual Disk was deleted. This element is present only if the Virtual Disk is deleted and include-deleted is passed as true when starting the iteration.

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Identifier of the Host Service managing Virtual Disk (i.e the Host Service that managed the Virtual Machine to which the Virtual Disk is assigned).

=end html

=back



=over 2

=item * I<vhd-type>  =>   B<string, optional>

=begin html

<br>Indicated the type of Virtual Disk. <P> If the virtual-infrastructure-type is 'HyperVManagement' the possible values are : <ul> <li>passthrough</li> <li>cluster_shared_volume</li> <li>boot_disk</li> <li>regular</li> </ul> <P> If the virtual-infrastructure-type is 'VMwareManagement' the possible values are : <ul> <li>raw_device_mapping</li> <li>regular</li> </ul>

=end html

=back



=over 2

=item * I<virtual-disk-id>  =>   B<obj-id>

=begin html

<br>Object id for the Virtual Disk.

=end html

=back



=over 2

=item * I<virtual-disk-name>  =>   B<obj-name>

=begin html

<br>Name for the Virtual Disk.

=end html

=back



=over 2

=item * I<virtual-infrastructure-type>  =>   B<virtual-infrastructure-type>

=begin html

<br>Type of virtual infrastructure the Virtual Disk belongs to.

=end html

=back



=over 2

=item * I<virtual-machine-id>  =>   B<obj-id>

=begin html

<br>Object Id of the Virtual Machine to which this Virtual Disk is assigned. This element is <b>deprecated</b>, use virtual-machine-reference instead.

=end html

=back



=over 2

=item * I<virtual-machine-name>  =>   B<obj-name>

=begin html

<br>Object Name of the Virtual Machine to which this Virtual Disk is assigned. This element is <b>deprecated</b>, use virtual-machine-reference instead.

=end html

=back



=over 2

=item * I<virtual-machine-reference>  =>   B<L<"virtual-machine-reference">, optional>

=begin html

<br>Information of virtual machine object to which the virtual disk is assigned.

=end html

=back



=head2 virtual-infrastructure-type

=begin html

Type of virtual infrastructure. The possible values are :- <ul> <li>VMwareManagement</li> <li>HyperVManagement</li> </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 virtual-machine

=begin html

Information about a Virtual Machine.

=end html



B<Fields>

=over 2

=item * I<datacenter-reference>  =>   B<L<"datacenter-reference">, optional>

=begin html

<br>Information of the Data Center to which the Virtual Machine is member of in VMware Virtual Center Server. Applicable only in case the <b>virtual-infrastructure-type</b> is 'VMwareManagement'.

=end html

=back



=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>List of datasets that has this Virtual Machine as a member.

=end html

=back



=over 2

=item * I<deleted-by>  =>   B<string, optional>

=begin html

<br>The user who deleted the Virtual Machine. Returned only if <b>include-deleted</b> input element value is true and the Virtual Machine is deleted.

=end html

=back



=over 2

=item * I<deleted-timestamp>  =>   B<dp-timestamp, optional>

=begin html

<br>The time and date when the Virtual Machine was marked as deleted. Returned only if <b>include-deleted</b> input element value is true and the Virtual Machine is deleted.

=end html

=back



=over 2

=item * I<dns-name>  =>   B<string>

=begin html

<br>FQDN configured for the Virtual Machine.

=end html

=back



=over 2

=item * I<guest-os-type>  =>   B<string, optional>

=begin html

<br>Guest OS type running inside the Virtual Machine.

=end html

=back



=over 2

=item * I<host-service-id>  =>   B<obj-id>

=begin html

<br>Identifier of the Host Service managing the Virtual Machine.

=end html

=back



=over 2

=item * I<hypervisor-reference>  =>   B<L<"hypervisor-reference">>

=begin html

<br>Information of Hypervisor (ESX Server or Hyper-V Parent partition) on which the Virtual Machine is hosted.

=end html

=back



=over 2

=item * I<ip-address-list>  =>   B<ip-address[], optional>

=begin html

<br>List of IP addresses configured on the Virtual Machine.

=end html

=back



=over 2

=item * I<is-protected>  =>   B<boolean>

=begin html

<br>true, if Virtual Machine is protected.

=end html

=back



=over 2

=item * I<status>  =>   B<string>

=begin html

<br>Indicates the operational state of the Virtual Machine (i.e if Virtual Machine is powered on or not). Valid values are 'on', 'off' or 'unknown'.

=end html

=back



=over 2

=item * I<virtual-center-reference>  =>   B<L<"virtual-center-reference">, optional>

=begin html

<br>Information of Virtual Center Server which manages the Virtual Machine. Applicable only in case the <b>virtual-infrastructure-type</b> is 'VMwareManagement'.

=end html

=back



=over 2

=item * I<virtual-infrastructure-type>  =>   B<virtual-infrastructure-type>

=begin html

<br>Type of virtual infrastructure the virtual machine belongs to.

=end html

=back



=over 2

=item * I<virtual-machine-id>  =>   B<obj-id>

=begin html

<br>Object id for the virtual machine.

=end html

=back



=over 2

=item * I<virtual-machine-name>  =>   B<obj-name>

=begin html

<br>Name of the virtual machine, this is the name that virtual server administrator specifies when creating Virtual Machine in virtual server management tools like VMware VCenter Server or Microsoft Hyper-V Virtual Machine Manager.

=end html

=back



=head2 virtual-machine-reference

=begin html

Name and object identifier of the virtual machine object.

=end html



B<Fields>

=over 2

=item * I<virtual-machine-id>  =>   B<obj-id>

=begin html

<br>Object id of the Virtual Machine to which this Virtual Disk is assigned.

=end html

=back



=over 2

=item * I<virtual-machine-name>  =>   B<obj-name>

=begin html

<br>Object name of the Virtual Machine to which this Virtual Disk is assigned.

=end html

=back



=head2 migration-incompatibility-reason

=begin html

A reason the volume is not capable of migration. <p> Possible values are: <ul> <li> 'vol_has_nfs_exports': The volume or any of its qtrees has NFS exports. <li> 'vol_has_cifs_shares': The volume or any of its qtrees has CIFS shares. <li> 'vol_has_mapped_luns': The volume or any of its qtrees has LUNs. <li> 'vol_has_flex_clones': The volume has child clone volumes. <li> 'vol_has_unmanaged_snapmirror_rels': There are incoming or outgoing SnapMirror relationships that are not managed by ProtectionManager. <li> 'vol_has_unmanaged_snapvault_rels': There are incoming or outgoing SnapVault relationships that are not managed by Protection Manager. <li> 'vol_is_storage_root': The volume is the root volume of a storage system or vFiler unit. <li> 'vol_has_qtree_storage_root': The volume has at least one qtree which is the root storage of a vFiler unit. <li> 'vol_is_traditional': The volume is 'Traditional' volume, not a Flexible volume. <li> 'vol_is_cmode': The volume is on a Data ONTAP Cluster-Mode appliance. <li> 'vol_is_offline': The volume is offline. </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 object-space-status

=begin html

Space status of the object. This indicates the fullness of the object in terms of whether the percentage of used space with respect to total size of the object has reached the fullness thresholds. Possible values: <ul> <li> ok - when the percentage of used space of the object is within the nearly full and full threshold of the object. <li> nearly_full - when the percentage of used space of the object is within the full threshold of the object but has reached or crossed the nearly full threshold. <li> full - when the percentage of used space of the object has reached or crossed the full threshold of the object. </ul>

=end html



B<Fields>

=over 2

=item * None

=back



=head2 timestamp

=begin html

Seconds since 1/1/1970 in UTC. Range: [0..2^31-1].

=end html



B<Fields>

=over 2

=item * None

=back



=head2 volume-dedupe-info

=begin html

Volume deduplication information. Optional fields will not be returned if deduplication has never run on the volume.

=end html



B<Fields>

=over 2

=item * I<dedupe-progress>  =>   B<string, optional>

=begin html

<br>The progress of the current deduplication operation on the volume with information as to which stage of de-duplication is currently in progress and how much data is processed for that stage. For eg: "25 MB Scanned, 20MB Searched, 40MB (20%) Done , 30MB Verified".

=end html

=back



=over 2

=item * I<dedupe-space-savings>  =>   B<integer, optional>

=begin html

<br>Space savings as a result of deduplication on the volume in bytes. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<dedupe-space-savings-percentage>  =>   B<integer, optional>

=begin html

<br>Percentage of space savings generated by the shared space. Range: [0..100]

=end html

=back



=over 2

=item * I<dedupe-status>  =>   B<string, optional>

=begin html

<br>Deduplication operation status of the volume. Possible values: "idle", "active", "pending", or "undoing".

=end html

=back



=over 2

=item * I<is-dedupe-enabled>  =>   B<boolean>

=begin html

<br>Specifies if deduplication is enabled on the volume.

=end html

=back



=over 2

=item * I<last-dedupe-begin-timestamp>  =>   B<timestamp, optional>

=begin html

<br>Start timestamp of the last deduplication operation. The value is in seconds since January 1, 1970. Range : [0..2^31-1]

=end html

=back



=over 2

=item * I<last-dedupe-end-timestamp>  =>   B<timestamp, optional>

=begin html

<br>End timestamp of the last deduplication operation on the volume. The value is in seconds since January 1, 1970. Range : [0..2^31-1]

=end html

=back



=over 2

=item * I<last-dedupe-error>  =>   B<string, optional>

=begin html

<br>A human readable error message of the last deduplication operation on the volume. Returned only when there is a valid error.

=end html

=back



=over 2

=item * I<last-dedupe-scanned-size>  =>   B<integer, optional>

=begin html

<br>The size scanned in bytes of the last deduplication operation on the volume. Range : [0..2^63-1].

=end html

=back



=head2 volume-info

=begin html

Information about a volume.

=end html



B<Fields>

=over 2

=item * I<aggregate-id>  =>   B<integer>

=begin html

<br>Identifier of aggregate on which the volume resides.

=end html

=back



=over 2

=item * I<aggregate-name>  =>   B<string>

=begin html

<br>Name of aggregate on which the volume resides.

=end html

=back



=over 2

=item * I<block-type>  =>   B<file-system-block-type>

=begin html

<br>File system block type of the volume.

=end html

=back



=over 2

=item * I<dataset-id>  =>   B<integer, optional>

=begin html

<br>ID of dataset where this qtree is in the primary storage set. Range: [1..2^31-1] This field is deprecated in favor of datasets, which lists all datasets the volume belongs to. It is still populated with one of the dataset ids.

=end html

=back



=over 2

=item * I<dataset-nodes>  =>   B<L<"dataset-node-info">[], optional>

=begin html

<br>Information about the dataset nodes which contain this volume as member. If is-in-dataset is false, this list will be empty.

=end html

=back



=over 2

=item * I<datasets>  =>   B<L<"dataset-reference">[]>

=begin html

<br>List of dataset IDs containing this volume. If is-in-dataset is false, this list will be empty.

=end html

=back



=over 2

=item * I<host-id>  =>   B<integer>

=begin html

<br>Identifier of host on which the volume resides.

=end html

=back



=over 2

=item * I<host-name>  =>   B<string>

=begin html

<br>Name of host on which the volume resides.

=end html

=back



=over 2

=item * I<is-available>  =>   B<boolean, optional>

=begin html

<br>True if this object and all of it's parents are up or online. Only output if the call to iter-start included the "include-is-available" flag.

=end html

=back



=over 2

=item * I<is-capable-of-migration>  =>   B<boolean, optional>

=begin html

<br>Indicates whether the volume can be migrated. Returned only when include-migration-info is true in volume-list-info-iter-start call. <p> A volume is considered as capable of migration in a transparent way (using migrate-volume API) when the following conditions holds good for the volume. <ul> <li> The volume or any of its qtrees has no NFS exports <li> The volume or any of its qtrees has no CIFS shares <li> The volume or any of its qtrees has no LUNs mapped to storage clients. <li> The volume has no child clone volumes. <li> There are no incoming and outgoing protection relationships that are not managed by Protection Manager. <li> The volume is not the root storage of a storage system or vFiler unit. <li> The volume is not of 'Traditional' type. <li> The volume is managed by "node" management interface. </ul>

=end html

=back



=over 2

=item * I<is-dp-ignored>  =>   B<boolean, optional>

=begin html

<br>True if this dataset is intentionally ignored.

=end html

=back



=over 2

=item * I<is-in-dataset>  =>   B<boolean>

=begin html

<br>Indicate whether this volume is a member of any dataset.

=end html

=back



=over 2

=item * I<is-readonly-volume>  =>   B<boolean>

=begin html

<br>True if the volume is readonly.

=end html

=back



=over 2

=item * I<is-snapmirror-primary-capable>  =>   B<boolean>

=begin html

<br>True if the volume is capable of being a primary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror.

=end html

=back



=over 2

=item * I<is-snapmirror-primary-volume>  =>   B<boolean>

=begin html

<br>True if the volume is a primary volume for a SnapMirror relationship.

=end html

=back



=over 2

=item * I<is-snapmirror-secondary-capable>  =>   B<boolean>

=begin html

<br>True if the volume is capable of being a secondary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror and the volume is not already a SnapMirror or SnapVault secondary.

=end html

=back



=over 2

=item * I<is-snapmirror-secondary-volume>  =>   B<boolean>

=begin html

<br>True if the volume is a destination of Qtree or Volume SnapMirror relationship.

=end html

=back



=over 2

=item * I<is-snapvault-primary-capable>  =>   B<boolean>

=begin html

<br>True if the volume is capable of being the source of a SnapVault transfer. This means the storage system is licensed to be a SnapVault primary.

=end html

=back



=over 2

=item * I<is-snapvault-primary-volume>  =>   B<boolean>

=begin html

<br>True if the volume contains at least one qtree which is the source of a SnapVault backup.

=end html

=back



=over 2

=item * I<is-snapvault-secondary-capable>  =>   B<boolean>

=begin html

<br>True if the volume is capable of being the destination of SnapVault transfers. This means the storage system is licensed as a SnapVault secondary and the volume is not a SnapMirror destination.

=end html

=back



=over 2

=item * I<is-snapvault-secondary-volume>  =>   B<boolean>

=begin html

<br>True if the volume is a secondary volume for storing SnapVault backups.

=end html

=back



=over 2

=item * I<is-vsm-secondary-volume>  =>   B<boolean>

=begin html

<br>True if the volume is a destination of Volume SnapMirror relationship.

=end html

=back



=over 2

=item * I<junction-path>  =>   B<string, optional>

=begin html

<br>Junction path of the volume. Will be present only for volumes on Data ONTAP Cluster-Mode Appliance.

=end html

=back



=over 2

=item * I<junction-path-active>  =>   B<boolean, optional>

=begin html

<br>Junction path status of the volume. Will be present only for volumes on Data ONTAP Cluster-Mode Appliance. Will be true if junction path is active else false.

=end html

=back



=over 2

=item * I<migration-incompatibility-reasons>  =>   B<migration-incompatibility-reason[], optional>

=begin html

<br>List of reasons the volume is not capable of migration. Returned only when include-migration-info is true in volume-list-info-iter-start call and is-capable-of-migration output is false.

=end html

=back



=over 2

=item * I<next-scheduled-backup-time>  =>   B<dp-timestamp, optional>

=begin html

<br>Time when next scheduled backup job will be run on this volume. Value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. This is computed and returned only when include-next-scheduled-backup-time is true in volume-list-info-iter-start api. This value is returned only for volumes in datasets that have a protection policy with relevant schedules on the connections and nodes. When the volume is in the primary node of the dataset and if the protection policy assigned to the dataset has a local snapshot schedule associated, this returns the next timestamp when the local snapshot job will run for the dataset. When the volume is in a non-primary node of the dataset and the incoming or outgoing connection of the protection policy has a backup/mirror schedule, this will return the least timestamp when the next backup/mirror job will run for the dataset for those connection(s).

=end html

=back



=over 2

=item * I<snapshot-volume-id>  =>   B<obj-id, optional>

=begin html

<br>Identifier of the Snapshot space for the volume i.e "volume.snapshot" This represents the Snapshot reserve in the volume.

=end html

=back



=over 2

=item * I<snapshot-volume-name>  =>   B<obj-full-name, optional>

=begin html

<br>Name of the Snapshot space for the volume i.e "volume.snapshot". This represents the Snapshot reserve in the volume.

=end html

=back



=over 2

=item * I<snapvault-lag-warning-threshold>  =>   B<integer, optional>

=begin html

<br>Threshold in seconds. DFM generates a warning event when age of the replica for a SnapVault backup relationship exceeds the specified threshold.

=end html

=back



=over 2

=item * I<snapvault-secondary-schedule-name>  =>   B<string, optional>

=begin html

<br>Name of backup schedule associated with secondary volume. Not present if there is no schedule.

=end html

=back



=over 2

=item * I<space-guarantee>  =>   B<string, optional>

=begin html

<br>The space reservation style associated with the flexible volume. Possible values: <ul> <li> volume - Indicates that the entire size of the volume is preallocated. <li> file - Indicates that the space will be preallocated for all the space-reserved files and LUNs within the volume. Storage is not preallocated for files and LUNs that are not space-reserved. Writes to these can fail if the underlying aggregate has no space available to store the written data. <li> none - Indicates that no space will be preallocated. <li> file(disabled) - If a volume with file guarantee has been brought online when the aggregate has insufficient free space to preallocate to the volume. <li> volume(disabled) - If a volume with volume guarantee has been brought online when the aggregate has insufficient free space to preallocate to the volume. </ul> This field will not be present for traditional volumes. This field does not appear if volume-state of the flexible volume is restricted or offline.

=end html

=back



=over 2

=item * I<volume-dedupe-info>  =>   B<L<"volume-dedupe-info">, optional>

=begin html

<br>Volume deduplication information. This is returned only if the volume is a SIS volume.

=end html

=back



=over 2

=item * I<volume-full-threshold>  =>   B<integer>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate a "volume full" event for this volume and to compute the volume-space-status. The order in which the thresholds are returned is: <ul> <li> If a volume is governed by a provisioning policy, then the thresholds in the provisioning policy are returned. <li> If the thresholds are set at volume level, then those thresholds are returned. <li> If the volume is neither governed by a provisioning policy nor if thresholds are set at volume level, then the value returned will be empty. </ul> If the value is empty, then the global setting for volume full threshold is considered and this can be obtained from dfm-get-option API with option-name as "volFullThreshold". Range: [0..1000]

=end html

=back



=over 2

=item * I<volume-id>  =>   B<integer>

=begin html

<br>Identifier of the volume.

=end html

=back



=over 2

=item * I<volume-name>  =>   B<string>

=begin html

<br>Name of the volume.

=end html

=back



=over 2

=item * I<volume-nearly-full-threshold>  =>   B<integer>

=begin html

<br>The value (as an integer percentage) of the fullness threshold used to generate a "volume nearly full" event for this volume and to compute the volume-space-status. The order in which the thresholds are returned is: <ul> <li> If a volume is governed by a provisioning policy, then the thresholds in the provisioning policy are returned. <li> If the thresholds are set at volume level, then those thresholds are returned. <li> If the volume is neither governed by a provisioning policy nor if the thresholds are set at volume level, then the value returned will be empty. </ul> If the value is empty, then the global setting for volume nearly full threshold is considered and this can be obtained from dfm-get-option API with option-name as "volNearlyFullThreshold". Range: [0..1000]

=end html

=back



=over 2

=item * I<volume-perf-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the volume based on performance events

=end html

=back



=over 2

=item * I<volume-qtree>  =>   B<L<"volume-qtree">, optional>

=begin html

<br>Volume qtree(s) information. If volume does not have any qtree, this structure is not returned.

=end html

=back



=over 2

=item * I<volume-size>  =>   B<L<"volume-size">>

=begin html

<br>Volume size information.

=end html

=back



=over 2

=item * I<volume-space-status>  =>   B<object-space-status>

=begin html

<br>Space status of the volume. This indicates the fullness of the volume in terms of whether the percentage of used space with respect to total size of the volume has reached or crossed the fullness thresholds given in volume-nearly-full-threshold and volume-full-threshold.

=end html

=back



=over 2

=item * I<volume-state>  =>   B<string>

=begin html

<br>State of volume. Possible values are: <ul> <li> initializing <li> failed <li> offline <li> online <li> partial <li> restricted <li> unknown </ul>

=end html

=back



=over 2

=item * I<volume-status>  =>   B<obj-status, optional>

=begin html

<br>Current status of the volume based on all events

=end html

=back



=over 2

=item * I<volume-type>  =>   B<string>

=begin html

<br>Type of volume. Possible values are: <ul> <li> traditional <li> flexible <li> striped </ul>

=end html

=back



=head2 volume-qtree

=begin html

Information on qtrees in the volume

=end html



B<Fields>

=over 2

=item * I<protected-data-size>  =>   B<integer>

=begin html

<br>Summation of total size of protected qtrees.

=end html

=back



=over 2

=item * I<protected-qtree-count>  =>   B<integer>

=begin html

<br>Total number of qtrees that are in datasets.

=end html

=back



=over 2

=item * I<total-qtree-count>  =>   B<integer>

=begin html

<br>Total number of qtrees in the volume.

=end html

=back



=over 2

=item * I<unprotected-data-size>  =>   B<integer>

=begin html

<br>Summation of total size of unprotected qtrees.

=end html

=back



=over 2

=item * I<unprotected-qtree-count>  =>   B<integer>

=begin html

<br>Total number of qtrees that are not in any dataset.

=end html

=back



=head2 volume-size

=begin html

Collected size information about a volume. Optional items will not be returned if DFM does not know the value.

=end html



B<Fields>

=over 2

=item * I<actual-volume-size>  =>   B<integer, optional>

=begin html

<br>Actual size in bytes of the volume. For volumes which are destinations of a Volume SnapMirror relationship, the actual size of the volume may differ from the logical size (reported by the df command). The logical size for such volumes is equal to size of the source volume. For all other volume <b>actual-volume-size</b> will be same as <b>total</b> size.

=end html

=back



=over 2

=item * I<afs-avail>  =>   B<integer, optional>

=begin html

<br>Number of bytes available in active file system. This will be (afs-total - afs-used) or the available space in the aggregate, whichever is lower. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<afs-data>  =>   B<integer, optional>

=begin html

<br>Number of bytes used to hold user data in active file system. This should match what you'd get if you added up the file sizes. This includes data and hole reserves, if any. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<afs-total>  =>   B<integer, optional>

=begin html

<br>Total number of bytes in active file system (total volume less snapshot reserve). Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<afs-used>  =>   B<integer, optional>

=begin html

<br>Number of bytes used to hold active file system data. This is what "df" reports as used for the volume. It includes data, hole reserves, overwrite reserves and snapshot overflow. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<afs-used-per-day>  =>   B<integer>

=begin html

<br>Number of bytes used per day in the active file system of the volume. This can be either positive or negative depending on the growth of used space in the volume. Range: [-2^44-1..2^44-1]

=end html

=back



=over 2

=item * I<hole-reserve>  =>   B<integer, optional>

=begin html

<br>Number of bytes available in LUNs. Range: [0..2^44-1]

=end html

=back



=over 2

=item * I<is-autosize-enabled>  =>   B<boolean>

=begin html

<br>Indicates whether this volume has autosize feature enabled or not.

=end html

=back



=over 2

=item * I<maximum-size>  =>   B<integer, optional>

=begin html

<br>Maximum size in bytes that this volume will be grown up to automatically by ONTAP. This is returned only if is-autosize-enabled is true. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<overwrite-reserve-avail>  =>   B<integer, optional>

=begin html

<br>Number of bytes available reserved space for data overwrites. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<overwrite-reserve-total>  =>   B<integer, optional>

=begin html

<br>Total number of bytes reserved for data overwrites. This is the space reserved for overwriting LUNs and other space-reserved files when the volume has snapshots and afs-avail is zero. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<overwrite-reserve-used>  =>   B<integer, optional>

=begin html

<br>Number of bytes used in overwrite reserve space. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<snapshot-reserve-avail>  =>   B<integer, optional>

=begin html

<br>Number of available bytes in snapshot reserve for this volume. If snapshot-reserve-used is greater than snapshot-reserve-total, this value will be zero. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<snapshot-reserve-total>  =>   B<integer, optional>

=begin html

<br>Total number of bytes of snapshot reserve. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<snapshot-reserve-used>  =>   B<integer, optional>

=begin html

<br>Total number of bytes used to hold snapshot data. This can be greater than the snapshot reserve size but will not include any space used out of the overwrite reserve. Range: [0..2^63-1]

=end html

=back



=over 2

=item * I<space-allocated-from-aggr>  =>   B<integer>

=begin html

<br>Bytes allocated to the volume from the aggregate. In case of volumes with space-guarantee as "volume", it would be the total size of the volume, where as in case of volumes with "file" or "none" guarantee volumes, it would be the used space from the aggregate. Range [0..2^44-1]

=end html

=back



=over 2

=item * I<total>  =>   B<integer, optional>

=begin html

<br>Total number of bytes in volume. This includes the snapshot reserve. Range: [0..2^63-1]

=end html

=back



=head1 COPYRIGHT

Copyright (c) 1994-2013 NetApp, Inc. All rights reserved.

The product described in this manual may be protected by one or more U.S.A. patents, foreign patents, or pending applications.

RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.277-7103 (October 1988) and FAR 52-227-19 (June 1987).

=cut
