APIs in Category: DpPolicy | API version 5.0

DpPolicyCopy DpPolicyDestroy DpPolicyEditBegin DpPolicyEditCommit DpPolicyEditRollback DpPolicyGetDefaultPropertyValues DpPolicyListIterEnd DpPolicyListIterNext DpPolicyListIterStart DpPolicyModify | A data protection (DP) Policy describes how To protect a data set by creating Backups and mirrors of the data at scheduled times. A DP Policy is represented by a directed graph whose topology is that of a tree. The nodes (vertices) of the graph represent the Dataset's storage sets. The connections (edges) of the graph are of one of two types: A backup connection represents relationships between elements of the storage sets it connects. A backup connection points From a storage set containing primaries To a storage set containing secondaries. A mirror connection represents relationships between elements of the storage sets it connects. A mirror connection points From a storage set containing sources To a storage set containing destinations. After an update, the Source and destination are identical. A Policy also has a Name (which must be unique among all policies) and a Description. Precisely one node in the graph, called the root node, has no incoming connections. All other nodes have precisely one incoming connection. Each node has zero or more outgoing connections. Each node is of one of these three types: The root node. A backup secondary, which is a node with an incoming backup connection. A mirror destination, which is a node with an incoming mirror connection. Each node has a Name, which may be set by the user but must be unique within the Policy (it need not be unique among all policies). Each node also has a numeric ID, which is selected by the system and is guaranteed To be unique within the Policy (but not among all policies). The Type of a node is not stored explicitly in a child XML element, but must instead be inferred From its position in the Policy graph. Nodes are represented by the XML structure DpPolicyNodeInfo, as described below. Each connection has a numeric ID, which is selected by the system and is guaranteed To be unique within the Policy (but not among all policies). Each connection also has a child element that explicitly stores its Type (backup or mirror). An individual connection is represented by the XML structure DpPolicyConnectionInfo, as described below. Because the Policy graph is a tree, it is acyclic. In addition, it is connected: every node in the graph may be reached by starting at the root node and traversing a series of zero or more connections. A Policy graph may contain no connections, i.e., it may consist of just the root node. Along the Path From the root node To any leaf node (that is, a node with no outgoing connections), there may be at most one backup connection. A set of named Properties, or name-value pairs, is associated with each connection or node. Properties contain configuration data such as the schedules for performing Backups, and the Length of time To retain old Backups. Each Type of connection or node has a particular set of Properties associated with it. For example, the property BackupScheduleName is associated with backup connections, but is not associated with mirror connections or nodes of any Type. Properties are represented using optional elements of the XML structures that represent connections and nodes. When a property is associated with a connection or node of a particular Type, we say that its corresponding XML element is present in the connection or node's XML structure, and when the property is not associated with a connection or node, we say that the property is absent. If a property is present for a connection or node, then its element may appear in input To DpPolicyModify, and always appears in output From DpPolicyListIterNext. If a property is absent, then its element may not appear in input To DpPolicyModify, and never appears in output From DpPolicyListIterNext. For example, in the output From a call To DpPolicyListIterNext, the element for the property BackupScheduleName always appears in the DpPolicyConnectionInfo structure for a backup connection, but never appears for a mirror connection. The system contains a set of sample policies that are created when the system is installed. These sample policies may not be modified and may not be deleted. The system supports only a limited set of topologies, the user is not allowed To create new topologies. For this Reason, there is no ZAPI To create a new DP Policy by specifying its topology. Instead, the user calls DpPolicyCopy To create a new Policy by copying the content of an existing Policy, including its topology.

NetApp Manage ONTAP API version 5.0

DpPolicyCopy (supported) | [top]

> Create a new DP Policy by copying From an existing "template" Policy. 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. Error conditions: EACCESSDENIED - User does not have privileges To read the template Policy From the database, or create a new Policy, or both. EOBJECTNOTFOUND - No template Policy was found that has the given Name or ID. EPOLICYEXISTS - A Policy with the given DpPolicyName already exists. EDATABASEERROR - A database Error occurred while processing the Request. EAPIMISSINGARGUMENT - No template Policy Name or Id was supplied as an input. EINVALIDINPUTERROR - Policy Description string was too long.

> Input Name | Type
> DpPolicyCopy | DpPolicyCopy
> Output Name | Type
> DpPolicyCopyResult | DpPolicyCopyResult

> Error Name | Description
> EACCESSDENIED |  |
> EAPIMISSINGARGUMENT |  |
> EDATABASEERROR |  |
> EINVALIDINPUTERROR |  |
> EOBJECTNOTFOUND |  |
> EPOLICYEXISTS |  |

DpPolicyDestroy (supported) | [top]

> Destroy a DP Policy. This removes it From the database. 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. 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. After this ZAPI successfully completes, any subsequent calls in the same edit session To DpPolicyDestroy or DpPolicyModify fail with Error code EOBJECTNOTFOUND. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy. EOBJECTNOTFOUND - The Policy was already destroyed during this edit session. EPOLICYNOTMODIFIABLE - The Policy is one of the samples created during installation, and therefore cannot be deleted.

> Input Name | Type
> DpPolicyDestroy | DpPolicyDestroy
> Output Name | Type
> DpPolicyDestroyResult | DpPolicyDestroyResult

> Error Name | Description
> EACCESSDENIED |  |
> EEDITSESSIONNOTFOUND |  |
> EOBJECTNOTFOUND |  |
> EPOLICYNOTMODIFIABLE |  |

DpPolicyEditBegin (supported) | [top]

