diff --git a/packages/manager/.changeset/pr-12685-fixed-1755272623309.md b/packages/manager/.changeset/pr-12685-fixed-1755272623309.md
new file mode 100644
index 00000000000..0019fdf96a7
--- /dev/null
+++ b/packages/manager/.changeset/pr-12685-fixed-1755272623309.md
@@ -0,0 +1,5 @@
+---
+"@linode/manager": Fixed
+---
+
+Missing `firewall_apply` event messages ([#12685](https://github.com/linode/manager/pull/12685))
diff --git a/packages/manager/.changeset/pr-12685-upcoming-features-1755276113969.md b/packages/manager/.changeset/pr-12685-upcoming-features-1755276113969.md
new file mode 100644
index 00000000000..e04093dbbbb
--- /dev/null
+++ b/packages/manager/.changeset/pr-12685-upcoming-features-1755276113969.md
@@ -0,0 +1,5 @@
+---
+"@linode/manager": Upcoming Features
+---
+
+Temporarily fix Linode Interface `firewall_device_add` event message ([#12685](https://github.com/linode/manager/pull/12685))
diff --git a/packages/manager/src/features/Events/factories/firewall.tsx b/packages/manager/src/features/Events/factories/firewall.tsx
index 140dd563b4d..14ec53f3264 100644
--- a/packages/manager/src/features/Events/factories/firewall.tsx
+++ b/packages/manager/src/features/Events/factories/firewall.tsx
@@ -1,3 +1,4 @@
+import { capitalize } from '@linode/utilities';
import * as React from 'react';
import { formattedTypes } from 'src/features/Firewalls/FirewallDetail/Devices/constants';
@@ -5,16 +6,50 @@ import { formattedTypes } from 'src/features/Firewalls/FirewallDetail/Devices/co
import { EventLink } from '../EventLink';
import type { PartialEventMap } from '../types';
+import type { Event } from '@linode/api-v4';
import type { FirewallDeviceEntityType } from '@linode/api-v4';
+const entityPrefix = (e: Event) => {
+ const type = e?.entity?.type ? capitalize(e.entity.type) : null;
+
+ return type ? (
+ <>
+ {type} {' '}
+ >
+ ) : null;
+};
+
export const firewall: PartialEventMap<'firewall'> = {
firewall_apply: {
- notification: (e) => (
- <>
- Firewall has been{' '}
- applied.
- >
- ),
+ failed: (e) => {
+ return (
+ <>
+ {entityPrefix(e)} Firewall update could not be{' '}
+ applied.
+ >
+ );
+ },
+ finished: (e) => {
+ return (
+ <>
+ {entityPrefix(e)} Firewall update has been applied.
+ >
+ );
+ },
+ scheduled: (e) => {
+ return (
+ <>
+ {entityPrefix(e)} Firewall update is scheduled.
+ >
+ );
+ },
+ started: (e) => {
+ return (
+ <>
+ {entityPrefix(e)} Firewall update has started.
+ >
+ );
+ },
},
firewall_create: {
notification: (e) => (
@@ -34,8 +69,10 @@ export const firewall: PartialEventMap<'firewall'> = {
firewall_device_add: {
notification: (e) => {
if (e.secondary_entity?.type) {
+ // TODO - Linode Interfaces [M3-10447] - clean this up when API ticket [VPC-3359] is completed
const secondaryEntityName =
- formattedTypes[e.secondary_entity.type as FirewallDeviceEntityType];
+ formattedTypes[e.secondary_entity.type as FirewallDeviceEntityType] ??
+ 'Linode Interface';
return (
<>
{secondaryEntityName} {' '}