<!-- Generated with Stardoc: http://skydoc.bazel.build -->

<a name="#allowlisted_dep_rule"></a>

## allowlisted_dep_rule

<pre>
allowlisted_dep_rule(<a href="#allowlisted_dep_rule-name">name</a>, <a href="#allowlisted_dep_rule-first">first</a>, <a href="#allowlisted_dep_rule-second">second</a>)
</pre>

This is the dep rule. It does stuff.

### Attributes

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="allowlisted_dep_rule-name">
      <td><code>name</code></td>
      <td>
        <a href="https://bazel.build/concepts/labels#target-names">Name</a>; required
        <p>
          A unique name for this target.
        </p>
      </td>
    </tr>
    <tr id="allowlisted_dep_rule-first">
      <td><code>first</code></td>
      <td>
        <a href="https://bazel.build/concepts/labels">Label</a>; required
        <p>
          dep's my_rule doc string
        </p>
      </td>
    </tr>
    <tr id="allowlisted_dep_rule-second">
      <td><code>second</code></td>
      <td>
        <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a>; required
      </td>
    </tr>
  </tbody>
</table>


<a name="#my_rule"></a>

## my_rule

<pre>
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
</pre>

This is my rule. It does stuff.

### Attributes

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="my_rule-name">
      <td><code>name</code></td>
      <td>
        <a href="https://bazel.build/concepts/labels#target-names">Name</a>; required
        <p>
          A unique name for this target.
        </p>
      </td>
    </tr>
    <tr id="my_rule-first">
      <td><code>first</code></td>
      <td>
        <a href="https://bazel.build/concepts/labels">Label</a>; required
        <p>
          first my_rule doc string
        </p>
      </td>
    </tr>
    <tr id="my_rule-second">
      <td><code>second</code></td>
      <td>
        <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a>; required
      </td>
    </tr>
  </tbody>
</table>