> Create an edit session and obtain an edit lock on a DP Policy To begin modifying the Policy. An edit lock must be obtained before invoking the following APIs: DpPolicyModify DpPolicyDestroy Use DpPolicyEditCommit To end the edit session and commit the changes To the database. Use DpPolicyEditRollback To end the edit session and discard any changes made To the Policy. 24 hours after an edit session on a Policy begins, any subsequent call To DpPolicyEditBegin 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. Error conditions: EEDITINPROGRESS - Another edit session already has an edit lock on the specified Policy. EOBJECTNOTFOUND - No Policy was found that has the given Name or ID. EACCESSDENIED - User does not have privileges To modify the Policy. EDATABASEERROR - A database Error occurred while processing the Request.

> Input Name | Type
> DpPolicyEditBegin | DpPolicyEditBegin
> Output Name | Type
> DpPolicyEditBeginResult | DpPolicyEditBeginResult

> Error Name | Description
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EEDITINPROGRESS |  |
> EOBJECTNOTFOUND |  |

DpPolicyEditCommit (supported) | [top]

> Commit changes made To a DP Policy during an edit session into the database. If all the changes To the Policy are performed successfully, the entire edit is committed and the edit lock on the Policy is released. 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. Use the DryRun Option To test the commit. Using this Option, the changes To the Policy are not committed To the database. Instead, a conformance check is performed To return a list of actions that the system would take if the changes were committed by calling this ZAPI without the DryRun Option. If DryRun is false, and all changes are successfully committed, then before the call returns, the system begins a conformance run on all Datasets To which the Policy has been applied. (See DatasetConformBegin for a Description of conformance runs.) If any needed conformance actions require user confirmation, it is assumed that such confirmation has been given, and the actions are performed. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy. EPOLICYEXISTS - The Policy's Name is being changed, and a Policy with the new Name already exists. EDPPOLICYINUSE - The Policy is being deleted, but deletion has failed because the Policy is in use by one or more Datasets. EDATABASEERROR - A database Error occurred while processing the Request.

> Input Name | Type
> DpPolicyEditCommit | DpPolicyEditCommit
> Output Name | Type
> DpPolicyEditCommitResult | DpPolicyEditCommitResult

> Error Name | Description
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EDPPOLICYINUSE |  |
> EDPPOLICYNOTFOUND |  |
> EEDITSESSIONNOTFOUND |  |
> EPOLICYEXISTS |  |

DpPolicyEditRollback (supported) | [top]

> Roll back changes made To a DP Policy. The edit lock on the Policy will be released after the rollback. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy.

> Input Name | Type
> DpPolicyEditRollback | DpPolicyEditRollback
> Output Name | Type
> DpPolicyEditRollbackResult | DpPolicyEditRollbackResult

> Error Name | Description
> EACCESSDENIED |  |
> EEDITSESSIONNOTFOUND |  |

DpPolicyGetDefaultPropertyValues (supported) | [top]

> Returns default Values for node and connection Properties. These default Values are used in calls To DpPolicyModify, in cases where the property is present for a node or connection, but the corresponding optional XML element does not appear in the DpPolicyNodeInfo or DpPolicyConnectionInfo structure. 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. Error conditions: None.

> Input Name | Type
> DpPolicyGetDefaultPropertyValues | DpPolicyGetDefaultPropertyValues
> Output Name | Type
> DpPolicyGetDefaultPropertyValuesResult | DpPolicyGetDefaultPropertyValuesResult

DpPolicyListIterEnd (supported) | [top]

> Terminate a list iteration that had been started by a call To DpPolicyListIterStart. This informs the server that it may now release any resources associated with the temporary store for the list iteration. Error conditions: EINVALIDTAG - The specified Tag does not exist.

> Input Name | Type
> DpPolicyListIterEnd | DpPolicyListIterEnd
> Output Name | Type
> DpPolicyListIterEndResult | DpPolicyListIterEndResult

> Error Name | Description
> EINVALIDTAG |  |

DpPolicyListIterNext (supported) | [top]

> Retrieve the next series of policies that are present in a list iteration created by a call To DpPolicyListIterStart. The server maintains an internal cursor pointing To the last record returned. Subsequent calls To DpPolicyListIterNext return the next Maximum Records after the cursor, or all the remaining Records, whichever is fewer. If a property is present 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 DpPolicyListIterNext. For example, the output DpPolicyConnectionInfo element for a backup connection always contains a BackupScheduleName. If a property is absent for a particular node or connection, then it never appears in the output element for that node or connection. For example, the output DpPolicyConnectionInfo element for a mirror connection never contains a BackupScheduleName. Error conditions: EINVALIDTAG - The specified Tag does not exist. EOBJECTNOTFOUND - A schedule or throttle referenced by the Policy could not be found. EDATABASEERROR - A database Error occurred while processing the Request.

> Input Name | Type
> DpPolicyListIterNext | DpPolicyListIterNext
> Output Name | Type
> DpPolicyListIterNextResult | DpPolicyListIterNextResult

> Error Name | Description
> EDATABASEERROR |  |
> EINVALIDTAG |  |
> EOBJECTNOTFOUND |  |

DpPolicyListIterStart (supported) | [top]

> 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. After calling DpPolicyListIterStart, you continue the iteration by calling DpPolicyListIterNext zero or more times, followed by a call To DpPolicyListIterEnd To terminate the iteration. Error conditions: EACCESSDENIED - User does not have privileges To read the specified Policy. EOBJECTNOTFOUND - No Policy was found that has the given Name or ID. EDATABASEERROR - A database Error occurred while processing the Request.

