summaryrefslogtreecommitdiff
path: root/docs-src/content/functions/uuid.yml
blob: ddd9951aab1ccf3bee7e12496f0a551c60e56c44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
ns: uuid
title: uuid functions
preamble: |
  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.

  [RFC 4122]: https://en.wikipedia.org/wiki/Universally_unique_identifier
  [log an issue]: https://github.com/hairyhenderson/gomplate/issues/new
funcs:
  - name: uuid.V1
    released: v3.4.0
    description: |
      Create a version 1 UUID (based on the current MAC address and the current date/time).

      Use [`uuid.V4`](#uuidv4) instead in most cases.
    pipeline: false
    examples:
      - |
        $ gomplate -i '{{ uuid.V1 }}'
        4d757e54-446d-11e9-a8fa-72000877c7b0
  - name: uuid.V4
    released: v3.4.0
    description: |
      Create a version 4 UUID (randomly generated).

      This function consumes entropy.
    pipeline: false
    examples:
      - |
        $ gomplate -i '{{ uuid.V4 }}'
        40b3c2d2-e491-4b19-94cd-461e6fa35a60
  - name: uuid.Nil
    released: v3.4.0
    description: |
      Returns the _nil_ UUID, that is, `00000000-0000-0000-0000-000000000000`,
      mostly for testing scenarios.
    pipeline: false
    examples:
      - |
        $ gomplate -i '{{ uuid.Nil }}'
        00000000-0000-0000-0000-000000000000
  - name: uuid.IsValid
    released: v3.4.0
    description: |
      Checks that the given UUID is in the correct format. It does not validate
      whether the version or variant are correct.
    pipeline: true
    arguments:
      - name: uuid
        required: true
        description: 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
  - name: uuid.Parse
    released: v3.4.0
    description: |
      Parse a UUID for further manipulation or inspection.

      This function returns a `UUID` struct, as defined in the [github.com/google/uuid](https://godoc.org/github.com/google/uuid#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`).
    pipeline: true
    arguments:
      - name: uuid
        required: true
        description: 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