1 /*
2 * Copyright 2004-2023 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8 */
9
10 #ifndef PCMK__CRM_COMMON_TICKETS__H
11 # define PCMK__CRM_COMMON_TICKETS__H
12
13 #include <sys/types.h> // time_t
14 #include <glib.h> // gboolean, GHashTable
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
20 /*!
21 * \file
22 * \brief Scheduler API for tickets
23 * \ingroup core
24 */
25
26 //! Ticket constraint object
27 typedef struct pe_ticket_s {
28 char *id; //!< XML ID of ticket constraint or state
29 gboolean granted; //!< Whether cluster has been granted the ticket
30 time_t last_granted; //!< When cluster was last granted the ticket
31 gboolean standby; //!< Whether ticket is temporarily suspended
32 GHashTable *state; //!< XML attributes from ticket state
33 } pcmk_ticket_t;
34
35 #ifdef __cplusplus
36 }
37 #endif
38
39 #endif // PCMK__CRM_COMMON_TICKETS__H