| --- |
| page_title: uuidv5 - Functions - Configuration Language |
| description: >- |
| The uuidv5 function generates a uuid v5 string representation of the value in |
| the specified namespace. |
| --- |
| |
| # `uuidv5` Function |
| |
| `uuidv5` generates a _name-based_ UUID, as described in |
| [RFC 4122 section 4.3](https://tools.ietf.org/html/rfc4122#section-4.3), |
| also known as a "version 5" UUID. |
| |
| ``` |
| uuidv5(namespace, name) |
| ``` |
| |
| Unlike the pseudo-random UUIDs generated by |
| [`uuid`](/terraform/language/functions/uuid), name-based UUIDs derive from namespace and an name, |
| producing the same UUID value every time if the namespace and name are |
| unchanged. |
| |
| Name-based UUID namespaces are themselves UUIDs, but for readability this |
| function accepts some keywords as aliases for the namespaces that were |
| assigned by RFC 4122: |
| |
| | Keyword | Namespace ID | Name format | |
| | -------- | -------------------------------------- | ---------------------------------------------------------------------------- | |
| | `"dns"` | `6ba7b810-9dad-11d1-80b4-00c04fd430c8` | A fully-qualified DNS domain name. | |
| | `"url"` | `6ba7b811-9dad-11d1-80b4-00c04fd430c8` | Any valid URL as defined in [RFC 3986](https://tools.ietf.org/html/rfc3986). | |
| | `"oid"` | `6ba7b812-9dad-11d1-80b4-00c04fd430c8` | An [ISO/IEC object identifier](https://oidref.com/) | |
| | `"x500"` | `6ba7b814-9dad-11d1-80b4-00c04fd430c8` | [X.500 Distinguished Name](https://tools.ietf.org/html/rfc1779) | |
| |
| To use any other namespace not included in the above table, pass its assigned |
| namespace ID directly in the first argument in the usual UUID string format. |
| |
| ## Examples |
| |
| Use the namespace keywords where possible, to make the intent more obvious to |
| a future reader: |
| |
| ``` |
| > uuidv5("dns", "www.terraform.io") |
| a5008fae-b28c-5ba5-96cd-82b4c53552d6 |
| |
| > uuidv5("url", "https://www.terraform.io/") |
| 9db6f67c-dd95-5ea0-aa5b-e70e5c5f7cf5 |
| |
| > uuidv5("oid", "1.3.6.1.4") |
| af9d40a5-7a36-5c07-b23a-851cd99fbfa5 |
| |
| > uuidv5("x500", "CN=Example,C=GB") |
| 84e09961-4aa4-57f8-95b7-03edb1073253 |
| ``` |
| |
| The namespace keywords treated as equivalent to their corresponding namespace |
| UUIDs, and in some special cases it may be more appropriate to use the |
| UUID form: |
| |
| ``` |
| > uuidv5("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.terraform.io") |
| a5008fae-b28c-5ba5-96cd-82b4c53552d6 |
| ``` |
| |
| If you wish to use a namespace defined outside of RFC 4122, using the namespace |
| UUID is required because no corresponding keyword is available: |
| |
| ``` |
| > uuidv5("743ac3c0-3bf7-4a5b-9e6c-59360447c757", "LIBS:diskfont.library") |
| ede1a974-df7e-5f17-84b9-76208818b2c8 |
| ``` |
| |
| When using raw UUID namespaces, consider including a comment alongside the |
| expression that indicates which namespace this represents in a |
| human-significant manner, such as by reference to the standard that |
| defined it. |
| |
| ## Related Functions |
| |
| * [`uuid`](/terraform/language/functions/uuid), which generates pseudorandom UUIDs. |