> Input Name | Type
> DpPolicyListIterStart | DpPolicyListIterStart
> Output Name | Type
> DpPolicyListIterStartResult | DpPolicyListIterStartResult

> Error Name | Description
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EOBJECTNOTFOUND |  |

DpPolicyModify (supported) | [top]

> This ZAPI modifies a DP Policy by completely replacing the Policy's old content with new content specified by input element DpPolicyContent. 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 IsDrCapable 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 DpPolicyContent must Match the Policy's current topology. At present, there is no way To change the topology of a Policy. If a property is absent for a particular node or connection (the presence or absence of each property is defined in its Description), then it is illegal for that property To appear in the input element for that node or connection in a call To DpPolicyModify. For example, it is illegal To specify a BackupScheduleName in a dp-policy-connection element for a mirror connection. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy. EOBJECTNOTFOUND - The Policy was already destroyed during this edit session. EPOLICYNOTMODIFIABLE - The Policy is one of the samples created during installation, and therefore cannot be modified. EPOLICYTOPOLOGYCHANGED - The requested modification changes the topology of the Policy. 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. 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. EDATABASEERROR - A database Error occurred while processing the Request.

> Input Name | Type
> DpPolicyModify | DpPolicyModify
> Output Name | Type
> DpPolicyModifyResult | DpPolicyModifyResult

> Error Name | Description
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EEDITSESSIONNOTFOUND |  |
> EINVALIDPOLICYPROPERTY |  |
> EOBJECTNOTFOUND |  |
> EOSSVCANTTAKESNAPSHOTS |  |
> EPOLICYNOTMODIFIABLE |  |
> EPOLICYTOPOLOGYCHANGED |  |

Element definition: DpPolicyCopy | [top]

> Create a new DP Policy by copying From an existing "template" Policy. 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. Error conditions: EACCESSDENIED - User does not have privileges To read the template Policy From the database, or create a new Policy, or both. EOBJECTNOTFOUND - No template Policy was found that has the given Name or ID. EPOLICYEXISTS - A Policy with the given DpPolicyName already exists. EDATABASEERROR - A database Error occurred while processing the Request. EAPIMISSINGARGUMENT - No template Policy Name or Id was supplied as an input. EINVALIDINPUTERROR - Policy Description string was too long.

> Name | Type | Description
> DpPolicyDescription | xsd:string optional | 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 "".
> DpPolicyName | ObjName | Name of the new Policy. It must be unique among all DP policies.
> TemplateDpPolicyId | ObjId optional | 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 TemplateDpPolicyNameOrId is not supplied.
> TemplateDpPolicyNameOrId | ObjNameOrId optional | 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 TemplateDpPolicyId and if supplied then do not supply TemplateDpPolicyId because TemplateDpPolicyId will be ignored.

Element definition: DpPolicyCopyResult | [top]

> Name | Type | Description
> DpPolicyId | ObjId | An object ID for the newly created Policy.

Element definition: DpPolicyDestroy | [top]

> Destroy a DP Policy. This removes it From the database. 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. 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. After this ZAPI successfully completes, any subsequent calls in the same edit session To DpPolicyDestroy or DpPolicyModify fail with Error code EOBJECTNOTFOUND. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy. EOBJECTNOTFOUND - The Policy was already destroyed during this edit session. EPOLICYNOTMODIFIABLE - The Policy is one of the samples created during installation, and therefore cannot be deleted.

> Name | Type | Description
> EditLockId | xsd:integer | Identifier of the edit lock on the Policy. The Value must be an edit lock ID that was previously returned by DpPolicyEditBegin.

Element definition: DpPolicyDestroyResult | [top]

> [none]

Element definition: DpPolicyEditBegin | [top]

> Create an edit session and obtain an edit lock on a DP Policy To begin modifying the Policy. An edit lock must be obtained before invoking the following APIs: DpPolicyModify DpPolicyDestroy Use DpPolicyEditCommit To end the edit session and commit the changes To the database. Use DpPolicyEditRollback To end the edit session and discard any changes made To the Policy. 24 hours after an edit session on a Policy begins, any subsequent call To DpPolicyEditBegin 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. Error conditions: EEDITINPROGRESS - Another edit session already has an edit lock on the specified Policy. EOBJECTNOTFOUND - No Policy was found that has the given Name or ID. EACCESSDENIED - User does not have privileges To modify the Policy. EDATABASEERROR - A database Error occurred while processing the Request.

> Name | Type | Description
> DpPolicyNameOrId | ObjNameOrId | Name or ID of a DP Policy.
> Force | xsd:boolean optional | If true, 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 false, and an edit is already in progress, then the call fails with Error code EEDITINPROGRESS. Default Value is false.

Element definition: DpPolicyEditBeginResult | [top]

> Name | Type | Description
> EditLockId | xsd:integer | Identifier of the edit lock on the Policy. The Value is an unsigned 32-bit integer.

Element definition: DpPolicyEditCommit | [top]

> Commit changes made To a DP Policy during an edit session into the database. If all the changes To the Policy are performed successfully, the entire edit is committed and the edit lock on the Policy is released. 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. Use the DryRun Option To test the commit. Using this Option, the changes To the Policy are not committed To the database. Instead, a conformance check is performed To return a list of actions that the system would take if the changes were committed by calling this ZAPI without the DryRun Option. If DryRun is false, and all changes are successfully committed, then before the call returns, the system begins a conformance run on all Datasets To which the Policy has been applied. (See DatasetConformBegin for a Description of conformance runs.) If any needed conformance actions require user confirmation, it is assumed that such confirmation has been given, and the actions are performed. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy. EPOLICYEXISTS - The Policy's Name is being changed, and a Policy with the new Name already exists. EDPPOLICYINUSE - The Policy is being deleted, but deletion has failed because the Policy is in use by one or more Datasets. EDATABASEERROR - A database Error occurred while processing the Request.

