From 4c060f24e7d76983e57201eacd48092983818eec Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Mon, 4 Nov 2024 21:15:04 -0800 Subject: [PATCH 01/24] Add initial event schemas with Supported Event Types --- SupportedEventTypes.json | 237 ++++++++++++++++ .../ConnectionStatusEventData.json | 3 - .../equinix/events/fabric/v1/Change.json | 253 ++++++++++++++++++ .../equinix/events/fabric/v1/ChangeAlert.json | 98 +++++++ .../equinix/events/fabric/v1/Metric.json | 177 ++++++++++++ .../equinix/events/fabric/v1/MetricAlert.json | 107 ++++++++ 6 files changed, 872 insertions(+), 3 deletions(-) create mode 100644 SupportedEventTypes.json delete mode 100644 jsonschema/equinix/events/fabric/connections/ConnectionStatusEventData.json create mode 100644 jsonschema/equinix/events/fabric/v1/Change.json create mode 100644 jsonschema/equinix/events/fabric/v1/ChangeAlert.json create mode 100644 jsonschema/equinix/events/fabric/v1/Metric.json create mode 100644 jsonschema/equinix/events/fabric/v1/MetricAlert.json diff --git a/SupportedEventTypes.json b/SupportedEventTypes.json new file mode 100644 index 0000000..271162e --- /dev/null +++ b/SupportedEventTypes.json @@ -0,0 +1,237 @@ +[ + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.state.draft", + "equinix.fabric.connection.state.cancelled", + "equinix.fabric.connection.state.pending", + "equinix.fabric.connection.state.provisioning", + "equinix.fabric.connection.state.provisioned", + "equinix.fabric.connection.state.active", + "equinix.fabric.connection.state.reprovisioning", + "equinix.fabric.connection.state.deprovisioning", + "equinix.fabric.connection.state.deprovisioned", + "equinix.fabric.connection.state.failed", + "equinix.fabric.connection.bandwidth_rx.usage", + "equinix.fabric.connection.bandwidth_tx.usage", + "equinix.fabric.connection.routing_protocol_state.provisioning", + "equinix.fabric.connection.routing_protocol_state.provisioned", + "equinix.fabric.connection.routing_protocol_state.reprovisioning", + "equinix.fabric.connection.routing_protocol_state.deprovisioning", + "equinix.fabric.connection.routing_protocol_state.deprovisioned", + "equinix.fabric.connection.routing_protocol_state.failed", + "equinix.fabric.connection.bgp_ipv4_status.up", + "equinix.fabric.connection.bgp_ipv4_status.down", + "equinix.fabric.connection.bgp_ipv6_status.up", + "equinix.fabric.connection.bgp_ipv6_status.down", + "equinix.fabric.connection.bgp_ipv4_session.established", + "equinix.fabric.connection.bgp_ipv4_session.connect", + "equinix.fabric.connection.bgp_ipv4_session.opensent", + "equinix.fabric.connection.bgp_ipv4_session.openconfirm", + "equinix.fabric.connection.bgp_ipv4_session.active", + "equinix.fabric.connection.bgp_ipv4_session.idle", + "equinix.fabric.connection.bgp_ipv6_session.established", + "equinix.fabric.connection.bgp_ipv6_session.connect", + "equinix.fabric.connection.bgp_ipv6_session.opensent", + "equinix.fabric.connection.bgp_ipv6_session.openconfirm", + "equinix.fabric.connection.bgp_ipv6_session.active", + "equinix.fabric.connection.bgp_ipv6_session.idle", + "equinix.fabric.connection.reset_bgp_ipv4.succeeded", + "equinix.fabric.connection.reset_bgp_ipv4.failed", + "equinix.fabric.connection.reset_bgp_ipv6.succeeded", + "equinix.fabric.connection.reset_bgp_ipv6.failed", + "equinix.fabric.connection.clear_bgp_ipv4.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4.failed", + "equinix.fabric.connection.clear_bgp_ipv6.succeeded", + "equinix.fabric.connection.clear_bgp_ipv6.failed", + "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4_inbound.failed", + "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv6_inbound.failed", + "equinix.fabric.route_filter.state.provisioning", + "equinix.fabric.route_filter.state.provisioned", + "equinix.fabric.route_filter.state.reprovisioning", + "equinix.fabric.route_filter.state.deprovisioning", + "equinix.fabric.route_filter.state.deprovisioned", + "equinix.fabric.route_filter.state.not_provisioned", + "equinix.fabric.route_filter.state.not_deprovisioned", + "equinix.fabric.route_filter.rule_state.provisioning", + "equinix.fabric.route_filter.rule_state.provisionined", + "equinix.fabric.route_filter.rule_state.reprovisioning", + "equinix.fabric.route_filter.rule_state.deprovisioning", + "equinix.fabric.route_filter.rule_state.deprovisioned", + "equinix.fabric.route_filter.rule_state.not_provisioned", + "equinix.fabric.route_filter.rule_state.not_deprovisioned", + "equinix.fabric.route_filter.status.pending_bgp_configuration", + "equinix.fabric.route_filter.status.attaching", + "equinix.fabric.route_filter.status.attached", + "equinix.fabric.route_filter.status.detaching", + "equinix.fabric.route_filter.status.detached", + "equinix.fabric.route_filter.status.failed", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down", + "equinix.fabric.port.state.pending", + "equinix.fabric.port.state.provisioning", + "equinix.fabric.port.state.provisioned", + "equinix.fabric.port.state.active", + "equinix.fabric.port.state.inactive", + "equinix.fabric.port.state.deprovisioning", + "equinix.fabric.port.state.deprovisioned", + "equinix.fabric.port.state.failed", + "equinix.fabric.port.state.to_be_added", + "equinix.fabric.port.state.to_be_deleted", + "equinix.fabric.port.state.added", + "equinix.fabric.port.state.deleted", + "equinix.fabric.port.bandwidth_rx.usage", + "equinix.fabric.port.bandwidth_tx.usage", + "equinix.fabric.port.frames_erred_rx.count", + "equinix.fabric.port.frames_erred_tx.count", + "equinix.fabric.port.frames_dropped_rx.count", + "equinix.fabric.port.frames_dropped_tx.count", + "equinix.fabric.router.state.provisioning", + "equinix.fabric.router.state.provisioned", + "equinix.fabric.router.state.locked", + "equinix.fabric.router.state.deprovisioning", + "equinix.fabric.router.state.deprovisioned", + "equinix.fabric.router.state.not_provisioned", + "equinix.fabric.router.state.not_deprovisioned", + "equinix.fabric.router.routes_ipv4_installed.utilization", + "equinix.fabric.router.routes_ipv6_installed.utilization", + "equinix.fabric.router.bgp_session_status_update.pending", + "equinix.fabric.router.bgp_session_status_update.succeeded", + "equinix.fabric.router.bgp_session_status_update.failed", + "equinix.fabric.router.route_table_entry_update.pending", + "equinix.fabric.router.route_table_entry_update.succeeded", + "equinix.fabric.router.route_table_entry_update.failed", + "equinix.fabric.router.received_route_entry_update.pending", + "equinix.fabric.router.received_route_entry_update.succeeded", + "equinix.fabric.router.received_route_entry_update.failed", + "equinix.fabric.router.advertised_route_entry_update.pending", + "equinix.fabric.router.advertised_route_entry_update.succeeded", + "equinix.fabric.router.advertised_route_entry_update.failed", + "equinix.fabric.network.state.active", + "equinix.fabric.network.state.inactive", + "equinix.fabric.network.state.deleted", + "equinix.fabric.time_service.state.pending_configuration", + "equinix.fabric.time_service.state.provisioning", + "equinix.fabric.time_service.state.provisioned", + "equinix.fabric.time_service.state.deprovisioning", + "equinix.fabric.time_service.state.deprovisioned", + "equinix.fabric.time_service.state.configuring_failed", + "equinix.fabric.time_service.state.provisioning_failed", + "equinix.fabric.time_service.state.deprovisioning_failed", + "equinix.fabric.time_service.state.configuring", + "equinix.fabric.time_service.state.cancelled", + "equinix.fabric.service_token.state.active", + "equinix.fabric.service_token.state.inactive", + "equinix.fabric.service_token.state.expired", + "equinix.fabric.service_token.state.deleted", + "equinix.fabric.service_profile.state.pending_approval", + "equinix.fabric.service_profile.state.rejected", + "equinix.fabric.service_profile.state.active", + "equinix.fabric.service_profile.state.deleted", + "equinix.fabric.stream.state.provisioning", + "equinix.fabric.stream.state.provisioned", + "equinix.fabric.stream.state.deprovisioning", + "equinix.fabric.stream.state.deprovisioned", + "equinix.fabric.stream.state.failed", + "equinix.fabric.stream.resource_status.attaching", + "equinix.fabric.stream.resource_status.attached", + "equinix.fabric.stream.resource_status.detaching", + "equinix.fabric.stream.resource_status.detached", + "equinix.fabric.stream.resource_status.failed", + "equinix.fabric.stream_subscription.state.provisioning", + "equinix.fabric.stream_subscription.state.provisioned", + "equinix.fabric.stream_subscription.state.deprovisioning", + "equinix.fabric.stream_subscription.state.deprovisioned", + "equinix.fabric.stream_subscription.state.failed", + "equinix.fabric.metro.at_{:metroCode}.latency", + "equinix.fabric.metro.bg_{:metroCode}.latency", + "equinix.fabric.metro.bo_{:metroCode}.latency", + "equinix.fabric.metro.ch_{:metroCode}.latency", + "equinix.fabric.metro.cl_{:metroCode}.latency", + "equinix.fabric.metro.cu_{:metroCode}.latency", + "equinix.fabric.metro.da_{:metroCode}.latency", + "equinix.fabric.metro.dc_{:metroCode}.latency", + "equinix.fabric.metro.de_{:metroCode}.latency", + "equinix.fabric.metro.ho_{:metroCode}.latency", + "equinix.fabric.metro.ka_{:metroCode}.latency", + "equinix.fabric.metro.la_{:metroCode}.latency", + "equinix.fabric.metro.lm_{:metroCode}.latency", + "equinix.fabric.metro.mi_{:metroCode}.latency", + "equinix.fabric.metro.mo_{:metroCode}.latency", + "equinix.fabric.metro.mt_{:metroCode}.latency", + "equinix.fabric.metro.mx_{:metroCode}.latency", + "equinix.fabric.metro.ny_{:metroCode}.latency", + "equinix.fabric.metro.ot_{:metroCode}.latency", + "equinix.fabric.metro.ph_{:metroCode}.latency", + "equinix.fabric.metro.rj_{:metroCode}.latency", + "equinix.fabric.metro.se_{:metroCode}.latency", + "equinix.fabric.metro.sp_{:metroCode}.latency", + "equinix.fabric.metro.st_{:metroCode}.latency", + "equinix.fabric.metro.sv_{:metroCode}.latency", + "equinix.fabric.metro.tr_{:metroCode}.latency", + "equinix.fabric.metro.va_{:metroCode}.latency", + "equinix.fabric.metro.wi_{:metroCode}.latency", + "equinix.fabric.metro.ca_{:metroCode}.latency", + "equinix.fabric.metro.hk_{:metroCode}.latency", + "equinix.fabric.metro.jh_{:metroCode}.latency", + "equinix.fabric.metro.kl_{:metroCode}.latency", + "equinix.fabric.metro.mb_{:metroCode}.latency", + "equinix.fabric.metro.me_{:metroCode}.latency", + "equinix.fabric.metro.os_{:metroCode}.latency", + "equinix.fabric.metro.pe_{:metroCode}.latency", + "equinix.fabric.metro.sg_{:metroCode}.latency", + "equinix.fabric.metro.sl_{:metroCode}.latency", + "equinix.fabric.metro.sy_{:metroCode}.latency", + "equinix.fabric.metro.ty_{:metroCode}.latency", + "equinix.fabric.metro.am_{:metroCode}.latency", + "equinix.fabric.metro.ba_{:metroCode}.latency", + "equinix.fabric.metro.bl_{:metroCode}.latency", + "equinix.fabric.metro.bx_{:metroCode}.latency", + "equinix.fabric.metro.db_{:metroCode}.latency", + "equinix.fabric.metro.dx_{:metroCode}.latency", + "equinix.fabric.metro.fr_{:metroCode}.latency", + "equinix.fabric.metro.gv_{:metroCode}.latency", + "equinix.fabric.metro.he_{:metroCode}.latency", + "equinix.fabric.metro.hh_{:metroCode}.latency", + "equinix.fabric.metro.il_{:metroCode}.latency", + "equinix.fabric.metro.ld_{:metroCode}.latency", + "equinix.fabric.metro.ls_{:metroCode}.latency", + "equinix.fabric.metro.ma_{:metroCode}.latency", + "equinix.fabric.metro.md_{:metroCode}.latency", + "equinix.fabric.metro.ml_{:metroCode}.latency", + "equinix.fabric.metro.mu_{:metroCode}.latency", + "equinix.fabric.metro.pa_{:metroCode}.latency", + "equinix.fabric.metro.sk_{:metroCode}.latency", + "equinix.fabric.metro.so_{:metroCode}.latency", + "equinix.fabric.metro.wa_{:metroCode}.latency", + "equinix.fabric.metro.zu_{:metroCode}.latency", + "equinix.network_edge.device.state.provisioned", + "equinix.network_edge.device.state.deprovisioned", + "equinix.network_edge.device.state.pending_configuration", + "equinix.network_edge.device.state.rebooted", + "equinix.network_edge.device.acl.removed", + "equinix.network_edge.device.attribute.changed", + "equinix.resource_manager.organization.state.created", + "equinix.resource_manager.organization.state.updated", + "equinix.resource_manager.organization.state.deleted", + "equinix.resource_manager.project.state.created", + "equinix.resource_manager.project.state.updated", + "equinix.resource_manager.project.state.deleted", + "equinix.identity.user.state.created", + "equinix.identity.user.state.updated", + "equinix.identity.user.state.deactivated", + "equinix.identity.user.state.deleted", + "equinix.identity.user.activity.logged_in", + "equinix.identity.user.activity.logged_out", + "equinix.identity.service_account.state.created", + "equinix.identity.service_account.state.updated", + "equinix.identity.service_account.state.deleted", + "equinix.access_manager.user.role.added", + "equinix.access_manager.user.role.removed", + "equinix.access_manager.user.critical_resource_access.unauthorized", + "equinix.access_manager.service_account.action.authenticated ", + "equinix.access_manager.service_account.role.added ", + "equinix.access_manager.service_account.role.removed ", + "equinix.access_manager.service_account.critical_resource_access.unauthorized " +] \ No newline at end of file diff --git a/jsonschema/equinix/events/fabric/connections/ConnectionStatusEventData.json b/jsonschema/equinix/events/fabric/connections/ConnectionStatusEventData.json deleted file mode 100644 index c5e4d22..0000000 --- a/jsonschema/equinix/events/fabric/connections/ConnectionStatusEventData.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "empty": "To be populated" -} \ No newline at end of file diff --git a/jsonschema/equinix/events/fabric/v1/Change.json b/jsonschema/equinix/events/fabric/v1/Change.json new file mode 100644 index 0000000..fe3c4ce --- /dev/null +++ b/jsonschema/equinix/events/fabric/v1/Change.json @@ -0,0 +1,253 @@ +{ + "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Change.json", + "name": "Change", + "examples": [], + "package": "equinix.events.fabric.v1", + "datatype": "equinix.events.fabric.v1.Change", + "cloudeventTypes": [ + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.state.draft", + "equinix.fabric.connection.state.cancelled", + "equinix.fabric.connection.state.pending", + "equinix.fabric.connection.state.provisioning", + "equinix.fabric.connection.state.provisioned", + "equinix.fabric.connection.state.active", + "equinix.fabric.connection.state.reprovisioning", + "equinix.fabric.connection.state.deprovisioning", + "equinix.fabric.connection.state.deprovisioned", + "equinix.fabric.connection.state.failed", + "equinix.fabric.connection.routing_protocol_state.provisioning", + "equinix.fabric.connection.routing_protocol_state.provisioned", + "equinix.fabric.connection.routing_protocol_state.reprovisioning", + "equinix.fabric.connection.routing_protocol_state.deprovisioning", + "equinix.fabric.connection.routing_protocol_state.deprovisioned", + "equinix.fabric.connection.routing_protocol_state.failed", + "equinix.fabric.connection.bgp_ipv4_status.up", + "equinix.fabric.connection.bgp_ipv4_status.down", + "equinix.fabric.connection.bgp_ipv6_status.up", + "equinix.fabric.connection.bgp_ipv6_status.down", + "equinix.fabric.connection.bgp_ipv4_session.established", + "equinix.fabric.connection.bgp_ipv4_session.connect", + "equinix.fabric.connection.bgp_ipv4_session.opensent", + "equinix.fabric.connection.bgp_ipv4_session.openconfirm", + "equinix.fabric.connection.bgp_ipv4_session.active", + "equinix.fabric.connection.bgp_ipv4_session.idle", + "equinix.fabric.connection.bgp_ipv6_session.established", + "equinix.fabric.connection.bgp_ipv6_session.connect", + "equinix.fabric.connection.bgp_ipv6_session.opensent", + "equinix.fabric.connection.bgp_ipv6_session.openconfirm", + "equinix.fabric.connection.bgp_ipv6_session.active", + "equinix.fabric.connection.bgp_ipv6_session.idle", + "equinix.fabric.connection.reset_bgp_ipv4.succeeded", + "equinix.fabric.connection.reset_bgp_ipv4.failed", + "equinix.fabric.connection.reset_bgp_ipv6.succeeded", + "equinix.fabric.connection.reset_bgp_ipv6.failed", + "equinix.fabric.connection.clear_bgp_ipv4.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4.failed", + "equinix.fabric.connection.clear_bgp_ipv6.succeeded", + "equinix.fabric.connection.clear_bgp_ipv6.failed", + "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4_inbound.failed", + "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv6_inbound.failed", + "equinix.fabric.route_filter.state.provisioning", + "equinix.fabric.route_filter.state.provisioned", + "equinix.fabric.route_filter.state.reprovisioning", + "equinix.fabric.route_filter.state.deprovisioning", + "equinix.fabric.route_filter.state.deprovisioned", + "equinix.fabric.route_filter.state.not_provisioned", + "equinix.fabric.route_filter.state.not_deprovisioned", + "equinix.fabric.route_filter.rule_state.provisioning", + "equinix.fabric.route_filter.rule_state.provisionined", + "equinix.fabric.route_filter.rule_state.reprovisioning", + "equinix.fabric.route_filter.rule_state.deprovisioning", + "equinix.fabric.route_filter.rule_state.deprovisioned", + "equinix.fabric.route_filter.rule_state.not_provisioned", + "equinix.fabric.route_filter.rule_state.not_deprovisioned", + "equinix.fabric.route_filter.status.pending_bgp_configuration", + "equinix.fabric.route_filter.status.attaching", + "equinix.fabric.route_filter.status.attached", + "equinix.fabric.route_filter.status.detaching", + "equinix.fabric.route_filter.status.detached", + "equinix.fabric.route_filter.status.failed", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down", + "equinix.fabric.port.state.pending", + "equinix.fabric.port.state.provisioning", + "equinix.fabric.port.state.provisioned", + "equinix.fabric.port.state.active", + "equinix.fabric.port.state.inactive", + "equinix.fabric.port.state.deprovisioning", + "equinix.fabric.port.state.deprovisioned", + "equinix.fabric.port.state.failed", + "equinix.fabric.port.state.to_be_added", + "equinix.fabric.port.state.to_be_deleted", + "equinix.fabric.port.state.added", + "equinix.fabric.port.state.deleted", + "equinix.fabric.router.state.provisioning", + "equinix.fabric.router.state.provisioned", + "equinix.fabric.router.state.locked", + "equinix.fabric.router.state.deprovisioning", + "equinix.fabric.router.state.deprovisioned", + "equinix.fabric.router.state.not_provisioned", + "equinix.fabric.router.state.not_deprovisioned", + "equinix.fabric.router.bgp_session_status_update.pending", + "equinix.fabric.router.bgp_session_status_update.succeeded", + "equinix.fabric.router.bgp_session_status_update.failed", + "equinix.fabric.router.route_table_entry_update.pending", + "equinix.fabric.router.route_table_entry_update.succeeded", + "equinix.fabric.router.route_table_entry_update.failed", + "equinix.fabric.router.received_route_entry_update.pending", + "equinix.fabric.router.received_route_entry_update.succeeded", + "equinix.fabric.router.received_route_entry_update.failed", + "equinix.fabric.router.advertised_route_entry_update.pending", + "equinix.fabric.router.advertised_route_entry_update.succeeded", + "equinix.fabric.router.advertised_route_entry_update.failed", + "equinix.fabric.network.state.active", + "equinix.fabric.network.state.inactive", + "equinix.fabric.network.state.deleted", + "equinix.fabric.time_service.state.pending_configuration", + "equinix.fabric.time_service.state.provisioning", + "equinix.fabric.time_service.state.provisioned", + "equinix.fabric.time_service.state.deprovisioning", + "equinix.fabric.time_service.state.deprovisioned", + "equinix.fabric.time_service.state.configuring_failed", + "equinix.fabric.time_service.state.provisioning_failed", + "equinix.fabric.time_service.state.deprovisioning_failed", + "equinix.fabric.time_service.state.configuring", + "equinix.fabric.time_service.state.cancelled", + "equinix.fabric.service_token.state.active", + "equinix.fabric.service_token.state.inactive", + "equinix.fabric.service_token.state.expired", + "equinix.fabric.service_token.state.deleted", + "equinix.fabric.service_profile.state.pending_approval", + "equinix.fabric.service_profile.state.rejected", + "equinix.fabric.service_profile.state.active", + "equinix.fabric.service_profile.state.deleted", + "equinix.fabric.stream.state.provisioning", + "equinix.fabric.stream.state.provisioned", + "equinix.fabric.stream.state.deprovisioning", + "equinix.fabric.stream.state.deprovisioned", + "equinix.fabric.stream.state.failed", + "equinix.fabric.stream.resource_status.attaching", + "equinix.fabric.stream.resource_status.attached", + "equinix.fabric.stream.resource_status.detaching", + "equinix.fabric.stream.resource_status.detached", + "equinix.fabric.stream.resource_status.failed", + "equinix.fabric.stream_subscription.state.provisioning", + "equinix.fabric.stream_subscription.state.provisioned", + "equinix.fabric.stream_subscription.state.deprovisioning", + "equinix.fabric.stream_subscription.state.deprovisioned", + "equinix.fabric.stream_subscription.state.failed", + "equinix.network_edge.device.state.provisioned", + "equinix.network_edge.device.state.deprovisioned", + "equinix.network_edge.device.state.pending_configuration", + "equinix.network_edge.device.state.rebooted", + "equinix.network_edge.device.acl.removed", + "equinix.network_edge.device.attribute.changed", + "equinix.resource_manager.organization.state.created", + "equinix.resource_manager.organization.state.updated", + "equinix.resource_manager.organization.state.deleted", + "equinix.resource_manager.project.state.created", + "equinix.resource_manager.project.state.updated", + "equinix.resource_manager.project.state.deleted", + "equinix.identity.user.state.created", + "equinix.identity.user.state.updated", + "equinix.identity.user.state.deactivated", + "equinix.identity.user.state.deleted", + "equinix.identity.user.activity.logged_in", + "equinix.identity.user.activity.logged_out", + "equinix.identity.service_account.state.created", + "equinix.identity.service_account.state.updated", + "equinix.identity.service_account.state.deleted", + "equinix.access_manager.user.role.added", + "equinix.access_manager.user.role.removed", + "equinix.access_manager.user.critical_resource_access.unauthorized", + "equinix.access_manager.service_account.action.authenticated ", + "equinix.access_manager.service_account.role.added ", + "equinix.access_manager.service_account.role.removed ", + "equinix.access_manager.service_account.critical_resource_access.unauthorized " + ], + "product": "Equinix Fabric Change", + "$schema": "http://json-schema.org/draft-04/schema#", + "$ref": "#/definitions/Change", + "definitions": { + "Change": { + "properties": { + "resource": { + "$ref": "#/definitions/Resource", + "additionalProperties": true, + "description": "Optional. The Backup event payload. Unset for deletion events." + }, + "message": { + "type": "string", + "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "Change Event Data", + "description": "The data within all Change events." + }, + "Resource": { + "properties": { + "href": { + "type": "string", + "description": "Link to the resource that has generated the event" + }, + "type": { + "type": "string", + "description": "Type of the resource generating the event" + }, + "uuid": { + "type": "string", + "description": "Equinix assigned unique identifier of the resource generating the event" + }, + "name": { + "type": "string", + "description": "Name of the resource generating the event" + }, + "state": { + "type": "string", + "description": "State of the resource generating the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "Resource", + "description": "Schema of the resource that fired the event" + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" + } + } +} \ No newline at end of file diff --git a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json new file mode 100644 index 0000000..33487b2 --- /dev/null +++ b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json @@ -0,0 +1,98 @@ +{ + "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json", + "name": "ChangeAlert", + "examples": [], + "package": "equinix.events.fabric.v1", + "datatype": "equinix.events.fabric.v1.ChangeAlert", + "cloudeventTypes": [ + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.bgp_ipv4_status.up", + "equinix.fabric.connection.bgp_ipv4_status.down", + "equinix.fabric.connection.bgp_ipv6_status.up", + "equinix.fabric.connection.bgp_ipv6_status.down", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down" + ], + "product": "Equinix Fabric ChangeAlert", + "$schema": "http://json-schema.org/draft-04/schema#", + "$ref": "#/definitions/ChangeAlert", + "definitions": { + "ChangeAlert": { + "properties": { + "resource": { + "$ref": "#/definitions/Resource", + "additionalProperties": true, + "description": "Optional. The Backup event payload. Unset for deletion events." + }, + "message": { + "type": "string", + "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeAlert Event Data", + "description": "The data within all ChangeAlert events." + }, + "Resource": { + "properties": { + "href": { + "type": "string", + "description": "Link to the resource that has generated the event" + }, + "type": { + "type": "string", + "description": "Type of the resource generating the event" + }, + "uuid": { + "type": "string", + "description": "Equinix assigned unique identifier of the resource generating the event" + }, + "name": { + "type": "string", + "description": "Name of the resource generating the event" + }, + "state": { + "type": "string", + "description": "State of the resource generating the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "Resource", + "description": "Schema of the resource that fired the event" + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" + } + } +} \ No newline at end of file diff --git a/jsonschema/equinix/events/fabric/v1/Metric.json b/jsonschema/equinix/events/fabric/v1/Metric.json new file mode 100644 index 0000000..fe7a8e5 --- /dev/null +++ b/jsonschema/equinix/events/fabric/v1/Metric.json @@ -0,0 +1,177 @@ +{ + "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Metric.json", + "name": "Metric", + "examples": [], + "package": "equinix.events.fabric.v1", + "datatype": "equinix.events.fabric.v1.Metric", + "cloudeventTypes": [ + "equinix.fabric.connection.bandwidth_rx.usage", + "equinix.fabric.connection.bandwidth_tx.usage", + "equinix.fabric.port.bandwidth_rx.usage", + "equinix.fabric.port.bandwidth_tx.usage", + "equinix.fabric.port.frames_erred_rx.count", + "equinix.fabric.port.frames_erred_tx.count", + "equinix.fabric.port.frames_dropped_rx.count", + "equinix.fabric.port.frames_dropped_tx.count", + "equinix.fabric.router.routes_ipv4_installed.utilization", + "equinix.fabric.router.routes_ipv6_installed.utilization", + "equinix.fabric.metro.at_{:metroCode}.latency", + "equinix.fabric.metro.bg_{:metroCode}.latency", + "equinix.fabric.metro.bo_{:metroCode}.latency", + "equinix.fabric.metro.ch_{:metroCode}.latency", + "equinix.fabric.metro.cl_{:metroCode}.latency", + "equinix.fabric.metro.cu_{:metroCode}.latency", + "equinix.fabric.metro.da_{:metroCode}.latency", + "equinix.fabric.metro.dc_{:metroCode}.latency", + "equinix.fabric.metro.de_{:metroCode}.latency", + "equinix.fabric.metro.ho_{:metroCode}.latency", + "equinix.fabric.metro.ka_{:metroCode}.latency", + "equinix.fabric.metro.la_{:metroCode}.latency", + "equinix.fabric.metro.lm_{:metroCode}.latency", + "equinix.fabric.metro.mi_{:metroCode}.latency", + "equinix.fabric.metro.mo_{:metroCode}.latency", + "equinix.fabric.metro.mt_{:metroCode}.latency", + "equinix.fabric.metro.mx_{:metroCode}.latency", + "equinix.fabric.metro.ny_{:metroCode}.latency", + "equinix.fabric.metro.ot_{:metroCode}.latency", + "equinix.fabric.metro.ph_{:metroCode}.latency", + "equinix.fabric.metro.rj_{:metroCode}.latency", + "equinix.fabric.metro.se_{:metroCode}.latency", + "equinix.fabric.metro.sp_{:metroCode}.latency", + "equinix.fabric.metro.st_{:metroCode}.latency", + "equinix.fabric.metro.sv_{:metroCode}.latency", + "equinix.fabric.metro.tr_{:metroCode}.latency", + "equinix.fabric.metro.va_{:metroCode}.latency", + "equinix.fabric.metro.wi_{:metroCode}.latency", + "equinix.fabric.metro.ca_{:metroCode}.latency", + "equinix.fabric.metro.hk_{:metroCode}.latency", + "equinix.fabric.metro.jh_{:metroCode}.latency", + "equinix.fabric.metro.kl_{:metroCode}.latency", + "equinix.fabric.metro.mb_{:metroCode}.latency", + "equinix.fabric.metro.me_{:metroCode}.latency", + "equinix.fabric.metro.os_{:metroCode}.latency", + "equinix.fabric.metro.pe_{:metroCode}.latency", + "equinix.fabric.metro.sg_{:metroCode}.latency", + "equinix.fabric.metro.sl_{:metroCode}.latency", + "equinix.fabric.metro.sy_{:metroCode}.latency", + "equinix.fabric.metro.ty_{:metroCode}.latency", + "equinix.fabric.metro.am_{:metroCode}.latency", + "equinix.fabric.metro.ba_{:metroCode}.latency", + "equinix.fabric.metro.bl_{:metroCode}.latency", + "equinix.fabric.metro.bx_{:metroCode}.latency", + "equinix.fabric.metro.db_{:metroCode}.latency", + "equinix.fabric.metro.dx_{:metroCode}.latency", + "equinix.fabric.metro.fr_{:metroCode}.latency", + "equinix.fabric.metro.gv_{:metroCode}.latency", + "equinix.fabric.metro.he_{:metroCode}.latency", + "equinix.fabric.metro.hh_{:metroCode}.latency", + "equinix.fabric.metro.il_{:metroCode}.latency", + "equinix.fabric.metro.ld_{:metroCode}.latency", + "equinix.fabric.metro.ls_{:metroCode}.latency", + "equinix.fabric.metro.ma_{:metroCode}.latency", + "equinix.fabric.metro.md_{:metroCode}.latency", + "equinix.fabric.metro.ml_{:metroCode}.latency", + "equinix.fabric.metro.mu_{:metroCode}.latency", + "equinix.fabric.metro.pa_{:metroCode}.latency", + "equinix.fabric.metro.sk_{:metroCode}.latency", + "equinix.fabric.metro.so_{:metroCode}.latency", + "equinix.fabric.metro.wa_{:metroCode}.latency", + "equinix.fabric.metro.zu_{:metroCode}.latency" + ], + "product": "Equinix Fabric Metric", + "$schema": "http://json-schema.org/draft-04/schema#", + "$ref": "#/definitions/Metric", + "definitions": { + "Metric": { + "properties": { + "metrics": { + "$ref": "#/definitions/Metrics", + "additionalProperties": true, + "description": "Specific details of the metric event" + }, + "message": { + "type": "string", + "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "Metric Event Data", + "description": "The data within all Metric events." + }, + "Metrics": { + "properties": { + "type": { + "type": "string", + "description": "The type of the metric event" + }, + "name": { + "type": "string", + "description": "The name of the metric event" + }, + "unit": { + "type": "string", + "description": "Unified Code for Units of Measure" + }, + "dataPoints": { + "type": "array", + "description": "Metric data values and end times", + "items": { + "$ref": "#/definitions/DataPoints" + } + } + }, + "additionalProperties": true, + "type": "object", + "title": "Metrics", + "description": "Schema definition of Metrics data" + }, + "DataPoints": { + "properties": { + "endDateTime": { + "type": "string", + "description": "The end time of the metric data point value given", + "format": "date-time" + }, + "value": { + "type": "number", + "description": "The value of the metric data point" + } + }, + "type": "object", + "title": "DataPoints", + "additionalProperties": true + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" + } + } +} \ No newline at end of file diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json new file mode 100644 index 0000000..0f52372 --- /dev/null +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -0,0 +1,107 @@ +{ + "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json", + "name": "MetricAlert", + "examples": [], + "package": "equinix.events.fabric.v1", + "datatype": "equinix.events.fabric.v1.MetricAlert", + "cloudeventTypes": [ + "equinix.fabric.router.routes_ipv4_installed.utilization", + "equinix.fabric.router.routes_ipv6_installed.utilization" + ], + "product": "Equinix Fabric MetricAlert", + "$schema": "http://json-schema.org/draft-04/schema#", + "$ref": "#/definitions/MetricAlert", + "definitions": { + "MetricAlert": { + "properties": { + "metrics": { + "$ref": "#/definitions/Metrics", + "additionalProperties": true, + "description": "Specific details of the metric event" + }, + "message": { + "type": "string", + "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "MetricAlert Event Data", + "description": "The data within all MetricAlert events." + }, + "Metrics": { + "properties": { + "type": { + "type": "string", + "description": "The type of the metric event" + }, + "name": { + "type": "string", + "description": "The name of the metric event" + }, + "unit": { + "type": "string", + "description": "Unified Code for Units of Measure" + }, + "dataPoints": { + "type": "array", + "description": "Metric data values and end times", + "items": { + "$ref": "#/definitions/DataPoints" + } + } + }, + "additionalProperties": true, + "type": "object", + "title": "Metrics", + "description": "Schema definition of Metrics data" + }, + "DataPoints": { + "properties": { + "endDateTime": { + "type": "string", + "description": "The end time of the metric data point value given", + "format": "date-time" + }, + "value": { + "type": "number", + "description": "The value of the metric data point" + } + }, + "type": "object", + "title": "DataPoints", + "additionalProperties": true + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" + } + } +} \ No newline at end of file From 58b9153064da1ba71b4e4a3909f4bc2ff71ec44e Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Tue, 5 Nov 2024 18:01:44 -0800 Subject: [PATCH 02/24] Use latest version of Data Schemas from Equinix Observability Spreadsheet --- SupportedEventTypes.json | 2 +- .../equinix/events/fabric/v1/Change.json | 33 +--------- .../equinix/events/fabric/v1/ChangeAlert.json | 33 +--------- .../equinix/events/fabric/v1/Metric.json | 66 ++++++++++--------- .../equinix/events/fabric/v1/MetricAlert.json | 66 ++++++++++--------- 5 files changed, 71 insertions(+), 129 deletions(-) diff --git a/SupportedEventTypes.json b/SupportedEventTypes.json index 271162e..08da306 100644 --- a/SupportedEventTypes.json +++ b/SupportedEventTypes.json @@ -234,4 +234,4 @@ "equinix.access_manager.service_account.role.added ", "equinix.access_manager.service_account.role.removed ", "equinix.access_manager.service_account.critical_resource_access.unauthorized " -] \ No newline at end of file +] diff --git a/jsonschema/equinix/events/fabric/v1/Change.json b/jsonschema/equinix/events/fabric/v1/Change.json index fe3c4ce..ee534e8 100644 --- a/jsonschema/equinix/events/fabric/v1/Change.json +++ b/jsonschema/equinix/events/fabric/v1/Change.json @@ -183,11 +183,6 @@ "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -222,32 +217,6 @@ "type": "object", "title": "Resource", "description": "Schema of the resource that fired the event" - }, - "ChangeLog": { - "properties": { - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, - "createdDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was created", - "format": "date-time" - }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - } - }, - "additionalProperties": true, - "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" } } -} \ No newline at end of file +} diff --git a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json index 33487b2..2339146 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json @@ -28,11 +28,6 @@ "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -67,32 +62,6 @@ "type": "object", "title": "Resource", "description": "Schema of the resource that fired the event" - }, - "ChangeLog": { - "properties": { - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, - "createdDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was created", - "format": "date-time" - }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - } - }, - "additionalProperties": true, - "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" } } -} \ No newline at end of file +} diff --git a/jsonschema/equinix/events/fabric/v1/Metric.json b/jsonschema/equinix/events/fabric/v1/Metric.json index fe7a8e5..32946ca 100644 --- a/jsonschema/equinix/events/fabric/v1/Metric.json +++ b/jsonschema/equinix/events/fabric/v1/Metric.json @@ -84,6 +84,11 @@ "definitions": { "Metric": { "properties": { + "resource": { + "$ref": "#/definitions/Resource", + "additionalProperties": true, + "description": "Optional. The Backup event payload. Unset for deletion events." + }, "metrics": { "$ref": "#/definitions/Metrics", "additionalProperties": true, @@ -92,11 +97,6 @@ "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -104,6 +104,34 @@ "title": "Metric Event Data", "description": "The data within all Metric events." }, + "Resource": { + "properties": { + "href": { + "type": "string", + "description": "Link to the resource that has generated the event" + }, + "type": { + "type": "string", + "description": "Type of the resource generating the event" + }, + "uuid": { + "type": "string", + "description": "Equinix assigned unique identifier of the resource generating the event" + }, + "name": { + "type": "string", + "description": "Name of the resource generating the event" + }, + "state": { + "type": "string", + "description": "State of the resource generating the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "Resource", + "description": "Schema of the resource that fired the event" + }, "Metrics": { "properties": { "type": { @@ -146,32 +174,6 @@ "type": "object", "title": "DataPoints", "additionalProperties": true - }, - "ChangeLog": { - "properties": { - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, - "createdDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was created", - "format": "date-time" - }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - } - }, - "additionalProperties": true, - "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" } } -} \ No newline at end of file +} diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json index 0f52372..a577aa0 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricAlert.json +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -14,6 +14,11 @@ "definitions": { "MetricAlert": { "properties": { + "resource": { + "$ref": "#/definitions/Resource", + "additionalProperties": true, + "description": "Optional. The Backup event payload. Unset for deletion events." + }, "metrics": { "$ref": "#/definitions/Metrics", "additionalProperties": true, @@ -22,11 +27,6 @@ "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -34,6 +34,34 @@ "title": "MetricAlert Event Data", "description": "The data within all MetricAlert events." }, + "Resource": { + "properties": { + "href": { + "type": "string", + "description": "Link to the resource that has generated the event" + }, + "type": { + "type": "string", + "description": "Type of the resource generating the event" + }, + "uuid": { + "type": "string", + "description": "Equinix assigned unique identifier of the resource generating the event" + }, + "name": { + "type": "string", + "description": "Name of the resource generating the event" + }, + "state": { + "type": "string", + "description": "State of the resource generating the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "Resource", + "description": "Schema of the resource that fired the event" + }, "Metrics": { "properties": { "type": { @@ -76,32 +104,6 @@ "type": "object", "title": "DataPoints", "additionalProperties": true - }, - "ChangeLog": { - "properties": { - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, - "createdDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was created", - "format": "date-time" - }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - } - }, - "additionalProperties": true, - "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" } } -} \ No newline at end of file +} From 3b288fc7ddd2612a0eb16828f6a728069666a4e6 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Wed, 6 Nov 2024 11:55:00 -0800 Subject: [PATCH 03/24] Add change to data schemas --- .../equinix/events/fabric/v1/Change.json | 31 +++++++++++++++++++ .../equinix/events/fabric/v1/ChangeAlert.json | 31 +++++++++++++++++++ .../equinix/events/fabric/v1/Metric.json | 31 +++++++++++++++++++ .../equinix/events/fabric/v1/MetricAlert.json | 31 +++++++++++++++++++ 4 files changed, 124 insertions(+) diff --git a/jsonschema/equinix/events/fabric/v1/Change.json b/jsonschema/equinix/events/fabric/v1/Change.json index ee534e8..83bc9a8 100644 --- a/jsonschema/equinix/events/fabric/v1/Change.json +++ b/jsonschema/equinix/events/fabric/v1/Change.json @@ -183,6 +183,11 @@ "message": { "type": "string", "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -217,6 +222,32 @@ "type": "object", "title": "Resource", "description": "Schema of the resource that fired the event" + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json index 2339146..bf03103 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json @@ -28,6 +28,11 @@ "message": { "type": "string", "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -62,6 +67,32 @@ "type": "object", "title": "Resource", "description": "Schema of the resource that fired the event" + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/Metric.json b/jsonschema/equinix/events/fabric/v1/Metric.json index 32946ca..25a2a8b 100644 --- a/jsonschema/equinix/events/fabric/v1/Metric.json +++ b/jsonschema/equinix/events/fabric/v1/Metric.json @@ -97,6 +97,11 @@ "message": { "type": "string", "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -174,6 +179,32 @@ "type": "object", "title": "DataPoints", "additionalProperties": true + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json index a577aa0..1033c3e 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricAlert.json +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -27,6 +27,11 @@ "message": { "type": "string", "description": "Supporting message describing the event" + }, + "changeLog": { + "$ref": "#/definitions/ChangeLog", + "additionalProperties": true, + "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -104,6 +109,32 @@ "type": "object", "title": "DataPoints", "additionalProperties": true + }, + "ChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "User account that created the resource that fired the event" + }, + "createdDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was created", + "format": "date-time" + }, + "updatedBy": { + "type": "string", + "description": "User account that updated the resource that fired the event" + }, + "updatedDateTime": { + "type": "string", + "description": "The time that the resource that fired the event was updated", + "format": "date-time" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeLog", + "description": "ChangeLog attribute schema" } } } From e2bcf6ecdfa3d27ad86ed0d42ff5e893d3a158cc Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Wed, 6 Nov 2024 17:19:06 -0800 Subject: [PATCH 04/24] Update data schemas to align with design and include data loader update script --- ...son => SupportedEventTypes_DataLoader.json | 331 +++++++----------- .../equinix/events/fabric/v1/Change.json | 46 +-- .../equinix/events/fabric/v1/ChangeAlert.json | 16 +- .../equinix/events/fabric/v1/Metric.json | 95 ++--- .../equinix/events/fabric/v1/MetricAlert.json | 32 +- scripts/update_data_loader.py | 39 +++ 6 files changed, 222 insertions(+), 337 deletions(-) rename SupportedEventTypes.json => SupportedEventTypes_DataLoader.json (62%) create mode 100644 scripts/update_data_loader.py diff --git a/SupportedEventTypes.json b/SupportedEventTypes_DataLoader.json similarity index 62% rename from SupportedEventTypes.json rename to SupportedEventTypes_DataLoader.json index 08da306..89c2251 100644 --- a/SupportedEventTypes.json +++ b/SupportedEventTypes_DataLoader.json @@ -1,237 +1,148 @@ [ - "equinix.fabric.connection.status.up", - "equinix.fabric.connection.status.down", - "equinix.fabric.connection.state.draft", - "equinix.fabric.connection.state.cancelled", - "equinix.fabric.connection.state.pending", - "equinix.fabric.connection.state.provisioning", - "equinix.fabric.connection.state.provisioned", - "equinix.fabric.connection.state.active", - "equinix.fabric.connection.state.reprovisioning", - "equinix.fabric.connection.state.deprovisioning", - "equinix.fabric.connection.state.deprovisioned", - "equinix.fabric.connection.state.failed", "equinix.fabric.connection.bandwidth_rx.usage", "equinix.fabric.connection.bandwidth_tx.usage", - "equinix.fabric.connection.routing_protocol_state.provisioning", - "equinix.fabric.connection.routing_protocol_state.provisioned", - "equinix.fabric.connection.routing_protocol_state.reprovisioning", - "equinix.fabric.connection.routing_protocol_state.deprovisioning", - "equinix.fabric.connection.routing_protocol_state.deprovisioned", - "equinix.fabric.connection.routing_protocol_state.failed", - "equinix.fabric.connection.bgp_ipv4_status.up", - "equinix.fabric.connection.bgp_ipv4_status.down", - "equinix.fabric.connection.bgp_ipv6_status.up", - "equinix.fabric.connection.bgp_ipv6_status.down", - "equinix.fabric.connection.bgp_ipv4_session.established", - "equinix.fabric.connection.bgp_ipv4_session.connect", - "equinix.fabric.connection.bgp_ipv4_session.opensent", - "equinix.fabric.connection.bgp_ipv4_session.openconfirm", "equinix.fabric.connection.bgp_ipv4_session.active", + "equinix.fabric.connection.bgp_ipv4_session.connect", + "equinix.fabric.connection.bgp_ipv4_session.established", "equinix.fabric.connection.bgp_ipv4_session.idle", - "equinix.fabric.connection.bgp_ipv6_session.established", - "equinix.fabric.connection.bgp_ipv6_session.connect", - "equinix.fabric.connection.bgp_ipv6_session.opensent", - "equinix.fabric.connection.bgp_ipv6_session.openconfirm", + "equinix.fabric.connection.bgp_ipv4_session.openconfirm", + "equinix.fabric.connection.bgp_ipv4_session.opensent", + "equinix.fabric.connection.bgp_ipv4_status.down", + "equinix.fabric.connection.bgp_ipv4_status.up", "equinix.fabric.connection.bgp_ipv6_session.active", + "equinix.fabric.connection.bgp_ipv6_session.connect", + "equinix.fabric.connection.bgp_ipv6_session.established", "equinix.fabric.connection.bgp_ipv6_session.idle", - "equinix.fabric.connection.reset_bgp_ipv4.succeeded", - "equinix.fabric.connection.reset_bgp_ipv4.failed", - "equinix.fabric.connection.reset_bgp_ipv6.succeeded", - "equinix.fabric.connection.reset_bgp_ipv6.failed", - "equinix.fabric.connection.clear_bgp_ipv4.succeeded", + "equinix.fabric.connection.bgp_ipv6_session.openconfirm", + "equinix.fabric.connection.bgp_ipv6_session.opensent", + "equinix.fabric.connection.bgp_ipv6_status.down", + "equinix.fabric.connection.bgp_ipv6_status.up", "equinix.fabric.connection.clear_bgp_ipv4.failed", - "equinix.fabric.connection.clear_bgp_ipv6.succeeded", - "equinix.fabric.connection.clear_bgp_ipv6.failed", - "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4.succeeded", "equinix.fabric.connection.clear_bgp_ipv4_inbound.failed", - "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv6.failed", + "equinix.fabric.connection.clear_bgp_ipv6.succeeded", "equinix.fabric.connection.clear_bgp_ipv6_inbound.failed", - "equinix.fabric.route_filter.state.provisioning", - "equinix.fabric.route_filter.state.provisioned", - "equinix.fabric.route_filter.state.reprovisioning", - "equinix.fabric.route_filter.state.deprovisioning", - "equinix.fabric.route_filter.state.deprovisioned", - "equinix.fabric.route_filter.state.not_provisioned", - "equinix.fabric.route_filter.state.not_deprovisioned", - "equinix.fabric.route_filter.rule_state.provisioning", - "equinix.fabric.route_filter.rule_state.provisionined", - "equinix.fabric.route_filter.rule_state.reprovisioning", - "equinix.fabric.route_filter.rule_state.deprovisioning", - "equinix.fabric.route_filter.rule_state.deprovisioned", - "equinix.fabric.route_filter.rule_state.not_provisioned", - "equinix.fabric.route_filter.rule_state.not_deprovisioned", - "equinix.fabric.route_filter.status.pending_bgp_configuration", - "equinix.fabric.route_filter.status.attaching", - "equinix.fabric.route_filter.status.attached", - "equinix.fabric.route_filter.status.detaching", - "equinix.fabric.route_filter.status.detached", - "equinix.fabric.route_filter.status.failed", - "equinix.fabric.port.status.up", - "equinix.fabric.port.status.down", - "equinix.fabric.port.state.pending", - "equinix.fabric.port.state.provisioning", - "equinix.fabric.port.state.provisioned", + "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", + "equinix.fabric.connection.reset_bgp_ipv4.failed", + "equinix.fabric.connection.reset_bgp_ipv4.succeeded", + "equinix.fabric.connection.reset_bgp_ipv6.failed", + "equinix.fabric.connection.reset_bgp_ipv6.succeeded", + "equinix.fabric.connection.routing_protocol_state.deprovisioned", + "equinix.fabric.connection.routing_protocol_state.deprovisioning", + "equinix.fabric.connection.routing_protocol_state.failed", + "equinix.fabric.connection.routing_protocol_state.provisioned", + "equinix.fabric.connection.routing_protocol_state.provisioning", + "equinix.fabric.connection.routing_protocol_state.reprovisioning", + "equinix.fabric.connection.state.active", + "equinix.fabric.connection.state.cancelled", + "equinix.fabric.connection.state.deprovisioned", + "equinix.fabric.connection.state.deprovisioning", + "equinix.fabric.connection.state.draft", + "equinix.fabric.connection.state.failed", + "equinix.fabric.connection.state.pending", + "equinix.fabric.connection.state.provisioned", + "equinix.fabric.connection.state.provisioning", + "equinix.fabric.connection.state.reprovisioning", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.status.up", + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", + "equinix.fabric.network.state.active", + "equinix.fabric.network.state.deleted", + "equinix.fabric.network.state.inactive", + "equinix.fabric.port.bandwidth_rx.usage", + "equinix.fabric.port.bandwidth_tx.usage", + "equinix.fabric.port.frames_dropped_rx.count", + "equinix.fabric.port.frames_dropped_tx.count", + "equinix.fabric.port.frames_erred_rx.count", + "equinix.fabric.port.frames_erred_tx.count", "equinix.fabric.port.state.active", - "equinix.fabric.port.state.inactive", - "equinix.fabric.port.state.deprovisioning", + "equinix.fabric.port.state.added", + "equinix.fabric.port.state.deleted", "equinix.fabric.port.state.deprovisioned", + "equinix.fabric.port.state.deprovisioning", "equinix.fabric.port.state.failed", + "equinix.fabric.port.state.inactive", + "equinix.fabric.port.state.pending", + "equinix.fabric.port.state.provisioned", + "equinix.fabric.port.state.provisioning", "equinix.fabric.port.state.to_be_added", "equinix.fabric.port.state.to_be_deleted", - "equinix.fabric.port.state.added", - "equinix.fabric.port.state.deleted", - "equinix.fabric.port.bandwidth_rx.usage", - "equinix.fabric.port.bandwidth_tx.usage", - "equinix.fabric.port.frames_erred_rx.count", - "equinix.fabric.port.frames_erred_tx.count", - "equinix.fabric.port.frames_dropped_rx.count", - "equinix.fabric.port.frames_dropped_tx.count", - "equinix.fabric.router.state.provisioning", - "equinix.fabric.router.state.provisioned", - "equinix.fabric.router.state.locked", - "equinix.fabric.router.state.deprovisioning", - "equinix.fabric.router.state.deprovisioned", - "equinix.fabric.router.state.not_provisioned", - "equinix.fabric.router.state.not_deprovisioned", - "equinix.fabric.router.routes_ipv4_installed.utilization", - "equinix.fabric.router.routes_ipv6_installed.utilization", + "equinix.fabric.port.status.down", + "equinix.fabric.port.status.up", + "equinix.fabric.route_filter.rule_state.deprovisioned", + "equinix.fabric.route_filter.rule_state.deprovisioning", + "equinix.fabric.route_filter.rule_state.not_deprovisioned", + "equinix.fabric.route_filter.rule_state.not_provisioned", + "equinix.fabric.route_filter.rule_state.provisionined", + "equinix.fabric.route_filter.rule_state.provisioning", + "equinix.fabric.route_filter.rule_state.reprovisioning", + "equinix.fabric.route_filter.state.deprovisioned", + "equinix.fabric.route_filter.state.deprovisioning", + "equinix.fabric.route_filter.state.not_deprovisioned", + "equinix.fabric.route_filter.state.not_provisioned", + "equinix.fabric.route_filter.state.provisioned", + "equinix.fabric.route_filter.state.provisioning", + "equinix.fabric.route_filter.state.reprovisioning", + "equinix.fabric.route_filter.status.attached", + "equinix.fabric.route_filter.status.attaching", + "equinix.fabric.route_filter.status.detached", + "equinix.fabric.route_filter.status.detaching", + "equinix.fabric.route_filter.status.failed", + "equinix.fabric.route_filter.status.pending_bgp_configuration", + "equinix.fabric.router.advertised_route_entry_update.failed", + "equinix.fabric.router.advertised_route_entry_update.pending", + "equinix.fabric.router.advertised_route_entry_update.succeeded", + "equinix.fabric.router.bgp_session_status_update.failed", "equinix.fabric.router.bgp_session_status_update.pending", "equinix.fabric.router.bgp_session_status_update.succeeded", - "equinix.fabric.router.bgp_session_status_update.failed", - "equinix.fabric.router.route_table_entry_update.pending", - "equinix.fabric.router.route_table_entry_update.succeeded", - "equinix.fabric.router.route_table_entry_update.failed", + "equinix.fabric.router.received_route_entry_update.failed", "equinix.fabric.router.received_route_entry_update.pending", "equinix.fabric.router.received_route_entry_update.succeeded", - "equinix.fabric.router.received_route_entry_update.failed", - "equinix.fabric.router.advertised_route_entry_update.pending", - "equinix.fabric.router.advertised_route_entry_update.succeeded", - "equinix.fabric.router.advertised_route_entry_update.failed", - "equinix.fabric.network.state.active", - "equinix.fabric.network.state.inactive", - "equinix.fabric.network.state.deleted", - "equinix.fabric.time_service.state.pending_configuration", - "equinix.fabric.time_service.state.provisioning", - "equinix.fabric.time_service.state.provisioned", - "equinix.fabric.time_service.state.deprovisioning", - "equinix.fabric.time_service.state.deprovisioned", - "equinix.fabric.time_service.state.configuring_failed", - "equinix.fabric.time_service.state.provisioning_failed", - "equinix.fabric.time_service.state.deprovisioning_failed", - "equinix.fabric.time_service.state.configuring", - "equinix.fabric.time_service.state.cancelled", - "equinix.fabric.service_token.state.active", - "equinix.fabric.service_token.state.inactive", - "equinix.fabric.service_token.state.expired", - "equinix.fabric.service_token.state.deleted", - "equinix.fabric.service_profile.state.pending_approval", - "equinix.fabric.service_profile.state.rejected", + "equinix.fabric.router.route_table_entry_update.failed", + "equinix.fabric.router.route_table_entry_update.pending", + "equinix.fabric.router.route_table_entry_update.succeeded", + "equinix.fabric.router.routes_ipv4_installed.utilization", + "equinix.fabric.router.routes_ipv6_installed.utilization", + "equinix.fabric.router.state.deprovisioned", + "equinix.fabric.router.state.deprovisioning", + "equinix.fabric.router.state.locked", + "equinix.fabric.router.state.not_deprovisioned", + "equinix.fabric.router.state.not_provisioned", + "equinix.fabric.router.state.provisioned", + "equinix.fabric.router.state.provisioning", "equinix.fabric.service_profile.state.active", "equinix.fabric.service_profile.state.deleted", - "equinix.fabric.stream.state.provisioning", - "equinix.fabric.stream.state.provisioned", - "equinix.fabric.stream.state.deprovisioning", - "equinix.fabric.stream.state.deprovisioned", - "equinix.fabric.stream.state.failed", - "equinix.fabric.stream.resource_status.attaching", + "equinix.fabric.service_profile.state.pending_approval", + "equinix.fabric.service_profile.state.rejected", + "equinix.fabric.service_token.state.active", + "equinix.fabric.service_token.state.deleted", + "equinix.fabric.service_token.state.expired", + "equinix.fabric.service_token.state.inactive", "equinix.fabric.stream.resource_status.attached", - "equinix.fabric.stream.resource_status.detaching", + "equinix.fabric.stream.resource_status.attaching", "equinix.fabric.stream.resource_status.detached", + "equinix.fabric.stream.resource_status.detaching", "equinix.fabric.stream.resource_status.failed", - "equinix.fabric.stream_subscription.state.provisioning", - "equinix.fabric.stream_subscription.state.provisioned", - "equinix.fabric.stream_subscription.state.deprovisioning", + "equinix.fabric.stream.state.deprovisioned", + "equinix.fabric.stream.state.deprovisioning", + "equinix.fabric.stream.state.failed", + "equinix.fabric.stream.state.provisioned", + "equinix.fabric.stream.state.provisioning", "equinix.fabric.stream_subscription.state.deprovisioned", + "equinix.fabric.stream_subscription.state.deprovisioning", "equinix.fabric.stream_subscription.state.failed", - "equinix.fabric.metro.at_{:metroCode}.latency", - "equinix.fabric.metro.bg_{:metroCode}.latency", - "equinix.fabric.metro.bo_{:metroCode}.latency", - "equinix.fabric.metro.ch_{:metroCode}.latency", - "equinix.fabric.metro.cl_{:metroCode}.latency", - "equinix.fabric.metro.cu_{:metroCode}.latency", - "equinix.fabric.metro.da_{:metroCode}.latency", - "equinix.fabric.metro.dc_{:metroCode}.latency", - "equinix.fabric.metro.de_{:metroCode}.latency", - "equinix.fabric.metro.ho_{:metroCode}.latency", - "equinix.fabric.metro.ka_{:metroCode}.latency", - "equinix.fabric.metro.la_{:metroCode}.latency", - "equinix.fabric.metro.lm_{:metroCode}.latency", - "equinix.fabric.metro.mi_{:metroCode}.latency", - "equinix.fabric.metro.mo_{:metroCode}.latency", - "equinix.fabric.metro.mt_{:metroCode}.latency", - "equinix.fabric.metro.mx_{:metroCode}.latency", - "equinix.fabric.metro.ny_{:metroCode}.latency", - "equinix.fabric.metro.ot_{:metroCode}.latency", - "equinix.fabric.metro.ph_{:metroCode}.latency", - "equinix.fabric.metro.rj_{:metroCode}.latency", - "equinix.fabric.metro.se_{:metroCode}.latency", - "equinix.fabric.metro.sp_{:metroCode}.latency", - "equinix.fabric.metro.st_{:metroCode}.latency", - "equinix.fabric.metro.sv_{:metroCode}.latency", - "equinix.fabric.metro.tr_{:metroCode}.latency", - "equinix.fabric.metro.va_{:metroCode}.latency", - "equinix.fabric.metro.wi_{:metroCode}.latency", - "equinix.fabric.metro.ca_{:metroCode}.latency", - "equinix.fabric.metro.hk_{:metroCode}.latency", - "equinix.fabric.metro.jh_{:metroCode}.latency", - "equinix.fabric.metro.kl_{:metroCode}.latency", - "equinix.fabric.metro.mb_{:metroCode}.latency", - "equinix.fabric.metro.me_{:metroCode}.latency", - "equinix.fabric.metro.os_{:metroCode}.latency", - "equinix.fabric.metro.pe_{:metroCode}.latency", - "equinix.fabric.metro.sg_{:metroCode}.latency", - "equinix.fabric.metro.sl_{:metroCode}.latency", - "equinix.fabric.metro.sy_{:metroCode}.latency", - "equinix.fabric.metro.ty_{:metroCode}.latency", - "equinix.fabric.metro.am_{:metroCode}.latency", - "equinix.fabric.metro.ba_{:metroCode}.latency", - "equinix.fabric.metro.bl_{:metroCode}.latency", - "equinix.fabric.metro.bx_{:metroCode}.latency", - "equinix.fabric.metro.db_{:metroCode}.latency", - "equinix.fabric.metro.dx_{:metroCode}.latency", - "equinix.fabric.metro.fr_{:metroCode}.latency", - "equinix.fabric.metro.gv_{:metroCode}.latency", - "equinix.fabric.metro.he_{:metroCode}.latency", - "equinix.fabric.metro.hh_{:metroCode}.latency", - "equinix.fabric.metro.il_{:metroCode}.latency", - "equinix.fabric.metro.ld_{:metroCode}.latency", - "equinix.fabric.metro.ls_{:metroCode}.latency", - "equinix.fabric.metro.ma_{:metroCode}.latency", - "equinix.fabric.metro.md_{:metroCode}.latency", - "equinix.fabric.metro.ml_{:metroCode}.latency", - "equinix.fabric.metro.mu_{:metroCode}.latency", - "equinix.fabric.metro.pa_{:metroCode}.latency", - "equinix.fabric.metro.sk_{:metroCode}.latency", - "equinix.fabric.metro.so_{:metroCode}.latency", - "equinix.fabric.metro.wa_{:metroCode}.latency", - "equinix.fabric.metro.zu_{:metroCode}.latency", - "equinix.network_edge.device.state.provisioned", - "equinix.network_edge.device.state.deprovisioned", - "equinix.network_edge.device.state.pending_configuration", - "equinix.network_edge.device.state.rebooted", - "equinix.network_edge.device.acl.removed", - "equinix.network_edge.device.attribute.changed", - "equinix.resource_manager.organization.state.created", - "equinix.resource_manager.organization.state.updated", - "equinix.resource_manager.organization.state.deleted", - "equinix.resource_manager.project.state.created", - "equinix.resource_manager.project.state.updated", - "equinix.resource_manager.project.state.deleted", - "equinix.identity.user.state.created", - "equinix.identity.user.state.updated", - "equinix.identity.user.state.deactivated", - "equinix.identity.user.state.deleted", - "equinix.identity.user.activity.logged_in", - "equinix.identity.user.activity.logged_out", - "equinix.identity.service_account.state.created", - "equinix.identity.service_account.state.updated", - "equinix.identity.service_account.state.deleted", - "equinix.access_manager.user.role.added", - "equinix.access_manager.user.role.removed", - "equinix.access_manager.user.critical_resource_access.unauthorized", - "equinix.access_manager.service_account.action.authenticated ", - "equinix.access_manager.service_account.role.added ", - "equinix.access_manager.service_account.role.removed ", - "equinix.access_manager.service_account.critical_resource_access.unauthorized " + "equinix.fabric.stream_subscription.state.provisioned", + "equinix.fabric.stream_subscription.state.provisioning", + "equinix.fabric.time_service.state.cancelled", + "equinix.fabric.time_service.state.configuring", + "equinix.fabric.time_service.state.configuring_failed", + "equinix.fabric.time_service.state.deprovisioned", + "equinix.fabric.time_service.state.deprovisioning", + "equinix.fabric.time_service.state.deprovisioning_failed", + "equinix.fabric.time_service.state.pending_configuration", + "equinix.fabric.time_service.state.provisioned", + "equinix.fabric.time_service.state.provisioning", + "equinix.fabric.time_service.state.provisioning_failed" ] diff --git a/jsonschema/equinix/events/fabric/v1/Change.json b/jsonschema/equinix/events/fabric/v1/Change.json index 83bc9a8..ec4edd4 100644 --- a/jsonschema/equinix/events/fabric/v1/Change.json +++ b/jsonschema/equinix/events/fabric/v1/Change.json @@ -139,35 +139,7 @@ "equinix.fabric.stream_subscription.state.provisioned", "equinix.fabric.stream_subscription.state.deprovisioning", "equinix.fabric.stream_subscription.state.deprovisioned", - "equinix.fabric.stream_subscription.state.failed", - "equinix.network_edge.device.state.provisioned", - "equinix.network_edge.device.state.deprovisioned", - "equinix.network_edge.device.state.pending_configuration", - "equinix.network_edge.device.state.rebooted", - "equinix.network_edge.device.acl.removed", - "equinix.network_edge.device.attribute.changed", - "equinix.resource_manager.organization.state.created", - "equinix.resource_manager.organization.state.updated", - "equinix.resource_manager.organization.state.deleted", - "equinix.resource_manager.project.state.created", - "equinix.resource_manager.project.state.updated", - "equinix.resource_manager.project.state.deleted", - "equinix.identity.user.state.created", - "equinix.identity.user.state.updated", - "equinix.identity.user.state.deactivated", - "equinix.identity.user.state.deleted", - "equinix.identity.user.activity.logged_in", - "equinix.identity.user.activity.logged_out", - "equinix.identity.service_account.state.created", - "equinix.identity.service_account.state.updated", - "equinix.identity.service_account.state.deleted", - "equinix.access_manager.user.role.added", - "equinix.access_manager.user.role.removed", - "equinix.access_manager.user.critical_resource_access.unauthorized", - "equinix.access_manager.service_account.action.authenticated ", - "equinix.access_manager.service_account.role.added ", - "equinix.access_manager.service_account.role.removed ", - "equinix.access_manager.service_account.critical_resource_access.unauthorized " + "equinix.fabric.stream_subscription.state.failed" ], "product": "Equinix Fabric Change", "$schema": "http://json-schema.org/draft-04/schema#", @@ -183,11 +155,6 @@ "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -216,6 +183,11 @@ "state": { "type": "string", "description": "State of the resource generating the event" + }, + "change": { + "$ref": "#/definitions/ResourceChange", + "additionalProperties": true, + "description": "Chang information for the resource that fired the event" } }, "additionalProperties": true, @@ -223,7 +195,7 @@ "title": "Resource", "description": "Schema of the resource that fired the event" }, - "ChangeLog": { + "ResourceChange": { "properties": { "createdBy": { "type": "string", @@ -246,8 +218,8 @@ }, "additionalProperties": true, "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" + "title": "Change", + "description": "Change attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json index bf03103..6d6683a 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json @@ -28,11 +28,6 @@ "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -61,6 +56,11 @@ "state": { "type": "string", "description": "State of the resource generating the event" + }, + "change": { + "$ref": "#/definitions/ResourceChange", + "additionalProperties": true, + "description": "Chang information for the resource that fired the event" } }, "additionalProperties": true, @@ -68,7 +68,7 @@ "title": "Resource", "description": "Schema of the resource that fired the event" }, - "ChangeLog": { + "ResourceChange": { "properties": { "createdBy": { "type": "string", @@ -91,8 +91,8 @@ }, "additionalProperties": true, "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" + "title": "Change", + "description": "Change attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/Metric.json b/jsonschema/equinix/events/fabric/v1/Metric.json index 25a2a8b..d9b081f 100644 --- a/jsonschema/equinix/events/fabric/v1/Metric.json +++ b/jsonschema/equinix/events/fabric/v1/Metric.json @@ -15,68 +15,7 @@ "equinix.fabric.port.frames_dropped_tx.count", "equinix.fabric.router.routes_ipv4_installed.utilization", "equinix.fabric.router.routes_ipv6_installed.utilization", - "equinix.fabric.metro.at_{:metroCode}.latency", - "equinix.fabric.metro.bg_{:metroCode}.latency", - "equinix.fabric.metro.bo_{:metroCode}.latency", - "equinix.fabric.metro.ch_{:metroCode}.latency", - "equinix.fabric.metro.cl_{:metroCode}.latency", - "equinix.fabric.metro.cu_{:metroCode}.latency", - "equinix.fabric.metro.da_{:metroCode}.latency", - "equinix.fabric.metro.dc_{:metroCode}.latency", - "equinix.fabric.metro.de_{:metroCode}.latency", - "equinix.fabric.metro.ho_{:metroCode}.latency", - "equinix.fabric.metro.ka_{:metroCode}.latency", - "equinix.fabric.metro.la_{:metroCode}.latency", - "equinix.fabric.metro.lm_{:metroCode}.latency", - "equinix.fabric.metro.mi_{:metroCode}.latency", - "equinix.fabric.metro.mo_{:metroCode}.latency", - "equinix.fabric.metro.mt_{:metroCode}.latency", - "equinix.fabric.metro.mx_{:metroCode}.latency", - "equinix.fabric.metro.ny_{:metroCode}.latency", - "equinix.fabric.metro.ot_{:metroCode}.latency", - "equinix.fabric.metro.ph_{:metroCode}.latency", - "equinix.fabric.metro.rj_{:metroCode}.latency", - "equinix.fabric.metro.se_{:metroCode}.latency", - "equinix.fabric.metro.sp_{:metroCode}.latency", - "equinix.fabric.metro.st_{:metroCode}.latency", - "equinix.fabric.metro.sv_{:metroCode}.latency", - "equinix.fabric.metro.tr_{:metroCode}.latency", - "equinix.fabric.metro.va_{:metroCode}.latency", - "equinix.fabric.metro.wi_{:metroCode}.latency", - "equinix.fabric.metro.ca_{:metroCode}.latency", - "equinix.fabric.metro.hk_{:metroCode}.latency", - "equinix.fabric.metro.jh_{:metroCode}.latency", - "equinix.fabric.metro.kl_{:metroCode}.latency", - "equinix.fabric.metro.mb_{:metroCode}.latency", - "equinix.fabric.metro.me_{:metroCode}.latency", - "equinix.fabric.metro.os_{:metroCode}.latency", - "equinix.fabric.metro.pe_{:metroCode}.latency", - "equinix.fabric.metro.sg_{:metroCode}.latency", - "equinix.fabric.metro.sl_{:metroCode}.latency", - "equinix.fabric.metro.sy_{:metroCode}.latency", - "equinix.fabric.metro.ty_{:metroCode}.latency", - "equinix.fabric.metro.am_{:metroCode}.latency", - "equinix.fabric.metro.ba_{:metroCode}.latency", - "equinix.fabric.metro.bl_{:metroCode}.latency", - "equinix.fabric.metro.bx_{:metroCode}.latency", - "equinix.fabric.metro.db_{:metroCode}.latency", - "equinix.fabric.metro.dx_{:metroCode}.latency", - "equinix.fabric.metro.fr_{:metroCode}.latency", - "equinix.fabric.metro.gv_{:metroCode}.latency", - "equinix.fabric.metro.he_{:metroCode}.latency", - "equinix.fabric.metro.hh_{:metroCode}.latency", - "equinix.fabric.metro.il_{:metroCode}.latency", - "equinix.fabric.metro.ld_{:metroCode}.latency", - "equinix.fabric.metro.ls_{:metroCode}.latency", - "equinix.fabric.metro.ma_{:metroCode}.latency", - "equinix.fabric.metro.md_{:metroCode}.latency", - "equinix.fabric.metro.ml_{:metroCode}.latency", - "equinix.fabric.metro.mu_{:metroCode}.latency", - "equinix.fabric.metro.pa_{:metroCode}.latency", - "equinix.fabric.metro.sk_{:metroCode}.latency", - "equinix.fabric.metro.so_{:metroCode}.latency", - "equinix.fabric.metro.wa_{:metroCode}.latency", - "equinix.fabric.metro.zu_{:metroCode}.latency" + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency" ], "product": "Equinix Fabric Metric", "$schema": "http://json-schema.org/draft-04/schema#", @@ -90,18 +29,16 @@ "description": "Optional. The Backup event payload. Unset for deletion events." }, "metrics": { - "$ref": "#/definitions/Metrics", - "additionalProperties": true, + "type": "array", + "items": { + "$ref": "#/definitions/Metrics", + "additionalProperties": true + }, "description": "Specific details of the metric event" }, "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -130,6 +67,11 @@ "state": { "type": "string", "description": "State of the resource generating the event" + }, + "change": { + "$ref": "#/definitions/ResourceChange", + "additionalProperties": true, + "description": "Chang information for the resource that fired the event" } }, "additionalProperties": true, @@ -151,6 +93,10 @@ "type": "string", "description": "Unified Code for Units of Measure" }, + "interval": { + "type": "string", + "description": "The time interval that the metric datapoints refer to" + }, "dataPoints": { "type": "array", "description": "Metric data values and end times", @@ -166,6 +112,11 @@ }, "DataPoints": { "properties": { + "startDateTime": { + "type": "string", + "description": "The start time of the metric data point value given", + "format": "date-time" + }, "endDateTime": { "type": "string", "description": "The end time of the metric data point value given", @@ -180,7 +131,7 @@ "title": "DataPoints", "additionalProperties": true }, - "ChangeLog": { + "ResourceChange": { "properties": { "createdBy": { "type": "string", @@ -203,8 +154,8 @@ }, "additionalProperties": true, "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" + "title": "Change", + "description": "Change attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json index 1033c3e..55e5df0 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricAlert.json +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -20,18 +20,16 @@ "description": "Optional. The Backup event payload. Unset for deletion events." }, "metrics": { - "$ref": "#/definitions/Metrics", - "additionalProperties": true, + "type": "array", + "items": { + "$ref": "#/definitions/Metrics", + "additionalProperties": true + }, "description": "Specific details of the metric event" }, "message": { "type": "string", "description": "Supporting message describing the event" - }, - "changeLog": { - "$ref": "#/definitions/ChangeLog", - "additionalProperties": true, - "description": "ChangLog information for the resource that fired the event" } }, "additionalProperties": true, @@ -60,6 +58,11 @@ "state": { "type": "string", "description": "State of the resource generating the event" + }, + "change": { + "$ref": "#/definitions/ResourceChange", + "additionalProperties": true, + "description": "Chang information for the resource that fired the event" } }, "additionalProperties": true, @@ -81,6 +84,10 @@ "type": "string", "description": "Unified Code for Units of Measure" }, + "interval": { + "type": "string", + "description": "The time interval that the metric datapoints refer to" + }, "dataPoints": { "type": "array", "description": "Metric data values and end times", @@ -96,6 +103,11 @@ }, "DataPoints": { "properties": { + "startDateTime": { + "type": "string", + "description": "The start time of the metric data point value given", + "format": "date-time" + }, "endDateTime": { "type": "string", "description": "The end time of the metric data point value given", @@ -110,7 +122,7 @@ "title": "DataPoints", "additionalProperties": true }, - "ChangeLog": { + "ResourceChange": { "properties": { "createdBy": { "type": "string", @@ -133,8 +145,8 @@ }, "additionalProperties": true, "type": "object", - "title": "ChangeLog", - "description": "ChangeLog attribute schema" + "title": "Change", + "description": "Change attribute schema" } } } diff --git a/scripts/update_data_loader.py b/scripts/update_data_loader.py new file mode 100644 index 0000000..4f4cadc --- /dev/null +++ b/scripts/update_data_loader.py @@ -0,0 +1,39 @@ +import os +import sys +import json + +def find_json_files(directory): + json_files = [] + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith('.json') and file != "catalog.json": + json_files.append(os.path.join(root, file)) + return json_files + +def retrieve_supported_events(files): + events = set() + for file in files: + with open(file, "r") as eventFile: + data = json.load(eventFile) + for supportedEvent in data["cloudeventTypes"]: + events.add(supportedEvent) + + return events + +def writeSupportedEventsToDataLoaderFile(supportedEvents): + with open("./SupportedEventTypes_DataLoader.json", "w") as eventsFile: + eventsFile.write(json.dumps(sorted(supportedEvents), indent=4)) + eventsFile.write("\n") + + +if __name__ == "__main__": + # Example usage + + directory_to_search = sys.argv[1] + json_files = find_json_files(directory_to_search) + + for file in json_files: + print(file) + + supportedEvents = retrieve_supported_events(json_files) + writeSupportedEventsToDataLoaderFile(supportedEvents) From 992588b11f1e436e1929946c30d6967ab47dd9d3 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Wed, 6 Nov 2024 17:20:12 -0800 Subject: [PATCH 05/24] Remove unnecessary lines in data loader update script --- scripts/update_data_loader.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/scripts/update_data_loader.py b/scripts/update_data_loader.py index 4f4cadc..8e9f01b 100644 --- a/scripts/update_data_loader.py +++ b/scripts/update_data_loader.py @@ -27,13 +27,8 @@ def writeSupportedEventsToDataLoaderFile(supportedEvents): if __name__ == "__main__": - # Example usage - directory_to_search = sys.argv[1] json_files = find_json_files(directory_to_search) - for file in json_files: - print(file) - supportedEvents = retrieve_supported_events(json_files) writeSupportedEventsToDataLoaderFile(supportedEvents) From e18f812b2c19ac17ee4f85ce1f678dcf79cde93c Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Wed, 6 Nov 2024 17:28:36 -0800 Subject: [PATCH 06/24] Add in metric event type to supported event types --- SupportedEventTypes_DataLoader.json | 1 + jsonschema/equinix/events/fabric/v1/Metric.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/SupportedEventTypes_DataLoader.json b/SupportedEventTypes_DataLoader.json index 89c2251..e930956 100644 --- a/SupportedEventTypes_DataLoader.json +++ b/SupportedEventTypes_DataLoader.json @@ -47,6 +47,7 @@ "equinix.fabric.connection.state.reprovisioning", "equinix.fabric.connection.status.down", "equinix.fabric.connection.status.up", + "equinix.fabric.metric", "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", "equinix.fabric.network.state.active", "equinix.fabric.network.state.deleted", diff --git a/jsonschema/equinix/events/fabric/v1/Metric.json b/jsonschema/equinix/events/fabric/v1/Metric.json index d9b081f..9356197 100644 --- a/jsonschema/equinix/events/fabric/v1/Metric.json +++ b/jsonschema/equinix/events/fabric/v1/Metric.json @@ -15,7 +15,8 @@ "equinix.fabric.port.frames_dropped_tx.count", "equinix.fabric.router.routes_ipv4_installed.utilization", "equinix.fabric.router.routes_ipv6_installed.utilization", - "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency" + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", + "equinix.fabric.metric" ], "product": "Equinix Fabric Metric", "$schema": "http://json-schema.org/draft-04/schema#", From 4c022abbdd38ef97fc43b750ade3a7cb0afc43dc Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Fri, 8 Nov 2024 16:34:30 -0800 Subject: [PATCH 07/24] Update paths processing of jsonschema directory from data_loader script --- scripts/update_data_loader.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/scripts/update_data_loader.py b/scripts/update_data_loader.py index 8e9f01b..ab12da0 100644 --- a/scripts/update_data_loader.py +++ b/scripts/update_data_loader.py @@ -1,23 +1,16 @@ import os -import sys import json -def find_json_files(directory): - json_files = [] +def retrieve_supported_events(): + directory = os.path.dirname(os.path.abspath(__file__)) + '/../jsonschema' + events = set() for root, dirs, files in os.walk(directory): + print(root) for file in files: if file.endswith('.json') and file != "catalog.json": - json_files.append(os.path.join(root, file)) - return json_files - -def retrieve_supported_events(files): - events = set() - for file in files: - with open(file, "r") as eventFile: - data = json.load(eventFile) - for supportedEvent in data["cloudeventTypes"]: - events.add(supportedEvent) - + with open(root + "/" + file, "r") as eventFile: + data = json.load(eventFile) + events.update(data["cloudeventTypes"]) return events def writeSupportedEventsToDataLoaderFile(supportedEvents): @@ -27,8 +20,5 @@ def writeSupportedEventsToDataLoaderFile(supportedEvents): if __name__ == "__main__": - directory_to_search = sys.argv[1] - json_files = find_json_files(directory_to_search) - - supportedEvents = retrieve_supported_events(json_files) + supportedEvents = retrieve_supported_events() writeSupportedEventsToDataLoaderFile(supportedEvents) From 6dd8167a1a6894e97a22e0815ffa84f11b28b557 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Mon, 11 Nov 2024 18:06:15 -0800 Subject: [PATCH 08/24] Add automation for json catalog creation and README table regeneration --- README.md | 19 ++- jsonschema/catalog.json | 200 ++++++++++++++++++++++- scripts/generate_json_catalog.py | 36 ++++ scripts/generate_readme_event_catalog.py | 34 ++++ scripts/update_data_loader.py | 1 - 5 files changed, 286 insertions(+), 4 deletions(-) create mode 100644 scripts/generate_json_catalog.py create mode 100644 scripts/generate_readme_event_catalog.py diff --git a/README.md b/README.md index 17d324d..9577144 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ # cloud-events -Equinix published CloudEvents Types + +Equinix published [CloudEvent](https://cloudevents.io/) Types + +Definitive "source of truth" for the Equinix Observability event data formats + +## CloudEvents in this repository + +The following data payloads are the supported events and formats for Equinix Observability + + +|Product|Schemas|Types| +|-|-|-| +|Equinix Fabric Change|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Change.json)|
Data Type:
`equinix.events.fabric.v1.Change`
CloudEvent Type(s):
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.state.draft`
`equinix.fabric.connection.state.cancelled`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.active`
`equinix.fabric.connection.state.reprovisioning`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.failed`
`equinix.fabric.connection.routing_protocol_state.provisioning`
`equinix.fabric.connection.routing_protocol_state.provisioned`
`equinix.fabric.connection.routing_protocol_state.reprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioned`
`equinix.fabric.connection.routing_protocol_state.failed`
`equinix.fabric.connection.bgp_ipv4_status.up`
`equinix.fabric.connection.bgp_ipv4_status.down`
`equinix.fabric.connection.bgp_ipv6_status.up`
`equinix.fabric.connection.bgp_ipv6_status.down`
`equinix.fabric.connection.bgp_ipv4_session.established`
`equinix.fabric.connection.bgp_ipv4_session.connect`
`equinix.fabric.connection.bgp_ipv4_session.opensent`
`equinix.fabric.connection.bgp_ipv4_session.openconfirm`
`equinix.fabric.connection.bgp_ipv4_session.active`
`equinix.fabric.connection.bgp_ipv4_session.idle`
`equinix.fabric.connection.bgp_ipv6_session.established`
`equinix.fabric.connection.bgp_ipv6_session.connect`
`equinix.fabric.connection.bgp_ipv6_session.opensent`
`equinix.fabric.connection.bgp_ipv6_session.openconfirm`
`equinix.fabric.connection.bgp_ipv6_session.active`
`equinix.fabric.connection.bgp_ipv6_session.idle`
`equinix.fabric.connection.reset_bgp_ipv4.succeeded`
`equinix.fabric.connection.reset_bgp_ipv4.failed`
`equinix.fabric.connection.reset_bgp_ipv6.succeeded`
`equinix.fabric.connection.reset_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4.failed`
`equinix.fabric.connection.clear_bgp_ipv6.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.failed`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.failed`
`equinix.fabric.route_filter.state.provisioning`
`equinix.fabric.route_filter.state.provisioned`
`equinix.fabric.route_filter.state.reprovisioning`
`equinix.fabric.route_filter.state.deprovisioning`
`equinix.fabric.route_filter.state.deprovisioned`
`equinix.fabric.route_filter.state.not_provisioned`
`equinix.fabric.route_filter.state.not_deprovisioned`
`equinix.fabric.route_filter.rule_state.provisioning`
`equinix.fabric.route_filter.rule_state.provisionined`
`equinix.fabric.route_filter.rule_state.reprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioned`
`equinix.fabric.route_filter.rule_state.not_provisioned`
`equinix.fabric.route_filter.rule_state.not_deprovisioned`
`equinix.fabric.route_filter.status.pending_bgp_configuration`
`equinix.fabric.route_filter.status.attaching`
`equinix.fabric.route_filter.status.attached`
`equinix.fabric.route_filter.status.detaching`
`equinix.fabric.route_filter.status.detached`
`equinix.fabric.route_filter.status.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.port.state.pending`
`equinix.fabric.port.state.provisioning`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.active`
`equinix.fabric.port.state.inactive`
`equinix.fabric.port.state.deprovisioning`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.state.to_be_added`
`equinix.fabric.port.state.to_be_deleted`
`equinix.fabric.port.state.added`
`equinix.fabric.port.state.deleted`
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.locked`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.router.bgp_session_status_update.pending`
`equinix.fabric.router.bgp_session_status_update.succeeded`
`equinix.fabric.router.bgp_session_status_update.failed`
`equinix.fabric.router.route_table_entry_update.pending`
`equinix.fabric.router.route_table_entry_update.succeeded`
`equinix.fabric.router.route_table_entry_update.failed`
`equinix.fabric.router.received_route_entry_update.pending`
`equinix.fabric.router.received_route_entry_update.succeeded`
`equinix.fabric.router.received_route_entry_update.failed`
`equinix.fabric.router.advertised_route_entry_update.pending`
`equinix.fabric.router.advertised_route_entry_update.succeeded`
`equinix.fabric.router.advertised_route_entry_update.failed`
`equinix.fabric.network.state.active`
`equinix.fabric.network.state.inactive`
`equinix.fabric.network.state.deleted`
`equinix.fabric.time_service.state.pending_configuration`
`equinix.fabric.time_service.state.provisioning`
`equinix.fabric.time_service.state.provisioned`
`equinix.fabric.time_service.state.deprovisioning`
`equinix.fabric.time_service.state.deprovisioned`
`equinix.fabric.time_service.state.configuring_failed`
`equinix.fabric.time_service.state.provisioning_failed`
`equinix.fabric.time_service.state.deprovisioning_failed`
`equinix.fabric.time_service.state.configuring`
`equinix.fabric.time_service.state.cancelled`
`equinix.fabric.service_token.state.active`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.expired`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_profile.state.pending_approval`
`equinix.fabric.service_profile.state.rejected`
`equinix.fabric.service_profile.state.active`
`equinix.fabric.service_profile.state.deleted`
`equinix.fabric.stream.state.provisioning`
`equinix.fabric.stream.state.provisioned`
`equinix.fabric.stream.state.deprovisioning`
`equinix.fabric.stream.state.deprovisioned`
`equinix.fabric.stream.state.failed`
`equinix.fabric.stream.resource_status.attaching`
`equinix.fabric.stream.resource_status.attached`
`equinix.fabric.stream.resource_status.detaching`
`equinix.fabric.stream.resource_status.detached`
`equinix.fabric.stream.resource_status.failed`
`equinix.fabric.stream_subscription.state.provisioning`
`equinix.fabric.stream_subscription.state.provisioned`
`equinix.fabric.stream_subscription.state.deprovisioning`
`equinix.fabric.stream_subscription.state.deprovisioned`
`equinix.fabric.stream_subscription.state.failed`
| +|Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgp_ipv4_status.up`
`equinix.fabric.connection.bgp_ipv4_status.down`
`equinix.fabric.connection.bgp_ipv6_status.up`
`equinix.fabric.connection.bgp_ipv6_status.down`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
| +|Equinix Fabric Metric|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Metric.json)|
Data Type:
`equinix.events.fabric.v1.Metric`
CloudEvent Type(s):
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
`equinix.fabric.port.frames_erred_rx.count`
`equinix.fabric.port.frames_erred_tx.count`
`equinix.fabric.port.frames_dropped_rx.count`
`equinix.fabric.port.frames_dropped_tx.count`
`equinix.fabric.router.routes_ipv4_installed.utilization`
`equinix.fabric.router.routes_ipv6_installed.utilization`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.metric`
| +|Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):
`equinix.fabric.router.routes_ipv4_installed.utilization`
`equinix.fabric.router.routes_ipv6_installed.utilization`
| + + diff --git a/jsonschema/catalog.json b/jsonschema/catalog.json index 81c607e..97c7841 100644 --- a/jsonschema/catalog.json +++ b/jsonschema/catalog.json @@ -1,3 +1,199 @@ { - "events": "Details of events to be published on github webpages." -} \ No newline at end of file + "$schema": "https://json.schemastore.org/schema-catalog", + "version": 1, + "schemas": [ + { + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Change.json", + "product": "Equinix Fabric Change", + "name": "Change", + "description": "The data within all Change events.", + "datatype": "equinix.events.fabric.v1.Change", + "cloudeventTypes": [ + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.state.draft", + "equinix.fabric.connection.state.cancelled", + "equinix.fabric.connection.state.pending", + "equinix.fabric.connection.state.provisioning", + "equinix.fabric.connection.state.provisioned", + "equinix.fabric.connection.state.active", + "equinix.fabric.connection.state.reprovisioning", + "equinix.fabric.connection.state.deprovisioning", + "equinix.fabric.connection.state.deprovisioned", + "equinix.fabric.connection.state.failed", + "equinix.fabric.connection.routing_protocol_state.provisioning", + "equinix.fabric.connection.routing_protocol_state.provisioned", + "equinix.fabric.connection.routing_protocol_state.reprovisioning", + "equinix.fabric.connection.routing_protocol_state.deprovisioning", + "equinix.fabric.connection.routing_protocol_state.deprovisioned", + "equinix.fabric.connection.routing_protocol_state.failed", + "equinix.fabric.connection.bgp_ipv4_status.up", + "equinix.fabric.connection.bgp_ipv4_status.down", + "equinix.fabric.connection.bgp_ipv6_status.up", + "equinix.fabric.connection.bgp_ipv6_status.down", + "equinix.fabric.connection.bgp_ipv4_session.established", + "equinix.fabric.connection.bgp_ipv4_session.connect", + "equinix.fabric.connection.bgp_ipv4_session.opensent", + "equinix.fabric.connection.bgp_ipv4_session.openconfirm", + "equinix.fabric.connection.bgp_ipv4_session.active", + "equinix.fabric.connection.bgp_ipv4_session.idle", + "equinix.fabric.connection.bgp_ipv6_session.established", + "equinix.fabric.connection.bgp_ipv6_session.connect", + "equinix.fabric.connection.bgp_ipv6_session.opensent", + "equinix.fabric.connection.bgp_ipv6_session.openconfirm", + "equinix.fabric.connection.bgp_ipv6_session.active", + "equinix.fabric.connection.bgp_ipv6_session.idle", + "equinix.fabric.connection.reset_bgp_ipv4.succeeded", + "equinix.fabric.connection.reset_bgp_ipv4.failed", + "equinix.fabric.connection.reset_bgp_ipv6.succeeded", + "equinix.fabric.connection.reset_bgp_ipv6.failed", + "equinix.fabric.connection.clear_bgp_ipv4.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4.failed", + "equinix.fabric.connection.clear_bgp_ipv6.succeeded", + "equinix.fabric.connection.clear_bgp_ipv6.failed", + "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv4_inbound.failed", + "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", + "equinix.fabric.connection.clear_bgp_ipv6_inbound.failed", + "equinix.fabric.route_filter.state.provisioning", + "equinix.fabric.route_filter.state.provisioned", + "equinix.fabric.route_filter.state.reprovisioning", + "equinix.fabric.route_filter.state.deprovisioning", + "equinix.fabric.route_filter.state.deprovisioned", + "equinix.fabric.route_filter.state.not_provisioned", + "equinix.fabric.route_filter.state.not_deprovisioned", + "equinix.fabric.route_filter.rule_state.provisioning", + "equinix.fabric.route_filter.rule_state.provisionined", + "equinix.fabric.route_filter.rule_state.reprovisioning", + "equinix.fabric.route_filter.rule_state.deprovisioning", + "equinix.fabric.route_filter.rule_state.deprovisioned", + "equinix.fabric.route_filter.rule_state.not_provisioned", + "equinix.fabric.route_filter.rule_state.not_deprovisioned", + "equinix.fabric.route_filter.status.pending_bgp_configuration", + "equinix.fabric.route_filter.status.attaching", + "equinix.fabric.route_filter.status.attached", + "equinix.fabric.route_filter.status.detaching", + "equinix.fabric.route_filter.status.detached", + "equinix.fabric.route_filter.status.failed", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down", + "equinix.fabric.port.state.pending", + "equinix.fabric.port.state.provisioning", + "equinix.fabric.port.state.provisioned", + "equinix.fabric.port.state.active", + "equinix.fabric.port.state.inactive", + "equinix.fabric.port.state.deprovisioning", + "equinix.fabric.port.state.deprovisioned", + "equinix.fabric.port.state.failed", + "equinix.fabric.port.state.to_be_added", + "equinix.fabric.port.state.to_be_deleted", + "equinix.fabric.port.state.added", + "equinix.fabric.port.state.deleted", + "equinix.fabric.router.state.provisioning", + "equinix.fabric.router.state.provisioned", + "equinix.fabric.router.state.locked", + "equinix.fabric.router.state.deprovisioning", + "equinix.fabric.router.state.deprovisioned", + "equinix.fabric.router.state.not_provisioned", + "equinix.fabric.router.state.not_deprovisioned", + "equinix.fabric.router.bgp_session_status_update.pending", + "equinix.fabric.router.bgp_session_status_update.succeeded", + "equinix.fabric.router.bgp_session_status_update.failed", + "equinix.fabric.router.route_table_entry_update.pending", + "equinix.fabric.router.route_table_entry_update.succeeded", + "equinix.fabric.router.route_table_entry_update.failed", + "equinix.fabric.router.received_route_entry_update.pending", + "equinix.fabric.router.received_route_entry_update.succeeded", + "equinix.fabric.router.received_route_entry_update.failed", + "equinix.fabric.router.advertised_route_entry_update.pending", + "equinix.fabric.router.advertised_route_entry_update.succeeded", + "equinix.fabric.router.advertised_route_entry_update.failed", + "equinix.fabric.network.state.active", + "equinix.fabric.network.state.inactive", + "equinix.fabric.network.state.deleted", + "equinix.fabric.time_service.state.pending_configuration", + "equinix.fabric.time_service.state.provisioning", + "equinix.fabric.time_service.state.provisioned", + "equinix.fabric.time_service.state.deprovisioning", + "equinix.fabric.time_service.state.deprovisioned", + "equinix.fabric.time_service.state.configuring_failed", + "equinix.fabric.time_service.state.provisioning_failed", + "equinix.fabric.time_service.state.deprovisioning_failed", + "equinix.fabric.time_service.state.configuring", + "equinix.fabric.time_service.state.cancelled", + "equinix.fabric.service_token.state.active", + "equinix.fabric.service_token.state.inactive", + "equinix.fabric.service_token.state.expired", + "equinix.fabric.service_token.state.deleted", + "equinix.fabric.service_profile.state.pending_approval", + "equinix.fabric.service_profile.state.rejected", + "equinix.fabric.service_profile.state.active", + "equinix.fabric.service_profile.state.deleted", + "equinix.fabric.stream.state.provisioning", + "equinix.fabric.stream.state.provisioned", + "equinix.fabric.stream.state.deprovisioning", + "equinix.fabric.stream.state.deprovisioned", + "equinix.fabric.stream.state.failed", + "equinix.fabric.stream.resource_status.attaching", + "equinix.fabric.stream.resource_status.attached", + "equinix.fabric.stream.resource_status.detaching", + "equinix.fabric.stream.resource_status.detached", + "equinix.fabric.stream.resource_status.failed", + "equinix.fabric.stream_subscription.state.provisioning", + "equinix.fabric.stream_subscription.state.provisioned", + "equinix.fabric.stream_subscription.state.deprovisioning", + "equinix.fabric.stream_subscription.state.deprovisioned", + "equinix.fabric.stream_subscription.state.failed" + ] + }, + { + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json", + "product": "Equinix Fabric ChangeAlert", + "name": "ChangeAlert", + "description": "The data within all ChangeAlert events.", + "datatype": "equinix.events.fabric.v1.ChangeAlert", + "cloudeventTypes": [ + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.bgp_ipv4_status.up", + "equinix.fabric.connection.bgp_ipv4_status.down", + "equinix.fabric.connection.bgp_ipv6_status.up", + "equinix.fabric.connection.bgp_ipv6_status.down", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down" + ] + }, + { + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Metric.json", + "product": "Equinix Fabric Metric", + "name": "Metric", + "description": "The data within all Metric events.", + "datatype": "equinix.events.fabric.v1.Metric", + "cloudeventTypes": [ + "equinix.fabric.connection.bandwidth_rx.usage", + "equinix.fabric.connection.bandwidth_tx.usage", + "equinix.fabric.port.bandwidth_rx.usage", + "equinix.fabric.port.bandwidth_tx.usage", + "equinix.fabric.port.frames_erred_rx.count", + "equinix.fabric.port.frames_erred_tx.count", + "equinix.fabric.port.frames_dropped_rx.count", + "equinix.fabric.port.frames_dropped_tx.count", + "equinix.fabric.router.routes_ipv4_installed.utilization", + "equinix.fabric.router.routes_ipv6_installed.utilization", + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", + "equinix.fabric.metric" + ] + }, + { + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json", + "product": "Equinix Fabric MetricAlert", + "name": "MetricAlert", + "description": "The data within all MetricAlert events.", + "datatype": "equinix.events.fabric.v1.MetricAlert", + "cloudeventTypes": [ + "equinix.fabric.router.routes_ipv4_installed.utilization", + "equinix.fabric.router.routes_ipv6_installed.utilization" + ] + } + ] +} diff --git a/scripts/generate_json_catalog.py b/scripts/generate_json_catalog.py new file mode 100644 index 0000000..ae11f41 --- /dev/null +++ b/scripts/generate_json_catalog.py @@ -0,0 +1,36 @@ +import os +import json + +def retrieve_json_schemas(): + directory = os.path.dirname(os.path.abspath(__file__)) + '/../jsonschema' + json_schemas = [] + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith('.json') and file != "catalog.json": + with open(root + "/" + file, "r") as eventFile: + data = json.load(eventFile) + json_schemas.append({ + "url": data["$id"], + "product": data["product"], + "name": data["name"], + "description": data["definitions"][data["name"]]["description"], + "datatype": data["datatype"], + "cloudeventTypes": data["cloudeventTypes"] + }) + json_schemas.sort(key=lambda x: x["url"]) + return json_schemas + +def write_json_schemas_to_catalog_file(json_schemas): + catalog = { + "$schema": 'https://json.schemastore.org/schema-catalog', + "version": 1, + "schemas": json_schemas + } + with open(os.path.dirname(os.path.abspath(__file__)) + "/../jsonschema/catalog.json", "w") as catalogFile: + catalogFile.write(json.dumps(catalog, indent=4)) + catalogFile.write("\n") + + +if __name__ == "__main__": + json_schemas = retrieve_json_schemas() + write_json_schemas_to_catalog_file(json_schemas) \ No newline at end of file diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py new file mode 100644 index 0000000..410158b --- /dev/null +++ b/scripts/generate_readme_event_catalog.py @@ -0,0 +1,34 @@ +import os +import json + +def table_row(schema): + cloudEventTypes = "
".join(map(lambda x: f"`{x}`", schema["cloudeventTypes"])) + return f"|{schema["product"]}|[JSON]({schema["url"]})|
Data Type:
`{schema["datatype"]}`
CloudEvent Type(s):
{cloudEventTypes}
|" + +def replace_readme_catalog(): + readme_path = os.path.dirname(os.path.abspath(__file__)) + "/../README.md" + catalog_path = os.path.dirname(os.path.abspath(__file__)) + "/../jsonschema/catalog.json" + with open(catalog_path, "r") as catalog_file: + catalog = json.load(catalog_file) + schemas = "\n".join(map(table_row, catalog["schemas"])) + + replacement_readme_catalog = f"""|Product|Schemas|Types| +|-|-|-| +{schemas} +""" + + with open(readme_path, "r+") as readme_file: + content = readme_file.read() + readme_file.seek(0) + generation_start = "" + generation_end = "" + header = content[:content.index(generation_start)+len(generation_start)] + footer = content[content.index(generation_end):] + readme_file.write(f"""{header} +{replacement_readme_catalog} +{footer}""") + readme_file.truncate() + + +if __name__ == "__main__": + replace_readme_catalog() \ No newline at end of file diff --git a/scripts/update_data_loader.py b/scripts/update_data_loader.py index ab12da0..7abcf17 100644 --- a/scripts/update_data_loader.py +++ b/scripts/update_data_loader.py @@ -5,7 +5,6 @@ def retrieve_supported_events(): directory = os.path.dirname(os.path.abspath(__file__)) + '/../jsonschema' events = set() for root, dirs, files in os.walk(directory): - print(root) for file in files: if file.endswith('.json') and file != "catalog.json": with open(root + "/" + file, "r") as eventFile: From 74b623346cb629747ad5c815b89a23645477f44e Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Mon, 11 Nov 2024 18:25:17 -0800 Subject: [PATCH 09/24] Add .gitignore for repo --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e519522 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Local Setup Scripts for Repo +local_helpers/* \ No newline at end of file From 0e891b2f2b93b2bd9c26d143cab3a7b6cd697b4a Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Wed, 13 Nov 2024 16:07:44 -0800 Subject: [PATCH 10/24] Change schemas to align with confluence wiki --- .../equinix/events/fabric/v1/ChangeAlert.json | 81 ++++++++++++++++++- .../v1/{Change.json => ChangeEvent.json} | 65 ++++++++++++--- .../equinix/events/fabric/v1/MetricAlert.json | 81 ++++++++++++++++++- .../v1/{Metric.json => MetricEvent.json} | 65 ++++++++++++--- 4 files changed, 272 insertions(+), 20 deletions(-) rename jsonschema/equinix/events/fabric/v1/{Change.json => ChangeEvent.json} (82%) rename jsonschema/equinix/events/fabric/v1/{Metric.json => MetricEvent.json} (71%) diff --git a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json index 6d6683a..f4b542b 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json @@ -25,6 +25,14 @@ "additionalProperties": true, "description": "Optional. The Backup event payload. Unset for deletion events." }, + "alertRule": { + "type": "object", + "items": { + "$ref": "#/definitions/AlertRule", + "additionalProperties": true + }, + "description": "Metadata about the AlertRule triggering the Alert" + }, "message": { "type": "string", "description": "Supporting message describing the event" @@ -57,10 +65,14 @@ "type": "string", "description": "State of the resource generating the event" }, + "description": { + "type": "string", + "description": "Description of the resource generating the event" + }, "change": { "$ref": "#/definitions/ResourceChange", "additionalProperties": true, - "description": "Chang information for the resource that fired the event" + "description": "Change information for the resource that fired the event" } }, "additionalProperties": true, @@ -68,8 +80,44 @@ "title": "Resource", "description": "Schema of the resource that fired the event" }, + "AlertRule": { + "properties": { + "href": { + "type": "string", + "description": "Link to the resource that has generated the alert" + }, + "type": { + "type": "string", + "description": "Type of the resource generating the alert" + }, + "uuid": { + "type": "string", + "description": "Equinix assigned unique identifier of the resource generating the alert" + }, + "name": { + "type": "string", + "description": "Name of the resource generating the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "AlertRule", + "description": "Schema definition of AlertRule data" + }, "ResourceChange": { "properties": { + "uuid": { + "type": "string", + "description": "Uuid of the of change for the resource target of the event" + }, + "type": { + "type": "string", + "description": "Type of the change happening on the resource for the target of the event" + }, + "status": { + "type": "string", + "description": "Status of the change event on the resource target" + }, "createdBy": { "type": "string", "description": "User account that created the resource that fired the event" @@ -87,12 +135,43 @@ "type": "string", "description": "The time that the resource that fired the event was updated", "format": "date-time" + }, + "data": { + "type": "array", + "description": "Data of the change event", + "items": { + "$ref": "#/definitions/ChangeData" + } } }, "additionalProperties": true, "type": "object", "title": "Change", "description": "Change attribute schema" + }, + "ChangeData": { + "properties": { + "op": { + "type": "string", + "description": "The operation performed on the resource under change" + }, + "path": { + "type": "string", + "description": "The attribute on the resource being changed" + }, + "value": { + "type": "string", + "description": "The current value of the attribute under change" + }, + "previousValue": { + "type": "string", + "description": "The previous value of the attribute under change" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeData", + "description": "ChangeData attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/Change.json b/jsonschema/equinix/events/fabric/v1/ChangeEvent.json similarity index 82% rename from jsonschema/equinix/events/fabric/v1/Change.json rename to jsonschema/equinix/events/fabric/v1/ChangeEvent.json index ec4edd4..f6e4a6b 100644 --- a/jsonschema/equinix/events/fabric/v1/Change.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeEvent.json @@ -1,9 +1,9 @@ { - "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Change.json", - "name": "Change", + "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json", + "name": "ChangeEvent", "examples": [], "package": "equinix.events.fabric.v1", - "datatype": "equinix.events.fabric.v1.Change", + "datatype": "equinix.events.fabric.v1.ChangeEvent", "cloudeventTypes": [ "equinix.fabric.connection.status.up", "equinix.fabric.connection.status.down", @@ -141,11 +141,11 @@ "equinix.fabric.stream_subscription.state.deprovisioned", "equinix.fabric.stream_subscription.state.failed" ], - "product": "Equinix Fabric Change", + "product": "Equinix Fabric ChangeEvent", "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/Change", + "$ref": "#/definitions/ChangeEvent", "definitions": { - "Change": { + "ChangeEvent": { "properties": { "resource": { "$ref": "#/definitions/Resource", @@ -159,8 +159,8 @@ }, "additionalProperties": true, "type": "object", - "title": "Change Event Data", - "description": "The data within all Change events." + "title": "ChangeEvent Event Data", + "description": "The data within all ChangeEvent events." }, "Resource": { "properties": { @@ -184,10 +184,14 @@ "type": "string", "description": "State of the resource generating the event" }, + "description": { + "type": "string", + "description": "Description of the resource generating the event" + }, "change": { "$ref": "#/definitions/ResourceChange", "additionalProperties": true, - "description": "Chang information for the resource that fired the event" + "description": "Change information for the resource that fired the event" } }, "additionalProperties": true, @@ -197,6 +201,18 @@ }, "ResourceChange": { "properties": { + "uuid": { + "type": "string", + "description": "Uuid of the of change for the resource target of the event" + }, + "type": { + "type": "string", + "description": "Type of the change happening on the resource for the target of the event" + }, + "status": { + "type": "string", + "description": "Status of the change event on the resource target" + }, "createdBy": { "type": "string", "description": "User account that created the resource that fired the event" @@ -214,12 +230,43 @@ "type": "string", "description": "The time that the resource that fired the event was updated", "format": "date-time" + }, + "data": { + "type": "array", + "description": "Data of the change event", + "items": { + "$ref": "#/definitions/ChangeData" + } } }, "additionalProperties": true, "type": "object", "title": "Change", "description": "Change attribute schema" + }, + "ChangeData": { + "properties": { + "op": { + "type": "string", + "description": "The operation performed on the resource under change" + }, + "path": { + "type": "string", + "description": "The attribute on the resource being changed" + }, + "value": { + "type": "string", + "description": "The current value of the attribute under change" + }, + "previousValue": { + "type": "string", + "description": "The previous value of the attribute under change" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeData", + "description": "ChangeData attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json index 55e5df0..ac0bb4b 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricAlert.json +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -27,6 +27,14 @@ }, "description": "Specific details of the metric event" }, + "alertRule": { + "type": "object", + "items": { + "$ref": "#/definitions/AlertRule", + "additionalProperties": true + }, + "description": "Metadata about the AlertRule triggering the Alert" + }, "message": { "type": "string", "description": "Supporting message describing the event" @@ -59,10 +67,14 @@ "type": "string", "description": "State of the resource generating the event" }, + "description": { + "type": "string", + "description": "Description of the resource generating the event" + }, "change": { "$ref": "#/definitions/ResourceChange", "additionalProperties": true, - "description": "Chang information for the resource that fired the event" + "description": "Change information for the resource that fired the event" } }, "additionalProperties": true, @@ -122,8 +134,44 @@ "title": "DataPoints", "additionalProperties": true }, + "AlertRule": { + "properties": { + "href": { + "type": "string", + "description": "Link to the resource that has generated the alert" + }, + "type": { + "type": "string", + "description": "Type of the resource generating the alert" + }, + "uuid": { + "type": "string", + "description": "Equinix assigned unique identifier of the resource generating the alert" + }, + "name": { + "type": "string", + "description": "Name of the resource generating the event" + } + }, + "additionalProperties": true, + "type": "object", + "title": "AlertRule", + "description": "Schema definition of AlertRule data" + }, "ResourceChange": { "properties": { + "uuid": { + "type": "string", + "description": "Uuid of the of change for the resource target of the event" + }, + "type": { + "type": "string", + "description": "Type of the change happening on the resource for the target of the event" + }, + "status": { + "type": "string", + "description": "Status of the change event on the resource target" + }, "createdBy": { "type": "string", "description": "User account that created the resource that fired the event" @@ -141,12 +189,43 @@ "type": "string", "description": "The time that the resource that fired the event was updated", "format": "date-time" + }, + "data": { + "type": "array", + "description": "Data of the change event", + "items": { + "$ref": "#/definitions/ChangeData" + } } }, "additionalProperties": true, "type": "object", "title": "Change", "description": "Change attribute schema" + }, + "ChangeData": { + "properties": { + "op": { + "type": "string", + "description": "The operation performed on the resource under change" + }, + "path": { + "type": "string", + "description": "The attribute on the resource being changed" + }, + "value": { + "type": "string", + "description": "The current value of the attribute under change" + }, + "previousValue": { + "type": "string", + "description": "The previous value of the attribute under change" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeData", + "description": "ChangeData attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/Metric.json b/jsonschema/equinix/events/fabric/v1/MetricEvent.json similarity index 71% rename from jsonschema/equinix/events/fabric/v1/Metric.json rename to jsonschema/equinix/events/fabric/v1/MetricEvent.json index 9356197..ee147bb 100644 --- a/jsonschema/equinix/events/fabric/v1/Metric.json +++ b/jsonschema/equinix/events/fabric/v1/MetricEvent.json @@ -1,9 +1,9 @@ { - "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Metric.json", - "name": "Metric", + "$id": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json", + "name": "MetricEvent", "examples": [], "package": "equinix.events.fabric.v1", - "datatype": "equinix.events.fabric.v1.Metric", + "datatype": "equinix.events.fabric.v1.MetricEvent", "cloudeventTypes": [ "equinix.fabric.connection.bandwidth_rx.usage", "equinix.fabric.connection.bandwidth_tx.usage", @@ -18,11 +18,11 @@ "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", "equinix.fabric.metric" ], - "product": "Equinix Fabric Metric", + "product": "Equinix Fabric MetricEvent", "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/Metric", + "$ref": "#/definitions/MetricEvent", "definitions": { - "Metric": { + "MetricEvent": { "properties": { "resource": { "$ref": "#/definitions/Resource", @@ -44,8 +44,8 @@ }, "additionalProperties": true, "type": "object", - "title": "Metric Event Data", - "description": "The data within all Metric events." + "title": "MetricEvent Event Data", + "description": "The data within all MetricEvent events." }, "Resource": { "properties": { @@ -69,10 +69,14 @@ "type": "string", "description": "State of the resource generating the event" }, + "description": { + "type": "string", + "description": "Description of the resource generating the event" + }, "change": { "$ref": "#/definitions/ResourceChange", "additionalProperties": true, - "description": "Chang information for the resource that fired the event" + "description": "Change information for the resource that fired the event" } }, "additionalProperties": true, @@ -134,6 +138,18 @@ }, "ResourceChange": { "properties": { + "uuid": { + "type": "string", + "description": "Uuid of the of change for the resource target of the event" + }, + "type": { + "type": "string", + "description": "Type of the change happening on the resource for the target of the event" + }, + "status": { + "type": "string", + "description": "Status of the change event on the resource target" + }, "createdBy": { "type": "string", "description": "User account that created the resource that fired the event" @@ -151,12 +167,43 @@ "type": "string", "description": "The time that the resource that fired the event was updated", "format": "date-time" + }, + "data": { + "type": "array", + "description": "Data of the change event", + "items": { + "$ref": "#/definitions/ChangeData" + } } }, "additionalProperties": true, "type": "object", "title": "Change", "description": "Change attribute schema" + }, + "ChangeData": { + "properties": { + "op": { + "type": "string", + "description": "The operation performed on the resource under change" + }, + "path": { + "type": "string", + "description": "The attribute on the resource being changed" + }, + "value": { + "type": "string", + "description": "The current value of the attribute under change" + }, + "previousValue": { + "type": "string", + "description": "The previous value of the attribute under change" + } + }, + "additionalProperties": true, + "type": "object", + "title": "ChangeData", + "description": "ChangeData attribute schema" } } } From 78f7d9da8020d4bd776e9888f04d1c2355108d8a Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Wed, 13 Nov 2024 16:32:02 -0800 Subject: [PATCH 11/24] Update the event names --- README.md | 4 +-- jsonschema/catalog.json | 68 +++++++++++++++++------------------ scripts/update_data_loader.py | 7 ++-- 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 9577144..a15660f 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,9 @@ The following data payloads are the supported events and formats for Equinix Obs |Product|Schemas|Types| |-|-|-| -|Equinix Fabric Change|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Change.json)|
Data Type:
`equinix.events.fabric.v1.Change`
CloudEvent Type(s):
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.state.draft`
`equinix.fabric.connection.state.cancelled`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.active`
`equinix.fabric.connection.state.reprovisioning`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.failed`
`equinix.fabric.connection.routing_protocol_state.provisioning`
`equinix.fabric.connection.routing_protocol_state.provisioned`
`equinix.fabric.connection.routing_protocol_state.reprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioned`
`equinix.fabric.connection.routing_protocol_state.failed`
`equinix.fabric.connection.bgp_ipv4_status.up`
`equinix.fabric.connection.bgp_ipv4_status.down`
`equinix.fabric.connection.bgp_ipv6_status.up`
`equinix.fabric.connection.bgp_ipv6_status.down`
`equinix.fabric.connection.bgp_ipv4_session.established`
`equinix.fabric.connection.bgp_ipv4_session.connect`
`equinix.fabric.connection.bgp_ipv4_session.opensent`
`equinix.fabric.connection.bgp_ipv4_session.openconfirm`
`equinix.fabric.connection.bgp_ipv4_session.active`
`equinix.fabric.connection.bgp_ipv4_session.idle`
`equinix.fabric.connection.bgp_ipv6_session.established`
`equinix.fabric.connection.bgp_ipv6_session.connect`
`equinix.fabric.connection.bgp_ipv6_session.opensent`
`equinix.fabric.connection.bgp_ipv6_session.openconfirm`
`equinix.fabric.connection.bgp_ipv6_session.active`
`equinix.fabric.connection.bgp_ipv6_session.idle`
`equinix.fabric.connection.reset_bgp_ipv4.succeeded`
`equinix.fabric.connection.reset_bgp_ipv4.failed`
`equinix.fabric.connection.reset_bgp_ipv6.succeeded`
`equinix.fabric.connection.reset_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4.failed`
`equinix.fabric.connection.clear_bgp_ipv6.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.failed`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.failed`
`equinix.fabric.route_filter.state.provisioning`
`equinix.fabric.route_filter.state.provisioned`
`equinix.fabric.route_filter.state.reprovisioning`
`equinix.fabric.route_filter.state.deprovisioning`
`equinix.fabric.route_filter.state.deprovisioned`
`equinix.fabric.route_filter.state.not_provisioned`
`equinix.fabric.route_filter.state.not_deprovisioned`
`equinix.fabric.route_filter.rule_state.provisioning`
`equinix.fabric.route_filter.rule_state.provisionined`
`equinix.fabric.route_filter.rule_state.reprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioned`
`equinix.fabric.route_filter.rule_state.not_provisioned`
`equinix.fabric.route_filter.rule_state.not_deprovisioned`
`equinix.fabric.route_filter.status.pending_bgp_configuration`
`equinix.fabric.route_filter.status.attaching`
`equinix.fabric.route_filter.status.attached`
`equinix.fabric.route_filter.status.detaching`
`equinix.fabric.route_filter.status.detached`
`equinix.fabric.route_filter.status.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.port.state.pending`
`equinix.fabric.port.state.provisioning`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.active`
`equinix.fabric.port.state.inactive`
`equinix.fabric.port.state.deprovisioning`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.state.to_be_added`
`equinix.fabric.port.state.to_be_deleted`
`equinix.fabric.port.state.added`
`equinix.fabric.port.state.deleted`
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.locked`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.router.bgp_session_status_update.pending`
`equinix.fabric.router.bgp_session_status_update.succeeded`
`equinix.fabric.router.bgp_session_status_update.failed`
`equinix.fabric.router.route_table_entry_update.pending`
`equinix.fabric.router.route_table_entry_update.succeeded`
`equinix.fabric.router.route_table_entry_update.failed`
`equinix.fabric.router.received_route_entry_update.pending`
`equinix.fabric.router.received_route_entry_update.succeeded`
`equinix.fabric.router.received_route_entry_update.failed`
`equinix.fabric.router.advertised_route_entry_update.pending`
`equinix.fabric.router.advertised_route_entry_update.succeeded`
`equinix.fabric.router.advertised_route_entry_update.failed`
`equinix.fabric.network.state.active`
`equinix.fabric.network.state.inactive`
`equinix.fabric.network.state.deleted`
`equinix.fabric.time_service.state.pending_configuration`
`equinix.fabric.time_service.state.provisioning`
`equinix.fabric.time_service.state.provisioned`
`equinix.fabric.time_service.state.deprovisioning`
`equinix.fabric.time_service.state.deprovisioned`
`equinix.fabric.time_service.state.configuring_failed`
`equinix.fabric.time_service.state.provisioning_failed`
`equinix.fabric.time_service.state.deprovisioning_failed`
`equinix.fabric.time_service.state.configuring`
`equinix.fabric.time_service.state.cancelled`
`equinix.fabric.service_token.state.active`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.expired`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_profile.state.pending_approval`
`equinix.fabric.service_profile.state.rejected`
`equinix.fabric.service_profile.state.active`
`equinix.fabric.service_profile.state.deleted`
`equinix.fabric.stream.state.provisioning`
`equinix.fabric.stream.state.provisioned`
`equinix.fabric.stream.state.deprovisioning`
`equinix.fabric.stream.state.deprovisioned`
`equinix.fabric.stream.state.failed`
`equinix.fabric.stream.resource_status.attaching`
`equinix.fabric.stream.resource_status.attached`
`equinix.fabric.stream.resource_status.detaching`
`equinix.fabric.stream.resource_status.detached`
`equinix.fabric.stream.resource_status.failed`
`equinix.fabric.stream_subscription.state.provisioning`
`equinix.fabric.stream_subscription.state.provisioned`
`equinix.fabric.stream_subscription.state.deprovisioning`
`equinix.fabric.stream_subscription.state.deprovisioned`
`equinix.fabric.stream_subscription.state.failed`
| |Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgp_ipv4_status.up`
`equinix.fabric.connection.bgp_ipv4_status.down`
`equinix.fabric.connection.bgp_ipv6_status.up`
`equinix.fabric.connection.bgp_ipv6_status.down`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
| -|Equinix Fabric Metric|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Metric.json)|
Data Type:
`equinix.events.fabric.v1.Metric`
CloudEvent Type(s):
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
`equinix.fabric.port.frames_erred_rx.count`
`equinix.fabric.port.frames_erred_tx.count`
`equinix.fabric.port.frames_dropped_rx.count`
`equinix.fabric.port.frames_dropped_tx.count`
`equinix.fabric.router.routes_ipv4_installed.utilization`
`equinix.fabric.router.routes_ipv6_installed.utilization`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.metric`
| +|Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.state.draft`
`equinix.fabric.connection.state.cancelled`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.active`
`equinix.fabric.connection.state.reprovisioning`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.failed`
`equinix.fabric.connection.routing_protocol_state.provisioning`
`equinix.fabric.connection.routing_protocol_state.provisioned`
`equinix.fabric.connection.routing_protocol_state.reprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioned`
`equinix.fabric.connection.routing_protocol_state.failed`
`equinix.fabric.connection.bgp_ipv4_status.up`
`equinix.fabric.connection.bgp_ipv4_status.down`
`equinix.fabric.connection.bgp_ipv6_status.up`
`equinix.fabric.connection.bgp_ipv6_status.down`
`equinix.fabric.connection.bgp_ipv4_session.established`
`equinix.fabric.connection.bgp_ipv4_session.connect`
`equinix.fabric.connection.bgp_ipv4_session.opensent`
`equinix.fabric.connection.bgp_ipv4_session.openconfirm`
`equinix.fabric.connection.bgp_ipv4_session.active`
`equinix.fabric.connection.bgp_ipv4_session.idle`
`equinix.fabric.connection.bgp_ipv6_session.established`
`equinix.fabric.connection.bgp_ipv6_session.connect`
`equinix.fabric.connection.bgp_ipv6_session.opensent`
`equinix.fabric.connection.bgp_ipv6_session.openconfirm`
`equinix.fabric.connection.bgp_ipv6_session.active`
`equinix.fabric.connection.bgp_ipv6_session.idle`
`equinix.fabric.connection.reset_bgp_ipv4.succeeded`
`equinix.fabric.connection.reset_bgp_ipv4.failed`
`equinix.fabric.connection.reset_bgp_ipv6.succeeded`
`equinix.fabric.connection.reset_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4.failed`
`equinix.fabric.connection.clear_bgp_ipv6.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.failed`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.failed`
`equinix.fabric.route_filter.state.provisioning`
`equinix.fabric.route_filter.state.provisioned`
`equinix.fabric.route_filter.state.reprovisioning`
`equinix.fabric.route_filter.state.deprovisioning`
`equinix.fabric.route_filter.state.deprovisioned`
`equinix.fabric.route_filter.state.not_provisioned`
`equinix.fabric.route_filter.state.not_deprovisioned`
`equinix.fabric.route_filter.rule_state.provisioning`
`equinix.fabric.route_filter.rule_state.provisionined`
`equinix.fabric.route_filter.rule_state.reprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioned`
`equinix.fabric.route_filter.rule_state.not_provisioned`
`equinix.fabric.route_filter.rule_state.not_deprovisioned`
`equinix.fabric.route_filter.status.pending_bgp_configuration`
`equinix.fabric.route_filter.status.attaching`
`equinix.fabric.route_filter.status.attached`
`equinix.fabric.route_filter.status.detaching`
`equinix.fabric.route_filter.status.detached`
`equinix.fabric.route_filter.status.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.port.state.pending`
`equinix.fabric.port.state.provisioning`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.active`
`equinix.fabric.port.state.inactive`
`equinix.fabric.port.state.deprovisioning`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.state.to_be_added`
`equinix.fabric.port.state.to_be_deleted`
`equinix.fabric.port.state.added`
`equinix.fabric.port.state.deleted`
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.locked`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.router.bgp_session_status_update.pending`
`equinix.fabric.router.bgp_session_status_update.succeeded`
`equinix.fabric.router.bgp_session_status_update.failed`
`equinix.fabric.router.route_table_entry_update.pending`
`equinix.fabric.router.route_table_entry_update.succeeded`
`equinix.fabric.router.route_table_entry_update.failed`
`equinix.fabric.router.received_route_entry_update.pending`
`equinix.fabric.router.received_route_entry_update.succeeded`
`equinix.fabric.router.received_route_entry_update.failed`
`equinix.fabric.router.advertised_route_entry_update.pending`
`equinix.fabric.router.advertised_route_entry_update.succeeded`
`equinix.fabric.router.advertised_route_entry_update.failed`
`equinix.fabric.network.state.active`
`equinix.fabric.network.state.inactive`
`equinix.fabric.network.state.deleted`
`equinix.fabric.time_service.state.pending_configuration`
`equinix.fabric.time_service.state.provisioning`
`equinix.fabric.time_service.state.provisioned`
`equinix.fabric.time_service.state.deprovisioning`
`equinix.fabric.time_service.state.deprovisioned`
`equinix.fabric.time_service.state.configuring_failed`
`equinix.fabric.time_service.state.provisioning_failed`
`equinix.fabric.time_service.state.deprovisioning_failed`
`equinix.fabric.time_service.state.configuring`
`equinix.fabric.time_service.state.cancelled`
`equinix.fabric.service_token.state.active`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.expired`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_profile.state.pending_approval`
`equinix.fabric.service_profile.state.rejected`
`equinix.fabric.service_profile.state.active`
`equinix.fabric.service_profile.state.deleted`
`equinix.fabric.stream.state.provisioning`
`equinix.fabric.stream.state.provisioned`
`equinix.fabric.stream.state.deprovisioning`
`equinix.fabric.stream.state.deprovisioned`
`equinix.fabric.stream.state.failed`
`equinix.fabric.stream.resource_status.attaching`
`equinix.fabric.stream.resource_status.attached`
`equinix.fabric.stream.resource_status.detaching`
`equinix.fabric.stream.resource_status.detached`
`equinix.fabric.stream.resource_status.failed`
`equinix.fabric.stream_subscription.state.provisioning`
`equinix.fabric.stream_subscription.state.provisioned`
`equinix.fabric.stream_subscription.state.deprovisioning`
`equinix.fabric.stream_subscription.state.deprovisioned`
`equinix.fabric.stream_subscription.state.failed`
| |Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):
`equinix.fabric.router.routes_ipv4_installed.utilization`
`equinix.fabric.router.routes_ipv6_installed.utilization`
| +|Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:
`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
`equinix.fabric.port.frames_erred_rx.count`
`equinix.fabric.port.frames_erred_tx.count`
`equinix.fabric.port.frames_dropped_rx.count`
`equinix.fabric.port.frames_dropped_tx.count`
`equinix.fabric.router.routes_ipv4_installed.utilization`
`equinix.fabric.router.routes_ipv6_installed.utilization`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.metric`
| diff --git a/jsonschema/catalog.json b/jsonschema/catalog.json index 97c7841..83ef878 100644 --- a/jsonschema/catalog.json +++ b/jsonschema/catalog.json @@ -3,11 +3,28 @@ "version": 1, "schemas": [ { - "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Change.json", - "product": "Equinix Fabric Change", - "name": "Change", - "description": "The data within all Change events.", - "datatype": "equinix.events.fabric.v1.Change", + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json", + "product": "Equinix Fabric ChangeAlert", + "name": "ChangeAlert", + "description": "The data within all ChangeAlert events.", + "datatype": "equinix.events.fabric.v1.ChangeAlert", + "cloudeventTypes": [ + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.bgp_ipv4_status.up", + "equinix.fabric.connection.bgp_ipv4_status.down", + "equinix.fabric.connection.bgp_ipv6_status.up", + "equinix.fabric.connection.bgp_ipv6_status.down", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down" + ] + }, + { + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json", + "product": "Equinix Fabric ChangeEvent", + "name": "ChangeEvent", + "description": "The data within all ChangeEvent events.", + "datatype": "equinix.events.fabric.v1.ChangeEvent", "cloudeventTypes": [ "equinix.fabric.connection.status.up", "equinix.fabric.connection.status.down", @@ -147,28 +164,22 @@ ] }, { - "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json", - "product": "Equinix Fabric ChangeAlert", - "name": "ChangeAlert", - "description": "The data within all ChangeAlert events.", - "datatype": "equinix.events.fabric.v1.ChangeAlert", + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json", + "product": "Equinix Fabric MetricAlert", + "name": "MetricAlert", + "description": "The data within all MetricAlert events.", + "datatype": "equinix.events.fabric.v1.MetricAlert", "cloudeventTypes": [ - "equinix.fabric.connection.status.up", - "equinix.fabric.connection.status.down", - "equinix.fabric.connection.bgp_ipv4_status.up", - "equinix.fabric.connection.bgp_ipv4_status.down", - "equinix.fabric.connection.bgp_ipv6_status.up", - "equinix.fabric.connection.bgp_ipv6_status.down", - "equinix.fabric.port.status.up", - "equinix.fabric.port.status.down" + "equinix.fabric.router.routes_ipv4_installed.utilization", + "equinix.fabric.router.routes_ipv6_installed.utilization" ] }, { - "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/Metric.json", - "product": "Equinix Fabric Metric", - "name": "Metric", - "description": "The data within all Metric events.", - "datatype": "equinix.events.fabric.v1.Metric", + "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json", + "product": "Equinix Fabric MetricEvent", + "name": "MetricEvent", + "description": "The data within all MetricEvent events.", + "datatype": "equinix.events.fabric.v1.MetricEvent", "cloudeventTypes": [ "equinix.fabric.connection.bandwidth_rx.usage", "equinix.fabric.connection.bandwidth_tx.usage", @@ -183,17 +194,6 @@ "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", "equinix.fabric.metric" ] - }, - { - "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json", - "product": "Equinix Fabric MetricAlert", - "name": "MetricAlert", - "description": "The data within all MetricAlert events.", - "datatype": "equinix.events.fabric.v1.MetricAlert", - "cloudeventTypes": [ - "equinix.fabric.router.routes_ipv4_installed.utilization", - "equinix.fabric.router.routes_ipv6_installed.utilization" - ] } ] } diff --git a/scripts/update_data_loader.py b/scripts/update_data_loader.py index 7abcf17..6ff3bf6 100644 --- a/scripts/update_data_loader.py +++ b/scripts/update_data_loader.py @@ -6,15 +6,16 @@ def retrieve_supported_events(): events = set() for root, dirs, files in os.walk(directory): for file in files: + if file.endswith('.json') and file != "catalog.json": with open(root + "/" + file, "r") as eventFile: data = json.load(eventFile) events.update(data["cloudeventTypes"]) - return events + return sorted(events) def writeSupportedEventsToDataLoaderFile(supportedEvents): - with open("./SupportedEventTypes_DataLoader.json", "w") as eventsFile: - eventsFile.write(json.dumps(sorted(supportedEvents), indent=4)) + with open(os.path.dirname(os.path.abspath(__file__)) + "/../SupportedEventTypes_DataLoader.json", "w") as eventsFile: + eventsFile.write(json.dumps(supportedEvents, indent=4)) eventsFile.write("\n") From 97c9bab8c39a773100ec2c2d7796ffcd4e72aa06 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 14:25:44 -0800 Subject: [PATCH 12/24] Respond to PR review comments --- .gitignore | 2 +- .../equinix/events/fabric/v1/ChangeAlert.json | 21 ++--------- .../equinix/events/fabric/v1/ChangeEvent.json | 21 ++--------- .../equinix/events/fabric/v1/MetricAlert.json | 37 ++++++------------- .../equinix/events/fabric/v1/MetricEvent.json | 37 ++++++------------- 5 files changed, 33 insertions(+), 85 deletions(-) diff --git a/.gitignore b/.gitignore index e519522..861b80f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ # Local Setup Scripts for Repo -local_helpers/* \ No newline at end of file +local_helper_scripts/* diff --git a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json index f4b542b..7b0166c 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json @@ -16,9 +16,9 @@ ], "product": "Equinix Fabric ChangeAlert", "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/ChangeAlert", + "$ref": "#/definitions/Data", "definitions": { - "ChangeAlert": { + "Data": { "properties": { "resource": { "$ref": "#/definitions/Resource", @@ -70,7 +70,7 @@ "description": "Description of the resource generating the event" }, "change": { - "$ref": "#/definitions/ResourceChange", + "$ref": "#/definitions/Change", "additionalProperties": true, "description": "Change information for the resource that fired the event" } @@ -104,7 +104,7 @@ "title": "AlertRule", "description": "Schema definition of AlertRule data" }, - "ResourceChange": { + "Change": { "properties": { "uuid": { "type": "string", @@ -118,24 +118,11 @@ "type": "string", "description": "Status of the change event on the resource target" }, - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, "createdDateTime": { "type": "string", "description": "The time that the resource that fired the event was created", "format": "date-time" }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - }, "data": { "type": "array", "description": "Data of the change event", diff --git a/jsonschema/equinix/events/fabric/v1/ChangeEvent.json b/jsonschema/equinix/events/fabric/v1/ChangeEvent.json index f6e4a6b..228f69d 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeEvent.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeEvent.json @@ -143,9 +143,9 @@ ], "product": "Equinix Fabric ChangeEvent", "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/ChangeEvent", + "$ref": "#/definitions/Data", "definitions": { - "ChangeEvent": { + "Data": { "properties": { "resource": { "$ref": "#/definitions/Resource", @@ -189,7 +189,7 @@ "description": "Description of the resource generating the event" }, "change": { - "$ref": "#/definitions/ResourceChange", + "$ref": "#/definitions/Change", "additionalProperties": true, "description": "Change information for the resource that fired the event" } @@ -199,7 +199,7 @@ "title": "Resource", "description": "Schema of the resource that fired the event" }, - "ResourceChange": { + "Change": { "properties": { "uuid": { "type": "string", @@ -213,24 +213,11 @@ "type": "string", "description": "Status of the change event on the resource target" }, - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, "createdDateTime": { "type": "string", "description": "The time that the resource that fired the event was created", "format": "date-time" }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - }, "data": { "type": "array", "description": "Data of the change event", diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json index ac0bb4b..564788d 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricAlert.json +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -10,9 +10,9 @@ ], "product": "Equinix Fabric MetricAlert", "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/MetricAlert", + "$ref": "#/definitions/Data", "definitions": { - "MetricAlert": { + "Data": { "properties": { "resource": { "$ref": "#/definitions/Resource", @@ -22,10 +22,10 @@ "metrics": { "type": "array", "items": { - "$ref": "#/definitions/Metrics", + "$ref": "#/definitions/Metric", "additionalProperties": true }, - "description": "Specific details of the metric event" + "description": "Specific details of the metric" }, "alertRule": { "type": "object", @@ -72,7 +72,7 @@ "description": "Description of the resource generating the event" }, "change": { - "$ref": "#/definitions/ResourceChange", + "$ref": "#/definitions/Change", "additionalProperties": true, "description": "Change information for the resource that fired the event" } @@ -82,15 +82,15 @@ "title": "Resource", "description": "Schema of the resource that fired the event" }, - "Metrics": { + "Metric": { "properties": { "type": { "type": "string", - "description": "The type of the metric event" + "description": "The type of the metric" }, "name": { "type": "string", - "description": "The name of the metric event" + "description": "The name of the metric" }, "unit": { "type": "string", @@ -100,11 +100,11 @@ "type": "string", "description": "The time interval that the metric datapoints refer to" }, - "dataPoints": { + "dataPoint": { "type": "array", "description": "Metric data values and end times", "items": { - "$ref": "#/definitions/DataPoints" + "$ref": "#/definitions/DataPoint" } } }, @@ -113,7 +113,7 @@ "title": "Metrics", "description": "Schema definition of Metrics data" }, - "DataPoints": { + "DataPoint": { "properties": { "startDateTime": { "type": "string", @@ -158,7 +158,7 @@ "title": "AlertRule", "description": "Schema definition of AlertRule data" }, - "ResourceChange": { + "Change": { "properties": { "uuid": { "type": "string", @@ -172,24 +172,11 @@ "type": "string", "description": "Status of the change event on the resource target" }, - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, "createdDateTime": { "type": "string", "description": "The time that the resource that fired the event was created", "format": "date-time" }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - }, "data": { "type": "array", "description": "Data of the change event", diff --git a/jsonschema/equinix/events/fabric/v1/MetricEvent.json b/jsonschema/equinix/events/fabric/v1/MetricEvent.json index ee147bb..9af153c 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricEvent.json +++ b/jsonschema/equinix/events/fabric/v1/MetricEvent.json @@ -20,9 +20,9 @@ ], "product": "Equinix Fabric MetricEvent", "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/MetricEvent", + "$ref": "#/definitions/Data", "definitions": { - "MetricEvent": { + "Data": { "properties": { "resource": { "$ref": "#/definitions/Resource", @@ -32,10 +32,10 @@ "metrics": { "type": "array", "items": { - "$ref": "#/definitions/Metrics", + "$ref": "#/definitions/Metric", "additionalProperties": true }, - "description": "Specific details of the metric event" + "description": "Specific details of the metric" }, "message": { "type": "string", @@ -74,7 +74,7 @@ "description": "Description of the resource generating the event" }, "change": { - "$ref": "#/definitions/ResourceChange", + "$ref": "#/definitions/Change", "additionalProperties": true, "description": "Change information for the resource that fired the event" } @@ -84,15 +84,15 @@ "title": "Resource", "description": "Schema of the resource that fired the event" }, - "Metrics": { + "Metric": { "properties": { "type": { "type": "string", - "description": "The type of the metric event" + "description": "The type of the metric" }, "name": { "type": "string", - "description": "The name of the metric event" + "description": "The name of the metric" }, "unit": { "type": "string", @@ -102,11 +102,11 @@ "type": "string", "description": "The time interval that the metric datapoints refer to" }, - "dataPoints": { + "dataPoint": { "type": "array", "description": "Metric data values and end times", "items": { - "$ref": "#/definitions/DataPoints" + "$ref": "#/definitions/DataPoint" } } }, @@ -115,7 +115,7 @@ "title": "Metrics", "description": "Schema definition of Metrics data" }, - "DataPoints": { + "DataPoint": { "properties": { "startDateTime": { "type": "string", @@ -136,7 +136,7 @@ "title": "DataPoints", "additionalProperties": true }, - "ResourceChange": { + "Change": { "properties": { "uuid": { "type": "string", @@ -150,24 +150,11 @@ "type": "string", "description": "Status of the change event on the resource target" }, - "createdBy": { - "type": "string", - "description": "User account that created the resource that fired the event" - }, "createdDateTime": { "type": "string", "description": "The time that the resource that fired the event was created", "format": "date-time" }, - "updatedBy": { - "type": "string", - "description": "User account that updated the resource that fired the event" - }, - "updatedDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was updated", - "format": "date-time" - }, "data": { "type": "array", "description": "Data of the change event", From 0659d06c54cc15a1e98f2622c7699fb9d270484e Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 14:37:38 -0800 Subject: [PATCH 13/24] Remove change from metric resource and update attribute names for metric schemas --- .../equinix/events/fabric/v1/MetricAlert.json | 63 +------------------ .../equinix/events/fabric/v1/MetricEvent.json | 63 +------------------ 2 files changed, 2 insertions(+), 124 deletions(-) diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json index 564788d..b842895 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricAlert.json +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -70,11 +70,6 @@ "description": { "type": "string", "description": "Description of the resource generating the event" - }, - "change": { - "$ref": "#/definitions/Change", - "additionalProperties": true, - "description": "Change information for the resource that fired the event" } }, "additionalProperties": true, @@ -100,7 +95,7 @@ "type": "string", "description": "The time interval that the metric datapoints refer to" }, - "dataPoint": { + "dataPoints": { "type": "array", "description": "Metric data values and end times", "items": { @@ -157,62 +152,6 @@ "type": "object", "title": "AlertRule", "description": "Schema definition of AlertRule data" - }, - "Change": { - "properties": { - "uuid": { - "type": "string", - "description": "Uuid of the of change for the resource target of the event" - }, - "type": { - "type": "string", - "description": "Type of the change happening on the resource for the target of the event" - }, - "status": { - "type": "string", - "description": "Status of the change event on the resource target" - }, - "createdDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was created", - "format": "date-time" - }, - "data": { - "type": "array", - "description": "Data of the change event", - "items": { - "$ref": "#/definitions/ChangeData" - } - } - }, - "additionalProperties": true, - "type": "object", - "title": "Change", - "description": "Change attribute schema" - }, - "ChangeData": { - "properties": { - "op": { - "type": "string", - "description": "The operation performed on the resource under change" - }, - "path": { - "type": "string", - "description": "The attribute on the resource being changed" - }, - "value": { - "type": "string", - "description": "The current value of the attribute under change" - }, - "previousValue": { - "type": "string", - "description": "The previous value of the attribute under change" - } - }, - "additionalProperties": true, - "type": "object", - "title": "ChangeData", - "description": "ChangeData attribute schema" } } } diff --git a/jsonschema/equinix/events/fabric/v1/MetricEvent.json b/jsonschema/equinix/events/fabric/v1/MetricEvent.json index 9af153c..7363ea6 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricEvent.json +++ b/jsonschema/equinix/events/fabric/v1/MetricEvent.json @@ -72,11 +72,6 @@ "description": { "type": "string", "description": "Description of the resource generating the event" - }, - "change": { - "$ref": "#/definitions/Change", - "additionalProperties": true, - "description": "Change information for the resource that fired the event" } }, "additionalProperties": true, @@ -102,7 +97,7 @@ "type": "string", "description": "The time interval that the metric datapoints refer to" }, - "dataPoint": { + "dataPoints": { "type": "array", "description": "Metric data values and end times", "items": { @@ -135,62 +130,6 @@ "type": "object", "title": "DataPoints", "additionalProperties": true - }, - "Change": { - "properties": { - "uuid": { - "type": "string", - "description": "Uuid of the of change for the resource target of the event" - }, - "type": { - "type": "string", - "description": "Type of the change happening on the resource for the target of the event" - }, - "status": { - "type": "string", - "description": "Status of the change event on the resource target" - }, - "createdDateTime": { - "type": "string", - "description": "The time that the resource that fired the event was created", - "format": "date-time" - }, - "data": { - "type": "array", - "description": "Data of the change event", - "items": { - "$ref": "#/definitions/ChangeData" - } - } - }, - "additionalProperties": true, - "type": "object", - "title": "Change", - "description": "Change attribute schema" - }, - "ChangeData": { - "properties": { - "op": { - "type": "string", - "description": "The operation performed on the resource under change" - }, - "path": { - "type": "string", - "description": "The attribute on the resource being changed" - }, - "value": { - "type": "string", - "description": "The current value of the attribute under change" - }, - "previousValue": { - "type": "string", - "description": "The previous value of the attribute under change" - } - }, - "additionalProperties": true, - "type": "object", - "title": "ChangeData", - "description": "ChangeData attribute schema" } } } From 2b081c34872acbd682387499ef3d12d8b51fe779 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 15:56:52 -0800 Subject: [PATCH 14/24] Update eventTypes, metricTypes, and DataLoader file structure --- .gitignore | 3 + DataLoader.json | 54 ++++++ SupportedEventTypes_DataLoader.json | 149 ----------------- .../equinix/events/fabric/v1/ChangeAlert.json | 11 +- .../equinix/events/fabric/v1/ChangeEvent.json | 155 ++++-------------- .../equinix/events/fabric/v1/MetricAlert.json | 5 +- .../equinix/events/fabric/v1/MetricEvent.json | 22 +-- scripts/update_data_loader.py | 21 ++- 8 files changed, 114 insertions(+), 306 deletions(-) create mode 100644 DataLoader.json delete mode 100644 SupportedEventTypes_DataLoader.json diff --git a/.gitignore b/.gitignore index 861b80f..44b38f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ +# OS X Finder Files +.DS_Store + # Local Setup Scripts for Repo local_helper_scripts/* diff --git a/DataLoader.json b/DataLoader.json new file mode 100644 index 0000000..8726a3c --- /dev/null +++ b/DataLoader.json @@ -0,0 +1,54 @@ +{ + "fabric": { + "eventTypes": [ + "equinix.fabric.connection.attribute.changed", + "equinix.fabric.connection.bgpipv4_session_status.connect", + "equinix.fabric.connection.bgpipv4_session_status.established", + "equinix.fabric.connection.bgpipv4_session_status.idle", + "equinix.fabric.connection.bgpipv6_session_status.connect", + "equinix.fabric.connection.bgpipv6_session_status.established", + "equinix.fabric.connection.bgpipv6_session_status.idle", + "equinix.fabric.connection.state.deprovisioned", + "equinix.fabric.connection.state.deprovisioning", + "equinix.fabric.connection.state.pending", + "equinix.fabric.connection.state.pending_approval", + "equinix.fabric.connection.state.pending_interface_configuration", + "equinix.fabric.connection.state.provisioned", + "equinix.fabric.connection.state.provisioning", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.status.up", + "equinix.fabric.metric", + "equinix.fabric.network.state.deprovisioned", + "equinix.fabric.network.state.deprovisioning", + "equinix.fabric.network.state.provisioned", + "equinix.fabric.network.state.provisioning", + "equinix.fabric.port.state.deprovisioned", + "equinix.fabric.port.state.failed", + "equinix.fabric.port.state.provisioned", + "equinix.fabric.port.status.down", + "equinix.fabric.port.status.up", + "equinix.fabric.router.state.deprovisioned", + "equinix.fabric.router.state.deprovisioning", + "equinix.fabric.router.state.failed", + "equinix.fabric.router.state.not_deprovisioned", + "equinix.fabric.router.state.not_provisioned", + "equinix.fabric.router.state.provisioned", + "equinix.fabric.router.state.provisioning", + "equinix.fabric.router.state.reprovisioning", + "equinix.fabric.service_token.attribute.changed", + "equinix.fabric.service_token.state.deleted", + "equinix.fabric.service_token.state.inactive" + ], + "metricTypes": [ + "equinix.fabric.connection.bandwidth_rx.usage", + "equinix.fabric.connection.bandwidth_tx.usage", + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", + "equinix.fabric.port.bandwidth_rx.usage", + "equinix.fabric.port.bandwidth_tx.usage", + "equinix.fabric.port.packets_dropped_rx.count", + "equinix.fabric.port.packets_dropped_tx.count", + "equinix.fabric.port.packets_erred_rx.count", + "equinix.fabric.port.packets_erred_tx.count" + ] + } +} diff --git a/SupportedEventTypes_DataLoader.json b/SupportedEventTypes_DataLoader.json deleted file mode 100644 index e930956..0000000 --- a/SupportedEventTypes_DataLoader.json +++ /dev/null @@ -1,149 +0,0 @@ -[ - "equinix.fabric.connection.bandwidth_rx.usage", - "equinix.fabric.connection.bandwidth_tx.usage", - "equinix.fabric.connection.bgp_ipv4_session.active", - "equinix.fabric.connection.bgp_ipv4_session.connect", - "equinix.fabric.connection.bgp_ipv4_session.established", - "equinix.fabric.connection.bgp_ipv4_session.idle", - "equinix.fabric.connection.bgp_ipv4_session.openconfirm", - "equinix.fabric.connection.bgp_ipv4_session.opensent", - "equinix.fabric.connection.bgp_ipv4_status.down", - "equinix.fabric.connection.bgp_ipv4_status.up", - "equinix.fabric.connection.bgp_ipv6_session.active", - "equinix.fabric.connection.bgp_ipv6_session.connect", - "equinix.fabric.connection.bgp_ipv6_session.established", - "equinix.fabric.connection.bgp_ipv6_session.idle", - "equinix.fabric.connection.bgp_ipv6_session.openconfirm", - "equinix.fabric.connection.bgp_ipv6_session.opensent", - "equinix.fabric.connection.bgp_ipv6_status.down", - "equinix.fabric.connection.bgp_ipv6_status.up", - "equinix.fabric.connection.clear_bgp_ipv4.failed", - "equinix.fabric.connection.clear_bgp_ipv4.succeeded", - "equinix.fabric.connection.clear_bgp_ipv4_inbound.failed", - "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", - "equinix.fabric.connection.clear_bgp_ipv6.failed", - "equinix.fabric.connection.clear_bgp_ipv6.succeeded", - "equinix.fabric.connection.clear_bgp_ipv6_inbound.failed", - "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", - "equinix.fabric.connection.reset_bgp_ipv4.failed", - "equinix.fabric.connection.reset_bgp_ipv4.succeeded", - "equinix.fabric.connection.reset_bgp_ipv6.failed", - "equinix.fabric.connection.reset_bgp_ipv6.succeeded", - "equinix.fabric.connection.routing_protocol_state.deprovisioned", - "equinix.fabric.connection.routing_protocol_state.deprovisioning", - "equinix.fabric.connection.routing_protocol_state.failed", - "equinix.fabric.connection.routing_protocol_state.provisioned", - "equinix.fabric.connection.routing_protocol_state.provisioning", - "equinix.fabric.connection.routing_protocol_state.reprovisioning", - "equinix.fabric.connection.state.active", - "equinix.fabric.connection.state.cancelled", - "equinix.fabric.connection.state.deprovisioned", - "equinix.fabric.connection.state.deprovisioning", - "equinix.fabric.connection.state.draft", - "equinix.fabric.connection.state.failed", - "equinix.fabric.connection.state.pending", - "equinix.fabric.connection.state.provisioned", - "equinix.fabric.connection.state.provisioning", - "equinix.fabric.connection.state.reprovisioning", - "equinix.fabric.connection.status.down", - "equinix.fabric.connection.status.up", - "equinix.fabric.metric", - "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", - "equinix.fabric.network.state.active", - "equinix.fabric.network.state.deleted", - "equinix.fabric.network.state.inactive", - "equinix.fabric.port.bandwidth_rx.usage", - "equinix.fabric.port.bandwidth_tx.usage", - "equinix.fabric.port.frames_dropped_rx.count", - "equinix.fabric.port.frames_dropped_tx.count", - "equinix.fabric.port.frames_erred_rx.count", - "equinix.fabric.port.frames_erred_tx.count", - "equinix.fabric.port.state.active", - "equinix.fabric.port.state.added", - "equinix.fabric.port.state.deleted", - "equinix.fabric.port.state.deprovisioned", - "equinix.fabric.port.state.deprovisioning", - "equinix.fabric.port.state.failed", - "equinix.fabric.port.state.inactive", - "equinix.fabric.port.state.pending", - "equinix.fabric.port.state.provisioned", - "equinix.fabric.port.state.provisioning", - "equinix.fabric.port.state.to_be_added", - "equinix.fabric.port.state.to_be_deleted", - "equinix.fabric.port.status.down", - "equinix.fabric.port.status.up", - "equinix.fabric.route_filter.rule_state.deprovisioned", - "equinix.fabric.route_filter.rule_state.deprovisioning", - "equinix.fabric.route_filter.rule_state.not_deprovisioned", - "equinix.fabric.route_filter.rule_state.not_provisioned", - "equinix.fabric.route_filter.rule_state.provisionined", - "equinix.fabric.route_filter.rule_state.provisioning", - "equinix.fabric.route_filter.rule_state.reprovisioning", - "equinix.fabric.route_filter.state.deprovisioned", - "equinix.fabric.route_filter.state.deprovisioning", - "equinix.fabric.route_filter.state.not_deprovisioned", - "equinix.fabric.route_filter.state.not_provisioned", - "equinix.fabric.route_filter.state.provisioned", - "equinix.fabric.route_filter.state.provisioning", - "equinix.fabric.route_filter.state.reprovisioning", - "equinix.fabric.route_filter.status.attached", - "equinix.fabric.route_filter.status.attaching", - "equinix.fabric.route_filter.status.detached", - "equinix.fabric.route_filter.status.detaching", - "equinix.fabric.route_filter.status.failed", - "equinix.fabric.route_filter.status.pending_bgp_configuration", - "equinix.fabric.router.advertised_route_entry_update.failed", - "equinix.fabric.router.advertised_route_entry_update.pending", - "equinix.fabric.router.advertised_route_entry_update.succeeded", - "equinix.fabric.router.bgp_session_status_update.failed", - "equinix.fabric.router.bgp_session_status_update.pending", - "equinix.fabric.router.bgp_session_status_update.succeeded", - "equinix.fabric.router.received_route_entry_update.failed", - "equinix.fabric.router.received_route_entry_update.pending", - "equinix.fabric.router.received_route_entry_update.succeeded", - "equinix.fabric.router.route_table_entry_update.failed", - "equinix.fabric.router.route_table_entry_update.pending", - "equinix.fabric.router.route_table_entry_update.succeeded", - "equinix.fabric.router.routes_ipv4_installed.utilization", - "equinix.fabric.router.routes_ipv6_installed.utilization", - "equinix.fabric.router.state.deprovisioned", - "equinix.fabric.router.state.deprovisioning", - "equinix.fabric.router.state.locked", - "equinix.fabric.router.state.not_deprovisioned", - "equinix.fabric.router.state.not_provisioned", - "equinix.fabric.router.state.provisioned", - "equinix.fabric.router.state.provisioning", - "equinix.fabric.service_profile.state.active", - "equinix.fabric.service_profile.state.deleted", - "equinix.fabric.service_profile.state.pending_approval", - "equinix.fabric.service_profile.state.rejected", - "equinix.fabric.service_token.state.active", - "equinix.fabric.service_token.state.deleted", - "equinix.fabric.service_token.state.expired", - "equinix.fabric.service_token.state.inactive", - "equinix.fabric.stream.resource_status.attached", - "equinix.fabric.stream.resource_status.attaching", - "equinix.fabric.stream.resource_status.detached", - "equinix.fabric.stream.resource_status.detaching", - "equinix.fabric.stream.resource_status.failed", - "equinix.fabric.stream.state.deprovisioned", - "equinix.fabric.stream.state.deprovisioning", - "equinix.fabric.stream.state.failed", - "equinix.fabric.stream.state.provisioned", - "equinix.fabric.stream.state.provisioning", - "equinix.fabric.stream_subscription.state.deprovisioned", - "equinix.fabric.stream_subscription.state.deprovisioning", - "equinix.fabric.stream_subscription.state.failed", - "equinix.fabric.stream_subscription.state.provisioned", - "equinix.fabric.stream_subscription.state.provisioning", - "equinix.fabric.time_service.state.cancelled", - "equinix.fabric.time_service.state.configuring", - "equinix.fabric.time_service.state.configuring_failed", - "equinix.fabric.time_service.state.deprovisioned", - "equinix.fabric.time_service.state.deprovisioning", - "equinix.fabric.time_service.state.deprovisioning_failed", - "equinix.fabric.time_service.state.pending_configuration", - "equinix.fabric.time_service.state.provisioned", - "equinix.fabric.time_service.state.provisioning", - "equinix.fabric.time_service.state.provisioning_failed" -] diff --git a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json index 7b0166c..3175b44 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeAlert.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeAlert.json @@ -4,16 +4,7 @@ "examples": [], "package": "equinix.events.fabric.v1", "datatype": "equinix.events.fabric.v1.ChangeAlert", - "cloudeventTypes": [ - "equinix.fabric.connection.status.up", - "equinix.fabric.connection.status.down", - "equinix.fabric.connection.bgp_ipv4_status.up", - "equinix.fabric.connection.bgp_ipv4_status.down", - "equinix.fabric.connection.bgp_ipv6_status.up", - "equinix.fabric.connection.bgp_ipv6_status.down", - "equinix.fabric.port.status.up", - "equinix.fabric.port.status.down" - ], + "cloudeventTypes": [], "product": "Equinix Fabric ChangeAlert", "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Data", diff --git a/jsonschema/equinix/events/fabric/v1/ChangeEvent.json b/jsonschema/equinix/events/fabric/v1/ChangeEvent.json index 228f69d..ecc3f7f 100644 --- a/jsonschema/equinix/events/fabric/v1/ChangeEvent.json +++ b/jsonschema/equinix/events/fabric/v1/ChangeEvent.json @@ -5,141 +5,42 @@ "package": "equinix.events.fabric.v1", "datatype": "equinix.events.fabric.v1.ChangeEvent", "cloudeventTypes": [ - "equinix.fabric.connection.status.up", - "equinix.fabric.connection.status.down", - "equinix.fabric.connection.state.draft", - "equinix.fabric.connection.state.cancelled", - "equinix.fabric.connection.state.pending", - "equinix.fabric.connection.state.provisioning", - "equinix.fabric.connection.state.provisioned", - "equinix.fabric.connection.state.active", - "equinix.fabric.connection.state.reprovisioning", - "equinix.fabric.connection.state.deprovisioning", - "equinix.fabric.connection.state.deprovisioned", - "equinix.fabric.connection.state.failed", - "equinix.fabric.connection.routing_protocol_state.provisioning", - "equinix.fabric.connection.routing_protocol_state.provisioned", - "equinix.fabric.connection.routing_protocol_state.reprovisioning", - "equinix.fabric.connection.routing_protocol_state.deprovisioning", - "equinix.fabric.connection.routing_protocol_state.deprovisioned", - "equinix.fabric.connection.routing_protocol_state.failed", - "equinix.fabric.connection.bgp_ipv4_status.up", - "equinix.fabric.connection.bgp_ipv4_status.down", - "equinix.fabric.connection.bgp_ipv6_status.up", - "equinix.fabric.connection.bgp_ipv6_status.down", - "equinix.fabric.connection.bgp_ipv4_session.established", - "equinix.fabric.connection.bgp_ipv4_session.connect", - "equinix.fabric.connection.bgp_ipv4_session.opensent", - "equinix.fabric.connection.bgp_ipv4_session.openconfirm", - "equinix.fabric.connection.bgp_ipv4_session.active", - "equinix.fabric.connection.bgp_ipv4_session.idle", - "equinix.fabric.connection.bgp_ipv6_session.established", - "equinix.fabric.connection.bgp_ipv6_session.connect", - "equinix.fabric.connection.bgp_ipv6_session.opensent", - "equinix.fabric.connection.bgp_ipv6_session.openconfirm", - "equinix.fabric.connection.bgp_ipv6_session.active", - "equinix.fabric.connection.bgp_ipv6_session.idle", - "equinix.fabric.connection.reset_bgp_ipv4.succeeded", - "equinix.fabric.connection.reset_bgp_ipv4.failed", - "equinix.fabric.connection.reset_bgp_ipv6.succeeded", - "equinix.fabric.connection.reset_bgp_ipv6.failed", - "equinix.fabric.connection.clear_bgp_ipv4.succeeded", - "equinix.fabric.connection.clear_bgp_ipv4.failed", - "equinix.fabric.connection.clear_bgp_ipv6.succeeded", - "equinix.fabric.connection.clear_bgp_ipv6.failed", - "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", - "equinix.fabric.connection.clear_bgp_ipv4_inbound.failed", - "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", - "equinix.fabric.connection.clear_bgp_ipv6_inbound.failed", - "equinix.fabric.route_filter.state.provisioning", - "equinix.fabric.route_filter.state.provisioned", - "equinix.fabric.route_filter.state.reprovisioning", - "equinix.fabric.route_filter.state.deprovisioning", - "equinix.fabric.route_filter.state.deprovisioned", - "equinix.fabric.route_filter.state.not_provisioned", - "equinix.fabric.route_filter.state.not_deprovisioned", - "equinix.fabric.route_filter.rule_state.provisioning", - "equinix.fabric.route_filter.rule_state.provisionined", - "equinix.fabric.route_filter.rule_state.reprovisioning", - "equinix.fabric.route_filter.rule_state.deprovisioning", - "equinix.fabric.route_filter.rule_state.deprovisioned", - "equinix.fabric.route_filter.rule_state.not_provisioned", - "equinix.fabric.route_filter.rule_state.not_deprovisioned", - "equinix.fabric.route_filter.status.pending_bgp_configuration", - "equinix.fabric.route_filter.status.attaching", - "equinix.fabric.route_filter.status.attached", - "equinix.fabric.route_filter.status.detaching", - "equinix.fabric.route_filter.status.detached", - "equinix.fabric.route_filter.status.failed", - "equinix.fabric.port.status.up", - "equinix.fabric.port.status.down", - "equinix.fabric.port.state.pending", - "equinix.fabric.port.state.provisioning", - "equinix.fabric.port.state.provisioned", - "equinix.fabric.port.state.active", - "equinix.fabric.port.state.inactive", - "equinix.fabric.port.state.deprovisioning", - "equinix.fabric.port.state.deprovisioned", - "equinix.fabric.port.state.failed", - "equinix.fabric.port.state.to_be_added", - "equinix.fabric.port.state.to_be_deleted", - "equinix.fabric.port.state.added", - "equinix.fabric.port.state.deleted", "equinix.fabric.router.state.provisioning", "equinix.fabric.router.state.provisioned", - "equinix.fabric.router.state.locked", + "equinix.fabric.router.state.reprovisioning", "equinix.fabric.router.state.deprovisioning", "equinix.fabric.router.state.deprovisioned", + "equinix.fabric.router.state.failed", "equinix.fabric.router.state.not_provisioned", "equinix.fabric.router.state.not_deprovisioned", - "equinix.fabric.router.bgp_session_status_update.pending", - "equinix.fabric.router.bgp_session_status_update.succeeded", - "equinix.fabric.router.bgp_session_status_update.failed", - "equinix.fabric.router.route_table_entry_update.pending", - "equinix.fabric.router.route_table_entry_update.succeeded", - "equinix.fabric.router.route_table_entry_update.failed", - "equinix.fabric.router.received_route_entry_update.pending", - "equinix.fabric.router.received_route_entry_update.succeeded", - "equinix.fabric.router.received_route_entry_update.failed", - "equinix.fabric.router.advertised_route_entry_update.pending", - "equinix.fabric.router.advertised_route_entry_update.succeeded", - "equinix.fabric.router.advertised_route_entry_update.failed", - "equinix.fabric.network.state.active", - "equinix.fabric.network.state.inactive", - "equinix.fabric.network.state.deleted", - "equinix.fabric.time_service.state.pending_configuration", - "equinix.fabric.time_service.state.provisioning", - "equinix.fabric.time_service.state.provisioned", - "equinix.fabric.time_service.state.deprovisioning", - "equinix.fabric.time_service.state.deprovisioned", - "equinix.fabric.time_service.state.configuring_failed", - "equinix.fabric.time_service.state.provisioning_failed", - "equinix.fabric.time_service.state.deprovisioning_failed", - "equinix.fabric.time_service.state.configuring", - "equinix.fabric.time_service.state.cancelled", - "equinix.fabric.service_token.state.active", + "equinix.fabric.port.state.provisioned", + "equinix.fabric.port.state.deprovisioned", + "equinix.fabric.port.state.failed", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down", "equinix.fabric.service_token.state.inactive", - "equinix.fabric.service_token.state.expired", "equinix.fabric.service_token.state.deleted", - "equinix.fabric.service_profile.state.pending_approval", - "equinix.fabric.service_profile.state.rejected", - "equinix.fabric.service_profile.state.active", - "equinix.fabric.service_profile.state.deleted", - "equinix.fabric.stream.state.provisioning", - "equinix.fabric.stream.state.provisioned", - "equinix.fabric.stream.state.deprovisioning", - "equinix.fabric.stream.state.deprovisioned", - "equinix.fabric.stream.state.failed", - "equinix.fabric.stream.resource_status.attaching", - "equinix.fabric.stream.resource_status.attached", - "equinix.fabric.stream.resource_status.detaching", - "equinix.fabric.stream.resource_status.detached", - "equinix.fabric.stream.resource_status.failed", - "equinix.fabric.stream_subscription.state.provisioning", - "equinix.fabric.stream_subscription.state.provisioned", - "equinix.fabric.stream_subscription.state.deprovisioning", - "equinix.fabric.stream_subscription.state.deprovisioned", - "equinix.fabric.stream_subscription.state.failed" + "equinix.fabric.service_token.attribute.changed", + "equinix.fabric.connection.state.pending", + "equinix.fabric.connection.state.pending_interface_configuration", + "equinix.fabric.connection.state.provisioning", + "equinix.fabric.connection.state.provisioned", + "equinix.fabric.connection.state.deprovisioning", + "equinix.fabric.connection.state.deprovisioned", + "equinix.fabric.connection.state.pending_approval", + "equinix.fabric.connection.attribute.changed", + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.bgpipv4_session_status.established", + "equinix.fabric.connection.bgpipv4_session_status.idle", + "equinix.fabric.connection.bgpipv4_session_status.connect", + "equinix.fabric.connection.bgpipv6_session_status.established", + "equinix.fabric.connection.bgpipv6_session_status.idle", + "equinix.fabric.connection.bgpipv6_session_status.connect", + "equinix.fabric.network.state.provisioning", + "equinix.fabric.network.state.provisioned", + "equinix.fabric.network.state.deprovisioning", + "equinix.fabric.network.state.deprovisioned" ], "product": "Equinix Fabric ChangeEvent", "$schema": "http://json-schema.org/draft-04/schema#", diff --git a/jsonschema/equinix/events/fabric/v1/MetricAlert.json b/jsonschema/equinix/events/fabric/v1/MetricAlert.json index b842895..41c55ae 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricAlert.json +++ b/jsonschema/equinix/events/fabric/v1/MetricAlert.json @@ -4,10 +4,7 @@ "examples": [], "package": "equinix.events.fabric.v1", "datatype": "equinix.events.fabric.v1.MetricAlert", - "cloudeventTypes": [ - "equinix.fabric.router.routes_ipv4_installed.utilization", - "equinix.fabric.router.routes_ipv6_installed.utilization" - ], + "cloudeventTypes": [], "product": "Equinix Fabric MetricAlert", "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Data", diff --git a/jsonschema/equinix/events/fabric/v1/MetricEvent.json b/jsonschema/equinix/events/fabric/v1/MetricEvent.json index 7363ea6..090e75c 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricEvent.json +++ b/jsonschema/equinix/events/fabric/v1/MetricEvent.json @@ -5,22 +5,22 @@ "package": "equinix.events.fabric.v1", "datatype": "equinix.events.fabric.v1.MetricEvent", "cloudeventTypes": [ - "equinix.fabric.connection.bandwidth_rx.usage", - "equinix.fabric.connection.bandwidth_tx.usage", - "equinix.fabric.port.bandwidth_rx.usage", - "equinix.fabric.port.bandwidth_tx.usage", - "equinix.fabric.port.frames_erred_rx.count", - "equinix.fabric.port.frames_erred_tx.count", - "equinix.fabric.port.frames_dropped_rx.count", - "equinix.fabric.port.frames_dropped_tx.count", - "equinix.fabric.router.routes_ipv4_installed.utilization", - "equinix.fabric.router.routes_ipv6_installed.utilization", - "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", "equinix.fabric.metric" ], "product": "Equinix Fabric MetricEvent", "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Data", + "metricTypes": [ + "equinix.fabric.port.packets_erred_rx.count", + "equinix.fabric.port.packets_erred_tx.count", + "equinix.fabric.port.packets_dropped_rx.count", + "equinix.fabric.port.packets_dropped_tx.count", + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", + "equinix.fabric.connection.bandwidth_rx.usage", + "equinix.fabric.connection.bandwidth_tx.usage", + "equinix.fabric.port.bandwidth_rx.usage", + "equinix.fabric.port.bandwidth_tx.usage" + ], "definitions": { "Data": { "properties": { diff --git a/scripts/update_data_loader.py b/scripts/update_data_loader.py index 6ff3bf6..f66a641 100644 --- a/scripts/update_data_loader.py +++ b/scripts/update_data_loader.py @@ -1,20 +1,31 @@ import os import json +from collections import defaultdict def retrieve_supported_events(): directory = os.path.dirname(os.path.abspath(__file__)) + '/../jsonschema' - events = set() + dataLoaderStructure = {} for root, dirs, files in os.walk(directory): for file in files: - if file.endswith('.json') and file != "catalog.json": with open(root + "/" + file, "r") as eventFile: + product = root.split("/")[-2] data = json.load(eventFile) - events.update(data["cloudeventTypes"]) - return sorted(events) + if product not in dataLoaderStructure: + dataLoaderStructure[product] = { + "eventTypes": [], + "metricTypes": [], + } + dataLoaderStructure[product]["eventTypes"].extend(data["cloudeventTypes"]) + if "metricTypes" in data: + dataLoaderStructure[product]["metricTypes"].extend(data["metricTypes"]) + dataLoaderStructure[product]["eventTypes"] = sorted(set(dataLoaderStructure[product]["eventTypes"])) + dataLoaderStructure[product]["metricTypes"] = sorted(set(dataLoaderStructure[product]["metricTypes"])) + + return dict(sorted(dataLoaderStructure.items())) def writeSupportedEventsToDataLoaderFile(supportedEvents): - with open(os.path.dirname(os.path.abspath(__file__)) + "/../SupportedEventTypes_DataLoader.json", "w") as eventsFile: + with open(os.path.dirname(os.path.abspath(__file__)) + "/../DataLoader.json", "w") as eventsFile: eventsFile.write(json.dumps(supportedEvents, indent=4)) eventsFile.write("\n") From aa2881c2b1d782b01deb6d797d6904cca59862ba Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 16:41:41 -0800 Subject: [PATCH 15/24] Change attribute name from metricTypes to metricNames --- DataLoader.json | 12 +----------- jsonschema/equinix/events/fabric/v1/MetricEvent.json | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/DataLoader.json b/DataLoader.json index 8726a3c..5e8dbe3 100644 --- a/DataLoader.json +++ b/DataLoader.json @@ -39,16 +39,6 @@ "equinix.fabric.service_token.state.deleted", "equinix.fabric.service_token.state.inactive" ], - "metricTypes": [ - "equinix.fabric.connection.bandwidth_rx.usage", - "equinix.fabric.connection.bandwidth_tx.usage", - "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", - "equinix.fabric.port.bandwidth_rx.usage", - "equinix.fabric.port.bandwidth_tx.usage", - "equinix.fabric.port.packets_dropped_rx.count", - "equinix.fabric.port.packets_dropped_tx.count", - "equinix.fabric.port.packets_erred_rx.count", - "equinix.fabric.port.packets_erred_tx.count" - ] + "metricTypes": [] } } diff --git a/jsonschema/equinix/events/fabric/v1/MetricEvent.json b/jsonschema/equinix/events/fabric/v1/MetricEvent.json index 090e75c..9c7f13c 100644 --- a/jsonschema/equinix/events/fabric/v1/MetricEvent.json +++ b/jsonschema/equinix/events/fabric/v1/MetricEvent.json @@ -10,7 +10,7 @@ "product": "Equinix Fabric MetricEvent", "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Data", - "metricTypes": [ + "metricNames": [ "equinix.fabric.port.packets_erred_rx.count", "equinix.fabric.port.packets_erred_tx.count", "equinix.fabric.port.packets_dropped_rx.count", From 14736887804075b6ab6755560a977759ba58b104 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 16:56:24 -0800 Subject: [PATCH 16/24] Update metricTypes to metricNames and update json catalog and README.md catalog --- README.md | 8 +- jsonschema/catalog.json | 189 +++++------------------ scripts/generate_json_catalog.py | 9 +- scripts/generate_readme_event_catalog.py | 6 +- 4 files changed, 54 insertions(+), 158 deletions(-) diff --git a/README.md b/README.md index a15660f..8ff306f 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,9 @@ The following data payloads are the supported events and formats for Equinix Obs |Product|Schemas|Types| |-|-|-| -|Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgp_ipv4_status.up`
`equinix.fabric.connection.bgp_ipv4_status.down`
`equinix.fabric.connection.bgp_ipv6_status.up`
`equinix.fabric.connection.bgp_ipv6_status.down`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
| -|Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.state.draft`
`equinix.fabric.connection.state.cancelled`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.active`
`equinix.fabric.connection.state.reprovisioning`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.failed`
`equinix.fabric.connection.routing_protocol_state.provisioning`
`equinix.fabric.connection.routing_protocol_state.provisioned`
`equinix.fabric.connection.routing_protocol_state.reprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioning`
`equinix.fabric.connection.routing_protocol_state.deprovisioned`
`equinix.fabric.connection.routing_protocol_state.failed`
`equinix.fabric.connection.bgp_ipv4_status.up`
`equinix.fabric.connection.bgp_ipv4_status.down`
`equinix.fabric.connection.bgp_ipv6_status.up`
`equinix.fabric.connection.bgp_ipv6_status.down`
`equinix.fabric.connection.bgp_ipv4_session.established`
`equinix.fabric.connection.bgp_ipv4_session.connect`
`equinix.fabric.connection.bgp_ipv4_session.opensent`
`equinix.fabric.connection.bgp_ipv4_session.openconfirm`
`equinix.fabric.connection.bgp_ipv4_session.active`
`equinix.fabric.connection.bgp_ipv4_session.idle`
`equinix.fabric.connection.bgp_ipv6_session.established`
`equinix.fabric.connection.bgp_ipv6_session.connect`
`equinix.fabric.connection.bgp_ipv6_session.opensent`
`equinix.fabric.connection.bgp_ipv6_session.openconfirm`
`equinix.fabric.connection.bgp_ipv6_session.active`
`equinix.fabric.connection.bgp_ipv6_session.idle`
`equinix.fabric.connection.reset_bgp_ipv4.succeeded`
`equinix.fabric.connection.reset_bgp_ipv4.failed`
`equinix.fabric.connection.reset_bgp_ipv6.succeeded`
`equinix.fabric.connection.reset_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4.failed`
`equinix.fabric.connection.clear_bgp_ipv6.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6.failed`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv4_inbound.failed`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded`
`equinix.fabric.connection.clear_bgp_ipv6_inbound.failed`
`equinix.fabric.route_filter.state.provisioning`
`equinix.fabric.route_filter.state.provisioned`
`equinix.fabric.route_filter.state.reprovisioning`
`equinix.fabric.route_filter.state.deprovisioning`
`equinix.fabric.route_filter.state.deprovisioned`
`equinix.fabric.route_filter.state.not_provisioned`
`equinix.fabric.route_filter.state.not_deprovisioned`
`equinix.fabric.route_filter.rule_state.provisioning`
`equinix.fabric.route_filter.rule_state.provisionined`
`equinix.fabric.route_filter.rule_state.reprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioning`
`equinix.fabric.route_filter.rule_state.deprovisioned`
`equinix.fabric.route_filter.rule_state.not_provisioned`
`equinix.fabric.route_filter.rule_state.not_deprovisioned`
`equinix.fabric.route_filter.status.pending_bgp_configuration`
`equinix.fabric.route_filter.status.attaching`
`equinix.fabric.route_filter.status.attached`
`equinix.fabric.route_filter.status.detaching`
`equinix.fabric.route_filter.status.detached`
`equinix.fabric.route_filter.status.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.port.state.pending`
`equinix.fabric.port.state.provisioning`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.active`
`equinix.fabric.port.state.inactive`
`equinix.fabric.port.state.deprovisioning`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.state.to_be_added`
`equinix.fabric.port.state.to_be_deleted`
`equinix.fabric.port.state.added`
`equinix.fabric.port.state.deleted`
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.locked`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.router.bgp_session_status_update.pending`
`equinix.fabric.router.bgp_session_status_update.succeeded`
`equinix.fabric.router.bgp_session_status_update.failed`
`equinix.fabric.router.route_table_entry_update.pending`
`equinix.fabric.router.route_table_entry_update.succeeded`
`equinix.fabric.router.route_table_entry_update.failed`
`equinix.fabric.router.received_route_entry_update.pending`
`equinix.fabric.router.received_route_entry_update.succeeded`
`equinix.fabric.router.received_route_entry_update.failed`
`equinix.fabric.router.advertised_route_entry_update.pending`
`equinix.fabric.router.advertised_route_entry_update.succeeded`
`equinix.fabric.router.advertised_route_entry_update.failed`
`equinix.fabric.network.state.active`
`equinix.fabric.network.state.inactive`
`equinix.fabric.network.state.deleted`
`equinix.fabric.time_service.state.pending_configuration`
`equinix.fabric.time_service.state.provisioning`
`equinix.fabric.time_service.state.provisioned`
`equinix.fabric.time_service.state.deprovisioning`
`equinix.fabric.time_service.state.deprovisioned`
`equinix.fabric.time_service.state.configuring_failed`
`equinix.fabric.time_service.state.provisioning_failed`
`equinix.fabric.time_service.state.deprovisioning_failed`
`equinix.fabric.time_service.state.configuring`
`equinix.fabric.time_service.state.cancelled`
`equinix.fabric.service_token.state.active`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.expired`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_profile.state.pending_approval`
`equinix.fabric.service_profile.state.rejected`
`equinix.fabric.service_profile.state.active`
`equinix.fabric.service_profile.state.deleted`
`equinix.fabric.stream.state.provisioning`
`equinix.fabric.stream.state.provisioned`
`equinix.fabric.stream.state.deprovisioning`
`equinix.fabric.stream.state.deprovisioned`
`equinix.fabric.stream.state.failed`
`equinix.fabric.stream.resource_status.attaching`
`equinix.fabric.stream.resource_status.attached`
`equinix.fabric.stream.resource_status.detaching`
`equinix.fabric.stream.resource_status.detached`
`equinix.fabric.stream.resource_status.failed`
`equinix.fabric.stream_subscription.state.provisioning`
`equinix.fabric.stream_subscription.state.provisioned`
`equinix.fabric.stream_subscription.state.deprovisioning`
`equinix.fabric.stream_subscription.state.deprovisioned`
`equinix.fabric.stream_subscription.state.failed`
| -|Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):
`equinix.fabric.router.routes_ipv4_installed.utilization`
`equinix.fabric.router.routes_ipv6_installed.utilization`
| -|Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:
`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
`equinix.fabric.port.frames_erred_rx.count`
`equinix.fabric.port.frames_erred_tx.count`
`equinix.fabric.port.frames_dropped_rx.count`
`equinix.fabric.port.frames_dropped_tx.count`
`equinix.fabric.router.routes_ipv4_installed.utilization`
`equinix.fabric.router.routes_ipv6_installed.utilization`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.metric`
| +|Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| +|Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| +|Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| +|Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:
`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.metric`

Metric Type(s):
`equinix.fabric.port.packets_erred_rx.count`
`equinix.fabric.port.packets_erred_tx.count`
`equinix.fabric.port.packets_dropped_rx.count`
`equinix.fabric.port.packets_dropped_tx.count`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
| diff --git a/jsonschema/catalog.json b/jsonschema/catalog.json index 83ef878..f303b6a 100644 --- a/jsonschema/catalog.json +++ b/jsonschema/catalog.json @@ -8,16 +8,7 @@ "name": "ChangeAlert", "description": "The data within all ChangeAlert events.", "datatype": "equinix.events.fabric.v1.ChangeAlert", - "cloudeventTypes": [ - "equinix.fabric.connection.status.up", - "equinix.fabric.connection.status.down", - "equinix.fabric.connection.bgp_ipv4_status.up", - "equinix.fabric.connection.bgp_ipv4_status.down", - "equinix.fabric.connection.bgp_ipv6_status.up", - "equinix.fabric.connection.bgp_ipv6_status.down", - "equinix.fabric.port.status.up", - "equinix.fabric.port.status.down" - ] + "cloudeventTypes": [] }, { "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json", @@ -26,141 +17,42 @@ "description": "The data within all ChangeEvent events.", "datatype": "equinix.events.fabric.v1.ChangeEvent", "cloudeventTypes": [ - "equinix.fabric.connection.status.up", - "equinix.fabric.connection.status.down", - "equinix.fabric.connection.state.draft", - "equinix.fabric.connection.state.cancelled", - "equinix.fabric.connection.state.pending", - "equinix.fabric.connection.state.provisioning", - "equinix.fabric.connection.state.provisioned", - "equinix.fabric.connection.state.active", - "equinix.fabric.connection.state.reprovisioning", - "equinix.fabric.connection.state.deprovisioning", - "equinix.fabric.connection.state.deprovisioned", - "equinix.fabric.connection.state.failed", - "equinix.fabric.connection.routing_protocol_state.provisioning", - "equinix.fabric.connection.routing_protocol_state.provisioned", - "equinix.fabric.connection.routing_protocol_state.reprovisioning", - "equinix.fabric.connection.routing_protocol_state.deprovisioning", - "equinix.fabric.connection.routing_protocol_state.deprovisioned", - "equinix.fabric.connection.routing_protocol_state.failed", - "equinix.fabric.connection.bgp_ipv4_status.up", - "equinix.fabric.connection.bgp_ipv4_status.down", - "equinix.fabric.connection.bgp_ipv6_status.up", - "equinix.fabric.connection.bgp_ipv6_status.down", - "equinix.fabric.connection.bgp_ipv4_session.established", - "equinix.fabric.connection.bgp_ipv4_session.connect", - "equinix.fabric.connection.bgp_ipv4_session.opensent", - "equinix.fabric.connection.bgp_ipv4_session.openconfirm", - "equinix.fabric.connection.bgp_ipv4_session.active", - "equinix.fabric.connection.bgp_ipv4_session.idle", - "equinix.fabric.connection.bgp_ipv6_session.established", - "equinix.fabric.connection.bgp_ipv6_session.connect", - "equinix.fabric.connection.bgp_ipv6_session.opensent", - "equinix.fabric.connection.bgp_ipv6_session.openconfirm", - "equinix.fabric.connection.bgp_ipv6_session.active", - "equinix.fabric.connection.bgp_ipv6_session.idle", - "equinix.fabric.connection.reset_bgp_ipv4.succeeded", - "equinix.fabric.connection.reset_bgp_ipv4.failed", - "equinix.fabric.connection.reset_bgp_ipv6.succeeded", - "equinix.fabric.connection.reset_bgp_ipv6.failed", - "equinix.fabric.connection.clear_bgp_ipv4.succeeded", - "equinix.fabric.connection.clear_bgp_ipv4.failed", - "equinix.fabric.connection.clear_bgp_ipv6.succeeded", - "equinix.fabric.connection.clear_bgp_ipv6.failed", - "equinix.fabric.connection.clear_bgp_ipv4_inbound.succeeded", - "equinix.fabric.connection.clear_bgp_ipv4_inbound.failed", - "equinix.fabric.connection.clear_bgp_ipv6_inbound.succeeded", - "equinix.fabric.connection.clear_bgp_ipv6_inbound.failed", - "equinix.fabric.route_filter.state.provisioning", - "equinix.fabric.route_filter.state.provisioned", - "equinix.fabric.route_filter.state.reprovisioning", - "equinix.fabric.route_filter.state.deprovisioning", - "equinix.fabric.route_filter.state.deprovisioned", - "equinix.fabric.route_filter.state.not_provisioned", - "equinix.fabric.route_filter.state.not_deprovisioned", - "equinix.fabric.route_filter.rule_state.provisioning", - "equinix.fabric.route_filter.rule_state.provisionined", - "equinix.fabric.route_filter.rule_state.reprovisioning", - "equinix.fabric.route_filter.rule_state.deprovisioning", - "equinix.fabric.route_filter.rule_state.deprovisioned", - "equinix.fabric.route_filter.rule_state.not_provisioned", - "equinix.fabric.route_filter.rule_state.not_deprovisioned", - "equinix.fabric.route_filter.status.pending_bgp_configuration", - "equinix.fabric.route_filter.status.attaching", - "equinix.fabric.route_filter.status.attached", - "equinix.fabric.route_filter.status.detaching", - "equinix.fabric.route_filter.status.detached", - "equinix.fabric.route_filter.status.failed", - "equinix.fabric.port.status.up", - "equinix.fabric.port.status.down", - "equinix.fabric.port.state.pending", - "equinix.fabric.port.state.provisioning", - "equinix.fabric.port.state.provisioned", - "equinix.fabric.port.state.active", - "equinix.fabric.port.state.inactive", - "equinix.fabric.port.state.deprovisioning", - "equinix.fabric.port.state.deprovisioned", - "equinix.fabric.port.state.failed", - "equinix.fabric.port.state.to_be_added", - "equinix.fabric.port.state.to_be_deleted", - "equinix.fabric.port.state.added", - "equinix.fabric.port.state.deleted", "equinix.fabric.router.state.provisioning", "equinix.fabric.router.state.provisioned", - "equinix.fabric.router.state.locked", + "equinix.fabric.router.state.reprovisioning", "equinix.fabric.router.state.deprovisioning", "equinix.fabric.router.state.deprovisioned", + "equinix.fabric.router.state.failed", "equinix.fabric.router.state.not_provisioned", "equinix.fabric.router.state.not_deprovisioned", - "equinix.fabric.router.bgp_session_status_update.pending", - "equinix.fabric.router.bgp_session_status_update.succeeded", - "equinix.fabric.router.bgp_session_status_update.failed", - "equinix.fabric.router.route_table_entry_update.pending", - "equinix.fabric.router.route_table_entry_update.succeeded", - "equinix.fabric.router.route_table_entry_update.failed", - "equinix.fabric.router.received_route_entry_update.pending", - "equinix.fabric.router.received_route_entry_update.succeeded", - "equinix.fabric.router.received_route_entry_update.failed", - "equinix.fabric.router.advertised_route_entry_update.pending", - "equinix.fabric.router.advertised_route_entry_update.succeeded", - "equinix.fabric.router.advertised_route_entry_update.failed", - "equinix.fabric.network.state.active", - "equinix.fabric.network.state.inactive", - "equinix.fabric.network.state.deleted", - "equinix.fabric.time_service.state.pending_configuration", - "equinix.fabric.time_service.state.provisioning", - "equinix.fabric.time_service.state.provisioned", - "equinix.fabric.time_service.state.deprovisioning", - "equinix.fabric.time_service.state.deprovisioned", - "equinix.fabric.time_service.state.configuring_failed", - "equinix.fabric.time_service.state.provisioning_failed", - "equinix.fabric.time_service.state.deprovisioning_failed", - "equinix.fabric.time_service.state.configuring", - "equinix.fabric.time_service.state.cancelled", - "equinix.fabric.service_token.state.active", + "equinix.fabric.port.state.provisioned", + "equinix.fabric.port.state.deprovisioned", + "equinix.fabric.port.state.failed", + "equinix.fabric.port.status.up", + "equinix.fabric.port.status.down", "equinix.fabric.service_token.state.inactive", - "equinix.fabric.service_token.state.expired", "equinix.fabric.service_token.state.deleted", - "equinix.fabric.service_profile.state.pending_approval", - "equinix.fabric.service_profile.state.rejected", - "equinix.fabric.service_profile.state.active", - "equinix.fabric.service_profile.state.deleted", - "equinix.fabric.stream.state.provisioning", - "equinix.fabric.stream.state.provisioned", - "equinix.fabric.stream.state.deprovisioning", - "equinix.fabric.stream.state.deprovisioned", - "equinix.fabric.stream.state.failed", - "equinix.fabric.stream.resource_status.attaching", - "equinix.fabric.stream.resource_status.attached", - "equinix.fabric.stream.resource_status.detaching", - "equinix.fabric.stream.resource_status.detached", - "equinix.fabric.stream.resource_status.failed", - "equinix.fabric.stream_subscription.state.provisioning", - "equinix.fabric.stream_subscription.state.provisioned", - "equinix.fabric.stream_subscription.state.deprovisioning", - "equinix.fabric.stream_subscription.state.deprovisioned", - "equinix.fabric.stream_subscription.state.failed" + "equinix.fabric.service_token.attribute.changed", + "equinix.fabric.connection.state.pending", + "equinix.fabric.connection.state.pending_interface_configuration", + "equinix.fabric.connection.state.provisioning", + "equinix.fabric.connection.state.provisioned", + "equinix.fabric.connection.state.deprovisioning", + "equinix.fabric.connection.state.deprovisioned", + "equinix.fabric.connection.state.pending_approval", + "equinix.fabric.connection.attribute.changed", + "equinix.fabric.connection.status.up", + "equinix.fabric.connection.status.down", + "equinix.fabric.connection.bgpipv4_session_status.established", + "equinix.fabric.connection.bgpipv4_session_status.idle", + "equinix.fabric.connection.bgpipv4_session_status.connect", + "equinix.fabric.connection.bgpipv6_session_status.established", + "equinix.fabric.connection.bgpipv6_session_status.idle", + "equinix.fabric.connection.bgpipv6_session_status.connect", + "equinix.fabric.network.state.provisioning", + "equinix.fabric.network.state.provisioned", + "equinix.fabric.network.state.deprovisioning", + "equinix.fabric.network.state.deprovisioned" ] }, { @@ -169,10 +61,7 @@ "name": "MetricAlert", "description": "The data within all MetricAlert events.", "datatype": "equinix.events.fabric.v1.MetricAlert", - "cloudeventTypes": [ - "equinix.fabric.router.routes_ipv4_installed.utilization", - "equinix.fabric.router.routes_ipv6_installed.utilization" - ] + "cloudeventTypes": [] }, { "url": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json", @@ -181,18 +70,18 @@ "description": "The data within all MetricEvent events.", "datatype": "equinix.events.fabric.v1.MetricEvent", "cloudeventTypes": [ + "equinix.fabric.metric" + ], + "metricNames": [ + "equinix.fabric.port.packets_erred_rx.count", + "equinix.fabric.port.packets_erred_tx.count", + "equinix.fabric.port.packets_dropped_rx.count", + "equinix.fabric.port.packets_dropped_tx.count", + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", "equinix.fabric.connection.bandwidth_rx.usage", "equinix.fabric.connection.bandwidth_tx.usage", "equinix.fabric.port.bandwidth_rx.usage", - "equinix.fabric.port.bandwidth_tx.usage", - "equinix.fabric.port.frames_erred_rx.count", - "equinix.fabric.port.frames_erred_tx.count", - "equinix.fabric.port.frames_dropped_rx.count", - "equinix.fabric.port.frames_dropped_tx.count", - "equinix.fabric.router.routes_ipv4_installed.utilization", - "equinix.fabric.router.routes_ipv6_installed.utilization", - "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", - "equinix.fabric.metric" + "equinix.fabric.port.bandwidth_tx.usage" ] } ] diff --git a/scripts/generate_json_catalog.py b/scripts/generate_json_catalog.py index ae11f41..114f148 100644 --- a/scripts/generate_json_catalog.py +++ b/scripts/generate_json_catalog.py @@ -9,14 +9,17 @@ def retrieve_json_schemas(): if file.endswith('.json') and file != "catalog.json": with open(root + "/" + file, "r") as eventFile: data = json.load(eventFile) - json_schemas.append({ + newItem = { "url": data["$id"], "product": data["product"], "name": data["name"], - "description": data["definitions"][data["name"]]["description"], + "description": data["definitions"]["Data"]["description"], "datatype": data["datatype"], "cloudeventTypes": data["cloudeventTypes"] - }) + } + if "metricNames" in data: + newItem["metricNames"] = data["metricNames"] + json_schemas.append(newItem) json_schemas.sort(key=lambda x: x["url"]) return json_schemas diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index 410158b..32fa4c1 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -3,7 +3,11 @@ def table_row(schema): cloudEventTypes = "
".join(map(lambda x: f"`{x}`", schema["cloudeventTypes"])) - return f"|{schema["product"]}|[JSON]({schema["url"]})|
Data Type:
`{schema["datatype"]}`
CloudEvent Type(s):
{cloudEventTypes}
|" + metrics = "" + if "metricNames" in schema: + metricNames = "
".join(map(lambda x: f"`{x}`", schema["metricNames"])) + metrics = f"
Metric Type(s):
{metricNames}
" + return f"|{schema["product"]}|[JSON]({schema["url"]})|
Data Type:
`{schema["datatype"]}`
CloudEvent Type(s):
{cloudEventTypes}
{metrics}|" def replace_readme_catalog(): readme_path = os.path.dirname(os.path.abspath(__file__)) + "/../README.md" From 1c0b1d1f4e459737107189f2a12e83463f3b76c0 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 21:21:39 -0800 Subject: [PATCH 17/24] Test github pages table build --- README.md | 1 + scripts/generate_readme_event_catalog.py | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 8ff306f..e4023e6 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ The following data payloads are the supported events and formats for Equinix Obs |Product|Schemas|Types| |-|-|-| + |Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| |Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| |Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index 32fa4c1..5b163f1 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -18,6 +18,7 @@ def replace_readme_catalog(): replacement_readme_catalog = f"""|Product|Schemas|Types| |-|-|-| + {schemas} """ From 5566a2004fe27e9e26e95a7e21a5cdf27543aa3e Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 21:29:36 -0800 Subject: [PATCH 18/24] Test markdown processor for github pages --- README.md | 9 ++++----- scripts/generate_readme_event_catalog.py | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index e4023e6..5a5c29a 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,10 @@ The following data payloads are the supported events and formats for Equinix Obs |Product|Schemas|Types| -|-|-|-| -|Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| -|Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| -|Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| -|Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:
`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.metric`

Metric Type(s):
`equinix.fabric.port.packets_erred_rx.count`
`equinix.fabric.port.packets_erred_tx.count`
`equinix.fabric.port.packets_dropped_rx.count`
`equinix.fabric.port.packets_dropped_tx.count`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
| +|Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:

`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| +|Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:

`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| +|Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:

`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| +|Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:

`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.metric`

Metric Type(s):
`equinix.fabric.port.packets_erred_rx.count`
`equinix.fabric.port.packets_erred_tx.count`
`equinix.fabric.port.packets_dropped_rx.count`
`equinix.fabric.port.packets_dropped_tx.count`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
| diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index 5b163f1..a67b926 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -2,12 +2,12 @@ import json def table_row(schema): - cloudEventTypes = "
".join(map(lambda x: f"`{x}`", schema["cloudeventTypes"])) + cloudEventTypes = "
".join(map(lambda x: f"`{x}`", schema["cloudeventTypes"])) metrics = "" if "metricNames" in schema: - metricNames = "
".join(map(lambda x: f"`{x}`", schema["metricNames"])) - metrics = f"
Metric Type(s):
{metricNames}
" - return f"|{schema["product"]}|[JSON]({schema["url"]})|
Data Type:
`{schema["datatype"]}`
CloudEvent Type(s):
{cloudEventTypes}
{metrics}|" + metricNames = "
".join(map(lambda x: f"`{x}`", schema["metricNames"])) + metrics = f"
Metric Type(s):
{metricNames}
" + return f"|{schema["product"]}|[JSON]({schema["url"]})|
Data Type:

`{schema["datatype"]}`
CloudEvent Type(s):
{cloudEventTypes}
{metrics}|" def replace_readme_catalog(): readme_path = os.path.dirname(os.path.abspath(__file__)) + "/../README.md" @@ -17,7 +17,6 @@ def replace_readme_catalog(): schemas = "\n".join(map(table_row, catalog["schemas"])) replacement_readme_catalog = f"""|Product|Schemas|Types| -|-|-|-| {schemas} """ From 10e5e5e3ab70e19898c03cc48b5d1b5ba87f57b1 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 21:33:53 -0800 Subject: [PATCH 19/24] Test table markdown processing on github pages --- README.md | 9 ++++----- scripts/generate_readme_event_catalog.py | 5 ++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5a5c29a..195ad67 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,9 @@ The following data payloads are the supported events and formats for Equinix Obs |Product|Schemas|Types| - -|Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:

`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| -|Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:

`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| -|Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:

`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| -|Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:

`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.metric`

Metric Type(s):
`equinix.fabric.port.packets_erred_rx.count`
`equinix.fabric.port.packets_erred_tx.count`
`equinix.fabric.port.packets_dropped_rx.count`
`equinix.fabric.port.packets_dropped_tx.count`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`
| +|Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| +|Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| +|Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| +|Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:
`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.metric`

Metric Type(s):
`equinix.fabric.port.packets_erred_rx.count`
`equinix.fabric.port.packets_erred_tx.count`
`equinix.fabric.port.packets_dropped_rx.count`
`equinix.fabric.port.packets_dropped_tx.count`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`| diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index a67b926..420f550 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -6,8 +6,8 @@ def table_row(schema): metrics = "" if "metricNames" in schema: metricNames = "
".join(map(lambda x: f"`{x}`", schema["metricNames"])) - metrics = f"
Metric Type(s):
{metricNames}
" - return f"|{schema["product"]}|[JSON]({schema["url"]})|
Data Type:

`{schema["datatype"]}`
CloudEvent Type(s):
{cloudEventTypes}
{metrics}|" + metrics = f"
Metric Type(s):
{metricNames}" + return f"|{schema["product"]}|[JSON]({schema["url"]})|
Data Type:
`{schema["datatype"]}`
CloudEvent Type(s):
{cloudEventTypes}
{metrics}|" def replace_readme_catalog(): readme_path = os.path.dirname(os.path.abspath(__file__)) + "/../README.md" @@ -17,7 +17,6 @@ def replace_readme_catalog(): schemas = "\n".join(map(table_row, catalog["schemas"])) replacement_readme_catalog = f"""|Product|Schemas|Types| - {schemas} """ From e4e18feec17971064ad6f3a698225250fc28eacb Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 21:36:47 -0800 Subject: [PATCH 20/24] Test markdown processor for github pages --- README.md | 2 -- scripts/generate_readme_event_catalog.py | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 195ad67..a17b4b1 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,8 @@ Definitive "source of truth" for the Equinix Observability event data formats The following data payloads are the supported events and formats for Equinix Observability -|Product|Schemas|Types| |Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| |Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| |Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| |Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:
`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.metric`

Metric Type(s):
`equinix.fabric.port.packets_erred_rx.count`
`equinix.fabric.port.packets_erred_tx.count`
`equinix.fabric.port.packets_dropped_rx.count`
`equinix.fabric.port.packets_dropped_tx.count`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`| - diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index 420f550..fb1f50a 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -16,9 +16,7 @@ def replace_readme_catalog(): catalog = json.load(catalog_file) schemas = "\n".join(map(table_row, catalog["schemas"])) - replacement_readme_catalog = f"""|Product|Schemas|Types| -{schemas} -""" + replacement_readme_catalog = f"""{schemas}""" with open(readme_path, "r+") as readme_file: content = readme_file.read() From 8ec5858969162bcb3a0da46d3b42720882cec7f7 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 21:41:21 -0800 Subject: [PATCH 21/24] Test github pages markdown processing --- README.md | 2 ++ scripts/generate_readme_event_catalog.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a17b4b1..302ef5a 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ Definitive "source of truth" for the Equinix Observability event data formats The following data payloads are the supported events and formats for Equinix Observability +| Product | Schemas | Types | + |Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| |Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| |Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index fb1f50a..4c79e29 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -16,7 +16,9 @@ def replace_readme_catalog(): catalog = json.load(catalog_file) schemas = "\n".join(map(table_row, catalog["schemas"])) - replacement_readme_catalog = f"""{schemas}""" + replacement_readme_catalog = f"""| Product | Schemas | Types | + +{schemas}""" with open(readme_path, "r+") as readme_file: content = readme_file.read() From bc141f1710f581f4c92203524f98b5c42947d84c Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 21:44:37 -0800 Subject: [PATCH 22/24] Test table processing for github pages --- README.md | 2 +- scripts/generate_readme_event_catalog.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 302ef5a..39840f3 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Definitive "source of truth" for the Equinix Observability event data formats The following data payloads are the supported events and formats for Equinix Observability -| Product | Schemas | Types | +|Product|Schemas|Types| |Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| |Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index 4c79e29..7ab96a2 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -16,7 +16,7 @@ def replace_readme_catalog(): catalog = json.load(catalog_file) schemas = "\n".join(map(table_row, catalog["schemas"])) - replacement_readme_catalog = f"""| Product | Schemas | Types | + replacement_readme_catalog = f"""|Product|Schemas|Types| {schemas}""" From d1078d89850726e9cb56ba90cd3dd0b103637860 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Thu, 14 Nov 2024 21:46:42 -0800 Subject: [PATCH 23/24] Use blank line for start and end of table --- README.md | 3 ++- scripts/generate_readme_event_catalog.py | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 39840f3..ed72b9f 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,11 @@ Definitive "source of truth" for the Equinix Observability event data formats The following data payloads are the supported events and formats for Equinix Observability -|Product|Schemas|Types| +|Product|Schemas|Types| |Equinix Fabric ChangeAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeAlert.json)|
Data Type:
`equinix.events.fabric.v1.ChangeAlert`
CloudEvent Type(s):

| |Equinix Fabric ChangeEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/ChangeEvent.json)|
Data Type:
`equinix.events.fabric.v1.ChangeEvent`
CloudEvent Type(s):
`equinix.fabric.router.state.provisioning`
`equinix.fabric.router.state.provisioned`
`equinix.fabric.router.state.reprovisioning`
`equinix.fabric.router.state.deprovisioning`
`equinix.fabric.router.state.deprovisioned`
`equinix.fabric.router.state.failed`
`equinix.fabric.router.state.not_provisioned`
`equinix.fabric.router.state.not_deprovisioned`
`equinix.fabric.port.state.provisioned`
`equinix.fabric.port.state.deprovisioned`
`equinix.fabric.port.state.failed`
`equinix.fabric.port.status.up`
`equinix.fabric.port.status.down`
`equinix.fabric.service_token.state.inactive`
`equinix.fabric.service_token.state.deleted`
`equinix.fabric.service_token.attribute.changed`
`equinix.fabric.connection.state.pending`
`equinix.fabric.connection.state.pending_interface_configuration`
`equinix.fabric.connection.state.provisioning`
`equinix.fabric.connection.state.provisioned`
`equinix.fabric.connection.state.deprovisioning`
`equinix.fabric.connection.state.deprovisioned`
`equinix.fabric.connection.state.pending_approval`
`equinix.fabric.connection.attribute.changed`
`equinix.fabric.connection.status.up`
`equinix.fabric.connection.status.down`
`equinix.fabric.connection.bgpipv4_session_status.established`
`equinix.fabric.connection.bgpipv4_session_status.idle`
`equinix.fabric.connection.bgpipv4_session_status.connect`
`equinix.fabric.connection.bgpipv6_session_status.established`
`equinix.fabric.connection.bgpipv6_session_status.idle`
`equinix.fabric.connection.bgpipv6_session_status.connect`
`equinix.fabric.network.state.provisioning`
`equinix.fabric.network.state.provisioned`
`equinix.fabric.network.state.deprovisioning`
`equinix.fabric.network.state.deprovisioned`
| |Equinix Fabric MetricAlert|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricAlert.json)|
Data Type:
`equinix.events.fabric.v1.MetricAlert`
CloudEvent Type(s):

| |Equinix Fabric MetricEvent|[JSON](https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/events/fabric/v1/MetricEvent.json)|
Data Type:
`equinix.events.fabric.v1.MetricEvent`
CloudEvent Type(s):
`equinix.fabric.metric`

Metric Type(s):
`equinix.fabric.port.packets_erred_rx.count`
`equinix.fabric.port.packets_erred_tx.count`
`equinix.fabric.port.packets_dropped_rx.count`
`equinix.fabric.port.packets_dropped_tx.count`
`equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency`
`equinix.fabric.connection.bandwidth_rx.usage`
`equinix.fabric.connection.bandwidth_tx.usage`
`equinix.fabric.port.bandwidth_rx.usage`
`equinix.fabric.port.bandwidth_tx.usage`| + diff --git a/scripts/generate_readme_event_catalog.py b/scripts/generate_readme_event_catalog.py index 7ab96a2..6cd05b9 100644 --- a/scripts/generate_readme_event_catalog.py +++ b/scripts/generate_readme_event_catalog.py @@ -16,9 +16,10 @@ def replace_readme_catalog(): catalog = json.load(catalog_file) schemas = "\n".join(map(table_row, catalog["schemas"])) - replacement_readme_catalog = f"""|Product|Schemas|Types| - -{schemas}""" + replacement_readme_catalog = f""" +|Product|Schemas|Types| +{schemas} +""" with open(readme_path, "r+") as readme_file: content = readme_file.read() From 2c9680cd309cc6a96924718735a0eb2498b23acc Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Fri, 15 Nov 2024 10:12:51 -0800 Subject: [PATCH 24/24] Add change from metricTypes to metricNames in DataLoader file --- DataLoader.json | 12 +++++++++++- scripts/update_data_loader.py | 8 ++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/DataLoader.json b/DataLoader.json index 5e8dbe3..93738ed 100644 --- a/DataLoader.json +++ b/DataLoader.json @@ -39,6 +39,16 @@ "equinix.fabric.service_token.state.deleted", "equinix.fabric.service_token.state.inactive" ], - "metricTypes": [] + "metricNames": [ + "equinix.fabric.connection.bandwidth_rx.usage", + "equinix.fabric.connection.bandwidth_tx.usage", + "equinix.fabric.metro.{:asideMetroCode}_{:zsideMetroCode}.latency", + "equinix.fabric.port.bandwidth_rx.usage", + "equinix.fabric.port.bandwidth_tx.usage", + "equinix.fabric.port.packets_dropped_rx.count", + "equinix.fabric.port.packets_dropped_tx.count", + "equinix.fabric.port.packets_erred_rx.count", + "equinix.fabric.port.packets_erred_tx.count" + ] } } diff --git a/scripts/update_data_loader.py b/scripts/update_data_loader.py index f66a641..570d1e4 100644 --- a/scripts/update_data_loader.py +++ b/scripts/update_data_loader.py @@ -14,13 +14,13 @@ def retrieve_supported_events(): if product not in dataLoaderStructure: dataLoaderStructure[product] = { "eventTypes": [], - "metricTypes": [], + "metricNames": [], } dataLoaderStructure[product]["eventTypes"].extend(data["cloudeventTypes"]) - if "metricTypes" in data: - dataLoaderStructure[product]["metricTypes"].extend(data["metricTypes"]) + if "metricNames" in data: + dataLoaderStructure[product]["metricNames"].extend(data["metricNames"]) dataLoaderStructure[product]["eventTypes"] = sorted(set(dataLoaderStructure[product]["eventTypes"])) - dataLoaderStructure[product]["metricTypes"] = sorted(set(dataLoaderStructure[product]["metricTypes"])) + dataLoaderStructure[product]["metricNames"] = sorted(set(dataLoaderStructure[product]["metricNames"])) return dict(sorted(dataLoaderStructure.items()))