Skip to content

Commit

Permalink
WORKITEMS-3562 Add Task Management Rules resources (#1451)
Browse files Browse the repository at this point in the history
* Add task management oncreate rule resource

* WORKITEMS-3562 Add onattributechange rules resource

* WORKITEMS-3562 Fix names in docs

* WORKITEMS-3562 Add docs

* WORKITEMS-3562 Add Task management datebased rules

* WORKITEMS-3562 Fix datebased Rules and other fixes

* WORKITEMS-3562 Add docs for datebased Rules

* WORKITEMS-3562 Fix PR comments

* WORKITEMS-3562 Update docs

* WORKITEMS-3562 Change resource names

* WORKITEMS-3562 Format source code
  • Loading branch information
maikow-genesys authored Jan 24, 2025
1 parent cb4f799 commit f24d665
Show file tree
Hide file tree
Showing 49 changed files with 3,071 additions and 17 deletions.
32 changes: 32 additions & 0 deletions docs/data-sources/task_management_worktype_flow_datebased_rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "genesyscloud_task_management_worktype_flow_datebased_rule Data Source - terraform-provider-genesyscloud"
subcategory: ""
description: |-
Genesys Cloud task management datebased rule data source. Select a task management datebased rule by name
---

# genesyscloud_task_management_worktype_flow_datebased_rule (Data Source)

Genesys Cloud task management datebased rule data source. Select a task management datebased rule by name

## Example Usage

```terraform
data "genesyscloud_task_management_worktype_flow_datebased_rule" "datebased_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "DateBased Rule"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `name` (String) The name of the Rule.
- `worktype_id` (String) The Worktype ID of the Rule.

### Read-Only

- `id` (String) The ID of this resource.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "genesyscloud_task_management_worktype_flow_onattributechange_rule Data Source - terraform-provider-genesyscloud"
subcategory: ""
description: |-
Genesys Cloud task management onattributechange rule data source. Select a task management onattributechange rule by name
---

# genesyscloud_task_management_worktype_flow_onattributechange_rule (Data Source)

Genesys Cloud task management onattributechange rule data source. Select a task management onattributechange rule by name

## Example Usage

```terraform
data "genesyscloud_task_management_worktype_flow_onattributechange_rule" "onattributechange_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnAttributeChange Rule"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `name` (String) The name of the Rule.
- `worktype_id` (String) The Worktype ID of the Rule.

### Read-Only

- `id` (String) The ID of this resource.
32 changes: 32 additions & 0 deletions docs/data-sources/task_management_worktype_flow_oncreate_rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "genesyscloud_task_management_worktype_flow_oncreate_rule Data Source - terraform-provider-genesyscloud"
subcategory: ""
description: |-
Genesys Cloud task management oncreate rule data source. Select a task management oncreate rule by name
---

# genesyscloud_task_management_worktype_flow_oncreate_rule (Data Source)

Genesys Cloud task management oncreate rule data source. Select a task management oncreate rule by name

## Example Usage

```terraform
data "genesyscloud_task_management_worktype_flow_oncreate_rule" "oncreate_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnCreate Rule"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `name` (String) Task management oncreate rule name
- `worktype_id` (String) The Worktype ID of the Rule.

### Read-Only

- `id` (String) The ID of this resource.
2 changes: 1 addition & 1 deletion docs/resources/task_management_worktype.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ resource "genesyscloud_task_management_worktype" "worktype_1" {

- `default_workbin_id` (String) The default Workbin for Workitems created from the Worktype.
- `name` (String) The name of the Worktype.
- `schema_id` (String) Id of the workitem schema.

### Optional

Expand All @@ -64,6 +63,7 @@ resource "genesyscloud_task_management_worktype" "worktype_1" {
- `default_ttl_seconds` (Number) The default time to time to live in seconds for Workitems created from the Worktype.
- `description` (String) The description of the Worktype.
- `division_id` (String) The division to which this entity belongs.
- `schema_id` (String) Id of the workitem schema.
- `schema_version` (Number) Version of the workitem schema to use. If not provided, the worktype will use the latest version.

### Read-Only
Expand Down
54 changes: 54 additions & 0 deletions docs/resources/task_management_worktype_flow_datebased_rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
page_title: "genesyscloud_task_management_worktype_flow_datebased_rule Resource - terraform-provider-genesyscloud"
subcategory: ""
description: |-
Genesys Cloud task management onattributeChange Rule
---
# genesyscloud_task_management_worktype_flow_datebased_rule (Resource)

Genesys Cloud task management onattributeChange Rule

## API Usage
The following Genesys Cloud APIs are used by this resource. Ensure your OAuth Client has been granted the necessary scopes and permissions to perform these operations:

* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules)
* [POST /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules)
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules--ruleId-)
* [PATCH /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules--ruleId-)
* [DELETE /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules--ruleId-)


## Example Usage

```terraform
resource "genesyscloud_task_management_worktype_flow_datebased_rule" "datebased_rule" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "DateBased Rule"
condition {
attribute = "dateDue"
relative_minutes_to_invocation = -10
}
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `condition` (Block List, Min: 1, Max: 1) Condition for this Rule. (see [below for nested schema](#nestedblock--condition))
- `name` (String) The name of the Rule.
- `worktype_id` (String) The Worktype ID of the Rule.

### Read-Only

- `id` (String) The ID of this resource.

<a id="nestedblock--condition"></a>
### Nested Schema for `condition`

Required:

- `attribute` (String) The name of the workitem date attribute.
- `relative_minutes_to_invocation` (Number) The time in minutes before or after the date attribute.

Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
page_title: "genesyscloud_task_management_worktype_flow_onattributechange_rule Resource - terraform-provider-genesyscloud"
subcategory: ""
description: |-
Genesys Cloud task management onattributeChange Rule
---
# genesyscloud_task_management_worktype_flow_onattributechange_rule (Resource)

Genesys Cloud task management onattributeChange Rule

## API Usage
The following Genesys Cloud APIs are used by this resource. Ensure your OAuth Client has been granted the necessary scopes and permissions to perform these operations:

* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules)
* [POST /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules)
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules--ruleId-)
* [PATCH /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules--ruleId-)
* [DELETE /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules--ruleId-)



## Example Usage

```terraform
resource "genesyscloud_task_management_worktype_flow_onattributechange_rule" "onattributechange_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnAttributeChange Rule"
condition {
attribute = "statusId"
new_value = genesyscloud_task_management_worktype_status.example_status_1.id
old_value = genesyscloud_task_management_worktype_status.example_status_2.id
}
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `condition` (Block List, Min: 1, Max: 1) Condition for this Rule. (see [below for nested schema](#nestedblock--condition))
- `name` (String) The name of the Rule.
- `worktype_id` (String) The Worktype ID of the Rule.

### Read-Only

- `id` (String) The ID of this resource.

<a id="nestedblock--condition"></a>
### Nested Schema for `condition`

Required:

- `attribute` (String) The name of the workitem attribute whose change will be evaluated as part of the rule.
- `new_value` (String) The new value of the attribute. If the attribute is updated to this value this part of the condition will be met.

Optional:

- `old_value` (String) The old value of the attribute. If the attribute was updated from this value this part of the condition will be met.

42 changes: 42 additions & 0 deletions docs/resources/task_management_worktype_flow_oncreate_rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
page_title: "genesyscloud_task_management_worktype_flow_oncreate_rule Resource - terraform-provider-genesyscloud"
subcategory: ""
description: |-
Genesys Cloud task management oncreate Rule
---
# genesyscloud_task_management_worktype_flow_oncreate_rule (Resource)

Genesys Cloud task management oncreate Rule

## API Usage
The following Genesys Cloud APIs are used by this resource. Ensure your OAuth Client has been granted the necessary scopes and permissions to perform these operations:

* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules)
* [POST /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules)
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules--ruleId-)
* [PATCH /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules--ruleId-)
* [DELETE /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules--ruleId-)



## Example Usage

```terraform
resource "genesyscloud_task_management_worktype_flow_oncreate_rule" "oncreate_rule" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnCreate Rule"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `name` (String) The name of the Rule.
- `worktype_id` (String) The Worktype ID of the Rule.

### Read-Only

- `id` (String) The ID of this resource.

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
data "genesyscloud_task_management_worktype_flow_datebased_rule" "datebased_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "DateBased Rule"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
data "genesyscloud_task_management_worktype_flow_onattributechange_rule" "onattributechange_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnAttributeChange Rule"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
data "genesyscloud_task_management_worktype_flow_oncreate_rule" "oncreate_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnCreate Rule"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules)
* [POST /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules)
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules--ruleId-)
* [PATCH /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules--ruleId-)
* [DELETE /api/v2/taskmanagement/worktypes/{worktypeId}/flows/datebased/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-taskmanagement-worktypes--worktypeId--flows-datebased-rules--ruleId-)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
resource "genesyscloud_task_management_worktype_flow_datebased_rule" "datebased_rule" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "DateBased Rule"
condition {
attribute = "dateDue"
relative_minutes_to_invocation = -10
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules)
* [POST /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules)
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules--ruleId-)
* [PATCH /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules--ruleId-)
* [DELETE /api/v2/taskmanagement/worktypes/{worktypeId}/flows/onattributechange/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-taskmanagement-worktypes--worktypeId--flows-onattributechange-rules--ruleId-)

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
resource "genesyscloud_task_management_worktype_flow_onattributechange_rule" "onattributechange_rule_data" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnAttributeChange Rule"
condition {
attribute = "statusId"
new_value = genesyscloud_task_management_worktype_status.example_status_1.id
old_value = genesyscloud_task_management_worktype_status.example_status_2.id
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules)
* [POST /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules)
* [GET /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules--ruleId-)
* [PATCH /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules--ruleId-)
* [DELETE /api/v2/taskmanagement/worktypes/{worktypeId}/flows/oncreate/rules/{ruleId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-taskmanagement-worktypes--worktypeId--flows-oncreate-rules--ruleId-)

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
resource "genesyscloud_task_management_worktype_flow_oncreate_rule" "oncreate_rule" {
worktype_id = genesyscloud_task_management_worktype.example.id
name = "OnCreate Rule"
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ func TestAccDataSourceTaskManagementWorkitem(t *testing.T) {
wtName,
wtDescription,
fmt.Sprintf("genesyscloud_task_management_workbin.%s.id", wbResourceLabel),
fmt.Sprintf("genesyscloud_task_management_workitem_schema.%s.id", wsResourceLabel),
"",
) +
worktypeStatus.GenerateWorktypeStatusResource(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,6 @@ func TestAccResourceTaskManagementWorkitem(t *testing.T) {
wtName,
wtDescription,
fmt.Sprintf("genesyscloud_task_management_workbin.%s.id", wbResourceLabel),
fmt.Sprintf("genesyscloud_task_management_workitem_schema.%s.id", wsResourceLabel),
"",
) +
worktypeStatus.GenerateWorktypeStatusResource(
Expand Down Expand Up @@ -496,8 +495,7 @@ func TestAccResourceTaskManagementWorkitemCustomFields(t *testing.T) {
wtName,
wtDescription,
fmt.Sprintf("genesyscloud_task_management_workbin.%s.id", wbResourceLabel),
fmt.Sprintf("genesyscloud_task_management_workitem_schema.%s.id", wsResourceLabel),
"",
"schema_id = "+fmt.Sprintf("genesyscloud_task_management_workitem_schema.%s.id", wsResourceLabel),
) +
worktypeStatus.GenerateWorktypeStatusResource(
statusResourceLabelOpen,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ func TestAccDataSourceTaskManagementWorktype(t *testing.T) {
name: "tf_worktype_" + uuid.NewString(),
description: "worktype created for CX as Code test case",
defaultWorkbinId: fmt.Sprintf("genesyscloud_task_management_workbin.%s.id", wbResourceLabel),
schemaId: fmt.Sprintf("genesyscloud_task_management_workitem_schema.%s.id", wsResourceLabel),
}

dataSourceLabel = "data_worktype_1"
Expand All @@ -49,7 +48,7 @@ func TestAccDataSourceTaskManagementWorktype(t *testing.T) {
{
Config: workbin.GenerateWorkbinResource(wbResourceLabel, wbName, wbDescription, util.NullValue) +
workitemSchema.GenerateWorkitemSchemaResourceBasic(wsResourceLabel, wsName, wsDescription) +
GenerateWorktypeResourceBasic(wtRes.resourceLabel, wtRes.name, wtRes.description, wtRes.defaultWorkbinId, wtRes.schemaId, "") +
GenerateWorktypeResourceBasic(wtRes.resourceLabel, wtRes.name, wtRes.description, wtRes.defaultWorkbinId, "") +
generateWorktypeDataSource(dataSourceLabel, wtRes.name, ResourceType+"."+wtRes.resourceLabel),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrPair("data."+ResourceType+"."+dataSourceLabel, "id", ResourceType+"."+wtRes.resourceLabel, "id"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func ResourceTaskManagementWorktype() *schema.Resource {
},
`schema_id`: {
Description: `Id of the workitem schema.`,
Required: true,
Optional: true,
Type: schema.TypeString,
},
`schema_version`: {
Expand Down
Loading

0 comments on commit f24d665

Please sign in to comment.