> Name | Type | Description
> DryRun | xsd:boolean optional | 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, DryRun is false.
> EditLockId | xsd:integer | Identifier of the edit lock on the Policy. The Value must be an edit lock ID that was previously returned by DpPolicyEditBegin.

Element definition: DpPolicyEditCommitResult | [top]

> Name | Type | Description
> DryRunResults | ArrayOfDryRunResult optional | Results of a dry run. Only returned if DryRun is true.

Element definition: DpPolicyEditRollback | [top]

> Roll back changes made To a DP Policy. The edit lock on the Policy will be released after the rollback. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy.

> Name | Type | Description
> EditLockId | xsd:integer | Identifier of the edit lock on the Policy. The Value must be an edit lock ID that was previously returned by DpPolicyEditBegin.

Element definition: DpPolicyEditRollbackResult | [top]

> [none]

Element definition: DpPolicyGetDefaultPropertyValues | [top]

> Returns default Values for node and connection Properties. These default Values are used in calls To DpPolicyModify, in cases where the property is present for a node or connection, but the corresponding optional XML element does not appear in the DpPolicyNodeInfo or DpPolicyConnectionInfo structure. 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. Error conditions: None.

> [none]

Element definition: DpPolicyGetDefaultPropertyValuesResult | [top]

> Name | Type | Description
> BackupScheduleId | ObjId | Default Value of BackupScheduleId.
> BackupScheduleName | ObjName | Default Value of BackupScheduleName.
> BackupScriptPath | xsd:string | Default Value of BackupScriptPath. The Length of the returned string will be From 0 To 255 characters.
> BackupScriptRunAs | xsd:string | Default Value of BackupScriptRunAs. The Length of the returned string will be From 0 To 64 characters.
> DailyRetentionCount | xsd:integer | Default Value of DailyRetentionCount.
> DailyRetentionDuration | xsd:integer | Default Value of DailyRetentionDuration.
> FailoverScriptPath | xsd:string | Default Value of FailoverScriptPath. The Length of the returned string will be From 0 To 255 characters.
> FailoverScriptRunAs | xsd:string | Default Value of FailoverScriptRunAs. The Length of the returned string will be From 0 To 64 characters.
> HourlyRetentionCount | xsd:integer | Default Value of HourlyRetentionCount.
> HourlyRetentionDuration | xsd:integer | Default Value of HourlyRetentionDuration.
> IsLagErrorEnabled | xsd:boolean | Default Value of IsLagErrorEnabled.
> IsLagWarningEnabled | xsd:boolean | Default Value of IsLagWarningEnabled.
> LagErrorThreshold | xsd:integer | Default Value of LagErrorThreshold.
> LagWarningThreshold | xsd:integer | Default Value of LagWarningThreshold.
> MirrorScheduleId | ObjId | Default Value of MirrorScheduleId.
> MirrorScheduleName | ObjName | Default Value of MirrorScheduleName.
> MonthlyRetentionCount | xsd:integer | Default Value of MonthlyRetentionCount.
> MonthlyRetentionDuration | xsd:integer | Default Value of MonthlyRetentionDuration.
> SnapshotScheduleId | ObjId | Default Value of SnapshotScheduleId.
> SnapshotScheduleName | ObjName | Default Value of SnapshotScheduleName.
> ThrottleScheduleId | ObjId | Default Value of ThrottleScheduleId.
> ThrottleScheduleName | ObjName | Default Value of ThrottleScheduleName .
> WeeklyRetentionCount | xsd:integer | Default Value of WeeklyRetentionCount.
> WeeklyRetentionDuration | xsd:integer | Default Value of WeeklyRetentionDuration.

Element definition: DpPolicyListIterEnd | [top]

> Terminate a list iteration that had been started by a call To DpPolicyListIterStart. This informs the server that it may now release any resources associated with the temporary store for the list iteration. Error conditions: EINVALIDTAG - The specified Tag does not exist.

> Name | Type | Description
> Tag | xsd:string | The opaque handle returned by the prior call To DpPolicyListIterStart that started this list iteration.

Element definition: DpPolicyListIterEndResult | [top]

> [none]

Element definition: DpPolicyListIterNext | [top]

> Retrieve the next series of policies that are present in a list iteration created by a call To DpPolicyListIterStart. The server maintains an internal cursor pointing To the last record returned. Subsequent calls To DpPolicyListIterNext return the next Maximum Records after the cursor, or all the remaining Records, whichever is fewer. If a property is present 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 DpPolicyListIterNext. For example, the output DpPolicyConnectionInfo element for a backup connection always contains a BackupScheduleName. If a property is absent for a particular node or connection, then it never appears in the output element for that node or connection. For example, the output DpPolicyConnectionInfo element for a mirror connection never contains a BackupScheduleName. Error conditions: EINVALIDTAG - The specified Tag does not exist. EOBJECTNOTFOUND - A schedule or throttle referenced by the Policy could not be found. EDATABASEERROR - A database Error occurred while processing the Request.

> Name | Type | Description
> Maximum | xsd:integer | The Maximum number of policies To return. Range: [1..2^31-1].
> Tag | xsd:string | The opaque handle returned by the prior call To DpPolicyListIterStart that started this list iteration.

