# Generator reference

This generator reference provides the details for each of the the supported generators in Tonic Structural.

<details>

<summary>Information provided for each generator</summary>

For each generator, the reference provides:

* Overview description
* A table that contains:
  * Generator characteristics that you might want to take into account when you select the generator.
  * The generator [privacy ranking](https://docs.tonic.ai/app/privacy-report#privacy-report-privacy-ranking-about), which indicates the level of protection that the generator provides.
  * The generator ID to use in the Structural API. The generator ID is linked to the API details for the generator.
* Instructions for how to configure the generator

The generator characteristics include:

* [Consistency](https://docs.tonic.ai/app/generation/generators/generator-characteristics/consistency) - Whether you configure the generator to base the the destination values on the source values.
* [Linking](https://docs.tonic.ai/app/generation/generators/generator-characteristics/linking-generators) - Whether you can link columns that use the generator to indicate that there is a relationship between them.
* [Differential privacy](https://docs.tonic.ai/app/generation/generators/generator-characteristics/differential-privacy) - Whether the generator supports differential privacy, which ensures that the source value cannot be reverse engineered from the output value.
* [Data-free](https://docs.tonic.ai/app/generation/generators/generator-characteristics/data-free-generators) - Whether the generator is data-free, meaning that the output data is completely unrelated to the source data.
* [Allowed for primary keys](https://docs.tonic.ai/app/generation/generators/generator-types/primary-key-generators) - Whether you can assign the generator to primary key columns.
* [Allowed for unique columns](https://docs.tonic.ai/app/generation/generators/generator-characteristics/generators-uniqueness-constraints) - Whether you can assign the generator to columns that require unique values.
* [Uses format-preserving encryption (FPE)](https://docs.tonic.ai/app/generation/generators/generator-characteristics/generators-fpe) - Whether the generator uses FPE to encrypt the values.

</details>

The generators are in alphabetical order by the generator name.

Here are some groupings to help to identify generators that are used for different types of values. [common-usage](https://docs.tonic.ai/app/generation/generators-assign-config/common-usage "mention") also provides some suggestions for generators to use for specific uses cases.

<details>

<summary>Composite generators</summary>

Transform data that uses complex formats or based on a condition. For more information, go to [generators-composite](https://docs.tonic.ai/app/generation/generators/generator-types/generators-composite "mention").

* [Array JSON Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/array-json-mask)
* [Array Regex Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/array-regex-mask)
* [Conditional](https://docs.tonic.ai/app/generation/generators/generator-reference/conditional)
* [CSV Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/csv-mask)
* [HStore Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/hstore-mask)
* [HTML Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/html-mask)
* [JSON Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/json-mask)
* [Regex Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/regex-mask)
* [Struct Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/struct-mask)
* [XML Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/xml-mask)

</details>

<details>

<summary>Information type generators</summary>

These generators produce specific types of values.

* [Address](https://docs.tonic.ai/app/generation/generators/generator-reference/address)
* [Business Name](https://docs.tonic.ai/app/generation/generators/generator-reference/business-name) (and the deprecated [Company Name](https://docs.tonic.ai/app/generation/generators/generator-reference/company-name))
* [Email](https://docs.tonic.ai/app/generation/generators/generator-reference/email)
* [File Name](https://docs.tonic.ai/app/generation/generators/generator-reference/file-name)
* [Finnish Personal Identity Code](https://docs.tonic.ai/app/generation/generators/generator-reference/finnish-personal-identity-code)
* [FNR](https://docs.tonic.ai/app/generation/generators/generator-reference/fnr)
* [Geo](https://docs.tonic.ai/app/generation/generators/generator-reference/geo)
* [HIPAA Address](https://docs.tonic.ai/app/generation/generators/generator-reference/hipaa-address)
* [Hostname](https://docs.tonic.ai/app/generation/generators/generator-reference/hostname)
* [International Address](https://docs.tonic.ai/app/generation/generators/generator-reference/international-address)
* [IP Address](https://docs.tonic.ai/app/generation/generators/generator-reference/ip-address)
* [MAC Address](https://docs.tonic.ai/app/generation/generators/generator-reference/mac-address)
* [Name](https://docs.tonic.ai/app/generation/generators/generator-reference/name)
* [Phone](https://docs.tonic.ai/app/generation/generators/generator-reference/phone)
* [Shipping Container](https://docs.tonic.ai/app/generation/generators/generator-reference/shipping-container)
* [SIN](https://docs.tonic.ai/app/generation/generators/generator-reference/sin)
* [SSN](https://docs.tonic.ai/app/generation/generators/generator-reference/ssn)
* [Unique Email](https://docs.tonic.ai/app/generation/generators/generator-reference/unique-email)
* [URL](https://docs.tonic.ai/app/generation/generators/generator-reference/url)

</details>

<details>

<summary>Datetime value generators</summary>

These generators are used to specifically transform datetime values.

* [Date Truncation](https://docs.tonic.ai/app/generation/generators/generator-reference/date-truncation)
* [Event Timestamps](https://docs.tonic.ai/app/generation/generators/generator-reference/event-timestamps)
* [Random Timestamp](https://docs.tonic.ai/app/generation/generators/generator-reference/random-timestamp)
* [Timestamp Shift Generator](https://docs.tonic.ai/app/generation/generators/generator-reference/timestamp-shift-generator)

</details>

<details>

<summary>Key generators</summary>

Intended for use with primary key columns. For more information, go to [primary-key-generators](https://docs.tonic.ai/app/generation/generators/generator-types/primary-key-generators "mention").

* [Alphanumeric String Key](https://docs.tonic.ai/app/generation/generators/generator-reference/alphanumeric-string-key)
* [ASCII Key](https://docs.tonic.ai/app/generation/generators/generator-reference/ascii-key)
* [Integer Key](https://docs.tonic.ai/app/generation/generators/generator-reference/integer-key)
* [Numeric String Key](https://docs.tonic.ai/app/generation/generators/generator-reference/numeric-string-key)
* [UUID Key](https://docs.tonic.ai/app/generation/generators/generator-reference/uuid-key)

</details>

<details>

<summary>Numeric value generators</summary>

These generators are specifically intended to work with numeric values.

* [Algebraic](https://docs.tonic.ai/app/generation/generators/generator-reference/algebraic)
* [Continuous](https://docs.tonic.ai/app/generation/generators/generator-reference/continuous)
* [Cross Table Sum](https://docs.tonic.ai/app/generation/generators/generator-reference/cross-table-sum)
* [Noise Generator](https://docs.tonic.ai/app/generation/generators/generator-reference/noise-generator)
* [Random Double](https://docs.tonic.ai/app/generation/generators/generator-reference/random-double)
* [Random Integer](https://docs.tonic.ai/app/generation/generators/generator-reference/random-integer)
* [Sequential Integer](https://docs.tonic.ai/app/generation/generators/generator-reference/sequential-integer)

</details>

<details>

<summary>String value generators</summary>

These generators are useful for transforming string values that aren't covered by a specific information type generator.

* [Categorical](https://docs.tonic.ai/app/generation/generators/generator-reference/categorical)
* [Character Scramble](https://docs.tonic.ai/app/generation/generators/generator-reference/character-scramble)
* [Character Substitution](https://docs.tonic.ai/app/generation/generators/generator-reference/character-substitution)
* [Constant](https://docs.tonic.ai/app/generation/generators/generator-reference/constant) - Also useable for numeric columns.
* [Custom Categorical](https://docs.tonic.ai/app/generation/generators/generator-reference/custom-categorical) - Also useable for numeric columns.
* [Find and Replace](https://docs.tonic.ai/app/generation/generators/generator-reference/find-and-replace)
* [Regex Mask](https://docs.tonic.ai/app/generation/generators/generator-reference/regex-mask)
* [Text Composition](https://docs.tonic.ai/app/generation/generators/generator-reference/text-composition)

</details>

<details>

<summary>Other value substitution and replacement generators</summary>

These generators perform other types of transformation on column values.

* [Array Character Scramble](https://docs.tonic.ai/app/generation/generators/generator-reference/array-character-scramble)
* [Null](https://docs.tonic.ai/app/generation/generators/generator-reference/null)
* [Random Boolean](https://docs.tonic.ai/app/generation/generators/generator-reference/random-boolean)
* [Random Hash](https://docs.tonic.ai/app/generation/generators/generator-reference/random-hash)
* [Random UUID](https://docs.tonic.ai/app/generation/generators/generator-reference/random-uuid)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tonic.ai/app/generation/generators/generator-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
