diff --git a/include/crm/msg_xml.h b/include/crm/msg_xml.h
index 8d5d68676a..e00cfcca89 100644
--- a/include/crm/msg_xml.h
+++ b/include/crm/msg_xml.h
@@ -1,419 +1,418 @@
 /*
  * Copyright 2004-2024 the Pacemaker project contributors
  *
  * The version control history for this file may have further details.
  *
  * This source code is licensed under the GNU Lesser General Public License
  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
  */
 
 #ifndef PCMK__CRM_MSG_XML__H
 #  define PCMK__CRM_MSG_XML__H
 
 #  include <crm/common/xml.h>
 
 #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1)
 #include <crm/msg_xml_compat.h>
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /* This file defines constants for various XML syntax (mainly element and
  * attribute names).
  *
  * For consistency, new constants should start with "PCMK_", followed by "XE"
  * for XML element names, "XA" for XML attribute names, and "META" for meta
  * attribute names. Old names that don't follow this policy should eventually be
  * deprecated and replaced with names that do.
  *
  * Symbols should be public if the user may specify them somewhere (especially
  * the CIB). They should be internal if they're used only internally to
  * Pacemaker (such as daemon IPC/CPG message XML).
  *
  * For meta-attributes that can be specified as either XML attributes or nvpair
  * names, use "META" unless using both "XA" and "META" constants adds clarity.
  */
 
 /*
  * XML elements
  */
 
 #define PCMK_XE_DATE_EXPRESSION             "date_expression"
 #define PCMK_XE_OP                          "op"
 #define PCMK_XE_OP_EXPRESSION               "op_expression"
 #define PCMK_XE_RSC_EXPRESSION              "rsc_expression"
 
 /* This has been deprecated as a CIB element (an alias for <clone> with
  * PCMK_META_PROMOTABLE set to "true") since 2.0.0.
  */
 #define PCMK_XE_PROMOTABLE_LEGACY           "master"
 
 
 /*
  * XML attributes
  */
 
 #define PCMK_XA_ADMIN_EPOCH                 "admin_epoch"
 #define PCMK_XA_CIB_LAST_WRITTEN            "cib-last-written"
 #define PCMK_XA_CLASS                       "class"
 #define PCMK_XA_CRM_DEBUG_ORIGIN            "crm-debug-origin"
 #define PCMK_XA_CRM_FEATURE_SET             "crm_feature_set"
 #define PCMK_XA_CRM_TIMESTAMP               "crm-timestamp"
 #define PCMK_XA_DC_UUID                     "dc-uuid"
 #define PCMK_XA_DESCRIPTION                 "description"
 #define PCMK_XA_EPOCH                       "epoch"
 #define PCMK_XA_FORMAT                      "format"
 #define PCMK_XA_HAVE_QUORUM                 "have-quorum"
 #define PCMK_XA_ID                          "id"
 #define PCMK_XA_ID_REF                      "id-ref"
 #define PCMK_XA_NAME                        "name"
 #define PCMK_XA_NO_QUORUM_PANIC             "no-quorum-panic"
 #define PCMK_XA_NUM_UPDATES                 "num_updates"
 #define PCMK_XA_OP                          "op"
 #define PCMK_XA_PROVIDER                    "provider"
 #define PCMK_XA_TYPE                        "type"
 #define PCMK_XA_UPDATE_CLIENT               "update-client"
 #define PCMK_XA_UPDATE_ORIGIN               "update-origin"
 #define PCMK_XA_VALIDATE_WITH               "validate-with"
 #define PCMK_XA_VALUE                       "value"
 #define PCMK_XA_VERSION                     "version"
 
 
 /*
  * Older constants that don't follow current naming
  */
 
 #  ifndef F_ORIG
 #    define F_ORIG    "src"
 #  endif
 
 #  ifndef F_SEQ
 #    define F_SEQ		"seq"
 #  endif
 
 #  ifndef F_SUBTYPE
 #    define F_SUBTYPE "subt"
 #  endif
 
 #  ifndef F_TYPE
 #    define F_TYPE    "t"
 #  endif
 
 #  ifndef F_CLIENTNAME
 #    define	F_CLIENTNAME	"cn"
 #  endif
 
 #  ifndef F_XML_TAGNAME
 #    define F_XML_TAGNAME	"__name__"
 #  endif
 
 #  ifndef T_CRM
 #    define T_CRM     "crmd"
 #  endif
 
 #  ifndef T_ATTRD
 #    define T_ATTRD     "attrd"
 #  endif
 
 #  define CIB_OPTIONS_FIRST "cib-bootstrap-options"
 
 #  define F_CRM_DATA			"crm_xml"
 #  define F_CRM_TASK			"crm_task"
 #  define F_CRM_HOST_TO			"crm_host_to"
 #  define F_CRM_MSG_TYPE		F_SUBTYPE
 #  define F_CRM_SYS_TO			"crm_sys_to"
 #  define F_CRM_SYS_FROM		"crm_sys_from"
 #  define F_CRM_HOST_FROM		F_ORIG
 #  define F_CRM_REFERENCE		XML_ATTR_REFERENCE
 #  define F_CRM_VERSION			PCMK_XA_VERSION
 #  define F_CRM_ORIGIN			"origin"
 #  define F_CRM_USER			"crm_user"
 #  define F_CRM_JOIN_ID			"join_id"
 #  define F_CRM_DC_LEAVING      "dc-leaving"
 #  define F_CRM_ELECTION_ID		"election-id"
 #  define F_CRM_ELECTION_AGE_S		"election-age-sec"
 #  define F_CRM_ELECTION_AGE_US		"election-age-nano-sec"
 #  define F_CRM_ELECTION_OWNER		"election-owner"
 #  define F_CRM_TGRAPH			"crm-tgraph-file"
 #  define F_CRM_TGRAPH_INPUT		"crm-tgraph-in"
 
 #  define F_CRM_THROTTLE_MODE		"crm-limit-mode"
 #  define F_CRM_THROTTLE_MAX		"crm-limit-max"
 
 /*---- Common tags/attrs */
 #  define XML_DIFF_MARKER		"__crm_diff_marker__"
 #  define XML_TAG_CIB			"cib"
 #  define XML_TAG_FAILED		"failed"
 
 #  define XML_ATTR_TIMEOUT		"timeout"