Element definition: DpPolicyListIterNextResult | [top]

> Name | Type | Description
> DpPolicyInfos | ArrayOfDpPolicyInfo | List of information about multiple DP policies.
> Records | xsd:integer | The number of Records actually returned. Range: [0..2^31-1].

Element definition: DpPolicyListIterStart | [top]

> 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. After calling DpPolicyListIterStart, you continue the iteration by calling DpPolicyListIterNext zero or more times, followed by a call To DpPolicyListIterEnd To terminate the iteration. Error conditions: EACCESSDENIED - User does not have privileges To read the specified Policy. EOBJECTNOTFOUND - No Policy was found that has the given Name or ID. EDATABASEERROR - A database Error occurred while processing the Request.

> Name | Type | Description
> DpPolicyNameOrId | ObjNameOrId optional | Name or ID of a DP Policy. If specified, only this Policy is listed. If not specified, then by default, all policies are listed.
> IsDrCapable | xsd:boolean optional | 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.

Element definition: DpPolicyListIterStartResult | [top]

> Name | Type | Description
> Records | xsd:integer | Number of items present in the list iteration. Range: [0..2^31-1].
> Tag | xsd:string | An opaque handle used To identify the list iteration. The list content resides in a temporary store in the server.

Element definition: DpPolicyModify | [top]

> This ZAPI modifies a DP Policy by completely replacing the Policy's old content with new content specified by input element DpPolicyContent. 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 IsDrCapable 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 DpPolicyContent must Match the Policy's current topology. At present, there is no way To change the topology of a Policy. If a property is absent for a particular node or connection (the presence or absence of each property is defined in its Description), then it is illegal for that property To appear in the input element for that node or connection in a call To DpPolicyModify. For example, it is illegal To specify a BackupScheduleName in a dp-policy-connection element for a mirror connection. Error conditions: EEDITSESSIONNOTFOUND - No edit lock was found that has the given ID. EACCESSDENIED - User does not have privileges To modify the Policy. EOBJECTNOTFOUND - The Policy was already destroyed during this edit session. EPOLICYNOTMODIFIABLE - The Policy is one of the samples created during installation, and therefore cannot be modified. EPOLICYTOPOLOGYCHANGED - The requested modification changes the topology of the Policy. 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. 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. EDATABASEERROR - A database Error occurred while processing the Request.

> Name | Type | Description
> DpPolicyContent | DpPolicyContent | New content for the Policy. 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 Id of any connection or node. In addition, you may not change the FromNodeId or ToNodeId of any connection. All Properties of the nodes and connections are set precisely as specified by the DpPolicyConnections and DpPolicyNodes elements of DpPolicyContent. To leave the Value of a property unchanged, its old Value must 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.
> EditLockId | xsd:integer | Identifier of the edit lock on the Policy. The Value must be an edit lock ID that was previously returned by DpPolicyEditBegin.

Element definition: DpPolicyModifyResult | [top]

> [none]

Element definition: ArrayOfDpPolicyInfo | [top]

> Name | Type | Description
> DpPolicyInfo | DpPolicyInfo[] |

Element definition: ArrayOfDryRunResult | [top]

> Name | Type | Description
> DryRunResult | DryRunResult[] |

Element definition: DpPolicyContent | [top]

> All content of a single Policy, including its Name, Description, topology (nodes and connections), and the Properties for each node and connection.

> Name | Type | Description
> Description | xsd:string optional | Description of the Policy. It may contain From 0 To 255 characters. If the Length of a Description passed as input To DpPolicyModify is longer than 255 characters, then the ZAPI fails with Error code EINVALIDPOLICYPROPERTY. The Description always appears in the output From DpPolicyListIterNext. If the Description is omitted From the input To DpPolicyModify, then the default Value is the empty string "".
> DpPolicyConnections | ArrayOfDpPolicyConnectionInfo optional | List of connections between nodes of the Policy. In the output From DpPolicyListIterNext, this list is sorted in order of increasing connection ID. In the input To DpPolicyModify, it need not be sorted. However, in input To DpPolicyModify, 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. 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 DpPolicyModify. It is always present in the output From DpPolicyListIterNext.
> DpPolicyNodes | ArrayOfDpPolicyNodeInfo | List of nodes in the Policy. In the output From DpPolicyListIterNext, this list is sorted in order of increasing node ID. In the input To DpPolicyModify, it need not be sorted. However, in input To DpPolicyModify, 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.
> Name | ObjName | 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.

Element definition: ObjId | [top]

> Identification number (ID) for a DFM object. This typedef is an alias for the builtin ZAPI Type integer. Object IDs are unsigned integers in the range [1..2^31 - 1]. In some contexts, an object ID is also allowed To be 0, which is interpreted as a null Value, e.g., a reference To no object at all. The ID for a DFM object is always assigned by the system; the user is never allowed To assign an ID To an object. Therefore, an input element of Type ObjId is always used To refer To an existing object by its ID. The ZAPI must specify the object's DFM object Type (e.g. Dataset, Host, DP Policy, etc.). Some ZAPIs allow the object To be one of several different types. If the Value of an ObjId input element does not Match the ID of any existing DFM object of the specified Type or types, then typically the ZAPI fails with Error code EOBJECTNOTFOUND. A ZAPI may deviate From this general rule, for example, it may return a more specific Error code. In either case, the ZAPI specification must document its behavior.

> [none]

Element definition: ObjName | [top]

