This cluster provides an interface for passing messages to be presented by a device.

MessagesCluster supports optional features that you can enable with the MessagesCluster.with() factory method.

MatterSpecification.v13.Cluster § 1.16

interface Cluster {
    attributes: Merge<{
        activeMessageIDs: Attribute<Uint8Array[], any>;
        messages: FabricScopedAttribute<TypeFromFields<{
            duration: FieldType<null | number | bigint>;
            fabricIndex: FieldType<FabricIndex>;
            messageControl: FieldType<TypeFromPartialBitSchema<{
                confirmationRequired: BitFlag;
                messageConfirmed: BitFlag;
                messageProtected: BitFlag;
                replyMessage: BitFlag;
                responseRequired: BitFlag;
            }>>;
            messageId: FieldType<Uint8Array>;
            messageText: FieldType<string>;
            priority: FieldType<Messages.MessagePriority>;
            responses: OptionalFieldType<TypeFromFields<{
                label: FieldType<(...)>;
                messageResponseId: FieldType<(...)>;
            }>[]>;
            startTime: FieldType<null | number>;
        }>[], any>;
    }, GlobalAttributes<{
        confirmationReply: BitFlag;
        confirmationResponse: BitFlag;
        protectedMessages: BitFlag;
        receivedConfirmation: BitFlag;
    }>>;
    base: undefined;
    commands: {
        cancelMessagesRequest: Command<TypeFromFields<{
            messageIDs: FieldType<Uint8Array[]>;
        }>, void, any>;
        presentMessagesRequest: Command<TypeFromFields<{
            duration: FieldType<null | number | bigint>;
            messageControl: FieldType<TypeFromPartialBitSchema<{
                confirmationRequired: BitFlag;
                messageConfirmed: BitFlag;
                messageProtected: BitFlag;
                replyMessage: BitFlag;
                responseRequired: BitFlag;
            }>>;
            messageId: FieldType<Uint8Array>;
            messageText: FieldType<string>;
            priority: FieldType<Messages.MessagePriority>;
            responses: OptionalFieldType<TypeFromFields<{
                label: FieldType<string>;
                messageResponseId: FieldType<number>;
            }>[]>;
            startTime: FieldType<null | number>;
        }>, void, any>;
    };
    events: {
        messageComplete: Event<TypeFromFields<{
            fabricIndex: FieldType<FabricIndex>;
            futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
            messageId: FieldType<Uint8Array>;
            reply: OptionalFieldType<null | string>;
            responseId: OptionalFieldType<null | number>;
        }>, any>;
        messagePresented: Event<TypeFromFields<{
            fabricIndex: FieldType<FabricIndex>;
            messageId: FieldType<Uint8Array>;
        }>, any>;
        messageQueued: Event<TypeFromFields<{
            fabricIndex: FieldType<FabricIndex>;
            messageId: FieldType<Uint8Array>;
        }>, any>;
    };
    extensions: readonly [{
        component: false;
        flags: {
            confirmationResponse: true;
            receivedConfirmation: false;
        };
    }, {
        component: false;
        flags: {
            confirmationReply: true;
            receivedConfirmation: false;
        };
    }];
    features: {
        confirmationReply: BitFlag;
        confirmationResponse: BitFlag;
        protectedMessages: BitFlag;
        receivedConfirmation: BitFlag;
    };
    id: Branded<151, "ClusterId">;
    name: "Messages";
    revision: 3;
    supportedFeatures: {};
    unknown: false;
    alter<const AlterationsT>(alterations: AlterationsT): WithAlterations<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, AlterationsT>;
    enable<const FlagsT>(flags: FlagsT): WithFlags<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, FlagsT>;
    set<const ValuesT>(values: ValuesT): WithValues<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, ValuesT>;
    with<const SelectionT>(...selection: SelectionT): Of<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, SelectionT>;
}

Hierarchy (view full)

Properties

attributes: Merge<{
    activeMessageIDs: Attribute<Uint8Array[], any>;
    messages: FabricScopedAttribute<TypeFromFields<{
        duration: FieldType<null | number | bigint>;
        fabricIndex: FieldType<FabricIndex>;
        messageControl: FieldType<TypeFromPartialBitSchema<{
            confirmationRequired: BitFlag;
            messageConfirmed: BitFlag;
            messageProtected: BitFlag;
            replyMessage: BitFlag;
            responseRequired: BitFlag;
        }>>;
        messageId: FieldType<Uint8Array>;
        messageText: FieldType<string>;
        priority: FieldType<Messages.MessagePriority>;
        responses: OptionalFieldType<TypeFromFields<{
            label: FieldType<(...)>;
            messageResponseId: FieldType<(...)>;
        }>[]>;
        startTime: FieldType<null | number>;
    }>[], any>;
}, GlobalAttributes<{
    confirmationReply: BitFlag;
    confirmationResponse: BitFlag;
    protectedMessages: BitFlag;
    receivedConfirmation: BitFlag;
}>>

