# SPDX-License-Identifier: BSD-3-Clause
#
# Copyright 2026 Raritan Inc. All rights reserved.
#
# This is an auto-generated file.

#
# Section generated by IdlC from "Event.idl"
#

import raritan.rpc
from raritan.rpc import Interface, Structure, ValueObject, Enumeration, typecheck, DecodeException

# value object
class Event(ValueObject):
    idlType = "idl.Event:1.0.0"

    def __init__(self, source=None):
        typecheck.is_remote_obj(source, AssertionError)

        self.source = source

    def encode(self):
        json = {}
        json['source'] = Interface.encode(self.source)
        return json

    @classmethod
    def decode(cls, json, agent, useDefaults=False):
        obj = cls(
            source = Interface.decode(json['source'], agent) if 'source' in json or not useDefaults else None,
        )
        return obj

    def listElements(self):
        elements = ["source"]
        return elements