> Name of a DFM object. This typedef is an alias for the built in ZAPI Type string. An object Name must conform To the following format: It must contain between 1 and 64 characters. It may start with any character and may contain any combination of characters, except that it may not consist solely of decimal digits ('0' through '9'). In some contexts, a Name may be the empty string (""), which is interpreted as a null Value, e.g., a reference To no object at all. The behavior of a ZAPI when it encounters an Error involving an ObjName input element depends on how the ZAPI uses the input element. Here are the general rules: If the input Name element is used To create a new object with the given Name, or rename an existing object To that Name, and the Name does not conform To the above format, then the ZAPI fails with Error code EINVALIDINPUTERROR. Note that because EINVALIDINPUTERROR is such a common Error code, ZAPI specifications are not required To document cases when they may return it. If the input Name element is used To refer To an existing object with that Name, and there is no object with that Name, then the ZAPI fails with Error code EOBJECTNOTFOUND. Generally the ZAPI specification documents cases when it may return this Error code. A ZAPI may deviate From these general rules, for example, it may return more specific Error codes. In such cases, the ZAPI specification must document its behavior. If an input Name element is used To refer To an existing object, then the ZAPI specification must specify which DFM object Type (e.g. data set, Host, DP Policy, etc.) is allowed. Some ZAPIs allow the object To be one of several different types. See the Description of ObjFullName for examples of valid input formats. Note that there is no requirement that all object names must be unique. However, the names for some specific types of Objects are constrained such that no two Objects of that Type may have the same Name. For example, this constraint applies To Datasets, DP schedules, and DP policies. This means that no two Datasets may have the same Name, but a Dataset may have the same Name as a DP schedule or DP Policy. In general, object names are compared in a case-insensitive manner. This means that, for example, "MyObject" and "MYOBJECT" are considered To be the same Name for purposes of: creating new Objects, renaming existing Objects, or looking up an object by Name. On the other hand, ZAPIs that return an ObjName generally do not change the capitalization at all. For example, if an object's Name has been set To "MyObject", then list iteration ZAPIs that return the object's Name return it as "MyObject" rather than "MYOBJECT" or "myobject". ZAPIs that operate on ObjName Values and do not follow these general rules about case sensitivity must document the rules that they do follow. One important exception To these general rules is that Volumes, Qtrees, OSSV Directories, SRM Paths, Interfaces, FCP Targets and FC switch ports all have case-sensitive names. When looking up Objects of these types by Name, the case must Match the object Name.

> [none]

Element definition: ObjNameOrId | [top]

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

> [none]

Element definition: ArrayOfDpPolicyConnectionInfo | [top]

> Name | Type | Description
> DpPolicyConnectionInfo | DpPolicyConnectionInfo[] |

Element definition: ArrayOfDpPolicyNodeInfo | [top]

> Name | Type | Description
> DpPolicyNodeInfo | DpPolicyNodeInfo[] |

Element definition: DpPolicyInfo | [top]

> Contains all information about a single DP Policy, including its content and metadata such as its ID.

> Name | Type | Description
> DpPolicyContent | DpPolicyContent | Content of the Policy.
> Id | ObjId | Object ID for the Policy.
> IsApplicationCompatible | xsd:boolean | If false, this Policy cannot be assigned To an application Dataset.
> IsModifiable | xsd:boolean | If false, this Policy is one of the sample policies that is created at installation time, therefore it may not be deleted using DpPolicyDestroy and may not be modified using DpPolicyModify. If true, it is not one of the sample policies, therefore it may be deleted or modified. This element cannot be modified.
> IsNonDisruptiveRestoreCompatible | xsd:boolean | If false, this Policy can not be assigned To a Dataset with the RequiresNonDisruptiveRestore attribute set. If set To true and applied To a data set with the RequiresNonDisruptiveRestore 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 — the caller must check the SupportsNonDisruptiveRestore output element From the dp-backup-list iterator.

Element definition: DryRunResult | [top]

> A Description of one Action and the predicted effects of taking that Action.

> Name | Type | Description
> DryRunAction | xsd:string | An Action the system would take.
> DryRunEffect | xsd:string | The predicted Effect of the Action.
> DryRunReason | xsd:string optional | 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.
> DryRunReasonDetails | ArrayOfResultDetail optional | These details apply To the associated DryRunReason within the same DryRunResult. These offer additional information such as the reasons individual reasources may not have been selected for the DryRunAction in this same DryRunResult.
> DryRunSeverity | ObjStatus | Severity of the DryRun Result. Possible Values are "information", "Error" or "warning".
> DryRunSuggestion | xsd:string | 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.

Element definition: ArrayOfResultDetail | [top]

> Name | Type | Description
> ResultDetail | ResultDetail[] |

Element definition: DpPolicyConnectionInfo | [top]

> 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 Description, and depend on the Type of connection.