Type declaration

  • ReadonlyactiveMessageIDs: Attribute<Uint8Array[], any>

    Indicates a list of the MessageIDs of the Messages currently being presented. If this list is empty, no messages are currently being presented.

    This list shall NOT be fabric-scoped; it shall contain MessageIDs for all Messages being presented, no matter what fabric the client that queued them is on.

    MatterSpecification.v13.Cluster § 1.16.6.2

  • Readonlymessages: FabricScopedAttribute<TypeFromFields<{
        duration: FieldType<null | number | bigint>;
        fabricIndex: FieldType<FabricIndex>;
        messageControl: FieldType<TypeFromPartialBitSchema<{
            confirmationRequired: BitFlag;
            messageConfirmed: BitFlag;
            messageProtected: BitFlag;
            replyMessage: BitFlag;
            responseRequired: BitFlag;
        }>>;
        messageId: FieldType<Uint8Array>;
        messageText: FieldType<string>;
        priority: FieldType<Messages.MessagePriority>;
        responses: OptionalFieldType<TypeFromFields<{
            label: FieldType<(...)>;
            messageResponseId: FieldType<(...)>;
        }>[]>;
        startTime: FieldType<null | number>;
    }>[], any>

    Indicates a list of queued messages.

    In addition to filtering based upon fabric, to preserve user privacy, the server may further limit the set of messages returned in a read request. At minimum, the server shall return to a client those messages that the client itself created/submitted.

    MatterSpecification.v13.Cluster § 1.16.6.1

base: undefined
commands: {
    cancelMessagesRequest: Command<TypeFromFields<{
        messageIDs: FieldType<Uint8Array[]>;
    }>, void, any>;
    presentMessagesRequest: Command<TypeFromFields<{
        duration: FieldType<null | number | bigint>;
        messageControl: FieldType<TypeFromPartialBitSchema<{
            confirmationRequired: BitFlag;
            messageConfirmed: BitFlag;
            messageProtected: BitFlag;
            replyMessage: BitFlag;
            responseRequired: BitFlag;
        }>>;
        messageId: FieldType<Uint8Array>;
        messageText: FieldType<string>;
        priority: FieldType<Messages.MessagePriority>;
        responses: OptionalFieldType<TypeFromFields<{
            label: FieldType<string>;
            messageResponseId: FieldType<number>;
        }>[]>;
        startTime: FieldType<null | number>;
    }>, void, any>;
}

Type declaration

  • ReadonlycancelMessagesRequest: Command<TypeFromFields<{
        messageIDs: FieldType<Uint8Array[]>;
    }>, void, any>

    MatterSpecification.v13.Cluster § 1.16.7.2

  • ReadonlypresentMessagesRequest: Command<TypeFromFields<{
        duration: FieldType<null | number | bigint>;
        messageControl: FieldType<TypeFromPartialBitSchema<{
            confirmationRequired: BitFlag;
            messageConfirmed: BitFlag;
            messageProtected: BitFlag;
            replyMessage: BitFlag;
            responseRequired: BitFlag;
        }>>;
        messageId: FieldType<Uint8Array>;
        messageText: FieldType<string>;
        priority: FieldType<Messages.MessagePriority>;
        responses: OptionalFieldType<TypeFromFields<{
            label: FieldType<string>;
            messageResponseId: FieldType<number>;
        }>[]>;
        startTime: FieldType<null | number>;
    }>, void, any>

    Upon receipt, this shall cause the message in the passed fields to be appended to the Messages attribute.

    If appending the message would cause the number of messages to be greater than the capacity of the list, the device shall NOT append any message to Messages, and shall return a status code of RESOURCE_EXHAUSTED.

    When displaying a message in response to this command, an indication (ex. visual) of the origin node of the command shall be provided. This could be in the form of a friendly name label which uniquely identifies the node to the user. This friendly name label is typically assigned by the Matter Admin at the time of commissioning and, when it’s a device, is often editable by the user. It might be a combination of a company name and friendly name, for example, ”Acme” or “Acme Streaming Service on Alice’s Phone”.

    NOTE

    It is currently not specified where the friendly name label can be found on the node, meaning that clients SHOULD NOT rely on a certain method they happen to observe in a particular server instance, since other instances could employ a different method.

    The device SHOULD make it possible for the user to view which nodes have access to this cluster and to individually remove privileges for each node.

    MatterSpecification.v13.Cluster § 1.16.7.1

