Skip to content

Commit

Permalink
JM-2290 NumberPredicates (#1499)
Browse files Browse the repository at this point in the history
  • Loading branch information
nicob-29 authored Jan 24, 2025
1 parent fd41150 commit cb4f799
Show file tree
Hide file tree
Showing 5 changed files with 730 additions and 73 deletions.
188 changes: 181 additions & 7 deletions docs/resources/journey_views.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,119 @@ The following Genesys Cloud APIs are used by this resource. Ensure your OAuth Cl
## Example Usage

```terraform
variable "element_first_id" {
type = string
default = "ac6c61b5-1cd4-4c6e-a8a5-edb74d9117eb"
description = "ID of the first element"
}
variable "element_second_id" {
type = string
default = "7e78450e-1fae-4e15-84b1-e7ffc74fb961"
description = "ID of the second element"
}
resource "genesyscloud_journey_views" "journey_view" {
name = "Cx as Code sample"
duration = "P1Y"
name = "Sample Journey 1"
elements {
id = "ac6c61b5-1cd4-4c6e-a8a5-edb74d9117eb"
name = "Wrap Up"
id = var.element_first_id
name = "Bot Start"
attributes {
type = "Event"
id = "94677135-0e97-1a87-44f0-ee7f5506bd09"
source = "Voice"
}
display_attributes {
x = 556
y = 246
col = 0
}
filter {
type = "And"
predicates {
dimension = "channels"
values = ["CALLBACK", "CALL"]
operator = "Matches"
no_value = false
}
}
followed_by {
id = var.element_second_id
constraint_within {
unit = "Minutes"
value = 60
}
}
}
elements {
id = var.element_second_id
name = "Bot End"
attributes {
type = "Event"
id = "a416328b-167c-0365-d0e1-f072cd5d4ded"
id = "b56bd9cc-74a9-1f0e-9ecf-494b4024a3be"
source = "Voice"
}
display_attributes {
x = 956
y = 246
col = 1
}
filter {
type = "And"
predicates {
dimension = "mediaType"
values = ["VOICE"]
dimension = "channels"
values = ["CALLBACK", "CALL"]
operator = "Matches"
no_value = false
}
number_predicates {
dimension = "turnCount"
operator = "Matches"
no_value = false
range {
gt {
number = 1.0
}
}
}
}
}
charts {
name = "New Chart"
version = 1
group_by_time = "Day"
metrics {
id = "36b3f717-f309-425d-9d5e-3af2071ad0a4"
element_id = var.element_second_id
aggregate = "CustomerCount"
}
display_attributes {
var_type = "Column"
show_legend = true
}
group_by_max = 28
}
charts {
name = "New Chart B"
version = 1
group_by_attributes {
element_id = var.element_second_id
attribute = "vendor"
}
metrics {
id = "723981e9-2810-42d1-94ef-42bbb4bbc134"
element_id = var.element_second_id
aggregate = "EventCount"
}
display_attributes {
var_type = "Column"
show_legend = true
}
group_by_max = 10
}
}
```

Expand Down Expand Up @@ -161,12 +253,94 @@ Required:

Required:

- `type` (String) Boolean operation to apply to the provided predicates and clauses. Valid values: And.
- `type` (String) Boolean operation to apply to the provided predicates, numberPredicates and clauses. Valid values: And.

Optional:

- `number_predicates` (Block List) A number filter on an element within a journey view. (see [below for nested schema](#nestedblock--elements--filter--number_predicates))
- `predicates` (Block List) A filter on an element within a journey view. (see [below for nested schema](#nestedblock--elements--filter--predicates))

<a id="nestedblock--elements--filter--number_predicates"></a>
### Nested Schema for `elements.filter.number_predicates`

Required:

- `dimension` (String) The element's attribute being filtered on.
- `range` (Block List, Min: 1, Max: 1) the range of comparators to filter on. (see [below for nested schema](#nestedblock--elements--filter--number_predicates--range))

Optional:

- `no_value` (Boolean) set this to true if no specific value to be considered.
- `operator` (String) Optional operator, default is Matches. Valid values: Matches.Valid values: Matches, NotMatches. Defaults to `Matches`.

<a id="nestedblock--elements--filter--number_predicates--range"></a>
### Nested Schema for `elements.filter.number_predicates.range`

Optional:

- `eq` (Block Set, Max: 1) Comparator: equal (see [below for nested schema](#nestedblock--elements--filter--number_predicates--range--eq))
- `gt` (Block Set, Max: 1) Comparator: greater than (see [below for nested schema](#nestedblock--elements--filter--number_predicates--range--gt))
- `gte` (Block Set, Max: 1) Comparator: greater than or equal (see [below for nested schema](#nestedblock--elements--filter--number_predicates--range--gte))
- `lt` (Block Set, Max: 1) Comparator: less than (see [below for nested schema](#nestedblock--elements--filter--number_predicates--range--lt))
- `lte` (Block Set, Max: 1) Comparator: less than or equal (see [below for nested schema](#nestedblock--elements--filter--number_predicates--range--lte))
- `neq` (Block Set, Max: 1) Comparator: not equal (see [below for nested schema](#nestedblock--elements--filter--number_predicates--range--neq))

<a id="nestedblock--elements--filter--number_predicates--range--eq"></a>
### Nested Schema for `elements.filter.number_predicates.range.eq`

Optional:

- `duration` (String) An ISO 8601 time duration. Only one of number or duration must be specified
- `number` (Number) Number value. Only one of number or duration must be specified.


<a id="nestedblock--elements--filter--number_predicates--range--gt"></a>
### Nested Schema for `elements.filter.number_predicates.range.gt`

Optional:

- `duration` (String) An ISO 8601 time duration. Only one of number or duration must be specified
- `number` (Number) Number value. Only one of number or duration must be specified.


<a id="nestedblock--elements--filter--number_predicates--range--gte"></a>
### Nested Schema for `elements.filter.number_predicates.range.gte`

Optional:

- `duration` (String) An ISO 8601 time duration. Only one of number or duration must be specified
- `number` (Number) Number value. Only one of number or duration must be specified.


<a id="nestedblock--elements--filter--number_predicates--range--lt"></a>
### Nested Schema for `elements.filter.number_predicates.range.lt`

Optional:

- `duration` (String) An ISO 8601 time duration. Only one of number or duration must be specified
- `number` (Number) Number value. Only one of number or duration must be specified.


<a id="nestedblock--elements--filter--number_predicates--range--lte"></a>
### Nested Schema for `elements.filter.number_predicates.range.lte`

Optional:

- `duration` (String) An ISO 8601 time duration. Only one of number or duration must be specified
- `number` (Number) Number value. Only one of number or duration must be specified.


<a id="nestedblock--elements--filter--number_predicates--range--neq"></a>
### Nested Schema for `elements.filter.number_predicates.range.neq`

Optional:

- `duration` (String) An ISO 8601 time duration. Only one of number or duration must be specified
- `number` (Number) Number value. Only one of number or duration must be specified.




<a id="nestedblock--elements--filter--predicates"></a>
### Nested Schema for `elements.filter.predicates`

Expand Down
104 changes: 98 additions & 6 deletions examples/resources/genesyscloud_journey_views/resource.tf
Original file line number Diff line number Diff line change
@@ -1,22 +1,114 @@
variable "element_first_id" {
type = string
default = "ac6c61b5-1cd4-4c6e-a8a5-edb74d9117eb"
description = "ID of the first element"
}

variable "element_second_id" {
type = string
default = "7e78450e-1fae-4e15-84b1-e7ffc74fb961"
description = "ID of the second element"
}

resource "genesyscloud_journey_views" "journey_view" {
name = "Cx as Code sample"
duration = "P1Y"
name = "Sample Journey 1"
elements {
id = "ac6c61b5-1cd4-4c6e-a8a5-edb74d9117eb"
name = "Wrap Up"
id = var.element_first_id
name = "Bot Start"
attributes {
type = "Event"
id = "a416328b-167c-0365-d0e1-f072cd5d4ded"
id = "94677135-0e97-1a87-44f0-ee7f5506bd09"
source = "Voice"
}
display_attributes {
x = 556
y = 246
col = 0
}
filter {
type = "And"
predicates {
dimension = "mediaType"
values = ["VOICE"]

dimension = "channels"
values = ["CALLBACK", "CALL"]
operator = "Matches"
no_value = false
}
}
followed_by {
id = var.element_second_id
constraint_within {
unit = "Minutes"
value = 60
}
}
}
elements {
id = var.element_second_id
name = "Bot End"
attributes {
type = "Event"
id = "b56bd9cc-74a9-1f0e-9ecf-494b4024a3be"
source = "Voice"
}
display_attributes {
x = 956
y = 246
col = 1
}
filter {
type = "And"
predicates {
dimension = "channels"
values = ["CALLBACK", "CALL"]
operator = "Matches"
no_value = false
}
number_predicates {
dimension = "turnCount"
operator = "Matches"
no_value = false
range {
gt {
number = 1.0
}
}
}
}
}
charts {
name = "New Chart"
version = 1
group_by_time = "Day"
metrics {
id = "36b3f717-f309-425d-9d5e-3af2071ad0a4"
element_id = var.element_second_id
aggregate = "CustomerCount"
}
display_attributes {
var_type = "Column"
show_legend = true
}
group_by_max = 28
}
charts {
name = "New Chart B"
version = 1
group_by_attributes {
element_id = var.element_second_id
attribute = "vendor"
}
metrics {
id = "723981e9-2810-42d1-94ef-42bbb4bbc134"
element_id = var.element_second_id
aggregate = "EventCount"
}
display_attributes {
var_type = "Column"
show_legend = true
}
group_by_max = 10
}

}
Loading

0 comments on commit cb4f799

Please sign in to comment.