APIs in Category: dp-policy | API version 3.7.1

dp-policy-copy dp-policy-destroy dp-policy-edit-begin dp-policy-edit-commit dp-policy-edit-rollback dp-policy-get-default-property-values dp-policy-list-iter-end dp-policy-list-iter-next dp-policy-list-iter-start dp-policy-modify | 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 data set'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 dp-policy-node-info, 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 dp-policy-connection-info, 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 backup-schedule-name 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 dp-policy-modify, and always appears in output from dp-policy-list-iter-next. If a property is absent, then its element may not appear in input to dp-policy-modify, and never appears in output from dp-policy-list-iter-next. For example, in the output from a call to dp-policy-list-iter-next, the element for the property backup-schedule-name always appears in the dp-policy-connection-info 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 dp-policy-copy to create a new policy by copying the content of an existing policy, including its topology.

NetApp Manage ONTAP

dp-policy-copy | [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 dp-policy-name 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 | Range | Type | Description
> dp-policy-description |  | 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 "".
> dp-policy-name |  | obj-name | Name of the new policy. It must be unique among all DP policies.
> template-dp-policy-id |  | obj-id 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 template-dp-policy-name-or-id is not supplied.
> template-dp-policy-name-or-id |  | obj-name-or-id 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 template-dp-policy-id and if supplied then do not supply template-dp-policy-id because template-dp-policy-id will be ignored.
> Output Name | Range | Type | Description
> dp-policy-id |  | obj-id | An object ID for the newly created policy.

> Errno | Description
> EACCESSDENIED |  |
> EOBJECTNOTFOUND |  |
> EPOLICYEXISTS |  |
> EDATABASEERROR |  |
> EAPIMISSINGARGUMENT |  |
> EINVALIDINPUTERROR |  |

dp-policy-destroy | [top]

> Destroy a DP policy. This removes it from the database. If the policy has been applied to any data sets, then the destroy operation fails; you must first un-map the policy from any data sets 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 dp-policy-destroy or dp-policy-modify 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 | Range | Type | Description
> edit-lock-id |  | integer validate | Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by dp-policy-edit-begin.

> Errno | Description
> EEDITSESSIONNOTFOUND |  |
> EACCESSDENIED |  |
> EOBJECTNOTFOUND |  |
> EPOLICYNOTMODIFIABLE |  |

dp-policy-edit-begin | [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: dp-policy-modify dp-policy-destroy Use dp-policy-edit-commit to end the edit session and commit the changes to the database. Use dp-policy-edit-rollback 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 dp-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. 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 | Range | Type | Description
> dp-policy-name-or-id |  | obj-name-or-id | Name or ID of a DP policy.
> force |  | boolean optional validate | 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.
> Output Name | Range | Type | Description
> edit-lock-id |  | integer validate | Identifier of the edit lock on the policy. The value is an unsigned 32-bit integer.

> Errno | Description
> EEDITINPROGRESS |  |
> EOBJECTNOTFOUND |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

dp-policy-edit-commit | [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 dry-run 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 dry-run option. If dry-run is false, and all changes are successfully committed, then before the call returns, the system begins a conformance run on all data sets to which the policy has been applied. (See dataset-conform-begin 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 data sets. EDATABASEERROR - A database error occurred while processing the request.

> Input Name | Range | Type | Description
> dry-run |  | boolean optional validate | 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.
> edit-lock-id |  | integer validate | Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by dp-policy-edit-begin.
> Output Name | Range | Type | Description
> dry-run-results |  | dry-run-result[] optional | Results of a dry run. Only returned if dry-run is true.

> Errno | Description
> EEDITSESSIONNOTFOUND |  |
> EACCESSDENIED |  |
> EDPPOLICYNOTFOUND |  |
> EPOLICYEXISTS |  |
> EDPPOLICYINUSE |  |
> EDATABASEERROR |  |

dp-policy-edit-rollback | [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 | Range | Type | Description
> edit-lock-id |  | integer validate | Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by dp-policy-edit-begin.

> Errno | Description
> EEDITSESSIONNOTFOUND |  |
> EACCESSDENIED |  |

dp-policy-get-default-property-values | [top]

> Returns default values for node and connection properties. These default values are used in calls to dp-policy-modify, in cases where the property is present for a node or connection, but the corresponding optional XML element does not appear in the dp-policy-node-info or dp-policy-connection-info 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.

> Output Name | Range | Type | Description
> backup-schedule-id |  | obj-id | Default value of backup-schedule-id.
> backup-schedule-name |  | obj-name | Default value of backup-schedule-name.
> backup-script-path |  | string | Default value of backup-script-path. The length of the returned string will be from 0 to 255 characters.
> backup-script-run-as |  | string | Default value of backup-script-run-as. The length of the returned string will be from 0 to 64 characters.
> daily-retention-count |  | integer | Default value of daily-retention-count.
> daily-retention-duration |  | integer | Default value of daily-retention-duration.
> failover-script-path |  | string | Default value of failover-script-path. The length of the returned string will be from 0 to 255 characters.
> failover-script-run-as |  | string | Default value of failover-script-run-as. The length of the returned string will be from 0 to 64 characters.
> hourly-retention-count |  | integer | Default value of hourly-retention-count.
> hourly-retention-duration |  | integer | Default value of hourly-retention-duration.
> is-lag-error-enabled |  | boolean | Default value of is-lag-error-enabled.
> is-lag-warning-enabled |  | boolean | Default value of is-lag-warning-enabled.
> lag-error-threshold |  | integer | Default value of lag-error-threshold.
> lag-warning-threshold |  | integer | Default value of lag-warning-threshold.
> mirror-schedule-id |  | obj-id | Default value of mirror-schedule-id.
> mirror-schedule-name |  | obj-name | Default value of mirror-schedule-name.
> monthly-retention-count |  | integer | Default value of monthly-retention-count.
> monthly-retention-duration |  | integer | Default value of monthly-retention-duration.
> snapshot-schedule-id |  | obj-id | Default value of snapshot-schedule-id.
> snapshot-schedule-name |  | obj-name | Default value of snapshot-schedule-name.
> throttle-schedule-id |  | obj-id | Default value of throttle-schedule-id.
> throttle-schedule-name |  | obj-name | Default value of throttle-schedule-name .
> weekly-retention-count |  | integer | Default value of weekly-retention-count.
> weekly-retention-duration |  | integer | Default value of weekly-retention-duration.

dp-policy-list-iter-end | [top]

> Terminate a list iteration that had been started by a call to dp-policy-list-iter-start. 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 | Range | Type | Description
> tag |  | string | The opaque handle returned by the prior call to dp-policy-list-iter-start that started this list iteration.

> Errno | Description
> EINVALIDTAG |  |

dp-policy-list-iter-next | [top]

> Retrieve the next series of policies that are present in a list iteration created by a call to dp-policy-list-iter-start. The server maintains an internal cursor pointing to the last record returned. Subsequent calls to dp-policy-list-iter-next 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 dp-policy-list-iter-next. For example, the output dp-policy-connection-info element for a backup connection always contains a backup-schedule-name. 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 dp-policy-connection-info element for a mirror connection never contains a backup-schedule-name. 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 | Range | Type | Description
> maximum |  | integer validate | The maximum number of policies to return. Range: [1..2^31-1].
> tag |  | string | The opaque handle returned by the prior call to dp-policy-list-iter-start that started this list iteration.
> Output Name | Range | Type | Description
> dp-policy-infos |  | dp-policy-info[] | List of information about multiple DP policies.

> Errno | Description
> EINVALIDTAG |  |
> EOBJECTNOTFOUND |  |
> EDATABASEERROR |  |

dp-policy-list-iter-start | [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 dp-policy-list-iter-start, you continue the iteration by calling dp-policy-list-iter-next zero or more times, followed by a call to dp-policy-list-iter-end 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 | Range | Type | Description
> dp-policy-name-or-id |  | obj-name-or-id 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.
> is-dr-capable |  | boolean optional | If present we filter the policies returned. If true, only list data sets which are disaster recovery capable. If false, only list data sets which are not disaster recovery capable.
> Output Name | Range | Type | Description
> records |  | integer | Number of items present in the list iteration. Range: [0..2^31-1].
> tag |  | string | An opaque handle used to identify the list iteration. The list content resides in a temporary store in the server.

> Errno | Description
> EACCESSDENIED |  |
> EOBJECTNOTFOUND |  |
> EDATABASEERROR |  |

dp-policy-modify | [top]

> This ZAPI modifies a DP policy by completely replacing the policy's old content with new content specified by input element dp-policy-content. 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 dp-policy-content 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 dp-policy-modify. For example, it is illegal to specify a backup-schedule-name 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 data set whose root storage set contains OSSV directories. EDATABASEERROR - A database error occurred while processing the request.

> Input Name | Range | Type | Description
> dp-policy-content |  | dp-policy-content | 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 from-node-id or to-node-id of any connection. All properties of the nodes and connections are set precisely as specified by the dp-policy-connections and dp-policy-nodes elements of dp-policy-content. 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.
> edit-lock-id |  | integer validate | Identifier of the edit lock on the policy. The value must be an edit lock ID that was previously returned by dp-policy-edit-begin.

> Errno | Description
> EEDITSESSIONNOTFOUND |  |
> EACCESSDENIED |  |
> EOBJECTNOTFOUND |  |
> EPOLICYNOTMODIFIABLE |  |
> EPOLICYTOPOLOGYCHANGED |  |
> EINVALIDPOLICYPROPERTY |  |
> EOSSVCANTTAKESNAPSHOTS |  |
> EDATABASEERROR |  |

Element definition: dp-policy-content | [top]

> All content of a single policy, including its name, description, topology (nodes and connections), and the properties for each node and connection.

> Name | Range | Type | Description
> description |  | string optional | Description of the policy. It may contain from 0 to 255 characters. If the length of a description passed as input to dp-policy-modify is longer than 255 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY. The description always appears in the output from dp-policy-list-iter-next. If the description is omitted from the input to dp-policy-modify, then the default value is the empty string "".
> dp-policy-connections |  | dp-policy-connection-info[] optional | List of connections between nodes of the policy. In the output from dp-policy-list-iter-next, this list is sorted in order of increasing connection ID. In the input to dp-policy-modify, it need not be sorted. However, in input to dp-policy-modify, 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 dp-policy-modify. It is always present in the output from dp-policy-list-iter-next.
> dp-policy-nodes |  | dp-policy-node-info[] | List of nodes in the policy. In the output from dp-policy-list-iter-next, this list is sorted in order of increasing node ID. In the input to dp-policy-modify, it need not be sorted. However, in input to dp-policy-modify, 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 |  | obj-name | 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: dp-policy-info | [top]

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

> Name | Range | Type | Description
> dp-policy-content |  | dp-policy-content | Content of the policy.
> id |  | obj-id | Object ID for the policy.
> is-application-compatible |  | boolean | If false, this policy cannot be assigned to an application data set.
> is-modifiable |  | boolean | If false, this policy is one of the sample policies that is created at installation time, therefore it may not be deleted using dp-policy-destroy and may not be modified using dp-policy-modify. If true, it is not one of the sample policies, therefore it may be deleted or modified. This element cannot be modified.
> is-non-disruptive-restore-compatible |  | boolean | If false, this policy can not be assigned to a data set with the requires-non-disruptive-restore attribute set. If set to true and applied to a data set with the requires-non-disruptive-restore attribute set to true, Protection Manager will configure the data set 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 supports-non-disruptive-restore output element from the dp-backup-list iterator.

Element definition: dry-run-result | [top]

> A description of one action and the predicted effects of taking that action.

> Name | Range | Type | Description
> dry-run-action |  | string | An action the system would take.
> dry-run-effect |  | string | The predicted effect of the action.
> dry-run-reason |  | string optional | 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.
> dry-run-severity |  | obj-status | severity of the dry-run result. Possible values are "information", "error" or "warning".
> dry-run-suggestion |  | string | Present only if severity is error or warning. Specifies any suggestions to rectify warnings,errors. If there are no suggestions to specify, this element will not be present.

Element definition: obj-id | [top]

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

> [none]

Element definition: obj-name | [top]

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

> [none]

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

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

> [none]

Element definition: dp-policy-connection-info | [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 | Range | Type | Description
> backup-schedule-id |  | obj-id 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 backup-schedule-id 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 backup-schedule-id and backup-schedule-name appear in the input to dp-policy-modify, then backup-schedule-id determines the ID of the backup schedule, and the value of backup-schedule-name is ignored. If neither backup-schedule-id nor backup-schedule-name appear in the input to dp-policy-modify, then the default value is an ID of 0 (equivalent to a name of ""), which means no backup schedule is set. Both backup-schedule-id and backup-schedule-name always appear in the output from dp-policy-list-iter-next for backup connections. This property is present only for backup connections.
> backup-schedule-name |  | obj-name 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 backup-schedule-name 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 backup-schedule-id and backup-schedule-name appear in the input to dp-policy-modify, then backup-schedule-id determines the ID of the backup schedule, and the value of backup-schedule-name is ignored. If neither backup-schedule-id nor backup-schedule-name appear in the input to dp-policy-modify, then the default value is a name of "" (equivalent to an ID of 0), which means no backup schedule is set. Both backup-schedule-id and backup-schedule-name always appear in the output from dp-policy-list-iter-next for backup connections. This property is present only for backup connections.
> from-node-id |  | integer validate | 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].
> from-node-name |  | 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 |  | integer validate | ID of the connection. This is assigned by the system, and therefore may not be modified. Range: [1..2^31 - 1].
> is-dr-capable |  | boolean | 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.
> is-lag-error-enabled |  | boolean optional validate | Indicates whether the system should generate an error event when the newest backup or mirrored copy is older than lag-error-threshold. The default value of this property is true. This property is present for both backup and mirror connections.
> is-lag-warning-enabled |  | boolean optional validate | Indicates whether the system should generate a warning event when the newest backup or mirrored copy is older than lag-warning-threshold. The default value of this property is true. This property is present for both backup and mirror connections.
> lag-error-threshold |  | integer optional validate | Lag, in seconds. If backup or mirrored copy is older than this amount and if is-lag-error-enabled 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.
> lag-warning-threshold |  | integer optional validate | Lag, in seconds. If backup or mirrored copy is older than this amount and if is-lag-warning-enabled 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.
> mirror-schedule-id |  | obj-id 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 mirror-schedule-id 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 mirror-schedule-id and mirror-schedule-name appear in the input to dp-policy-modify, then mirror-schedule-id determines the ID of the mirror schedule, and the value of mirror-schedule-name is ignored. If neither mirror-schedule-id nor mirror-schedule-name appear in the input to dp-policy-modify, then the default value is an ID of 0 (equivalent to a name of ""), which means no mirror schedule is set. Both mirror-schedule-id and mirror-schedule-name always appear in the output from dp-policy-list-iter-next for mirror connections. This property is present only for mirror connections.
> mirror-schedule-name |  | obj-name 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 mirror-schedule-name 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 mirror-schedule-id and mirror-schedule-name appear in the input to dp-policy-modify, then mirror-schedule-id determines the ID of the mirror schedule, and the value of mirror-schedule-name is ignored. If neither mirror-schedule-id nor mirror-schedule-name appear in the input to dp-policy-modify, then the default value is a name of "" (equivalent to an ID of 0), which means no mirror schedule is set. Both mirror-schedule-id and mirror-schedule-name always appear in the output from dp-policy-list-iter-next for mirror connections. This property is present only for mirror connections.
> throttle-schedule-id |  | obj-id 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 data set. 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 throttle-schedule-id 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 throttle-schedule-id and throttle-schedule-name appear in the input to dp-policy-modify, then throttle-schedule-id determines the ID of the throttle, and the value of throttle-schedule-name is ignored. If neither throttle-schedule-id nor throttle-schedule-name appear in the input to dp-policy-modify, then the default value is an ID of 0 (equivalent to a name of ""), which means no throttle is set. Both throttle-schedule-id and throttle-schedule-name always appear in the output from dp-policy-list-iter-next. This property is present for both backup and mirror connections.
> throttle-schedule-name |  | obj-name 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 data set. 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 throttle-schedule-name 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 throttle-schedule-id and throttle-schedule-name appear in the input to dp-policy-modify, then throttle-schedule-id determines the ID of the throttle, and the value of throttle-schedule-name is ignored. If neither throttle-schedule-id nor throttle-schedule-name appear in the input to dp-policy-modify, then the default value is a name of "" (equivalent to an ID of 0), which means no throttle is set. Both throttle-schedule-id and throttle-schedule-name always appear in the output from dp-policy-list-iter-next. This property is present for both backup and mirror connections.
> to-node-id |  | integer validate | 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].
> to-node-name |  | 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 |  | string | Type of the connection. Allowed values are "backup" or "mirror". This element may not be modified.

Element definition: dp-policy-content | [top]

> All content of a single policy, including its name, description, topology (nodes and connections), and the properties for each node and connection.

> Name | Range | Type | Description
> description |  | string optional | Description of the policy. It may contain from 0 to 255 characters. If the length of a description passed as input to dp-policy-modify is longer than 255 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY. The description always appears in the output from dp-policy-list-iter-next. If the description is omitted from the input to dp-policy-modify, then the default value is the empty string "".
> dp-policy-connections |  | dp-policy-connection-info[] optional | List of connections between nodes of the policy. In the output from dp-policy-list-iter-next, this list is sorted in order of increasing connection ID. In the input to dp-policy-modify, it need not be sorted. However, in input to dp-policy-modify, 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 dp-policy-modify. It is always present in the output from dp-policy-list-iter-next.
> dp-policy-nodes |  | dp-policy-node-info[] | List of nodes in the policy. In the output from dp-policy-list-iter-next, this list is sorted in order of increasing node ID. In the input to dp-policy-modify, it need not be sorted. However, in input to dp-policy-modify, 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 |  | obj-name | 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: dp-policy-node-info | [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: hourly-retention-count hourly-retention-duration daily-retention-count daily-retention-duration weekly-retention-count weekly-retention-duration monthly-retention-count monthly-retention-duration 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 | Range | Type | Description
> backup-script-path |  | 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 backup-script-path passed as input to dp-policy-modify 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.
> backup-script-run-as |  | 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 backup-script-run-as passed as input to dp-policy-modify 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.
> daily-retention-count |  | integer optional validate | 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 dp-policy-node-info.
> daily-retention-duration |  | integer optional validate | 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 dp-policy-node-info.
> failover-script-path |  | 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 failover-script-path passed as input to dp-policy-modify 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.
> failover-script-run-as |  | 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 failover-script-run-as passed as input to dp-policy-modify 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.
> hourly-retention-count |  | integer optional validate | 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 dp-policy-node-info.
> hourly-retention-duration |  | integer optional validate | 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 dp-policy-node-info.
> id |  | integer validate | 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].
> is-lag-error-enabled |  | boolean optional validate | Indicates whether the system should generate an error event when the newest local backup copy is older than lag-error-threshold. The default value of this property is true. This property is present for root node only.
> is-lag-warning-enabled |  | boolean optional validate | Indicates whether the system should generate a warning event when the newest local backup copy is older than lag-warning-threshold. The default value of this property is true. This property is present for root node only.
> lag-error-threshold |  | integer optional validate | Lag, in seconds. If local backup copy is older than this amount and if is-lag-error-enabled 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.
> lag-warning-threshold |  | integer optional validate | Lag, in seconds. If local backup copy is older than this amount and if is-lag-warning-enabled 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.
> monthly-retention-count |  | integer optional validate | 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 dp-policy-node-info.
> monthly-retention-duration |  | integer optional validate | 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 dp-policy-node-info.
> name |  | dp-policy-node-name | 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 dp-policy-modify is longer than 64 characters, then the ZAPI fails with error code EINVALIDPOLICYPROPERTY.
> snapshot-schedule-id |  | obj-id 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 snapshot-schedule-id 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 snapshot-schedule-id and snapshot-schedule-name appear in the input to dp-policy-modify, then snapshot-schedule-id determines the ID of the snapshot schedule, and the value of snapshot-schedule-name is ignored. If neither snapshot-schedule-id nor snapshot-schedule-name appear in the input to dp-policy-modify, then the default value is an ID of 0 (equivalent to a name of ""), which means no snapshot schedule is set. Both snapshot-schedule-id and snapshot-schedule-name always appear in the output from dp-policy-list-iter-next 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 data set 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.
> snapshot-schedule-name |  | obj-name 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 snapshot-schedule-name 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 snapshot-schedule-id and snapshot-schedule-name appear in the input to dp-policy-modify, then snapshot-schedule-id determines the ID of the snapshot schedule, and the value of snapshot-schedule-name is ignored. If neither snapshot-schedule-id nor snapshot-schedule-name appear in the input to dp-policy-modify, then the default value is a name of "" (equivalent to an ID of 0), which means no snapshot schedule is set. Both snapshot-schedule-id and snapshot-schedule-name always appear in the output from dp-policy-list-iter-next 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 data set 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.
> weekly-retention-count |  | integer optional validate | 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 dp-policy-node-info.
> weekly-retention-duration |  | integer optional validate | 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 dp-policy-node-info.

Element definition: obj-id | [top]

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

> [none]

Element definition: obj-name | [top]

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

> [none]

Element definition: obj-status | [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 appliance 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: dp-policy-connection-info | [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 | Range | Type | Description
> backup-schedule-id |  | obj-id 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 backup-schedule-id 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 backup-schedule-id and backup-schedule-name appear in the input to dp-policy-modify, then backup-schedule-id determines the ID of the backup schedule, and the value of backup-schedule-name is ignored. If neither backup-schedule-id nor backup-schedule-name appear in the input to dp-policy-modify, then the default value is an ID of 0 (equivalent to a name of ""), which means no backup schedule is set. Both backup-schedule-id and backup-schedule-name always appear in the output from dp-policy-list-iter-next for backup connections. This property is present only for backup connections.
> backup-schedule-name |  | obj-name 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 backup-schedule-name 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 backup-schedule-id and backup-schedule-name appear in the input to dp-policy-modify, then backup-schedule-id determines the ID of the backup schedule, and the value of backup-schedule-name is ignored. If neither backup-schedule-id nor backup-schedule-name appear in the input to dp-policy-modify, then the default value is a name of "" (equivalent to an ID of 0), which means no backup schedule is set. Both backup-schedule-id and backup-schedule-name always appear in the output from dp-policy-list-iter-next for backup connections. This property is present only for backup connections.
> from-node-id |  | integer validate | 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].
> from-node-name |  | 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 |  | integer validate | ID of the connection. This is assigned by the system, and therefore may not be modified. Range: [1..2^31 - 1].
> is-dr-capable |  | boolean | 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.
> is-lag-error-enabled |  | boolean optional validate | Indicates whether the system should generate an error event when the newest backup or mirrored copy is older than lag-error-threshold. The default value of this property is true. This property is present for both backup and mirror connections.
> is-lag-warning-enabled |  | boolean optional validate | Indicates whether the system should generate a warning event when the newest backup or mirrored copy is older than lag-warning-threshold. The default value of this property is true. This property is present for both backup and mirror connections.
> lag-error-threshold |  | integer optional validate | Lag, in seconds. If backup or mirrored copy is older than this amount and if is-lag-error-enabled 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.
> lag-warning-threshold |  | integer optional validate | Lag, in seconds. If backup or mirrored copy is older than this amount and if is-lag-warning-enabled 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.
> mirror-schedule-id |  | obj-id 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 mirror-schedule-id 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 mirror-schedule-id and mirror-schedule-name appear in the input to dp-policy-modify, then mirror-schedule-id determines the ID of the mirror schedule, and the value of mirror-schedule-name is ignored. If neither mirror-schedule-id nor mirror-schedule-name appear in the input to dp-policy-modify, then the default value is an ID of 0 (equivalent to a name of ""), which means no mirror schedule is set. Both mirror-schedule-id and mirror-schedule-name always appear in the output from dp-policy-list-iter-next for mirror connections. This property is present only for mirror connections.
> mirror-schedule-name |  | obj-name 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 mirror-schedule-name 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 mirror-schedule-id and mirror-schedule-name appear in the input to dp-policy-modify, then mirror-schedule-id determines the ID of the mirror schedule, and the value of mirror-schedule-name is ignored. If neither mirror-schedule-id nor mirror-schedule-name appear in the input to dp-policy-modify, then the default value is a name of "" (equivalent to an ID of 0), which means no mirror schedule is set. Both mirror-schedule-id and mirror-schedule-name always appear in the output from dp-policy-list-iter-next for mirror connections. This property is present only for mirror connections.
> throttle-schedule-id |  | obj-id 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 data set. 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 throttle-schedule-id 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 throttle-schedule-id and throttle-schedule-name appear in the input to dp-policy-modify, then throttle-schedule-id determines the ID of the throttle, and the value of throttle-schedule-name is ignored. If neither throttle-schedule-id nor throttle-schedule-name appear in the input to dp-policy-modify, then the default value is an ID of 0 (equivalent to a name of ""), which means no throttle is set. Both throttle-schedule-id and throttle-schedule-name always appear in the output from dp-policy-list-iter-next. This property is present for both backup and mirror connections.
> throttle-schedule-name |  | obj-name 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 data set. 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 throttle-schedule-name 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 throttle-schedule-id and throttle-schedule-name appear in the input to dp-policy-modify, then throttle-schedule-id determines the ID of the throttle, and the value of throttle-schedule-name is ignored. If neither throttle-schedule-id nor throttle-schedule-name appear in the input to dp-policy-modify, then the default value is a name of "" (equivalent to an ID of 0), which means no throttle is set. Both throttle-schedule-id and throttle-schedule-name always appear in the output from dp-policy-list-iter-next. This property is present for both backup and mirror connections.
> to-node-id |  | integer validate | 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].
> to-node-name |  | 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 |  | string | Type of the connection. Allowed values are "backup" or "mirror". This element may not be modified.

Element definition: dp-policy-node-name | [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 dp-policy-list-iter-next returns its name as "Backup". Note that a node name has the same format as an obj-name, and has similar properties such as case-insensitivity. However, a node name is not a kind of obj-name 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: obj-id | [top]

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

> [none]

Element definition: obj-name | [top]

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

> [none]