events: {
    messageComplete: Event<TypeFromFields<{
        fabricIndex: FieldType<FabricIndex>;
        futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
        messageId: FieldType<Uint8Array>;
        reply: OptionalFieldType<null | string>;
        responseId: OptionalFieldType<null | number>;
    }>, any>;
    messagePresented: Event<TypeFromFields<{
        fabricIndex: FieldType<FabricIndex>;
        messageId: FieldType<Uint8Array>;
    }>, any>;
    messageQueued: Event<TypeFromFields<{
        fabricIndex: FieldType<FabricIndex>;
        messageId: FieldType<Uint8Array>;
    }>, any>;
}

Type declaration

extensions: readonly [{
    component: false;
    flags: {
        confirmationResponse: true;
        receivedConfirmation: false;
    };
}, {
    component: false;
    flags: {
        confirmationReply: true;
        receivedConfirmation: false;
    };
}]
features: {
    confirmationReply: BitFlag;
    confirmationResponse: BitFlag;
    protectedMessages: BitFlag;
    receivedConfirmation: BitFlag;
}

Type declaration

  • ReadonlyconfirmationReply: BitFlag

    ConfirmationReply

    This feature shall indicate that the device is capable of collecting a free-form text response to a message.

    MatterSpecification.v13.Cluster § 1.16.4.3

  • ReadonlyconfirmationResponse: BitFlag

    ConfirmationResponse

    This feature shall indicate that the device is capable of presenting a list of responses to the user and recording the user’s choice of response.

    MatterSpecification.v13.Cluster § 1.16.4.2

  • ReadonlyprotectedMessages: BitFlag

    ProtectedMessages

    This feature shall indicate that the device is capable of requiring the user to authenticate before viewing a message; e.g. entering a PIN or password before viewing a message with billing information.

    MatterSpecification.v13.Cluster § 1.16.4.4

  • ReadonlyreceivedConfirmation: BitFlag

    ReceivedConfirmation

    This feature shall indicate that the device can get confirmation from a user that the message was received.

    MatterSpecification.v13.Cluster § 1.16.4.1

id: Branded<151, "ClusterId">
name
revision
supportedFeatures: {}
unknown

