# @book

## Overview

The `@book` decorator is used to identify a class as a book.

## Syntax

```python
@book(*args, **kwargs)
class BookClass:
   """
    A sample book. 

    Author:
      Kognitos
    """
    # Book implementation here
```

## Keyword Arguments

<table><thead><tr><th width="175.671875">Argument</th><th width="91.21484375">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td><code>str</code></td><td>A unique identifier for the Book.</td></tr><tr><td><code>icon</code></td><td><code>str</code></td><td>Path to an icon representing the Book. If not provided, a default icon will be used.</td></tr><tr><td><code>name</code></td><td><code>str</code></td><td>The name of the Book. If not provided, the name will be inferred from the class name.</td></tr><tr><td><code>noun_phrase</code></td><td><code>str</code></td><td>The book noun phrase.</td></tr></tbody></table>

## Default Icon

If an `icon` is not specified, this will be used as the default.

<div align="left"><figure><img src="https://files.readme.io/1515820ad39f1b9ffef4a36816ec14b7331c73408f523477124af3a4e683ed17-default_book_icon.png" alt="" width="188"><figcaption><p>The default icon for a BDK Book.</p></figcaption></figure></div>

## Example

```python
@book(name="Twilio", icon="data/twilio.svg")
class TwilioBook:
   """
    The Twilio Book enables users to interact with the Twilio API.
    """
    ...
```
