Managing properties
This topic describes the use of properties in relation to objects in the Delphix Engine command-line interface.
Object properties are represented as a hierarchy of typed name/value pairs. The get
command by itself will display the complete hierarchy for a particular object. This hierarchy is displayed with each nested object indented by an additional level. The set of available properties depends on the command context and may change if the type of an object is changed.
Property state
Properties are typically set to a specific value, but they can also be unset
. Unset properties indicate there is no known value, either because it hasn’t been provided yet, or it has been explicitly removed. Properties in this state are displayed via the following means:
(unset)
– The property is not currently set. It may never have been given a value or it may have been explicitly unset through theunset
command.(required)
– This has the same underlying semantics as(unset)
, but indicates that the property must be set before the current command can be committed. Failure to do so will result in a validation error at the time the commit operation is attempted. Required properties are displayed in bold.
In addition, all objects have a default state when in command context. A property that has been modified is noted with an asterisk (*), and can be reverted to its default state through the revert
command.
When updating properties, only those properties are sent to the server. The exception is arrays and untyped objects, covered in Array properties and Untyped object properties. These objects are always sent in their entirety, so changing any one element will send the entire object.
Basic properties
Most properties are displayed and input as a string, though the underlying type may be more specific. The following are some of the basic types:
String – An arbitrary string. This may be subject to additional validation (such as an IP address) that is enforced at the time the property is set.
Number – An integer number.
Boolean – Either “true” or “false”.
Enumeration – A string that must be chosen from a known set of options.
Nested properties
Some properties are in fact other objects and are represented as a nested set of properties. These properties can be manipulated in one of two ways: by specifying a dot-delimited name or changing the context via the edit
command.
A dot (.) in a property name indicates that the portion to the left of the dot is the parent object name, and the portion to the right is a child of that object. For example, sourcingPolicy.logsyncDisabled
denotes the logsyncDisabled
property within the sourcingPolicy
property. These dots can be arbitrarily nested. An alternative syntax of using brackets to enclose property names (sourcingPolicy[logsyncDisabled])
is also supported for familiarity with other programming languages.
The edit
command, in contrast, will change the current context such that all properties are relative to the specified object. This can be useful when changing many nested properties at once, or when the complete set of properties can be confusing to manage all at once.
The topic CLI cookbook: Disabling LogSync for a dSource provides an example of manipulating nested properties.