3.1.1.9 Object Properties

A property is part of a schema that defines zero or more name, data syntax, and value tuples. Each object type, with the exception of a cluster registry key, has its own schema and is further categorized by a hierarchy of scopes: common, private, or unknown, with common being the highest scope, followed by private and then unknown.

A property name is a case-insensitive, non-null Unicode string and is unique within its schema. The name is associated with a scope that defines its place in the hierarchy. After it is defined, a property name cannot be reused in a lesser scope.

The data syntax consists of two parts: a type and a format. The type indicates how the data is structured, while the format indicates a core data type (integer, string, binary) indicating how the data is stored in the cluster nonvolatile cluster database. The data syntax for a common or private property is immutable.

The cluster state contains a common schema for group, resource, resource type, cluster network, and cluster network interface object types. For example, such configuration data can include parameters about failure recovery actions and restrictions on owner nodes. Private schema is defined by the object type; resource and resource type objects can define a private schema, when appropriate, while all other object types cannot define a private schema. Unknown schema can be defined by an entity outside of the cluster and can be associated with any cluster object. All properties, regardless of scope, are stored as part of the object's nonvolatile cluster state.

The common and private schemas can mark a property as read-only, as appropriate, indicating that the client can obtain the data associated with the property but cannot modify the property value. An object can use read-only properties to convey internal data that is of interest to the client but remains under the object's control. Unknown property schema does not support read-only properties.

The schema can also define a minimum, maximum, and default value for the property, where appropriate for the data type. The minimum and maximum values are used to validate requests to modify the value of the property. The default value is used to provide an initial value for the property.

A ClusAPI Protocol client can perform the following management operations on properties: