uuid functions

Functions for generating, parsing, and manipulating UUIDs.

A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC 4122. Only RFC 4112-variant UUIDs can be generated, but all variants (even invalid ones) can be parsed and manipulated. Also, gomplate only supports generating version 1 and 4 UUIDs (with 4 being the most commonly-used variety these days). Versions 2, 3, and 5 are able to be supported: log an issue if this is required for your use-case.

uuid.V1

Create a version 1 UUID (based on the current MAC address and the current date/time).

Use uuid.V4 instead in most cases.

Added in gomplate v3.4.0

Usage

uuid.V1

Examples

$ gomplate -i '{{ uuid.V1 }}'
4d757e54-446d-11e9-a8fa-72000877c7b0

uuid.V4

Create a version 4 UUID (randomly generated).

This function consumes entropy.

Added in gomplate v3.4.0

Usage

uuid.V4

Examples

$ gomplate -i '{{ uuid.V4 }}'
40b3c2d2-e491-4b19-94cd-461e6fa35a60

uuid.Nil

Returns the nil UUID, that is, 00000000-0000-0000-0000-000000000000, mostly for testing scenarios.

Added in gomplate v3.4.0

Usage

uuid.Nil

Examples

$ gomplate -i '{{ uuid.Nil }}'
00000000-0000-0000-0000-000000000000

uuid.IsValid

Checks that the given UUID is in the correct format. It does not validate whether the version or variant are correct.

Added in gomplate v3.4.0

Usage

uuid.IsValid uuid
uuid | uuid.IsValid

Arguments

name description
uuid (required) The uuid to check

Examples

$ gomplate -i '{{ if uuid.IsValid "totally invalid" }}valid{{ else }}invalid{{ end }}'
invalid
$ gomplate -i '{{ uuid.IsValid "urn:uuid:12345678-90ab-cdef-fedc-ba9876543210" }}'
true

uuid.Parse

Parse a UUID for further manipulation or inspection.

This function returns a UUID struct, as defined in the github.com/google/uuid package. See the docs for examples of functions or fields you can call.

Both the standard UUID forms of xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded as well as the Microsoft encoding {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} and the raw hex encoding (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).

Added in gomplate v3.4.0

Usage

uuid.Parse uuid
uuid | uuid.Parse

Arguments

name description
uuid (required) The uuid to parse

Examples

$ gomplate -i '{{ $u := uuid.Parse uuid.V4 }}{{ $u.Version }}, {{ $u.Variant}}'
VERSION_4, RFC4122
$ gomplate -i '{{ (uuid.Parse "000001f5-4470-21e9-9b00-72000877c7b0").Domain }}'
Person