import { FiType } from "react-icons/fi";
import { SiTypescript } from "react-icons/si";
import { SiJavascript } from "react-icons/si";
import { SiPython } from "react-icons/si";
import { SiRust } from "react-icons/si";
import { SiPowershell } from "react-icons/si";
import { VscJson } from "react-icons/vsc";
import { GoLinkExternal } from "react-icons/go";
import { SerumIcon } from "/src/components/icons/SerumIcon";
import { FaBook } from "react-icons/fa";
import { Typography } from "@mui/material";

<table>
  <thead>
    <tr>
      <th>Instruction</th>
      <th>API Resource(s)</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <b>AggregatorInit</b>
      </td>
      <td>
        <a className="nowrap" href="/publisher#custom-feed">
          <FaBook className="devicons__nowrap" /> Publisher
        </a>
        <br />
        <a className="nowrap" href="/api/ts/classes/AggregatorAccount#create">
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/py/switchboardpy.html#AggregatorInitParams"
        >
          <SiPython className="devicons__nowrap" /> Python
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/cli/aggregator#sbv2-aggregatorcreatejson-definitionfile"
        >
          <SiPowershell className="devicons__nowrap" /> CLI
        </a>
      </td>
      <td>
        <Typography>
          Create a new AggregatorAccount with a specified configuration
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>PermissionInit</b>
      </td>
      <td>
        <a className="nowrap" href="/api/ts/classes/PermissionAccount#create">
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/py/switchboardpy.html#PermissionInitParams"
        >
          <SiPython className="devicons__nowrap" /> Python
        </a>
        <br />
      </td>
      <td>
        <Typography>
          Create a new PermissionAccount with an oracle queue as the grantee
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorAddJob</b>
      </td>
      <td>
        <a className="nowrap" href="/api/ts/classes/AggregatorAccount#addjob">
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/cli/aggregator#sbv2-aggregatoraddjob-aggregatorkey"
        >
          <SiPowershell className="devicons__nowrap" /> CLI
        </a>
      </td>
      <td>
        <Typography>Add a job to an aggregator</Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorRemoveJob</b>
      </td>
      <td>
        <a
          className="nowrap"
          href="/api/ts/classes/AggregatorAccount#removejob"
        >
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/cli/aggregator#sbv2-aggregatoremovejob-aggregatorkey-jobkey"
        >
          <SiPowershell className="devicons__nowrap" /> CLI
        </a>
      </td>
      <td>
        <Typography>Remove a job from an aggregator</Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorOpenRound</b>
      </td>
      <td>
        <a
          className="nowrap"
          href="/api/ts/classes/AggregatorAccount#openround"
        >
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/py/switchboardpy.html#AggregatorOpenRoundParams"
        >
          <SiPython className="devicons__nowrap" /> Python
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/cli/aggregator#sbv2-aggregatorupdate-aggregatorkey"
        >
          <SiPowershell className="devicons__nowrap" /> CLI
        </a>
      </td>
      <td>
        <Typography>
          Open a new round and request a new result from a batch of oracles
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorSetAuthority</b>
      </td>
      <td>
        <a
          className="nowrap"
          href="/api/ts/classes/AggregatorAccount#setauthority"
        >
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
      </td>
      <td>
        <Typography>Set an aggregator's authority</Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorSetBatchSize</b>
      </td>
      <td>
        <a
          className="nowrap"
          href="/api/ts/classes/AggregatorAccount#setbatchsize"
        >
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
      </td>
      <td>
        <Typography>
          Set the number of oracles that get assigned to an openRound call
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorSetHistoryBuffer</b>
      </td>
      <td>
        <a
          className="nowrap"
          href="/api/ts/classes/AggregatorAccount#sethistorybuffer"
        >
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
        <br />
        <a
          className="nowrap"
          href="/api/py/switchboardpy.html#AggregatorSetHistoryBufferParams"
        >
          <SiPython className="devicons__nowrap" /> Python
        </a>
      </td>
      <td>
        <Typography>
          Set the history buffer assigned to an aggregator in order to store the
          last N accepted results
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorSetMinJobs</b>
      </td>
      <td>
        <a
          className="nowrap"
          href="/api/ts/classes/AggregatorAccount#setminjobs"
        >
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
      </td>
      <td>
        <Typography>
          Set the minimum jobs that must respond before an oracle reports a
          result
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorSetMinOracles</b>
      </td>
      <td>
        <a
          className="nowrap"
          href="/api/ts/classes/AggregatorAccount#setminoracles"
        >
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
      </td>
      <td>
        <Typography>
          Set the minimum oracles that must respond before a result is accepted
          on-chain
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorSetQueue</b>
      </td>
      <td></td>
      <td>
        <Typography>
          Set the oracle queue an aggregator is assigned to
        </Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorSetVarianceThreshold</b>
      </td>
      <td></td>
      <td>
        <Typography>Set an aggregators variance threshold</Typography>
      </td>
    </tr>
    <tr>
      <td>
        <b>AggregatorLock</b>
      </td>
      <td>
        <a className="nowrap" href="/api/ts/classes/AggregatorAccount#lock">
          <SiTypescript className="devicons__nowrap" /> Typescript
        </a>
      </td>
      <td>
        <Typography>
          Lock an aggregator's config and prevent future changes
        </Typography>
      </td>
    </tr>
  </tbody>
</table>