-#  define XML_ATTR_UPDATE_CLIENT	"update-client"
 #  define XML_ATTR_UPDATE_USER		"update-user"
 
 #  define XML_BOOLEAN_TRUE		"true"
 #  define XML_BOOLEAN_FALSE		"false"
 
 #  define XML_TAG_OPTIONS		"options"
 
 /*---- top level tags/attrs */
 #  define XML_ATTR_REQUEST		"request"
 #  define XML_ATTR_RESPONSE		"response"
 
 #  define XML_ATTR_UNAME		"uname"
 #  define XML_ATTR_REFERENCE		"reference"
 
 #  define XML_CRM_TAG_PING		"ping_response"
 #  define XML_PING_ATTR_STATUS		"result"
 #  define XML_PING_ATTR_SYSFROM		"crm_subsystem"
 #  define XML_PING_ATTR_CRMDSTATE   "crmd_state"
 #  define XML_PING_ATTR_PACEMAKERDSTATE "pacemakerd_state"
 #  define XML_PING_ATTR_PACEMAKERDSTATE_INIT "init"
 #  define XML_PING_ATTR_PACEMAKERDSTATE_STARTINGDAEMONS "starting_daemons"
 #  define XML_PING_ATTR_PACEMAKERDSTATE_WAITPING "wait_for_ping"
 #  define XML_PING_ATTR_PACEMAKERDSTATE_RUNNING "running"
 #  define XML_PING_ATTR_PACEMAKERDSTATE_SHUTTINGDOWN "shutting_down"
 #  define XML_PING_ATTR_PACEMAKERDSTATE_SHUTDOWNCOMPLETE "shutdown_complete"
 #  define XML_PING_ATTR_PACEMAKERDSTATE_REMOTE "remote"
 
 #  define XML_FAIL_TAG_CIB		"failed_update"
 
 #  define XML_FAILCIB_ATTR_OBJTYPE	"object_type"
 #  define XML_FAILCIB_ATTR_OP		"operation"
 #  define XML_FAILCIB_ATTR_REASON	"reason"
 
 /*---- CIB specific tags/attrs */
 #  define XML_CIB_TAG_SECTION_ALL	"all"
 #  define XML_CIB_TAG_CONFIGURATION	"configuration"
 #  define XML_CIB_TAG_STATUS       	"status"
 #  define XML_CIB_TAG_RESOURCES		"resources"
 #  define XML_CIB_TAG_NODES         	"nodes"
 #  define XML_CIB_TAG_CONSTRAINTS   	"constraints"
 #  define XML_CIB_TAG_CRMCONFIG   	"crm_config"
 #  define XML_CIB_TAG_OPCONFIG		"op_defaults"
 #  define XML_CIB_TAG_RSCCONFIG   	"rsc_defaults"
 #  define XML_CIB_TAG_ACLS   		"acls"
 #  define XML_CIB_TAG_ALERTS    	"alerts"
 #  define XML_CIB_TAG_ALERT   		"alert"
 #  define XML_CIB_TAG_ALERT_RECIPIENT	"recipient"
 #  define XML_CIB_TAG_ALERT_SELECT      "select"
 #  define XML_CIB_TAG_ALERT_ATTRIBUTES  "select_attributes"
 #  define XML_CIB_TAG_ALERT_FENCING     "select_fencing"
 #  define XML_CIB_TAG_ALERT_NODES       "select_nodes"
 #  define XML_CIB_TAG_ALERT_RESOURCES   "select_resources"
 #  define XML_CIB_TAG_ALERT_ATTR        "attribute"
 
 #  define XML_CIB_TAG_STATE         	"node_state"
 #  define XML_CIB_TAG_NODE          	"node"
 #  define XML_CIB_TAG_NVPAIR        	"nvpair"
 
 #  define XML_CIB_TAG_PROPSET	   	"cluster_property_set"
 #  define XML_TAG_ATTR_SETS	   	"instance_attributes"
 #  define XML_TAG_META_SETS	   	"meta_attributes"
 #  define XML_TAG_ATTRS			"attributes"
 #  define XML_TAG_PARAMS		"parameters"
 #  define XML_TAG_PARAM			"param"
 #  define XML_TAG_UTILIZATION		"utilization"
 
 #  define XML_TAG_RESOURCE_REF		"resource_ref"
 #  define XML_CIB_TAG_RESOURCE	  	"primitive"
 #  define XML_CIB_TAG_GROUP	  	"group"
 #  define XML_CIB_TAG_INCARNATION	"clone"
 #  define XML_CIB_TAG_CONTAINER		"bundle"
 
 #  define XML_CIB_TAG_RSC_TEMPLATE	"template"
 
 #  define XML_OP_ATTR_ON_FAIL		"on-fail"
 #  define XML_OP_ATTR_START_DELAY	"start-delay"
 #  define XML_OP_ATTR_ORIGIN		"interval-origin"
 #  define XML_OP_ATTR_PENDING		"record-pending"
 #  define XML_OP_ATTR_DIGESTS_ALL       "digests-all"
 #  define XML_OP_ATTR_DIGESTS_SECURE    "digests-secure"
 
 #  define XML_CIB_TAG_LRM		"lrm"
 #  define XML_LRM_TAG_RESOURCES     	"lrm_resources"
 #  define XML_LRM_TAG_RESOURCE     	"lrm_resource"
 #  define XML_LRM_TAG_RSC_OP		"lrm_rsc_op"
 
 //! \deprecated Do not use (will be removed in a future release)
 #  define XML_CIB_ATTR_REPLACE       	"replace"
 
 #  define XML_CIB_ATTR_PRIORITY     	"priority"
 
 #  define XML_NODE_IS_REMOTE    	"remote_node"
 #  define XML_NODE_IS_FENCED		"node_fenced"
 #  define XML_NODE_IS_MAINTENANCE   "node_in_maintenance"
 
 #  define XML_CIB_ATTR_SHUTDOWN       	"shutdown"
 
 /* Aside from being an old name for the executor, LRM is a misnomer here because
  * the controller and scheduler use these to track actions, which are not always
  * executor operations.
  */
 
 // XML attribute that takes interval specification (user-facing configuration)
 #  define XML_LRM_ATTR_INTERVAL		"interval"
 
 // XML attribute that takes interval in milliseconds (daemon APIs)
 // (identical value as above, but different constant allows clearer code intent)
 #  define XML_LRM_ATTR_INTERVAL_MS  XML_LRM_ATTR_INTERVAL
 
 #  define XML_LRM_ATTR_TASK		"operation"
 #  define XML_LRM_ATTR_TASK_KEY		"operation_key"
 #  define XML_LRM_ATTR_TARGET		"on_node"
 #  define XML_LRM_ATTR_TARGET_UUID	"on_node_uuid"
 /*! Actions to be executed on Pacemaker Remote nodes are routed through the
  *  controller on the cluster node hosting the remote connection. That cluster
  *  node is considered the router node for the action.
  */
 #  define XML_LRM_ATTR_ROUTER_NODE  "router_node"
 #  define XML_LRM_ATTR_RSCID		"rsc-id"
 #  define XML_LRM_ATTR_OPSTATUS		"op-status"
 #  define XML_LRM_ATTR_RC		"rc-code"
 #  define XML_LRM_ATTR_CALLID		"call-id"
 #  define XML_LRM_ATTR_OP_DIGEST	"op-digest"
 #  define XML_LRM_ATTR_OP_RESTART	"op-force-restart"
 #  define XML_LRM_ATTR_OP_SECURE	"op-secure-params"
 #  define XML_LRM_ATTR_RESTART_DIGEST	"op-restart-digest"
 #  define XML_LRM_ATTR_SECURE_DIGEST	"op-secure-digest"
 #  define XML_LRM_ATTR_EXIT_REASON	"exit-reason"
 
 #  define XML_RSC_OP_LAST_CHANGE        "last-rc-change"
 #  define XML_RSC_OP_T_EXEC             "exec-time"
 #  define XML_RSC_OP_T_QUEUE            "queue-time"
 
 #  define XML_LRM_ATTR_MIGRATE_SOURCE	"migrate_source"
 #  define XML_LRM_ATTR_MIGRATE_TARGET	"migrate_target"
 
 #  define XML_TAG_GRAPH			"transition_graph"
 #  define XML_GRAPH_TAG_RSC_OP		"rsc_op"
 #  define XML_GRAPH_TAG_PSEUDO_EVENT	"pseudo_event"
 #  define XML_GRAPH_TAG_CRM_EVENT	"crm_event"
 #  define XML_GRAPH_TAG_DOWNED            "downed"
 #  define XML_GRAPH_TAG_MAINTENANCE       "maintenance"
 
 #  define XML_TAG_RULE			"rule"
 #  define XML_RULE_ATTR_SCORE		"score"
 #  define XML_RULE_ATTR_SCORE_ATTRIBUTE	"score-attribute"
 #  define XML_RULE_ATTR_ROLE		"role"
 #  define XML_RULE_ATTR_BOOLEAN_OP	"boolean-op"
 
 #  define XML_TAG_EXPRESSION		"expression"
 #  define XML_EXPR_ATTR_ATTRIBUTE	"attribute"
 #  define XML_EXPR_ATTR_OPERATION	"operation"
 #  define XML_EXPR_ATTR_VALUE_SOURCE	"value-source"
 
 #  define XML_CONS_TAG_RSC_DEPEND	"rsc_colocation"
 #  define XML_CONS_TAG_RSC_ORDER	"rsc_order"
 #  define XML_CONS_TAG_RSC_LOCATION	"rsc_location"
 #  define XML_CONS_TAG_RSC_TICKET	"rsc_ticket"
 #  define XML_CONS_TAG_RSC_SET		"resource_set"
 #  define XML_CONS_ATTR_SYMMETRICAL	"symmetrical"
 
 #  define XML_LOCATION_ATTR_DISCOVERY	"resource-discovery"
 
 #  define XML_COLOC_ATTR_SOURCE		"rsc"
 #  define XML_COLOC_ATTR_SOURCE_ROLE	"rsc-role"
 #  define XML_COLOC_ATTR_TARGET		"with-rsc"
 #  define XML_COLOC_ATTR_TARGET_ROLE	"with-rsc-role"
 #  define XML_COLOC_ATTR_NODE_ATTR	"node-attribute"
 #  define XML_COLOC_ATTR_INFLUENCE          "influence"
 
 //! \deprecated Deprecated since 2.1.5
 #  define XML_COLOC_ATTR_SOURCE_INSTANCE	"rsc-instance"
 
 //! \deprecated Deprecated since 2.1.5
 #  define XML_COLOC_ATTR_TARGET_INSTANCE	"with-rsc-instance"
 
 #  define XML_LOC_ATTR_SOURCE           "rsc"
 #  define XML_LOC_ATTR_SOURCE_PATTERN   "rsc-pattern"
 
 #  define XML_ORDER_ATTR_FIRST		"first"
 #  define XML_ORDER_ATTR_THEN		"then"
 #  define XML_ORDER_ATTR_FIRST_ACTION	"first-action"
 #  define XML_ORDER_ATTR_THEN_ACTION	"then-action"
 #  define XML_ORDER_ATTR_KIND		"kind"
 
 //! \deprecated Deprecated since 2.1.5
 #  define XML_ORDER_ATTR_FIRST_INSTANCE	"first-instance"
 
 //! \deprecated Deprecated since 2.1.5
 #  define XML_ORDER_ATTR_THEN_INSTANCE	"then-instance"
 
 #  define XML_TICKET_ATTR_TICKET	"ticket"
 #  define XML_TICKET_ATTR_LOSS_POLICY	"loss-policy"
 
 #  define XML_NODE_ATTR_RSC_DISCOVERY   "resource-discovery-enabled"
 
 #  define XML_ALERT_ATTR_PATH		"path"
 #  define XML_ALERT_ATTR_TIMEOUT	"timeout"
 #  define XML_ALERT_ATTR_TSTAMP_FORMAT	"timestamp-format"
 
 #  define XML_CIB_TAG_GENERATION_TUPPLE	"generation_tuple"
 
 #  define XML_ATTR_TRANSITION_MAGIC	"transition-magic"
 #  define XML_ATTR_TRANSITION_KEY	"transition-key"
 
 #  define XML_ATTR_TE_NOWAIT		"op_no_wait"
 #  define XML_ATTR_TE_TARGET_RC		"op_target_rc"
 #  define XML_TAG_TRANSIENT_NODEATTRS	"transient_attributes"
 
 //! \deprecated Do not use (will be removed in a future release)
 #  define XML_TAG_DIFF_ADDED		"diff-added"
 
 //! \deprecated Do not use (will be removed in a future release)
 #  define XML_TAG_DIFF_REMOVED		"diff-removed"
 
 #  define XML_ACL_TAG_USER		"acl_target"
 #  define XML_ACL_TAG_USERv1		"acl_user"
 #  define XML_ACL_TAG_GROUP		"acl_group"
 #  define XML_ACL_TAG_ROLE		"acl_role"
 #  define XML_ACL_TAG_PERMISSION	"acl_permission"
 #  define XML_ACL_TAG_ROLE_REF 		"role"
 #  define XML_ACL_TAG_ROLE_REFv1	"role_ref"
 #  define XML_ACL_ATTR_KIND		"kind"
 #  define XML_ACL_TAG_READ		"read"
 #  define XML_ACL_TAG_WRITE		"write"
 #  define XML_ACL_TAG_DENY		"deny"
 #  define XML_ACL_ATTR_REF		"reference"
 #  define XML_ACL_ATTR_REFv1		"ref"
 #  define XML_ACL_ATTR_TAG		"object-type"
 #  define XML_ACL_ATTR_TAGv1		"tag"
 #  define XML_ACL_ATTR_XPATH		"xpath"
 #  define XML_ACL_ATTR_ATTRIBUTE	"attribute"
 
 #  define XML_CIB_TAG_TICKETS		"tickets"
 #  define XML_CIB_TAG_TICKET_STATE	"ticket_state"
 
 #  define XML_CIB_TAG_TAGS   		"tags"
 #  define XML_CIB_TAG_TAG   		"tag"
 #  define XML_CIB_TAG_OBJ_REF 		"obj_ref"
 
 #  define XML_TAG_FENCING_TOPOLOGY      "fencing-topology"
 #  define XML_TAG_FENCING_LEVEL         "fencing-level"
 #  define XML_ATTR_STONITH_INDEX        "index"
 #  define XML_ATTR_STONITH_TARGET       "target"
 #  define XML_ATTR_STONITH_TARGET_VALUE     "target-value"
 #  define XML_ATTR_STONITH_TARGET_PATTERN   "target-pattern"
 #  define XML_ATTR_STONITH_TARGET_ATTRIBUTE "target-attribute"
 #  define XML_ATTR_STONITH_DEVICES      "devices"
 
 #  define XML_TAG_DIFF                  "diff"
 #  define XML_DIFF_VERSION              "version"
 #  define XML_DIFF_VSOURCE              "source"
 #  define XML_DIFF_VTARGET              "target"
 #  define XML_DIFF_CHANGE               "change"
 #  define XML_DIFF_LIST                 "change-list"
 #  define XML_DIFF_ATTR                 "change-attr"
 #  define XML_DIFF_RESULT               "change-result"
 #  define XML_DIFF_OP                   "operation"
 #  define XML_DIFF_PATH                 "path"
 #  define XML_DIFF_POSITION             "position"
 
 #  define ID(x) crm_element_value(x, PCMK_XA_ID)
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif
diff --git a/include/crm/msg_xml_compat.h b/include/crm/msg_xml_compat.h
index b44d2a21c3..c8e36c0381 100644
--- a/include/crm/msg_xml_compat.h
+++ b/include/crm/msg_xml_compat.h
@@ -1,320 +1,323 @@
 /*
  * Copyright 2004-2024 the Pacemaker project contributors
  *
  * The version control history for this file may have further details.
  *
  * This source code is licensed under the GNU Lesser General Public License
  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
  */
 
 #ifndef PCMK__CRM_MSG_XML_COMPAT__H
 #  define PCMK__CRM_MSG_XML_COMPAT__H
 
 #include <crm/common/agents.h>      // PCMK_STONITH_PROVIDES
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /**
  * \file
  * \brief Deprecated Pacemaker XML constants API
  * \ingroup core
  * \deprecated Do not include this header directly. The XML constants in this
  *             header, and the header itself, will be removed in a future
  *             release.
  */
 
 //! \deprecated Use PCMK_META_CLONE_MAX instead
 #define XML_RSC_ATTR_INCARNATION_MAX PCMK_META_CLONE_MAX
 
 //! \deprecated Use PCMK_META_CLONE_MIN instead
 #define XML_RSC_ATTR_INCARNATION_MIN PCMK_META_CLONE_MIN
 
 //! \deprecated Use PCMK_META_CLONE_NODE_MAX instead
 #define XML_RSC_ATTR_INCARNATION_NODEMAX PCMK_META_CLONE_NODE_MAX
 
 //! \deprecated Use PCMK_META_PROMOTED_MAX instead
 #define XML_RSC_ATTR_PROMOTED_MAX PCMK_META_PROMOTED_MAX
 
 //! \deprecated Use PCMK_META_PROMOTED_NODE_MAX instead
 #define XML_RSC_ATTR_PROMOTED_NODEMAX PCMK_META_PROMOTED_NODE_MAX
 
 //! \deprecated Use PCMK_STONITH_PROVIDES instead
 #define XML_RSC_ATTR_PROVIDES PCMK_STONITH_PROVIDES
 
 //! \deprecated Use PCMK_XE_PROMOTABLE_LEGACY instead
 #define XML_CIB_TAG_MASTER PCMK_XE_PROMOTABLE_LEGACY
 
 //! \deprecated Do not use
 #define PCMK_XA_PROMOTED_MAX_LEGACY "master-max"
 
 //! \deprecated Do not use
 #define PCMK_XE_PROMOTED_MAX_LEGACY PCMK_XA_PROMOTED_MAX_LEGACY
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_MASTER_MAX PCMK_XA_PROMOTED_MAX_LEGACY
 
 //! \deprecated Do not use
 #define PCMK_XA_PROMOTED_NODE_MAX_LEGACY "master-node-max"
 
 //! \deprecated Do not use
 #define PCMK_XE_PROMOTED_NODE_MAX_LEGACY PCMK_XA_PROMOTED_NODE_MAX_LEGACY
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_MASTER_NODEMAX PCMK_XA_PROMOTED_NODE_MAX_LEGACY
 
 //! \deprecated Use PCMK_META_MIGRATION_THRESHOLD instead
 #define XML_RSC_ATTR_FAIL_STICKINESS PCMK_META_MIGRATION_THRESHOLD
 
 //! \deprecated Use PCMK_META_FAILURE_TIMEOUT instead
 #define XML_RSC_ATTR_FAIL_TIMEOUT PCMK_META_FAILURE_TIMEOUT
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_ATTR_RA_VERSION "ra-version"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_TAG_FRAGMENT "cib_fragment"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_TAG_RSC_VER_ATTRS "rsc_versioned_attrs"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_TAG_OP_VER_ATTRS "op_versioned_attrs"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_TAG_OP_VER_META "op_versioned_meta"
 
 //! \deprecated Use \p PCMK_XA_ID instead
 #define XML_ATTR_UUID "id"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_ATTR_VERBOSE "verbose"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_CIB_TAG_DOMAINS "domains"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_CIB_ATTR_SOURCE "source"
 
 //! \deprecated Do not use
 #define XML_NODE_EXPECTED "expected"
 
 //! \deprecated Do not use
 #define XML_NODE_IN_CLUSTER "in_ccm"
 
 //! \deprecated Do not use
 #define XML_NODE_IS_PEER "crmd"
 
 //! \deprecated Do not use
 #define XML_NODE_JOIN_STATE "join"
 
 //! \deprecated Do not use (will be removed in a future release)
 #define XML_RSC_OP_LAST_RUN "last-run"
 
 //! \deprecated Use name member directly
 #define TYPE(x) (((x) == NULL)? NULL : (const char *) ((x)->name))
 
 //! \deprecated Use \c PCMK_OPT_CLUSTER_RECHECK_INTERVAL instead
 #define XML_CONFIG_ATTR_RECHECK PCMK_OPT_CLUSTER_RECHECK_INTERVAL
 
 //! \deprecated Use \c PCMK_OPT_DC_DEADTIME instead
 #define XML_CONFIG_ATTR_DC_DEADTIME PCMK_OPT_DC_DEADTIME
 
 //! \deprecated Use \c PCMK_OPT_ELECTION_TIMEOUT instead
 #define XML_CONFIG_ATTR_ELECTION_FAIL PCMK_OPT_ELECTION_TIMEOUT
 
 //! \deprecated Use \c PCMK_OPT_FENCE_REACTION instead
 #define XML_CONFIG_ATTR_FENCE_REACTION PCMK_OPT_FENCE_REACTION
 
 //! \deprecated Use \c PCMK_OPT_HAVE_WATCHDOG instead
 #define XML_ATTR_HAVE_WATCHDOG PCMK_OPT_HAVE_WATCHDOG
 
 //! \deprecated Use \c PCMK_OPT_NODE_PENDING_TIMEOUT instead
 #define XML_CONFIG_ATTR_NODE_PENDING_TIMEOUT PCMK_OPT_NODE_PENDING_TIMEOUT
 
 //! \deprecated Use \c PCMK_OPT_PRIORITY_FENCING_DELAY instead
 #define XML_CONFIG_ATTR_PRIORITY_FENCING_DELAY PCMK_OPT_PRIORITY_FENCING_DELAY
 
 //! \deprecated Use \c PCMK_OPT_SHUTDOWN_ESCALATION instead
 #define XML_CONFIG_ATTR_FORCE_QUIT PCMK_OPT_SHUTDOWN_ESCALATION
 
 //! \deprecated Use \c PCMK_OPT_SHUTDOWN_LOCK instead
 #define XML_CONFIG_ATTR_SHUTDOWN_LOCK PCMK_OPT_SHUTDOWN_LOCK
 
 //! \deprecated Use \c PCMK_OPT_SHUTDOWN_LOCK_LIMIT instead
 #define XML_CONFIG_ATTR_SHUTDOWN_LOCK_LIMIT PCMK_OPT_SHUTDOWN_LOCK_LIMIT
 
 //! \deprecated Use \c PCMK_XA_CRM_FEATURE_SET instead
 #define XML_ATTR_CRM_VERSION PCMK_XA_CRM_FEATURE_SET
 
 //! \deprecated Do not use
 #define XML_ATTR_DIGEST "digest"
 
 //! \deprecated Use \c PCMK_XA_VALIDATE_WITH instead
 #define XML_ATTR_VALIDATION PCMK_XA_VALIDATE_WITH
 
 //! \deprecated Use \c PCMK_XA_NO_QUORUM_PANIC instead
 #define XML_ATTR_QUORUM_PANIC PCMK_XA_NO_QUORUM_PANIC
 
 //! \deprecated Use \c PCMK_XA_HAVE_QUORUM instead
 #define XML_ATTR_HAVE_QUORUM PCMK_XA_HAVE_QUORUM
 
 //! \deprecated Use \c PCMK_XA_EPOCH instead
 #define XML_ATTR_GENERATION PCMK_XA_EPOCH
 
 //! \deprecated Use \c PCMK_XA_ADMIN_EPOCH instead
 #define XML_ATTR_GENERATION_ADMIN PCMK_XA_ADMIN_EPOCH
 
 //! \deprecated Use \c PCMK_XA_NUM_UPDATES instead
 #define XML_ATTR_NUMUPDATES PCMK_XA_NUM_UPDATES
 
 //! \deprecated Use \c PCMK_XA_CRM_DEBUG_ORIGIN instead
 #define XML_ATTR_ORIGIN PCMK_XA_CRM_DEBUG_ORIGIN
 
 //! \deprecated Use \c PCMK_XA_CRM_TIMESTAMP instead
 #define XML_ATTR_TSTAMP PCMK_XA_CRM_TIMESTAMP
 
 //! \deprecated Use \c PCMK_XA_CIB_LAST_WRITTEN instead
 #define XML_CIB_ATTR_WRITTEN PCMK_XA_CIB_LAST_WRITTEN
 
 //! \deprecated Use \c PCMK_XA_VERSION instead
 #define XML_ATTR_VERSION PCMK_XA_VERSION
 
 //! \deprecated Use \c PCMK_XA_DESCRIPTION instead
 #define XML_ATTR_DESC PCMK_XA_DESCRIPTION
 
 //! \deprecated Use \c PCMK_XA_ID instead
 #define XML_ATTR_ID PCMK_XA_ID
 
 //! \deprecated Use \c PCMK_XA_ID instead
 #define XML_FAILCIB_ATTR_ID PCMK_XA_ID
 
 //! \deprecated Use \c PCMK_META_CONTAINER_ATTR_TARGET instead
 #define XML_RSC_ATTR_TARGET PCMK_META_CONTAINER_ATTR_TARGET
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_RESTART "restart-type"
 
 //! \deprecated Use \c PCMK_META_ORDERED instead
 #define XML_RSC_ATTR_ORDERED PCMK_META_ORDERED
 
 //! \deprecated Use \c PCMK_META_INTERLEAVE instead
 #define XML_RSC_ATTR_INTERLEAVE PCMK_META_INTERLEAVE
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_INCARNATION "clone"
 
 //! \deprecated Use \c PCMK_META_PROMOTABLE instead
 #define XML_RSC_ATTR_PROMOTABLE PCMK_META_PROMOTABLE
 
 //! \deprecated Use \c PCMK_META_IS_MANAGED instead
 #define XML_RSC_ATTR_MANAGED PCMK_META_IS_MANAGED
 
 //! \deprecated Use \c PCMK_META_TARGET_ROLE instead
 #define XML_RSC_ATTR_TARGET_ROLE PCMK_META_TARGET_ROLE
 
 //! \deprecated Use \c PCMK_META_GLOBALLY_UNIQUE instead
 #define XML_RSC_ATTR_UNIQUE PCMK_META_GLOBALLY_UNIQUE
 
 //! \deprecated Use \c PCMK_META_NOTIFY instead
 #define XML_RSC_ATTR_NOTIFY PCMK_META_NOTIFY
 
 //! \deprecated Use \c PCMK_META_RESOURCE_STICKINESS instead
 #define XML_RSC_ATTR_STICKINESS PCMK_META_RESOURCE_STICKINESS
 
 //! \deprecated Use \c PCMK_META_MULTIPLE_ACTIVE instead
 #define XML_RSC_ATTR_MULTIPLE PCMK_META_MULTIPLE_ACTIVE
 
 //! \deprecated Use \c PCMK_META_REQUIRES instead
 #define XML_RSC_ATTR_REQUIRES PCMK_META_REQUIRES
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_CONTAINER "container"
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_INTERNAL_RSC "internal_rsc"
 
 //! \deprecated Use \c PCMK_META_MAINTENANCE instead
 #define XML_RSC_ATTR_MAINTENANCE PCMK_META_MAINTENANCE
 
 //! \deprecated Use \c PCMK_META_REMOTE_NODE instead
 #define XML_RSC_ATTR_REMOTE_NODE PCMK_META_REMOTE_NODE
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_CLEAR_OP "clear_failure_op"
 
 //! \deprecated Do not use
 #define XML_RSC_ATTR_CLEAR_INTERVAL "clear_failure_interval"
 
 //! \deprecated Use \c PCMK_META_CRITICAL instead
 #define XML_RSC_ATTR_CRITICAL PCMK_META_CRITICAL
 
 //! \deprecated Use \c PCMK_META_ALLOW_MIGRATE instead
 #define XML_OP_ATTR_ALLOW_MIGRATE "allow-migrate"
 
 //! \deprecated Use \c XML_BOOLEAN_TRUE instead
 #define XML_BOOLEAN_YES XML_BOOLEAN_TRUE
 
 //! \deprecated Use \c XML_BOOLEAN_FALSE instead
 #define XML_BOOLEAN_NO XML_BOOLEAN_FALSE
 
 //! \deprecated Use \c PCMK_REMOTE_RA_ADDR instead
 #define XML_RSC_ATTR_REMOTE_RA_ADDR "addr"
 
 //! \deprecated Use \c PCMK_REMOTE_RA_SERVER instead
 #define XML_RSC_ATTR_REMOTE_RA_SERVER "server"
 
 //! \deprecated Use \c PCMK_REMOTE_RA_PORT instead
 #define XML_RSC_ATTR_REMOTE_RA_PORT "port"
 
 //! \deprecated Use \c PCMK_REMOTE_RA_RECONNECT_INTERVAL instead
 #define XML_REMOTE_ATTR_RECONNECT_INTERVAL "reconnect_interval"
 
 //! \deprecated Use \c PCMK_XA_NAME instead
 #define XML_ATTR_NAME PCMK_XA_NAME
 
 //! \deprecated Use \c PCMK_XA_NAME instead
 #define XML_NVPAIR_ATTR_NAME PCMK_XA_NAME
 
 //! \deprecated Use \c PCMK_XA_VALUE instead
 #define XML_EXPR_ATTR_VALUE PCMK_XA_VALUE
 
 //! \deprecated Use \c PCMK_XA_VALUE instead
 #define XML_NVPAIR_ATTR_VALUE PCMK_XA_VALUE
 
 //! \deprecated Use \c PCMK_XA_VALUE instead
 #define XML_ALERT_ATTR_REC_VALUE PCMK_XA_VALUE
 
 //! \deprecated Use \c PCMK_XA_ID_REF instead
 #define XML_ATTR_IDREF PCMK_XA_ID_REF
 
 //! \deprecated Do not use
 #define XML_ATTR_ID_LONG "long-id"
 
 //! \deprecated Use \c PCMK_XA_TYPE instead
 #define XML_ATTR_TYPE PCMK_XA_TYPE
 
 //! \deprecated Use \c PCMK_XA_TYPE instead
 #define XML_EXPR_ATTR_TYPE PCMK_XA_TYPE
 
 //! \deprecated Use \c PCMK_XA_PROVIDER instead
 #define XML_AGENT_ATTR_PROVIDER PCMK_XA_PROVIDER
 
 //! \deprecated Use \c PCMK_XA_CLASS instead
 #define XML_AGENT_ATTR_CLASS PCMK_XA_CLASS
 
 //! \deprecated Use \c PCMK_XE_OP instead
 #define XML_ATTR_OP PCMK_XE_OP
 
 //! \deprecated Use \c PCMK_XA_DC_UUID instead
 #define XML_ATTR_DC_UUID PCMK_XA_DC_UUID
 
 //! \deprecated Use \c PCMK_XA_UPDATE_ORIGIN instead
 #define XML_ATTR_UPDATE_ORIG PCMK_XA_UPDATE_ORIGIN
 
+//! \deprecated Use \c PCMK_XA_UPDATE_CLIENT instead
+#define XML_ATTR_UPDATE_CLIENT PCMK_XA_UPDATE_CLIENT
+
 #ifdef __cplusplus
 }
 #endif
 
 #endif // PCMK__CRM_MSG_XML_COMPAT__H