--- about: description: Nimbus Feature Manifest for Android kotlin: package: mozilla.components.service.nimbus class: .messaging.FxNimbusMessaging channels: - release - debug features: nimbus-system: description: | Configuration of the Nimbus System in Android. variables: refresh-interval-foreground: description: | The minimum interval in minutes between fetching experiment recipes in the foreground. type: Int default: 60 # 1 hour messaging: description: | The in-app messaging system. allow-coenrollment: true variables: messages: description: A growable collection of messages type: Map default: {} triggers: description: > A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression. type: Map default: {} styles: description: > A map of styles to configure message appearance. type: Map default: {} actions: type: Map description: A growable map of action URLs. default: {} on-control: type: ControlMessageBehavior description: What should be displayed when a control message is selected. default: show-next-message notification-config: description: Configuration of the notification worker for all notification messages. type: NotificationConfig default: {} message-under-experiment: description: Deprecated in favor of `MessageData#experiment`. This will be removed in future releases. type: Option default: null defaults: objects: MessageData: description: > An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action. fields: action: type: Text description: > A URL of a page or a deeplink. This may have substitution variables in. # This should never be defaulted. default: "" title: type: Option description: "The title text displayed to the user" default: null text: type: Text description: "The message text displayed to the user" # This should never be defaulted. default: "" is-control: type: Boolean description: "Indicates if this message is the control message, if true shouldn't be displayed" default: false experiment: type: Option description: The slug of the experiment that this message came from. default: null button-label: type: Option description: > The text on the button. If no text is present, the whole message is clickable. default: null style: type: String description: > The style as described in a `StyleData` from the styles table. default: DEFAULT surface: description: The surface identifier for this message. type: String default: homescreen trigger: type: List description: > A list of strings corresponding to targeting expressions. The message will be shown if all expressions `true`. default: [] StyleData: description: > A group of properties (predominantly visual) to describe the style of the message. fields: priority: type: Int description: > The importance of this message. 0 is not very important, 100 is very important. default: 50 max-display-count: type: Int description: > How many sessions will this message be shown to the user before it is expired. default: 5 NotificationConfig: description: Attributes controlling the global configuration of notification messages. fields: refresh-interval: type: Int description: > How often, in minutes, the notification message worker will wake up and check for new messages. default: 240 # 4 hours enums: ControlMessageBehavior: description: An enum to influence what should be displayed when a control message is selected. variants: show-next-message: description: The next eligible message should be shown. show-none: description: The surface should show no message.