Methods

  • Modify elements using ElementModifier.alter.

    Type Parameters

    • const AlterationsT extends Alterations<Of<{
          attributes: {
              activeMessageIDs: Attribute<Uint8Array[], any>;
              messages: FabricScopedAttribute<TypeFromFields<{
                  duration: FieldType<null | number | bigint>;
                  fabricIndex: FieldType<FabricIndex>;
                  messageControl: FieldType<TypeFromPartialBitSchema<{
                      confirmationRequired: ...;
                      messageConfirmed: ...;
                      messageProtected: ...;
                      replyMessage: ...;
                      responseRequired: ...;
                  }>>;
                  messageId: FieldType<Uint8Array>;
                  messageText: FieldType<string>;
                  priority: FieldType<Messages.MessagePriority>;
                  responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                  startTime: FieldType<null | number>;
              }>[], any>;
          };
          commands: {
              cancelMessagesRequest: Command<TypeFromFields<{
                  messageIDs: FieldType<Uint8Array[]>;
              }>, void, any>;
              presentMessagesRequest: Command<TypeFromFields<{
                  duration: FieldType<null | number | bigint>;
                  messageControl: FieldType<TypeFromPartialBitSchema<{
                      confirmationRequired: BitFlag;
                      messageConfirmed: BitFlag;
                      messageProtected: BitFlag;
                      replyMessage: BitFlag;
                      responseRequired: BitFlag;
                  }>>;
                  messageId: FieldType<Uint8Array>;
                  messageText: FieldType<string>;
                  priority: FieldType<Messages.MessagePriority>;
                  responses: OptionalFieldType<TypeFromFields<{
                      label: ...;
                      messageResponseId: ...;
                  }>[]>;
                  startTime: FieldType<null | number>;
              }>, void, any>;
          };
          events: {
              messageComplete: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                  messageId: FieldType<Uint8Array>;
                  reply: OptionalFieldType<null | string>;
                  responseId: OptionalFieldType<null | number>;
              }>, any>;
              messagePresented: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  messageId: FieldType<Uint8Array>;
              }>, any>;
              messageQueued: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  messageId: FieldType<Uint8Array>;
              }>, any>;
          };
          extensions: readonly [{
              component: false;
              flags: {
                  confirmationResponse: true;
                  receivedConfirmation: false;
              };
          }, {
              component: false;
              flags: {
                  confirmationReply: true;
                  receivedConfirmation: false;
              };
          }];
          features: {
              confirmationReply: BitFlag;
              confirmationResponse: BitFlag;
              protectedMessages: BitFlag;
              receivedConfirmation: BitFlag;
          };
          id: 151;
          name: "Messages";
          revision: 3;
      }>>

    Parameters

    Returns WithAlterations<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, AlterationsT>

  • Modify elements using ElementModifier.enable.

    Type Parameters

    • const FlagsT extends ElementFlags<Of<{
          attributes: {
              activeMessageIDs: Attribute<Uint8Array[], any>;
              messages: FabricScopedAttribute<TypeFromFields<{
                  duration: FieldType<null | number | bigint>;
                  fabricIndex: FieldType<FabricIndex>;
                  messageControl: FieldType<TypeFromPartialBitSchema<{
                      confirmationRequired: ...;
                      messageConfirmed: ...;
                      messageProtected: ...;
                      replyMessage: ...;
                      responseRequired: ...;
                  }>>;
                  messageId: FieldType<Uint8Array>;
                  messageText: FieldType<string>;
                  priority: FieldType<Messages.MessagePriority>;
                  responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                  startTime: FieldType<null | number>;
              }>[], any>;
          };
          commands: {
              cancelMessagesRequest: Command<TypeFromFields<{
                  messageIDs: FieldType<Uint8Array[]>;
              }>, void, any>;
              presentMessagesRequest: Command<TypeFromFields<{
                  duration: FieldType<null | number | bigint>;
                  messageControl: FieldType<TypeFromPartialBitSchema<{
                      confirmationRequired: BitFlag;
                      messageConfirmed: BitFlag;
                      messageProtected: BitFlag;
                      replyMessage: BitFlag;
                      responseRequired: BitFlag;
                  }>>;
                  messageId: FieldType<Uint8Array>;
                  messageText: FieldType<string>;
                  priority: FieldType<Messages.MessagePriority>;
                  responses: OptionalFieldType<TypeFromFields<{
                      label: ...;
                      messageResponseId: ...;
                  }>[]>;
                  startTime: FieldType<null | number>;
              }>, void, any>;
          };
          events: {
              messageComplete: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                  messageId: FieldType<Uint8Array>;
                  reply: OptionalFieldType<null | string>;
                  responseId: OptionalFieldType<null | number>;
              }>, any>;
              messagePresented: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  messageId: FieldType<Uint8Array>;
              }>, any>;
              messageQueued: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  messageId: FieldType<Uint8Array>;
              }>, any>;
          };
          extensions: readonly [{
              component: false;
              flags: {
                  confirmationResponse: true;
                  receivedConfirmation: false;
              };
          }, {
              component: false;
              flags: {
                  confirmationReply: true;
                  receivedConfirmation: false;
              };
          }];
          features: {
              confirmationReply: BitFlag;
              confirmationResponse: BitFlag;
              protectedMessages: BitFlag;
              receivedConfirmation: BitFlag;
          };
          id: 151;
          name: "Messages";
          revision: 3;
      }>>

    Parameters

    Returns WithFlags<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, FlagsT>

  • Modify elements using ElementModifier.set.

    Type Parameters

    • const ValuesT extends {
          activeMessageIDs: {}[];
          messages: {
              duration: null | number | bigint;
              fabricIndex: number;
              messageControl: {
                  confirmationRequired?: boolean;
                  messageConfirmed?: boolean;
                  messageProtected?: boolean;
                  replyMessage?: boolean;
                  responseRequired?: boolean;
              };
              messageId: {};
              messageText: string;
              priority: number;
              responses?: {
                  label: string;
                  messageResponseId: number;
              }[];
              startTime: null | number;
          }[];
      }

    Parameters

    Returns WithValues<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, ValuesT>

  • Select features using ClusterComposer.compose.

    Type Parameters

    • const SelectionT extends FeatureSelection<Of<{
          attributes: {
              activeMessageIDs: Attribute<Uint8Array[], any>;
              messages: FabricScopedAttribute<TypeFromFields<{
                  duration: FieldType<null | number | bigint>;
                  fabricIndex: FieldType<FabricIndex>;
                  messageControl: FieldType<TypeFromPartialBitSchema<{
                      confirmationRequired: ...;
                      messageConfirmed: ...;
                      messageProtected: ...;
                      replyMessage: ...;
                      responseRequired: ...;
                  }>>;
                  messageId: FieldType<Uint8Array>;
                  messageText: FieldType<string>;
                  priority: FieldType<Messages.MessagePriority>;
                  responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                  startTime: FieldType<null | number>;
              }>[], any>;
          };
          commands: {
              cancelMessagesRequest: Command<TypeFromFields<{
                  messageIDs: FieldType<Uint8Array[]>;
              }>, void, any>;
              presentMessagesRequest: Command<TypeFromFields<{
                  duration: FieldType<null | number | bigint>;
                  messageControl: FieldType<TypeFromPartialBitSchema<{
                      confirmationRequired: BitFlag;
                      messageConfirmed: BitFlag;
                      messageProtected: BitFlag;
                      replyMessage: BitFlag;
                      responseRequired: BitFlag;
                  }>>;
                  messageId: FieldType<Uint8Array>;
                  messageText: FieldType<string>;
                  priority: FieldType<Messages.MessagePriority>;
                  responses: OptionalFieldType<TypeFromFields<{
                      label: ...;
                      messageResponseId: ...;
                  }>[]>;
                  startTime: FieldType<null | number>;
              }>, void, any>;
          };
          events: {
              messageComplete: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                  messageId: FieldType<Uint8Array>;
                  reply: OptionalFieldType<null | string>;
                  responseId: OptionalFieldType<null | number>;
              }>, any>;
              messagePresented: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  messageId: FieldType<Uint8Array>;
              }>, any>;
              messageQueued: Event<TypeFromFields<{
                  fabricIndex: FieldType<FabricIndex>;
                  messageId: FieldType<Uint8Array>;
              }>, any>;
          };
          extensions: readonly [{
              component: false;
              flags: {
                  confirmationResponse: true;
                  receivedConfirmation: false;
              };
          }, {
              component: false;
              flags: {
                  confirmationReply: true;
                  receivedConfirmation: false;
              };
          }];
          features: {
              confirmationReply: BitFlag;
              confirmationResponse: BitFlag;
              protectedMessages: BitFlag;
              receivedConfirmation: BitFlag;
          };
          id: 151;
          name: "Messages";
          revision: 3;
      }>>

    Parameters

    Returns Of<Of<{
        attributes: {
            activeMessageIDs: Attribute<Uint8Array[], any>;
            messages: FabricScopedAttribute<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                fabricIndex: FieldType<FabricIndex>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: ...;
                    messageConfirmed: ...;
                    messageProtected: ...;
                    replyMessage: ...;
                    responseRequired: ...;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<(...)>[]>;
                startTime: FieldType<null | number>;
            }>[], any>;
        };
        commands: {
            cancelMessagesRequest: Command<TypeFromFields<{
                messageIDs: FieldType<Uint8Array[]>;
            }>, void, any>;
            presentMessagesRequest: Command<TypeFromFields<{
                duration: FieldType<null | number | bigint>;
                messageControl: FieldType<TypeFromPartialBitSchema<{
                    confirmationRequired: BitFlag;
                    messageConfirmed: BitFlag;
                    messageProtected: BitFlag;
                    replyMessage: BitFlag;
                    responseRequired: BitFlag;
                }>>;
                messageId: FieldType<Uint8Array>;
                messageText: FieldType<string>;
                priority: FieldType<Messages.MessagePriority>;
                responses: OptionalFieldType<TypeFromFields<{
                    label: ...;
                    messageResponseId: ...;
                }>[]>;
                startTime: FieldType<null | number>;
            }>, void, any>;
        };
        events: {
            messageComplete: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                futureMessagesPreference: FieldType<null | Messages.FutureMessagePreference>;
                messageId: FieldType<Uint8Array>;
                reply: OptionalFieldType<null | string>;
                responseId: OptionalFieldType<null | number>;
            }>, any>;
            messagePresented: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
            messageQueued: Event<TypeFromFields<{
                fabricIndex: FieldType<FabricIndex>;
                messageId: FieldType<Uint8Array>;
            }>, any>;
        };
        extensions: readonly [{
            component: false;
            flags: {
                confirmationResponse: true;
                receivedConfirmation: false;
            };
        }, {
            component: false;
            flags: {
                confirmationReply: true;
                receivedConfirmation: false;
            };
        }];
        features: {
            confirmationReply: BitFlag;
            confirmationResponse: BitFlag;
            protectedMessages: BitFlag;
            receivedConfirmation: BitFlag;
        };
        id: 151;
        name: "Messages";
        revision: 3;
    }>, SelectionT>