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.

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.

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.

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.

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).

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