> Name | Type | Description
> BackupScheduleId | ObjId optional | 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. The Value of BackupScheduleId 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. If both BackupScheduleId and BackupScheduleName appear in the input To DpPolicyModify, then BackupScheduleId determines the ID of the backup schedule, and the Value of BackupScheduleName is ignored. If neither BackupScheduleId nor BackupScheduleName appear in the input To DpPolicyModify, then the default Value is an ID of 0 (equivalent To a Name of ""), which means no backup schedule is set. Both BackupScheduleId and BackupScheduleName always appear in the output From DpPolicyListIterNext for backup connections. This property is present only for backup connections.
> BackupScheduleName | ObjName optional | 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 BackupScheduleName 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. If both BackupScheduleId and BackupScheduleName appear in the input To DpPolicyModify, then BackupScheduleId determines the ID of the backup schedule, and the Value of BackupScheduleName is ignored. If neither BackupScheduleId nor BackupScheduleName appear in the input To DpPolicyModify, then the default Value is a Name of "" (equivalent To an ID of 0), which means no backup schedule is set. Both BackupScheduleId and BackupScheduleName always appear in the output From DpPolicyListIterNext for backup connections. This property is present only for backup connections.
> FromNodeId | xsd:integer | 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].
> FromNodeName | xsd:string | Name of node at Source of the connection. It is returned in the Policy list Query with a Maximum Length of 255 characters.
> Id | xsd:integer | ID of the connection. This is assigned by the system, and therefore may not be modified. Range: [1..2^31 - 1].
> IsDrCapable | xsd:boolean | Indicates whether this link is DR capable. This read only flag cannot be changed by DpPolicyModify but will be returned by the DpPolicyListIterNext ZAPI.
> IsLagErrorEnabled | xsd:boolean optional | Indicates whether the system should generate an Error event when the newest backup or mirrored copy is older than LagErrorThreshold. The default Value of this property is true. This property is present for both backup and mirror connections.
> IsLagWarningEnabled | xsd:boolean optional | Indicates whether the system should generate a warning event when the newest backup or mirrored copy is older than LagWarningThreshold. The default Value of this property is true. This property is present for both backup and mirror connections.
> LagErrorThreshold | xsd:integer optional | Lag, in seconds. If backup or mirrored copy is older than this amount and if IsLagErrorEnabled 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]. This property is present for both backup and mirror connections.
> LagWarningThreshold | xsd:integer optional | Lag, in seconds. If backup or mirrored copy is older than this amount and if IsLagWarningEnabled 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]. This property is present for both backup and mirror connections.
> MirrorScheduleId | ObjId optional | An object ID for the mirror schedule for this connection. The mirror schedule specifies when To transfer data via an asynchronous mirror. Synchronous and semi-synchronous mirrors are not supported. The Value of MirrorScheduleId 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. If no mirror schedule is set for this connection, then the mirror relationship is idle, which means mirroring occurs only when the user initiates it manually. If both MirrorScheduleId and MirrorScheduleName appear in the input To DpPolicyModify, then MirrorScheduleId determines the ID of the mirror schedule, and the Value of MirrorScheduleName is ignored. If neither MirrorScheduleId nor MirrorScheduleName appear in the input To DpPolicyModify, then the default Value is an ID of 0 (equivalent To a Name of ""), which means no mirror schedule is set. Both MirrorScheduleId and MirrorScheduleName always appear in the output From DpPolicyListIterNext for mirror connections. This property is present only for mirror connections.
> MirrorScheduleName | ObjName optional | An object Name for the mirror schedule for this connection. The mirror schedule specifies when To transfer data via an asynchronous mirror. Synchronous and semi-synchronous mirrors are not supported. The Value of MirrorScheduleName 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. If no mirror schedule is set for this connection, then the mirror relationship is idle, which means mirroring occurs only when the user initiates it manually. If both MirrorScheduleId and MirrorScheduleName appear in the input To DpPolicyModify, then MirrorScheduleId determines the ID of the mirror schedule, and the Value of MirrorScheduleName is ignored. If neither MirrorScheduleId nor MirrorScheduleName appear in the input To DpPolicyModify, then the default Value is a Name of "" (equivalent To an ID of 0), which means no mirror schedule is set. Both MirrorScheduleId and MirrorScheduleName always appear in the output From DpPolicyListIterNext for mirror connections. This property is present only for mirror connections.
> ThrottleScheduleId | ObjId optional | 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. The Value of ThrottleScheduleId 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. If both ThrottleScheduleId and ThrottleScheduleName appear in the input To DpPolicyModify, then ThrottleScheduleId determines the ID of the throttle, and the Value of ThrottleScheduleName is ignored. If neither ThrottleScheduleId nor ThrottleScheduleName appear in the input To DpPolicyModify, then the default Value is an ID of 0 (equivalent To a Name of ""), which means no throttle is set. Both ThrottleScheduleId and ThrottleScheduleName always appear in the output From DpPolicyListIterNext. This property is present for both backup and mirror connections.
> ThrottleScheduleName | ObjName optional | 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. The Value of ThrottleScheduleName 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. If both ThrottleScheduleId and ThrottleScheduleName appear in the input To DpPolicyModify, then ThrottleScheduleId determines the ID of the throttle, and the Value of ThrottleScheduleName is ignored. If neither ThrottleScheduleId nor ThrottleScheduleName appear in the input To DpPolicyModify, then the default Value is a Name of "" (equivalent To an ID of 0), which means no throttle is set. Both ThrottleScheduleId and ThrottleScheduleName always appear in the output From DpPolicyListIterNext. This property is present for both backup and mirror connections.
> ToNodeId | xsd:integer | 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].
> ToNodeName | xsd:string | Name of node at destination of the connection. It is returned in the Policy list Query with a Maximum Length of 255 characters.
> Type | xsd:string | Type of the connection. Allowed Values are "backup" or "mirror". This element may not be modified.

Element definition: DpPolicyNodeInfo | [top]

> 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 Description, and depend on the Type of node. 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 Retention classes: hourly, daily, weekly, or monthly. The following eight Properties determine how long Backups are retained for each of the Retention classes: HourlyRetentionCount HourlyRetentionDuration DailyRetentionCount DailyRetentionDuration WeeklyRetentionCount WeeklyRetentionDuration MonthlyRetentionCount MonthlyRetentionDuration A backup expires 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. 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.

