# 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>
