def parse()

in mysqloperator/controller/backup/backup_api.py [0:0]


    def parse(self, spec: dict, prefix: str, name_required: bool = True) -> None:
        self.name = dget_str(spec, "name", prefix, default_value= None if name_required else "")

        if "podAnnotations" in spec:
            self.podAnnotations = dget_dict(spec, "podAnnotations", prefix)
        if "podLabels" in spec:
            self.podLabels = dget_dict(spec, "podLabels", prefix)

        prefix += "." + self.name
        method_spec = dget_dict(spec, "dumpInstance", prefix, {})
        if method_spec:
            self.dumpInstance = DumpInstance()
            self.dumpInstance.parse(method_spec, prefix+".dumpInstance")
        method_spec = dget_dict(spec, "snapshot", prefix, {})
        if method_spec:
            self.snapshot = Snapshot()
            self.snapshot.parse(method_spec, prefix+".snapshot")
        method_spec = dget_dict(spec, "meb", prefix, {})
        if method_spec:
            self.meb = MEB()
            self.meb.parse(method_spec, prefix+".meb")

        if self.dumpInstance and self.snapshot:
            # TODO MEB!
            raise ApiSpecError(
                f"Only one of dumpInstance or snapshot may be set in {prefix}")

        if not self.dumpInstance and not self.snapshot and not self.meb:
            raise ApiSpecError(
                f"One of dumpInstance, snapshot or meb must be set in a {prefix}")