> Name | Type | Description
> BackupScriptPath | xsd:string optional | 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. The Path consists of 0 To 255 characters. If the Length of a BackupScriptPath passed as input To DpPolicyModify 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 "". This property is present only for the root node.
> BackupScriptRunAs | xsd:string optional | 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. The Username consists of 0 To 64 characters. If the Length of a BackupScriptRunAs passed as input To DpPolicyModify 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. 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"). This property is present only for the root node.
> DailyRetentionCount | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.
> DailyRetentionDuration | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.
> FailoverScriptPath | xsd:string optional | Absolute Path on the management station To the script To invoke both before and after breaking mirrors during a failover Operation. The Path consists of 0 To 255 characters. If the Length of a FailoverScriptPath passed as input To DpPolicyModify 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 "". This property is present only for the root node.
> FailoverScriptRunAs | xsd:string optional | 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. The Username consists of 0 To 64 characters. If the Length of a FailoverScriptRunAs passed as input To DpPolicyModify 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. 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"). This property is present only for the root node.
> HourlyRetentionCount | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.
> HourlyRetentionDuration | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.
> Id | xsd:integer | 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].
> IsLagErrorEnabled | xsd:boolean optional | Indicates whether the system should generate an Error event when the newest local backup copy is older than LagErrorThreshold. The default Value of this property is true. This property is present for root node only.
> IsLagWarningEnabled | xsd:boolean optional | Indicates whether the system should generate a warning event when the newest local backup copy is older than LagWarningThreshold. The default Value of this property is true. This property is present for root node only.
> LagErrorThreshold | xsd:integer optional | Lag, in seconds. If local backup copy is older than this amount and if IsLagErrorEnabled 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]. This property is present for root node only.
> LagWarningThreshold | xsd:integer optional | Lag, in seconds. If local backup copy is older than this amount and if IsLagWarningEnabled 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]. This property is present for root node only.
> MonthlyRetentionCount | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.
> MonthlyRetentionDuration | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.
> Name | DpPolicyNodeName | 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 Name passed as input To DpPolicyModify is longer than 64 characters, then the ZAPI fails with Error code EINVALIDPOLICYPROPERTY.
> SnapshotScheduleId | ObjId optional | 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. The Value of SnapshotScheduleId 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. If both SnapshotScheduleId and SnapshotScheduleName appear in the input To DpPolicyModify, then SnapshotScheduleId determines the ID of the Snapshot schedule, and the Value of SnapshotScheduleName is ignored. If neither SnapshotScheduleId nor SnapshotScheduleName appear in the input To DpPolicyModify, then the default Value is an ID of 0 (equivalent To a Name of ""), which means no Snapshot schedule is set. Both SnapshotScheduleId and SnapshotScheduleName always appear in the output From DpPolicyListIterNext for the root node of a Policy. 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. 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.
> SnapshotScheduleName | ObjName optional | 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. The Value of SnapshotScheduleName 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. If both SnapshotScheduleId and SnapshotScheduleName appear in the input To DpPolicyModify, then SnapshotScheduleId determines the ID of the Snapshot schedule, and the Value of SnapshotScheduleName is ignored. If neither SnapshotScheduleId nor SnapshotScheduleName appear in the input To DpPolicyModify, then the default Value is a Name of "" (equivalent To an ID of 0), which means no Snapshot schedule is set. Both SnapshotScheduleId and SnapshotScheduleName always appear in the output From DpPolicyListIterNext for the root node of a Policy. 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. 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.
> WeeklyRetentionCount | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.
> WeeklyRetentionDuration | xsd:integer optional | 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. This property is present only for root and backup secondary nodes. For more details, see the Description of DpPolicyNodeInfo.

Element definition: ObjStatus | [top]

> A Status Value which can be associated with a DFM object. This typedef is an alias for the builtin ZAPI Type string. The Severity associated with an event has this Type. Possible Values are: 'unknown', 'normal', 'information', 'unmanaged' 'warning', 'Error', 'critical', 'emergency'. 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. normal: An object has normal Status when it is working within the Thresholds specified in DFM. information: The information Events are normal occurrences on an object for which you can define alarms. unmanaged: An object is considered To be unmanaged when the login and Password are not set for the storage system or agent. warning: An object has the warning Status when an event related To the object occurred that an administrator should know about. The event will not cause Service disruption. Error: An object has Error Status when it does not cause any Service disruption, but it may affect performance. critical: An object has critical Status when it is still performing, but Service disruption may occur if corrective Action is not taken immediately. emergency: An object is in emergency Status when it stops performing unexpectedly and could lose data. 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.

> [none]

Element definition: DpPolicyNodeName | [top]

> Name of a node in a DP Policy graph. This typedef is an alias for the builtin ZAPI Type string. 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'). 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 DpPolicyListIterNext returns its Name as "Backup". Note that a node Name has the same format as an ObjName, and has similar Properties such as case-insensitivity. However, a node Name is not a kind of ObjName because a DP Policy node is a part of a DP Policy object, but is not itself a first-class DFM object.

> [none]

Element definition: ResultDetail | [top]

> 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 DryRun Result by explaining why resources were not selected.

> Name | Type | Description
> Action | xsd:string | An Action or check the system had taken.
> Effect | xsd:string | The Result of the Action or check.
> Reason | xsd:string optional | Specifies possible reasons for the this Result. If there are no reasons To specify, this element will not be present.
> Severity | ObjStatus | 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.
> Suggestion | xsd:string | Specifies any suggestions To rectify the information, warnings, Errors. If there are no suggestions To specify, this element will not be present.