mirror of https://github.com/hashicorp/terraform
The sethaselement, setintersection, and setunion functions are defined in the cty stdlib. Making them available in Terraform will make it easier to work with sets, and complement the currently-Terraform-specific setproduct function. In the long run setproduct should probably move into the cty stdlib too, but since it was submitted as a Terraform function originally we'll leave it here now for simplicity's sake and reorganize later.pull/20030/head
parent
edb5f82de1
commit
da51e72cbb
@ -0,0 +1,33 @@
|
||||
---
|
||||
layout: "functions"
|
||||
page_title: "sethaselement - Functions - Configuration Language"
|
||||
sidebar_current: "docs-funcs-collection-sethaselement"
|
||||
description: |-
|
||||
The sethaselement function tests whether a given value is in a given set.
|
||||
---
|
||||
|
||||
# `sethaselement` Function
|
||||
|
||||
The `sethaselement` function tests whether a given value is in a given set.
|
||||
|
||||
```hcl
|
||||
sethaselement(set, value)
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
```
|
||||
> sethaselement(["a", "b"], "b")
|
||||
true
|
||||
> sethaselement(["a", "b"], "c")
|
||||
false
|
||||
```
|
||||
|
||||
## Related Functions
|
||||
|
||||
* [`setintersection`](./setintersection.html) computes the _intersection_ of
|
||||
multiple sets.
|
||||
* [`setproduct`](./setproduct.html) computes the _cartesian product_ of multiple
|
||||
sets.
|
||||
* [`setunion`](./setunion.html) computes the _union_ of
|
||||
multiple sets.
|
||||
@ -0,0 +1,40 @@
|
||||
---
|
||||
layout: "functions"
|
||||
page_title: "setintersection - Functions - Configuration Language"
|
||||
sidebar_current: "docs-funcs-collection-setintersection"
|
||||
description: |-
|
||||
The setintersection function takes multiple sets and produces a single set
|
||||
containing only the elements that all of the given sets have in common.
|
||||
---
|
||||
|
||||
# `setintersection` Function
|
||||
|
||||
The `setintersection` function takes multiple sets and produces a single set
|
||||
containing only the elements that all of the given sets have in common.
|
||||
In other words, it computes the
|
||||
[intersection](https://en.wikipedia.org/wiki/Intersection_(set_theory)) of the sets.
|
||||
|
||||
```hcl
|
||||
setintersection(sets...)
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
```
|
||||
> setintersection(["a", "b"], ["b", "c"], ["b", "d"])
|
||||
[
|
||||
"b",
|
||||
]
|
||||
```
|
||||
|
||||
The given arguments are converted to sets, so the result is also a set and
|
||||
the ordering of the given elements is not preserved.
|
||||
|
||||
## Related Functions
|
||||
|
||||
* [`sethaselement`](./sethaselement.html) tests whether a given set contains
|
||||
a given element value.
|
||||
* [`setproduct`](./setproduct.html) computes the _cartesian product_ of multiple
|
||||
sets.
|
||||
* [`setunion`](./setunion.html) computes the _union_ of
|
||||
multiple sets.
|
||||
@ -0,0 +1,43 @@
|
||||
---
|
||||
layout: "functions"
|
||||
page_title: "setunion - Functions - Configuration Language"
|
||||
sidebar_current: "docs-funcs-collection-setunion"
|
||||
description: |-
|
||||
The setunion function takes multiple sets and produces a single set
|
||||
containing the elements from all of the given sets.
|
||||
---
|
||||
|
||||
# `setunion` Function
|
||||
|
||||
The `setunion` function takes multiple sets and produces a single set
|
||||
containing the elements from all of the given sets. In other words, it
|
||||
computes the [union](https://en.wikipedia.org/wiki/Union_(set_theory)) of
|
||||
the sets.
|
||||
|
||||
```hcl
|
||||
setunion(sets...)
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
```
|
||||
> setunion(["a", "b"], ["b", "c"], ["d"])
|
||||
[
|
||||
"d",
|
||||
"b",
|
||||
"c",
|
||||
"a",
|
||||
]
|
||||
```
|
||||
|
||||
The given arguments are converted to sets, so the result is also a set and
|
||||
the ordering of the given elements is not preserved.
|
||||
|
||||
## Related Functions
|
||||
|
||||
* [`sethaselement`](./sethaselement.html) tests whether a given set contains
|
||||
a given element value.
|
||||
* [`setintersection`](./setintersection.html) computes the _intersection_ of
|
||||
multiple sets.
|
||||
* [`setproduct`](./setproduct.html) computes the _cartesian product_ of multiple
|
||||
sets.
|
||||
Loading…
Reference in new issue