From dd5ea8dcb172b9b83fc06da11c86ba13df9d7aa1 Mon Sep 17 00:00:00 2001 From: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:17:57 +0100 Subject: [PATCH] Merging dev into main for v1.47.0 (#1255) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 (#1008) * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ran go generate --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * DEVTOOLING-352 - provider oauth credential rate limit exceeded (#1004) * Testing something * Adding retry * Fixed retry * Moved functionality to retries package * Fixed inport cycle * Extending sleep * Added retry to AuthorizeSdk * Using with retries * Remving old function * Feat/devtooling 461 - WithRetries errors include improved logging (#1012) * calling diag func * Changed retryable functions to call Diagnostic function * Converted all withRetries errors to have improved wrapper * Made requested Changes * fixing unit test * Bump golang.org/x/net from 0.23.0 to 0.25.0 (#1017) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/net/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for issue 993 : Changed message_column to optional and add verification logic (#1013) * Changed message_column to optional and add verification logic * applied safer nil value handling * go generate (#1018) * bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1015) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Revert "bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1…" (#1019) This reverts commit 3ff66d472071905b18b4f66f6ee4b3d3725600e7. * bug/devtooling 560 - CX as Code crash when creating phones (#1020) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Made requested Change * feat/devtooling 579 - Improved Logging for Non-API errors (#1021) * Adding improved non-api diag errors * Pulling Merged PR * Added improved error * Added more logging * Ran go vet * Updated docs * Bump hashicorp/setup-terraform from 3.1.0 to 3.1.1 (#1024) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bug/devtooling 362 - Evaluation forms incorrectly assigning published attribute (#1022) * Correctly sets published feature * Added functionality to set published field correctly * Fixed docs * Bug/devtooling 444: Custom resolver function for outbound campaign script_id (#1014) * Resolving campaign script_id to default outbound script data source when appropriate * Created constants package * editing scripts proxy so that the datasource catches Default scripts * Finished writing tests for new campaign field custom resolver * Fixed linting errors in campaigns package * implemented caching for campaigns exporter * minor changes to a comment * Add deleteCacheItem func + some refactoring work * Refactoring call to resolveToDataSource function and added unit test * Fixing script data source test * Bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#1026) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Devtooling-162: Refactored idp salesforce (#999) * Refactored idp salesforce * Fixing docs * Changed function name * Removed original file * Changed Build Function Call to fix type difference (#1029) * fixing test for published attribute (#1030) * No jira: fixing up a few acceptance tests (#1031) * fixed journey segment update * Adding check to journey segment tests to validate is feature is supported * preventing panic in export helper function * Adding sleep to milestone data source test * Cleaning up fmt.Print statements appearing in export tests * undoing changes to segment resource file * Fix routing queue (#1028) * README update (#1025) * Pre-verify if the tfState is in sync with the exporter (#1027) * Add state comapartors * Upddate review comments * Devtooling-591: Consistency Checker Refactor (#1032) * Moved where consistency checker is created in resources * Cleaned up consitency checker file * Added resource name to message * Conditionally adding name * Made requested changes * Feature/devtooling 589 1 (#1035) * update doc * fix reviews * Fix acceptance tests - TCA and Prod (#1033) * Fix edge,export,script test,Jenkin to run tca&prod * Fix export & integration tests * Fix auth tests Fix auth tests * fix tests * resolve conflicts * move assignregion func, remove commented function modify to return empty string - assignregion func return default region --------- Co-authored-by: Monisha Padmavathi Ragavan * Bug/devtooling 597 - Routing email route test failing (#1039) * Added call to cleanup function * linter * adding hotfix to pr labeler config file (#1042) * bug/DEVTOOLING-436 - Added cleanup function for webdeployments resources (#1038) * Added cleanup function for webdeployments resources * fixing conflict * Made requested changes * Made requested changes * Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.33.0 to 2.34.0 (#1047) Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.33.0 to 2.34.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.33.0...v2.34.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bug/devtooling 287 temp disable cchecker (#1037) * removed consistency checker * changed DID number * phoneUpdated * Merging dev to main for v1.38.0 (#1036) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 (#1008) * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ran go generate --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * DEVTOOLING-352 - provider oauth credential rate limit exceeded (#1004) * Testing something * Adding retry * Fixed retry * Moved functionality to retries package * Fixed inport cycle * Extending sleep * Added retry to AuthorizeSdk * Using with retries * Remving old function * Feat/devtooling 461 - WithRetries errors include improved logging (#1012) * calling diag func * Changed retryable functions to call Diagnostic function * Converted all withRetries errors to have improved wrapper * Made requested Changes * fixing unit test * Bump golang.org/x/net from 0.23.0 to 0.25.0 (#1017) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/net/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for issue 993 : Changed message_column to optional and add verification logic (#1013) * Changed message_column to optional and add verification logic * applied safer nil value handling * go generate (#1018) * bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1015) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Revert "bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1…" (#1019) This reverts commit 3ff66d472071905b18b4f66f6ee4b3d3725600e7. * bug/devtooling 560 - CX as Code crash when creating phones (#1020) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Made requested Change * feat/devtooling 579 - Improved Logging for Non-API errors (#1021) * Adding improved non-api diag errors * Pulling Merged PR * Added improved error * Added more logging * Ran go vet * Updated docs * Bump hashicorp/setup-terraform from 3.1.0 to 3.1.1 (#1024) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bug/devtooling 362 - Evaluation forms incorrectly assigning published attribute (#1022) * Correctly sets published feature * Added functionality to set published field correctly * Fixed docs * Bug/devtooling 444: Custom resolver function for outbound campaign script_id (#1014) * Resolving campaign script_id to default outbound script data source when appropriate * Created constants package * editing scripts proxy so that the datasource catches Default scripts * Finished writing tests for new campaign field custom resolver * Fixed linting errors in campaigns package * implemented caching for campaigns exporter * minor changes to a comment * Add deleteCacheItem func + some refactoring work * Refactoring call to resolveToDataSource function and added unit test * Fixing script data source test * Bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#1026) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Devtooling-162: Refactored idp salesforce (#999) * Refactored idp salesforce * Fixing docs * Changed function name * Removed original file * Changed Build Function Call to fix type difference (#1029) * fixing test for published attribute (#1030) * No jira: fixing up a few acceptance tests (#1031) * fixed journey segment update * Adding check to journey segment tests to validate is feature is supported * preventing panic in export helper function * Adding sleep to milestone data source test * Cleaning up fmt.Print statements appearing in export tests * undoing changes to segment resource file * Fix routing queue (#1028) * README update (#1025) * Pre-verify if the tfState is in sync with the exporter (#1027) * Add state comapartors * Upddate review comments * Devtooling-591: Consistency Checker Refactor (#1032) * Moved where consistency checker is created in resources * Cleaned up consitency checker file * Added resource name to message * Conditionally adding name * Made requested changes * Feature/devtooling 589 1 (#1035) * update doc * fix reviews --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: monishapadmavathi <31921259+monishapadmavathi@users.noreply.github.com> Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * NO-JIRA: Fixing nil pointer in consistency checker (#1041) * Fixed nil pointer in consistency checker * Fixed a few more nil pointers * Fixing nil pointer (#1045) * merged with dev --------- Signed-off-by: dependabot[bot] Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: monishapadmavathi <31921259+monishapadmavathi@users.noreply.github.com> Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * Fixing up provider docs (#1046) * Fix Export Version problem (#1049) * Logging error in queue create/update instead of failing (#1050) * Refactor/devtooling 395 (#1044) * refactor/DEVTOOLING-395 - adding architect_schedules package * Addressed PR comments * added caching in schedules * Report Generation & testcase fix (#1051) * Report generation generate report generate report * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests * fix tests * fix tests fix tests fix tests * fix tests * fix report * fix report * fix tests fix tests * Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.33.0 to 2.34.0 (#1047) Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.33.0 to 2.34.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.33.0...v2.34.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bug/devtooling 287 temp disable cchecker (#1037) * removed consistency checker * changed DID number * phoneUpdated * Merging dev to main for v1.38.0 (#1036) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 (#1008) * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ran go generate --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * DEVTOOLING-352 - provider oauth credential rate limit exceeded (#1004) * Testing something * Adding retry * Fixed retry * Moved functionality to retries package * Fixed inport cycle * Extending sleep * Added retry to AuthorizeSdk * Using with retries * Remving old function * Feat/devtooling 461 - WithRetries errors include improved logging (#1012) * calling diag func * Changed retryable functions to call Diagnostic function * Converted all withRetries errors to have improved wrapper * Made requested Changes * fixing unit test * Bump golang.org/x/net from 0.23.0 to 0.25.0 (#1017) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/net/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for issue 993 : Changed message_column to optional and add verification logic (#1013) * Changed message_column to optional and add verification logic * applied safer nil value handling * go generate (#1018) * bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1015) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Revert "bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1…" (#1019) This reverts commit 3ff66d472071905b18b4f66f6ee4b3d3725600e7. * bug/devtooling 560 - CX as Code crash when creating phones (#1020) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Made requested Change * feat/devtooling 579 - Improved Logging for Non-API errors (#1021) * Adding improved non-api diag errors * Pulling Merged PR * Added improved error * Added more logging * Ran go vet * Updated docs * Bump hashicorp/setup-terraform from 3.1.0 to 3.1.1 (#1024) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bug/devtooling 362 - Evaluation forms incorrectly assigning published attribute (#1022) * Correctly sets published feature * Added functionality to set published field correctly * Fixed docs * Bug/devtooling 444: Custom resolver function for outbound campaign script_id (#1014) * Resolving campaign script_id to default outbound script data source when appropriate * Created constants package * editing scripts proxy so that the datasource catches Default scripts * Finished writing tests for new campaign field custom resolver * Fixed linting errors in campaigns package * implemented caching for campaigns exporter * minor changes to a comment * Add deleteCacheItem func + some refactoring work * Refactoring call to resolveToDataSource function and added unit test * Fixing script data source test * Bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#1026) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Devtooling-162: Refactored idp salesforce (#999) * Refactored idp salesforce * Fixing docs * Changed function name * Removed original file * Changed Build Function Call to fix type difference (#1029) * fixing test for published attribute (#1030) * No jira: fixing up a few acceptance tests (#1031) * fixed journey segment update * Adding check to journey segment tests to validate is feature is supported * preventing panic in export helper function * Adding sleep to milestone data source test * Cleaning up fmt.Print statements appearing in export tests * undoing changes to segment resource file * Fix routing queue (#1028) * README update (#1025) * Pre-verify if the tfState is in sync with the exporter (#1027) * Add state comapartors * Upddate review comments * Devtooling-591: Consistency Checker Refactor (#1032) * Moved where consistency checker is created in resources * Cleaned up consitency checker file * Added resource name to message * Conditionally adding name * Made requested changes * Feature/devtooling 589 1 (#1035) * update doc * fix reviews --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: monishapadmavathi <31921259+monishapadmavathi@users.noreply.github.com> Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * NO-JIRA: Fixing nil pointer in consistency checker (#1041) * Fixed nil pointer in consistency checker * Fixed a few more nil pointers * Fixing nil pointer (#1045) * merged with dev --------- Signed-off-by: dependabot[bot] Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: monishapadmavathi <31921259+monishapadmavathi@users.noreply.github.com> Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * Fixing up provider docs (#1046) * fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests --------- Signed-off-by: dependabot[bot] Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * Add extra check for dependency resolution (#1052) * Devtooling 604: Infinite loop retrieving knowledge documents (#1053) * DEVTOOLING-282 * Adding log message indicating we're hitting the specific scenario for which the integration no longer exist * working around cycling dependencies per charliecon recommendation * adding implementation function getIntegrationByIdFn * Export integration credential only if it matches the expected format - DEVTOOLING-310 * infite loop bugfix --------- Co-authored-by: Will <37446330+williamjeuniaux@users.noreply.github.com> * Feat/COBROWSE-2404 add cobrowse config field (#1054) * made changes similar to what Mateusz did for other fields * updated version * mod and sum fix --------- Co-authored-by: ivan * No jira: Fixing dev with go generate & go mod tidy (#1057) * Fixed go.mod + removed refs to old sdk version * Small refactoring + go generate * DEVTOOLING-592: Changed team members logic (#1055) * Changed team members logic * moved function * Updated docs * Updated docs * Updated docs * Updated docs * Rand go generate * Bump github.com/nyaruka/phonenumbers from 1.3.5 to 1.3.6 (#1056) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.5 to 1.3.6. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.5...v1.3.6) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Feat/devtooling-477: Site Outbound Routes Resource (#1048) * Moving outbound routes to own package * Continued with outbound routes * Finished outboudn routes resource * Ran linter and added exporter * Added api to doc * Added caching * Fixed small bug * Made requested changes * Fixed go version * No jira: fix dev (#1059) * removed ref to old sdk * logging outbound route export error instead of failing * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.2 to 0.19.3 (#1062) Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.2 to 0.19.3. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.2...v0.19.3) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Cache for Data Sources (#1064) * Cache for Data Sources * fix context issue during actual run * DEVTOOLING-603: Media recording poilicies missing from export (#1063) * Caling api manually instead of using sdk * Small change to data source * Bump golang.org/x/net from 0.25.0 to 0.26.0 (#1072) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.25.0 to 0.26.0. - [Commits](https://github.com/golang/net/compare/v0.25.0...v0.26.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.3 to 0.19.4 (#1073) Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.3 to 0.19.4. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.3...v0.19.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Feat/devtooling 610 (#1065) * added data source for routing email route * added data source files * changes for name to pattern * updated docs * conflicts resolved * comments resolved for feat/DEVTOOLING-610 * Fixing Tests By removing unsupported arguments (#1070) * Fixing test (#1074) * Refactor/devtooling 156 (#1060) * idp_adfs refactoring * made changes for the getalladfs func * error handling changes * changes done according to unrefractor resource * changes return type * did changes for test idp_adfs * bug fixes * resolved comments * resolved comments * resolved comments * Bug/devtooling 584 (#1071) * Cache for Data Sources * fix context issue during actual run * pushing changes * removed debugging logger * addressed PR changes * updated note * resolved merge conflicts --------- Co-authored-by: HemanthDogiparthi12 Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * fix api call strategy (#1075) * [JM-1457]: Add resource for journey views (#1067) * Merging dev to main for v1.39.0 (#1061) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 (#1008) * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ran go generate --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * DEVTOOLING-352 - provider oauth credential rate limit exceeded (#1004) * Testing something * Adding retry * Fixed retry * Moved functionality to retries package * Fixed inport cycle * Extending sleep * Added retry to AuthorizeSdk * Using with retries * Remving old function * Feat/devtooling 461 - WithRetries errors include improved logging (#1012) * calling diag func * Changed retryable functions to call Diagnostic function * Converted all withRetries errors to have improved wrapper * Made requested Changes * fixing unit test * Bump golang.org/x/net from 0.23.0 to 0.25.0 (#1017) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/net/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for issue 993 : Changed message_column to optional and add verification logic (#1013) * Changed message_column to optional and add verification logic * applied safer nil value handling * go generate (#1018) * bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1015) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Revert "bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1…" (#1019) This reverts commit 3ff66d472071905b18b4f66f6ee4b3d3725600e7. * bug/devtooling 560 - CX as Code crash when creating phones (#1020) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Made requested Change * feat/devtooling 579 - Improved Logging for Non-API errors (#1021) * Adding improved non-api diag errors * Pulling Merged PR * Added improved error * Added more logging * Ran go vet * Updated docs * Bump hashicorp/setup-terraform from 3.1.0 to 3.1.1 (#1024) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bug/devtooling 362 - Evaluation forms incorrectly assigning published attribute (#1022) * Correctly sets published feature * Added functionality to set published field correctly * Fixed docs * Bug/devtooling 444: Custom resolver function for outbound campaign script_id (#1014) * Resolving campaign script_id to default outbound script data source when appropriate * Created constants package * editing scripts proxy so that the datasource catches Default scripts * Finished writing tests for new campaign field custom resolver * Fixed linting errors in campaigns package * implemented caching for campaigns exporter * minor changes to a comment * Add deleteCacheItem func + some refactoring work * Refactoring call to resolveToDataSource function and added unit test * Fixing script data source test * Bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#1026) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Devtooling-162: Refactored idp salesforce (#999) * Refactored idp salesforce * Fixing docs * Changed function name * Removed original file * Changed Build Function Call to fix type difference (#1029) * fixing test for published attribute (#1030) * No jira: fixing up a few acceptance tests (#1031) * fixed journey segment update * Adding check to journey segment tests to validate is feature is supported * preventing panic in export helper function * Adding sleep to milestone data source test * Cleaning up fmt.Print statements appearing in export tests * undoing changes to segment resource file * Fix routing queue (#1028) * README update (#1025) * Pre-verify if the tfState is in sync with the exporter (#1027) * Add state comapartors * Upddate review comments * Devtooling-591: Consistency Checker Refactor (#1032) * Moved where consistency checker is created in resources * Cleaned up consitency checker file * Added resource name to message * Conditionally adding name * Made requested changes * Feature/devtooling 589 1 (#1035) * update doc * fix reviews * Fix acceptance tests - TCA and Prod (#1033) * Fix edge,export,script test,Jenkin to run tca&prod * Fix export & integration tests * Fix auth tests Fix auth tests * fix tests * resolve conflicts * move assignregion func, remove commented function modify to return empty string - assignregion func return default region --------- Co-authored-by: Monisha Padmavathi Ragavan * Bug/devtooling 597 - Routing email route test failing (#1039) * Added call to cleanup function * linter * adding hotfix to pr labeler config file (#1042) * bug/DEVTOOLING-436 - Added cleanup function for webdeployments resources (#1038) * Added cleanup function for webdeployments resources * fixing conflict * Made requested changes * Made requested changes * Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.33.0 to 2.34.0 (#1047) Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.33.0 to 2.34.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.33.0...v2.34.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bug/devtooling 287 temp disable cchecker (#1037) * removed consistency checker * changed DID number * phoneUpdated * Merging dev to main for v1.38.0 (#1036) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to rou… * Fixes #1078 (#1079) * Coverage Report and fixing tests (#1080) * Report generation generate report generate report * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests * fix tests * fix tests fix tests fix tests * fix tests * fix report * fix report * fix tests fix tests * Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.33.0 to 2.34.0 (#1047) Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.33.0 to 2.34.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.33.0...v2.34.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bug/devtooling 287 temp disable cchecker (#1037) * removed consistency checker * changed DID number * phoneUpdated * Merging dev to main for v1.38.0 (#1036) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 (#1008) * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ran go generate --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * DEVTOOLING-352 - provider oauth credential rate limit exceeded (#1004) * Testing something * Adding retry * Fixed retry * Moved functionality to retries package * Fixed inport cycle * Extending sleep * Added retry to AuthorizeSdk * Using with retries * Remving old function * Feat/devtooling 461 - WithRetries errors include improved logging (#1012) * calling diag func * Changed retryable functions to call Diagnostic function * Converted all withRetries errors to have improved wrapper * Made requested Changes * fixing unit test * Bump golang.org/x/net from 0.23.0 to 0.25.0 (#1017) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/net/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for issue 993 : Changed message_column to optional and add verification logic (#1013) * Changed message_column to optional and add verification logic * applied safer nil value handling * go generate (#1018) * bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1015) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Revert "bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1…" (#1019) This reverts commit 3ff66d472071905b18b4f66f6ee4b3d3725600e7. * bug/devtooling 560 - CX as Code crash when creating phones (#1020) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Made requested Change * feat/devtooling 579 - Improved Logging for Non-API errors (#1021) * Adding improved non-api diag errors * Pulling Merged PR * Added improved error * Added more logging * Ran go vet * Updated docs * Bump hashicorp/setup-terraform from 3.1.0 to 3.1.1 (#1024) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bug/devtooling 362 - Evaluation forms incorrectly assigning published attribute (#1022) * Correctly sets published feature * Added functionality to set published field correctly * Fixed docs * Bug/devtooling 444: Custom resolver function for outbound campaign script_id (#1014) * Resolving campaign script_id to default outbound script data source when appropriate * Created constants package * editing scripts proxy so that the datasource catches Default scripts * Finished writing tests for new campaign field custom resolver * Fixed linting errors in campaigns package * implemented caching for campaigns exporter * minor changes to a comment * Add deleteCacheItem func + some refactoring work * Refactoring call to resolveToDataSource function and added unit test * Fixing script data source test * Bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#1026) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Devtooling-162: Refactored idp salesforce (#999) * Refactored idp salesforce * Fixing docs * Changed function name * Removed original file * Changed Build Function Call to fix type difference (#1029) * fixing test for published attribute (#1030) * No jira: fixing up a few acceptance tests (#1031) * fixed journey segment update * Adding check to journey segment tests to validate is feature is supported * preventing panic in export helper function * Adding sleep to milestone data source test * Cleaning up fmt.Print statements appearing in export tests * undoing changes to segment resource file * Fix routing queue (#1028) * README update (#1025) * Pre-verify if the tfState is in sync with the exporter (#1027) * Add state comapartors * Upddate review comments * Devtooling-591: Consistency Checker Refactor (#1032) * Moved where consistency checker is created in resources * Cleaned up consitency checker file * Added resource name to message * Conditionally adding name * Made requested changes * Feature/devtooling 589 1 (#1035) * update doc * fix reviews --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: monishapadmavathi <31921259+monishapadmavathi@users.noreply.github.com> Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * NO-JIRA: Fixing nil pointer in consistency checker (#1041) * Fixed nil pointer in consistency checker * Fixed a few more nil pointers * Fixing nil pointer (#1045) * merged with dev --------- Signed-off-by: dependabot[bot] Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: monishapadmavathi <31921259+monishapadmavathi@users.noreply.github.com> Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * Fixing up provider docs (#1046) * fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * Package wise coverage report * Package wise coverage report * fix tests * fix tests * fix tests * fix tests * fix tests * fix tests * Modify coverage report to list all data * Display coverage report, data in same page * fix newly added tests * fix newly added tests * fix user tests * fix failing tests * Cache for Data Sources (#1064) * Cache for Data Sources * fix context issue during actual run * fix tests Fix failing tests fix tests * Add didpool for phoneresource * fix tests * fix tests * modify logging modify logging modify logging modify logging --------- Signed-off-by: dependabot[bot] Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> * fixing go vet warnings/errors (#1081) * refactored idp_okta resource (#1069) * refactored idp_okta resource * updated the docs * comments resolved * comments resolved * ran go generate * updated docs and bug fix * fix update issues for workType (#1076) * fix update issues for workType * Delete genesyscloud/task_management_worktype/WorkType.go * Fix caching issue (#1082) * Fix caching issue * fix docs * Feature/fix unit tests (#1090) * Update worktype * fix test case * fix exporter crash (#1101) * fix exporter crash problem * review comment * added caching capabilities (#1088) * Update Description (#1104) * [JM-1466]: Upgrade the platform client version (#1100) * [JM-1457]: Add resource for journey views * [JM-1457]: import journey view as variable in main.go * [JM-1457]: Remove print statements * [JM-1457]: Refactor code * Remove default values from optional fields * [JM-1457]: Refactor and generate the doc * Remove default value from eventCountType * [JM-1457]: Filter should be nil if not given * Merge with dev * [JM-1457]: Filter should be nil if not given * [JM-1466]: Upgrade platform client version --------- Co-authored-by: Mohammed Islam * Devtooling 501: Removing support for v1 and v1-http widget deployments (#1097) * Updated widget_deployment schema to reflect API changes * updated example widget deployment resource * Removed old client_config field from schema and fixed data source test * Returned client_config field and marked it as deprecated * refactor/Tidy up journey_segment resource tests/doc (#1103) * Fix issues identified in DEVTOOLING-662 as a result of testing DEVTOOLING-477 (#1109) * Updating docs (#1110) * feat/devtooling 71: Outbound contact list contact resource (#1084) * Creating contact_list_contact resource * Defined contact list contact resource schema * Defined more boiler plate code for contact package + started working on create func * implemented read function for contact resource * finished crud operations and started testing * Refactored calls to GenerateMap test util function * Necessary refactoring to get contact test passing * extending contact_list_contact tests * Removed id field from schema + added example data * go generate * Adding contact_list_contact exporter * Updated gc sdk version and finished contact exporter * finishing contact exporter * DEVTOOLING-643 : Adds support for using sanitized names in export. (#1106) * Adds support for using sanitized names in export. This allows you to copy the names from the results of an export and reuse them as include/exclude filters in a new export * Fix Typo * Fix quotes * Bug/devtooling 659 (#1108) * added nil check * added nil check for line properties * Bump github.com/hashicorp/hcl/v2 from 2.20.1 to 2.21.0 (#1113) Bumps [github.com/hashicorp/hcl/v2](https://github.com/hashicorp/hcl) from 2.20.1 to 2.21.0. - [Release notes](https://github.com/hashicorp/hcl/releases) - [Changelog](https://github.com/hashicorp/hcl/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/hcl/compare/v2.20.1...v2.21.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/hcl/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Feat/devtooling 187 - Refactor routing settings (#1089) * Refactored Routing Settings * Added missing attributes to schema * Removed data source * Made requested Changes * Fixing merge conflicts * DEVTOOLING-601: Queue member assignment taking long time (#1107) * Sped up member assignment * Used diag error wrapper * Fixes #1086 + some minor refactoring (#1111) * Feat/devtooling 618 (#1083) * code for compression * added compression logic in generateoutput func * added fields compress and passphrase * removed passphrase flag * updated docs * moved the compression logic to a function * added test case for compress flag * comments resolved * updated docs * resolved comments * commenting RefAttr in trunkbasesettings exporter to fix unit test (#1115) * Merge unit tests & fix failing testcases (#1116) * run unit tests * run unit tests * add unit test * Fix failing tests * fix failed tests * Fix failing tests * Fix webdeployment testcases * Fix webdeployment testcases * Run remaining unit tests * Revert export changes * Fix export tests * Fix widget tests * Modify to delete list of didpool --------- Co-authored-by: Monisha Padmavathi Ragavan * onholdprompt attribute added along with test case (#1114) * refactor/Devtooling-190 [routing_utilization] + Devtooling-400 [routing_utilization_label] (#1105) * Refactored but waiting for cyclic dependency removal * refactor routing utilization label * Tidy up * Updated docs * fixing naming convention in tf_export * fixing user test * Requested changes * fixing merge conflicts * Refactored but waiting for cyclic dependency removal * refactor routing utilization label * Tidy up * Updated docs * fixing naming convention in tf_export * fixing user test * fixing merge * fixing docs * Made requested changes * changes * fixing tests * refactor/DEVTOOLING-158 idp_gsuite (#1099) * refactored idp_gsuite * removed references of data source * deleted unrefactored files * changed references * resolved comments * added name, slo_uri, slo_binding to idp_gsuite * Refactor/devtooling 160 idp_ping (#1102) * refactored idp_ping * updated docs * deleted unrefactored files * comments resolved * resolved conflicts * added name, slo_uri and slo_binding * Refactor/devtooling 157 - idp_generic (#1095) * refactoring of idp_generic * deleted original files * removed references of datasource * resolved comments * comments resolved * added slo_uri and slo_binding to idp_generic --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * Cleanup/Remove utilization label availability check / mentions of feature not being available (#1117) * Bug/devtooling 681 - New attributes for IDP (#1122) * Merge Dev to Main for Release v1.41.0 (#1118) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 (#1008) * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ran go generate --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * DEVTOOLING-352 - provider oauth credential rate limit exceeded (#1004) * Testing something * Adding retry * Fixed retry * Moved functionality to retries package * Fixed inport cycle * Extending sleep * Added retry to AuthorizeSdk * Using with retries * Remving old function * Feat/devtooling 461 - WithRetries errors include improved logging (#1012) * calling diag func * Changed retryable functions to call Diagnostic function * Converted all withRetries errors to have improved wrapper * Made requested Changes * fixing unit test * Bump golang.org/x/net from 0.23.0 to 0.25.0 (#1017) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/net/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for issue 993 : Changed message_column to optional and add verification logic (#1013) * Changed message_column to optional and add verification logic * applied safer nil value handling * go generate (#1018) * bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1015) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Revert "bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1…" (#1019) This reverts commit 3ff66d472071905b18b4f66f6ee4b3d3725600e7. * bug/devtooling 560 - CX as Code crash when creating phones (#1020) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Made requested Change * feat/devtooling 579 - Improved Logging for Non-API errors (#1021) * Adding improved non-api diag errors * Pulling Merged PR * Added improved error * Added more logging * Ran go vet * Updated docs * Bump hashicorp/setup-terraform from 3.1.0 to 3.1.1 (#1024) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bug/devtooling 362 - Evaluation forms incorrectly assigning published attribute (#1022) * Correctly sets published feature * Added functionality to set published field correctly * Fixed docs * Bug/devtooling 444: Custom resolver function for outbound campaign script_id (#1014) * Resolving campaign script_id to default outbound script data source when appropriate * Created constants package * editing scripts proxy so that the datasource catches Default scripts * Finished writing tests for new campaign field custom resolver * Fixed linting errors in campaigns package * implemented caching for campaigns exporter * minor changes to a comment * Add deleteCacheItem func + some refactoring work * Refactoring call to resolveToDataSource function and added unit test * Fixing script data source test * Bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#1026) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Devtooling-162: Refactored idp salesforce (#999) * Refactored idp salesforce * Fixing docs * Changed function name * Removed original file * Changed Build Function Call to fix type difference (#1029) * fixing test for published attribute (#1030) * No jira: fixing up a few acceptance tests (#1031) * fixed journey segment update * Adding check to journey segment tests to validate is feature is supported * preventing panic in export helper function * Adding sleep to milestone data source test * Cleaning up fmt.Print statements appearing in export tests * undoing changes to segment resource file * Fix routing queue (#1028) * README update (#1025) * Pre-verify if the tfState is in sync with the exporter (#1027) * Add state comapartors * Upddate review comments * Devtooling-591: Consistency Checker Refactor (#1032) * Moved where consistency checker is created in resources * Cleaned up consitency checker file * Added resource name to message * Conditionally adding name * Made requested changes * Feature/devtooling 589 1 (#1035) * update doc * fix reviews * Fix acceptance tests - TCA and Prod (#1033) * Fix edge,export,script test,Jenkin to run tca&prod * Fix export & integration tests * Fix auth tests Fix auth tests * fix tests * resolve conflicts * move assignregion func, remove commented function modify to return empty string - assignregion func return default region --------- Co-authored-by: Monisha Padmavathi Ragavan * Bug/devtooling 597 - Routing email route test failing (#1039) * Added call to cleanup function * linter * adding hotfix to pr labeler config file (#1042) * bug/DEVTOOLING-436 - Added cleanup function for webdeployments resources (#1038) * Added cleanup function for webdeployments resources * fixing conflict * Made requested changes * Made requested changes * Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.33.0 to 2.34.0 (#1047) Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.33.0 to 2.34.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.33.0...v2.34.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bug/devtooling 287 temp disable cchecker (#1037) * removed consistency checker * changed DID number * phoneUpdated * Merging dev to main for v1.38.0 (#1036) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cach… * Chore/Bump platform-client-sdk-go to v133 (#1119) * feat/COBROWSE-2427 pause field added (#1121) * updated version to 133 * pause_criteria changes done * reveted back go.mod * changed description * changed description * one more change * merged dev * crazy merge conflicts * made changes based on review * go.mod changed * more changes after review --------- Co-authored-by: ivan * go mod tidy (#1126) * added validation for ja-JP (#1127) * Cleanup/Use sdk to deal with utilization instead of direct public-api calls (#1123) * Fixes DEVTOOLING-674 by allowing the sanitizeMap function to continue processing as sanitizeE164Number and sanitizeRrule functions could return empty strings. If they do, we want to filter them out (further down the sanitizeMap function) unless they are explicitly marked to be kept by the AllowForZeroValues config to be set (#1128) * Add `make` command for generating docs (#1134) * Update latest language codes (#1130) * Pull in latest language codes from the API schema. See values available in dropdown for language field in API Explorer https://apicentral.genesys.cloud/api-explorer\#post-api-v2-knowledge-knowledgebases and https://apicentral.genesys.cloud/api-explorer\#post-api-v2-knowledge-knowledgebases--knowledgeBaseId--languages--languageCode--categories * Pull the language code logic out into its own validator function * Fixed export for teams (#1140) * Cleanup/Use sdk instead of direct calls to user utilization (#1136) * Refactor/devtooling 161 refactor idp_onelogin (#1125) * Merge Dev to Main for Release v1.41.0 (#1118) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 (#1008) * Bump github.com/hashicorp/terraform-plugin-docs from 0.19.1 to 0.19.2 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ran go generate --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * DEVTOOLING-352 - provider oauth credential rate limit exceeded (#1004) * Testing something * Adding retry * Fixed retry * Moved functionality to retries package * Fixed inport cycle * Extending sleep * Added retry to AuthorizeSdk * Using with retries * Remving old function * Feat/devtooling 461 - WithRetries errors include improved logging (#1012) * calling diag func * Changed retryable functions to call Diagnostic function * Converted all withRetries errors to have improved wrapper * Made requested Changes * fixing unit test * Bump golang.org/x/net from 0.23.0 to 0.25.0 (#1017) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/net/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for issue 993 : Changed message_column to optional and add verification logic (#1013) * Changed message_column to optional and add verification logic * applied safer nil value handling * go generate (#1018) * bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1015) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Revert "bug/devtooling 560 - Nil error in telephony_providers_edges_phone (#1…" (#1019) This reverts commit 3ff66d472071905b18b4f66f6ee4b3d3725600e7. * bug/devtooling 560 - CX as Code crash when creating phones (#1020) * Removed Print Statement that throws Nil error and added random id to test to prevent failing * golint changes made * Made requested Change * feat/devtooling 579 - Improved Logging for Non-API errors (#1021) * Adding improved non-api diag errors * Pulling Merged PR * Added improved error * Added more logging * Ran go vet * Updated docs * Bump hashicorp/setup-terraform from 3.1.0 to 3.1.1 (#1024) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bug/devtooling 362 - Evaluation forms incorrectly assigning published attribute (#1022) * Correctly sets published feature * Added functionality to set published field correctly * Fixed docs * Bug/devtooling 444: Custom resolver function for outbound campaign script_id (#1014) * Resolving campaign script_id to default outbound script data source when appropriate * Created constants package * editing scripts proxy so that the datasource catches Default scripts * Finished writing tests for new campaign field custom resolver * Fixed linting errors in campaigns package * implemented caching for campaigns exporter * minor changes to a comment * Add deleteCacheItem func + some refactoring work * Refactoring call to resolveToDataSource function and added unit test * Fixing script data source test * Bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#1026) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Devtooling-162: Refactored idp salesforce (#999) * Refactored idp salesforce * Fixing docs * Changed function name * Removed original file * Changed Build Function Call to fix type difference (#1029) * fixing test for published attribute (#1030) * No jira: fixing up a few acceptance tests (#1031) * fixed journey segment update * Adding check to journey segment tests to validate is feature is supported * preventing panic in export helper function * Adding sleep to milestone data source test * Cleaning up fmt.Print statements appearing in export tests * undoing changes to segment resource file * Fix routing queue (#1028) * README update (#1025) * Pre-verify if the tfState is in sync with the exporter (#1027) * Add state comapartors * Upddate review comments * Devtooling-591: Consistency Checker Refactor (#1032) * Moved where consistency checker is created in resources * Cleaned up consitency checker file * Added resource name to message * Conditionally adding name * Made requested changes * Feature/devtooling 589 1 (#1035) * update doc * fix reviews * Fix acceptance tests - TCA and Prod (#1033) * Fix edge,export,script test,Jenkin to run tca&prod * Fix export & integration tests * Fix auth tests Fix auth tests * fix tests * resolve conflicts * move assignregion func, remove commented function modify to return empty string - assignregion func return default region --------- Co-authored-by: Monisha Padmavathi Ragavan * Bug/devtooling 597 - Routing email route test failing (#1039) * Added call to cleanup function * linter * adding hotfix to pr labeler config file (#1042) * bug/DEVTOOLING-436 - Added cleanup function for webdeployments resources (#1038) * Added cleanup function for webdeployments resources * fixing conflict * Made requested changes * Made requested changes * Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.33.0 to 2.34.0 (#1047) Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.33.0 to 2.34.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.33.0...v2.34.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bug/devtooling 287 temp disable cchecker (#1037) * removed consistency checker * changed DID number * phoneUpdated * Merging dev to main for v1.38.0 (#1036) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports * Feat/add flow log level resource (#948) * add code changes * add flow log level changes * testing commit * getting there, have a create test together * still trying to get a passing test * tests have passed! but getting the plan was not empty errors now * flow log level test * finally got tests passing * remove debug logging * rerun go generate * rerun go generate * apply suggestions from PR review * address PR review * remove characteristics * address PR comments * return total flow log levels when no more are found --------- Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> * NO-JIRA: Small Change to flow log level (#984) * Small Change to flow log level * Fixing typo * Merge hotfix changes on main into dev (#983) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 (#992) * Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.19.1 Bumps [github.com/hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) from 0.18.0 to 0.19.1. - [Release notes](https://github.com/hashicorp/terraform-plugin-docs/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-docs/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-docs/compare/v0.18.0...v0.19.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-docs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * rerunning go generate after tf-docs package upgrade --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Devtooling 432: Conditonal Group Routing (#970) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Added CGR and toggle * Fixed some errors * Added queue proxy to CGR * Added toggle to get all * Made some changes * Added CGR toggle package * Moved CGR toggle package * Ran linter * Checking queue id in tests * Small change * bug/Devtooling-458: media retention policy creation failing with error on time interval (#980) * added checks * Checks for time interval attributes * Fixing TimeInterval * Added BuildFunc for timeInterval * Added returned errors for invalid time Interval * Fixed buildFunctions * Generate Docs * Fixed exporter * Getting rid of go vet warning about copying a lock value to a variable (#991) * No jira: util function for getting cursor value from next uri (#990) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added cache to routing queue * Added proxy and caching to routing queue * Removed log * Add consistency checker back * Fix group cache * Fix Export cyclic deps (#968) * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Feat/devtooling-177: Refactored orgAuthorization_pairing (#975) * refactored orgauthorization_pairing * Added exporter for response management response asset * Added refactor label to pr-labeler-config * Feat/devtooling-499: Added getAll Functionality to ResponseManagement_ResponseAsset (#969) * adding getALl functionality * adding exporter * adding export * Added getAll functionality * Update go.mod * Added Caching * Added file_content_hash * Fixed test * using resource mutexes in init_test files & linting errors (#973) * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Feature/devtooling 63 (#978) * Fix exports --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Charlie Conneely <87772562+charliecon@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix Exporter for non-flow resources (#982) * Fix Exporter for non-flow resources * Added check (#981) * Made function for parsing cursor from next uri --------- Signed-off-by: dependabot[bot] Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles * Fix acceptance tests (#979) * fix acceptance test fix test fix test fix test fix test fix tests fix tests fix tests fix tests fix tests fix test fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix routing test fix tests fix tests restore files fix team test * fix comments * fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests fix tests * fix tests fix tests fix tests * fix tests * fix conditional routing test fix conditional routing test --------- Co-authored-by: Monisha Padmavathi Ragavan * Bump hashicorp/setup-terraform from 3.0.0 to 3.1.0 (#995) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improvise exclude attributes to Regex (#988) * Fix Media call back Read Attributes (#987) * DEVTOOLING-445: User Roles not returning duplicate roles (#989) * NO-JIRA-Upgrading-Go-SDK * Fixed errors * Fixed conditional group routing * Fixed some tests * feat/Devtooling 496: Routing queue Outbound email address independent resource (#954) * Added routing_queue_conditional_group_routing resource * Rebased * Removed accidental commits * Rebased and fixed errors * Added evaluated_queue_id * Fixed some things * Added CGR and toggle * Made some changes * Added CGR toggle package * Moved CGR toggle package * Feature/devtooling 63 (#974) * Introduce new Elements * Update Attribs * Introduce scoring Method * Upgrade ssdk * remove unwanted logs * Routing queue outbound email address package * Made changes * Added tests * Added more to test * Fixed test * Finished resource * Finished resource * Made some requested changes * Added feature toggle stuff * Added feature toggle * Made changes * Fixing change in queue exporter --------- Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> * bug/devtooling-498: [CX as Code] genesyscloud_outbound_settings export contains only null data (#996) * Fixing null export * Fixing Test * Added check for export * Added attribute and fixed test * Removed Computed attribute * Added check for reschedule_time_zone_skipped_contacts in test * Update Export Guide (#971) * update export uide * update tf_export.md and resource.tf * cross check resource.tf and schema, add missing attributes * update * update export.md.tmp * Removed duplicate paragraph and ran go generate --------- Co-authored-by: Charlie Conneely * NO-JIRA: Fixing dev (#1000) * Fixing dev * Fixes some errors * Fixing flow outcome description (#998) * Devtooling 561 - Members not being added correctly to teams (#1001) * Fixed bug * Fixed problem deleting members * Removed print * Fix Version Problem in WebDeployments (#997) * Fix Version Problem in WebDeployments * Add test cases * Fix review comments * no jira: Fixing merge conflicts on dev branch (#1009) * moving changes (#960) * Revert "moving changes (#960)" (#963) This reverts commit 70d8a8036c52ae2f91aee081fe0d1c4c5451a58f. * Release Merge to Main (#977) * Bump golang.org/x/net from 0.22.0 to 0.23.0 (#951) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add team to custom resolver (#950) * Devtooling 432: Refactor Conditional Group Routing Rules into its own resource (#921) * Added routing_queue_conditional_group_routing resource * Rebased * Fixed routing queue tests * Removed accidental commits * Rebased and fixed errors * Made some requested changes * Added evaluated_queue_id * Added warning * Fixed some things * Fixed test * Fixing exporter * Fixed type * Changing target branch of dependabot PRs to dev (#956) * Fix User Resource Panics (#949) * moving changes (#964) * Reverting conditional group routing resoure (#965) * Remove use_supported_content_profile (#962) * bug/ DEVTOOLING-516: Allow Multiple inputs for BYMONTHDAY and BYMONTH (#953) * Allow Multiple inputs for BYMONTHDAY and BYMONTH * Update go.mod * Added Error Message to Validator * Bug/devtooling-530: Fixing panic during export caused by MemberGroupsResolver (#957) * Changing groups.owner_ids to optional and computed * Preventing panic inside MemberGroupsResolver with some refactoring * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag… (#946) * DEVTOOLING-417: Removed the go:generate git restore docs/index.md tag. This is pulling the index.md out of git hub and overriding what ever is being generated. * DEVTOOLING-417: Fixed a mispelling in a package alias * DEVTOOLING-417 Accidently added cache code * avoiding infinite loop in flow data source read (#966) * feat/Devtooling-448 oauth cred cache (#945) * DEVTOOLING-448: Initial commit of code * DEVTOOLING-448: Added caching while creating a Genesys Cloud OAuth Client specific so we dont have to force the user embed a secret * DEVTOOLING-448: Refactored retrieveCachedOauthClientSecret code * DEVTOOLING-448: Committing interm work * DEVTOOLING-448: Reworked how we handle the addition of roles for user credentials * DEVTOOLING-448: Removed the ToPtrStr function * Fixing go.mod and running go generate (#967) * feat/Devtooling-459: Added BuildAPIDiagnosticError function calls (#959) * added buildDiag function p1 * Adding call to BuildApiDiag * BuildAPIDiag functions added * Added util.BuildAPIDiag function to refactored resources * Added call to BuildAPIDiag in resources * Update go.mod * Fixed tests * Update go.mod * Added err * Added err * Update go.mod * Requested Changes * Fix for BotFlows dependencies (#961) * feat/Devtooling-531: Add proxy and cache to routing queue (#958) * Added ca… * feature/devtooling 608 (#1124) * added schema * added line properties * updated and flatten function * changed to station remote address * pushing changes * regenerated docs * added remote if statement for remote address * line and remote address are mutually exclusive * fixed nil pointer deref on error * synced documents * added continue statement to prevent deref of nil pointer * Feat/More validation in utilization label names (#1143) * Fix DEVTOOLING-703 (#1144) * Fix DEVTOOLING-703 * Add unit test for isQueueEmailAddressEmpty() * Bump golang.org/x/net from 0.26.0 to 0.27.0 (#1146) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.26.0 to 0.27.0. - [Commits](https://github.com/golang/net/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Feat/devtooling-645: Add roles_enabled to group resource (#1145) * Added roles_enabled to group * Added rolesEnabled to test * Requested changes * Bug/Devtooling-677: Error Migrating routes to independent resource (#1132) * Fixing conflict * Remove Duplicate imports * adding missing return statement in utils function (#1148) * feat/GPE-14463 add support for App stream type on Journey resources (#1147) When configuring Journey resources like segments, outcomes or action maps, it is now possible to use App stream type. Also, the documentation around supported session types was updated, to specify the allowed values. * Bug/devtooling-606 Export Managed sites as data sources (#1142) * Managed sites automatically data * Removed managed attribute and data source lookup checks both managed and unmanaged resources * More generic implementation for future resource use * Fixing conflicts * Fixing test * removing redundant code * Made requested changes * Use sanitizeName instead of strings.replaceAll * Made requested changes * Created Test Case * Made requested Changes * Bug/devtooling 637: Conditional group routing rules (#1155) * Updated example CGR rules resource * removed unnecessary error in CGR rules resource and added log statements * refactor/DEVTOOLING-183: Refactored routing email domain (#1138) * Refactored routing email domain * Made requested changes * Fixes DEVTOOLING-633 (#1135) * Consistency in filename organization for genesyscloud_outbound_contact_list resource * Add genesyscloud_outbound_contact_list_template data and resource based on outbound_contact_list * Generate docs for new resources * Fixes DEVTOOLING-633 by adding logic to contactlistfilter resources to connect to a contact list OR a contact list template resource * Fix DEVTOOLING-703 * Consistency in filename organization for genesyscloud_outbound_contact_list resource * Add genesyscloud_outbound_contact_list_template data and resource based on outbound_contact_list * Generate docs for new resources * Fixes DEVTOOLING-633 by adding logic to contactlistfilter resources to connect to a contact list OR a contact list template resource * Refactor genesyscloud_outbound_contact_list resource to use proxy and new structure * Refactor genesyscloud_outbound_contact_list_template resource to use proxy and new structure * Add examples for new genesyscloud_outbound_contact_list_template resource * Fix comment * Use resourceName variable for genesyscloud_outbound_contact_list resource * Use resourceName variable for genesyscloud_outbound_contact_list_template resource * Add exampel data source * Add generated docs * feat/GPE-14606 add support for Outcome Quantile Conditions (#1156) * feat/GPE-14606 add support for Outcome Quantile Conditions when working with Action Maps When setting up an Action Map with outcome scores tracking, Trigger With Outcome Quantile Conditions should now be used instead of Probability Conditions. * fix typo * reorder tests, add quantiles trigger * remove unnecessary comment * use deprecated attribute on resource * Refactor Routing language (#1141) * Bump github.com/nyaruka/phonenumbers from 1.3.6 to 1.4.0 (#1157) Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.6 to 1.4.0. - [Release notes](https://github.com/nyaruka/phonenumbers/releases) - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md) - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.6...v1.4.0) --- updated-dependencies: - dependency-name: github.com/nyaruka/phonenumbers dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/zclconf/go-cty from 1.14.4 to 1.15.0 (#1158) Bumps [github.com/zclconf/go-cty](https://github.com/zclconf/go-cty) from 1.14.4 to 1.15.0. - [Release notes](https://github.com/zclconf/go-cty/releases) - [Changelog](https://github.com/zclconf/go-cty/blob/main/CHANGELOG.md) - [Commits](https://github.com/zclconf/go-cty/compare/v1.14.4...v1.15.0) --- updated-dependencies: - dependency-name: github.com/zclconf/go-cty dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fixed journey action maps (#1161) * No jira: go checks (#1163) * Adding 'go mod tidy' & 'go vet' to workflow * Small change to go vet job in workflow * Fix failed acceptance testcases (#1162) * Modify order of testcase * fix division deletion * Fix testcases * Fix testcases * Fix outbound campaign * Fix ExternralTrunkBaseSettingsInboundSite testcase * Fix skipped testcases * Fix skipped testcases * Fix skipped testcases * Fix failing tests * Fix failing tests * Fix testcases * Fix testcases * Fixing test & report * fix testcases * fix testcases * fix testcases * fix tests * Fix testcase * Fix testcase * Fix tests * Fix tests * Fix tests * Fix tests * Fix tests * Fix tests * Fix tests * Fix tests * fix tests * fix tests * Resolve comments --------- Co-authored-by: Monisha Padmavathi Ragavan * Feat/devtooling 655: conversations_messaging_settings resource (#1150) * Created Resource * Created Resource & added tests * Added examples * Update tf_exporter_resource_test.go * Datasoruce tfstate (#1170) * Fixes DEVTOOLING-675 (#1169) * Fixes DEVTOOLING-675 by updating the logic for returning user addresses. This is kept behind the feature flag USE_NEW_USER_ADDRESS_LOGIC env variable to prevent backwards compatibility issues. This commit also refactors a few things for unit testing * FormatAsE164Number for location and group address numbers too * Update example docs to add info about the feature toggle * added expand field to export line properties (#1174) * Devtooling 625: Adding the id fields to question_groups, questions, answer_options as READ-ONLY (#1167) * Adding missing fields to forms_evaluatation resource (fixes #1066) * removed field from answer options * go generate * Making the ID fields nested within forms_eval resource read only * Made ID fields read-only by removing Optional attr * go fmt ./genesyscloud * Adding nested id fields to ExcludeAttributes array for forms_evaluation exporter * Devtooling 625: fix export test (#1177) * Adding readonly answer_options.id field to survey resource/exporter * Implementing the ID field for question_groups & questions in survey resource * Bug/devtooling 648 (#1173) * Datasoruce tfstate * Update Test cases for Data Source * remove unecessary function * NO-JIRA: Removed the test workflows as these items have been moved to Jenkins (#1176) * refactor/Devtooling-189: refactor routing skill group (#1171) * Refactoring create and update: tests passed * split create and update functions * removed unnecessary functions * PR * test case no longer calls api direct * Fixed user test and schema for routing skill group * No jira: unit tests workflow (#1181) * Adding unit tests workflow * inconsequential change to trigger new workflow * minor change * Removed comment * changing workflow trigger * Fixing syntax error in yml file * Fixed unit test * Fixing other unit tests * Refactor/devtooling-188: Routing Skill (#1183) * Added Routing Skill Package * refactored routing skill * Fixing merge conflicts * feat/Devtooling 712 resource for supported content (#1159) * resource and test cases added for supported content * updated resource testcase and added datasource testcase * updated docs * added example folder * added example folder * updated docs * updated testcase for datasource * resolved comments * updated docs * changed resource name * changed resource file names * changed resource file names * comments resolved * updatd docs * cache added for data source * resolved merge conflict * comments resolved * updated docs * comments resolved * Bug/devtooling 707 - Worktype status independent resource (#1164) * Refactored code * Removed statuses from worktype resource * Finished worktype status resource * Added reponse assets stuff back * Fixed workitems tests * Updated docs * Updated docs * Made requested changes * Added caching * Inspired by DEVTOOLING-741 - Hardening E.164 handling (#1178) * Closes E.164 number formatting inconsistencies that could theoretically occur by ensuring all instances that we validate for an E.164 formatted number from user config (which are applied on create/update) are also returned (via read) as an E.164 formatted number to maintain consistency in number handling. This likely means we could remove the custom validate export handling for E164 that was inconsistently applied and used custom logic. * Add unit test cases for Format E164 * Fixes for acceptance test updates * Fix PR comments * Update the E.164 utilities to be able to pass in the organization's Default Country Code so it handles parsing and appending the correct international phone code to phone numbers. For example, if the default country code is JP, the default prefix is +81 instead of +1 for US. * Increased workflow timeout * Revert "Inspired by DEVTOOLING-741 - Hardening E.164 handling (#1178)" (#1184) This reverts commit 9ceb1ad20f31286cf3202a278e92546a1c37ddbb. * Refactor users package (#1129) * Refactor users package * Updated the version field to reflect the correct value. * removed util_common.go and refracted code to address standard practice * Revert "Refactor users package (#1129)" (#1191) This reverts commit ceaeeb1abd297f9be090ac93492812f61b935438. * Deploy back to dev (#1193) * Fix debugging issue and add docs on how to setup debugging (#1190) * Fix debugging issue and add docs on how to setup debugging * Fix spelling error * Resolve merge conflict from #1191 into Refactor/DEVTOOLING-634 (#1192) * Refactor users package * Updated the version field to reflect the correct value. * removed util_common.go and refracted code to address standard practice * add missing merge conflict code * Refactor/DEVTOOLING-191 and DEVTOOLING-646 (#1152) * refactor/DEVTOOLING-191 and added division ID into wrapup code * updated proxy file for standard coding practice * registry updated in the main.go * Reverted registry changes in main.go * Feat/devtooling 652 Integration Facebook resource (#1168) * implementation of facebook resource * updated docs * unit tests for facebook resource * minor fixes * comments resolved * added cache * updated docs * added references to supported_content and messaging_setting * added conditions for attributes * modified data source test cases * resolved comments * bug fixe * Devtooling-730: Added enable_audio_monitoring to Routing Queue Resource (#1188) * Added enable_audio_monitoring property * Added example and updated doc * Bug/devtooling 749 added webrtc for fields property (#1194) * initial commit * added back export of user * OV-2078 Added Dynamic Line Balancing Settings (#1195) * Feat/devtooling-714: Conversations Messaging Settings Default Resource (#1187) * Created Resource and Test * Removed unnecessary file * Added Example Resource and updated Docs * Tidy * Fixed file names and made requested changes * Bump golang.org/x/net from 0.27.0 to 0.28.0 (#1199) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.27.0 to 0.28.0. - [Commits](https://github.com/golang/net/compare/v0.27.0...v0.28.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fixed test (#1186) * Fixing test (#1201) * No jira: Fixing a few test failures (#1200) * Fixed bug in wrapupcode resource * Fixed nil pointer in executeUpdateUser function * Fixed go checks workflow * Fixed bug when exporting wrapupcodes * Deleting user from cache + small change to one test * Fixed bug in dnclist package * removed feature toggle (#1197) * bug/DEVTOOLING-735: Fix bug in architect_user_prompt resource (#1198) * Fixed bug in prompts resource + refactor * Fixed prompts exporter by providing correct query params in getAll func * Cleaned up docs and feature toggles package (#1205) * Fix DEVTOOLING-780 (#1204) * Fix acceptance testcases (#1206) * fix tests * fix tests * fix tests * DEVTOOLING-769: Remove flow outcome & trunk tests as required API for testcase are not present * Fix testcases * Fix tests * Fix tests * resolve comments --------- Co-authored-by: Monisha Padmavathi Ragavan * changed optional value (#1203) * No jira: user prompt export test bug (#1210) * Fixing user prompt export test * go generate * Minor refactor * Re-opens #1178 Harden e164 (#1207) * Closes E.164 number formatting inconsistencies that could theoretically occur by ensuring all instances that we validate for an E.164 formatted number from user config (which are applied on create/update) are also returned (via read) as an E.164 formatted number to maintain consistency in number handling. This likely means we could remove the custom validate export handling for E164 that was inconsistently applied and used custom logic. * Add unit test cases for Format E164 * Fixes for acceptance test updates * Fix PR comments * Update the E.164 utilities to be able to pass in the organization's Default Country Code so it handles parsing and appending the correct international phone code to phone numbers. For example, if the default country code is JP, the default prefix is +81 instead of +1 for US. * Fix up after user refactor * Adds extra Export RefAttrs that could exist and reference flows on genesyscloud_outbound_callanalaysisresponseset (#1214) * Updating dnis numbers to fix unit tests (#1217) * Fixes DEVTOOLING-786 and DEVTOOLING-740 as well as other resources that could be impacted (#1212) * Fixes DEVTOOLING-786 as well as other resources that could be impacted * Fix issue with routing_settings and contact center/transaction * Bump hashicorp/setup-terraform from 3.1.1 to 3.1.2 (#1220) Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.1 to 3.1.2. - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/v3.1.1...v3.1.2) --- updated-dependencies: - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Ruleset and Skill Resource (#1218) * Update fix * No jira: Added `go fmt` to Go Checks workflow (#1222) * Added fmt workflow step to Go Checks * go fmt * DEVTOOLING-774: Checking uploadStatus before downloading prompt file during export (#1221) * Checking uploadStatus as well as mediaUri before downloading file during export * Cleaning up filename where no audio data was downloaded * Fixes DEVTOOLING-791 by passing in the error message so it can be picked up when checking to log errors (#1225) * bug/Devtooling 723 - exports filenames with spaces (#1223) * added regex to allow whitespaces * updated docs * Removing ConflictsWith attrs from email_route resource schema definition (#1226) * Bug/devtooling 615 - Consistency checker (#1219) * Changed tests * Fixed test * Changed mutex * Continued work * wrote unit tests * Made changes * Done thing * Rebased * Rewriting test * Continued work * Finshed work * Moving log * Fixed test * Devtooling-175: refactored location (#1224) * Refactored * Made requested changes * Fixed naming conventions * Feat/devtooling 654 Integration Instagram (#1202) * added files for instagram resource * added test cases for instagram * test cases and examples added * updated docs * updated docs * changed the schema descriptions * comments resolved * updated docs * removed forcenew flag * updated docs * added skip test case * commented the update test case * added only creation test case * added skip test case * added skip test case in data source * refactor/Devtooling-186: Routing Queue (#1213) * Moved Build and Flatten Functions to util file * Good Bit Done * vet fixes * 778 - required attributes to optional * Fixing test * generate * Made requested changes * Changes Made * Added unit test * updated docs * go mod tidy * Revert "Bug/devtooling 615 - Consistency checker (#1219)" (#1232) This reverts commit 63479ee92be11e044093c4b1ca5913490b0dbd49. * Bump github.com/hashicorp/hcl/v2 from 2.21.0 to 2.22.0 (#1231) Bumps [github.com/hashicorp/hcl/v2](https://github.com/hashicorp/hcl) from 2.21.0 to 2.22.0. - [Release notes](https://github.com/hashicorp/hcl/releases) - [Changelog](https://github.com/hashicorp/hcl/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/hcl/compare/v2.21.0...v2.22.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/hcl/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charlie Conneely * Fix docs issue with genesyscloud_routing_queue_outbound_email_address (#1230) * Revert "refactor/Devtooling-186: Routing Queue (#1213)" (#1234) This reverts commit a520fd9004ae3923e07b006b48796333a8de87bd. * Fix Standalone Line Numbers (#1233) * Bug/devtooling 751: Queue resource overwriting CGR and Outbound email address (#1241) * Started work * Fixed * Fixed routing email route test (#1239) * Bug/devtooling 804 (#1235) * added nil checks * reverted null check * DEVTOOLING-647 (#1228) * DEVTOOLING-743 (#1227) * refactor/DEVTOOLING-150 [auth_division] (#1237) * refactored * go fmt * requested changes * Bug/devtooling 642 (#1208) * Fix Export stuck issue with routing skills * Update Resource * Fix Pause Criteria (#1240) * No jira devcontainers (#1244) * NO-JIRA: Adding a new code space * NO-JIRA: Adding proper version * NO-JIRA: Adding proper version * NO-JIRA: Adding proper version * NO-JIRA: trying to set install terraform via feature * NO-JIRA: Adding the genesyscloud CLI * NO-JIRA: Adding the genesyscloud CLI * NO-JIRA: Adding archy * NO-JIRA: Adding archy * NO-JIRA: Adding a python script to generate environment * NO-JIRA: Adding new python code to generate shell * NO-JIRA: Removing unnecessary code * NO -JIRA: Adding in the generate_env.py * NO-JIRA: Refactored script locations * NO-JIRA: Refactored script locations * NO-JIRA: Removed the generative script * NO-JIRA: Finalizing changes * Bump golang.org/x/net from 0.28.0 to 0.29.0 (#1245) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.28.0 to 0.29.0. - [Commits](https://github.com/golang/net/compare/v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix acceptance tests (#1249) * fix tests * fix tests * fix tests * DEVTOOLING-769: Remove flow outcome & trunk tests as required API for testcase are not present * Fix testcases * Fix tests * Fix tests * resolve comments * fix architect testcase * Fix tests * fix testcase * Fix testcases --------- Co-authored-by: Monisha Padmavathi Ragavan * Bug/devtooling 752 Integration Credential Fix (#1242) * fix oath client issues * Remove unwanted proxy fns * review fixes * Deleting auth divisions from cache (#1252) * Fixing conditional group routing test (#1254) --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HemanthDogiparthi12 <127493303+HemanthDogiparthi12@users.noreply.github.com> Co-authored-by: dginty4 <108797778+dginty4@users.noreply.github.com> Co-authored-by: kavinbalagen <150852268+kavinbalagen@users.noreply.github.com> Co-authored-by: Brian Moyles <157126600+BrianMoyles@users.noreply.github.com> Co-authored-by: carnellj-genesys <109529583+carnellj-genesys@users.noreply.github.com> Co-authored-by: BrianMoyles Co-authored-by: ben-howarth-genesys <164904178+ben-howarth-genesys@users.noreply.github.com> Co-authored-by: monishapadmavathi <31921259+monishapadmavathi@users.noreply.github.com> Co-authored-by: Monisha Padmavathi Ragavan Co-authored-by: jenissabarrera <50225452+jenissabarrera@users.noreply.github.com> Co-authored-by: Taisuk Choi <131831426+TaisukChoi@users.noreply.github.com> Co-authored-by: sureshperiyappan <61573777+sureshperiyappan@users.noreply.github.com> Co-authored-by: willjeuniaux-genesys <153622483+willjeuniaux-genesys@users.noreply.github.com> Co-authored-by: Will <37446330+williamjeuniaux@users.noreply.github.com> Co-authored-by: Ivan Mikhalchenko Co-authored-by: ivan Co-authored-by: shrutisuryawanshigenesys Co-authored-by: HemanthDogiparthi12 Co-authored-by: Majharul Islam Rafat Co-authored-by: Mohammed Islam Co-authored-by: tsantos-genesys <154342374+tsantos-genesys@users.noreply.github.com> Co-authored-by: Brian Goad Co-authored-by: michalk-genesys Co-authored-by: danilkulakov <118930532+danilkulakov@users.noreply.github.com> --- .devcontainer/Dockerfile | 11 + .devcontainer/devcontainer.json | 19 ++ GNUmakefile | 1 + ...esyscloud_architect_emergencygroup_test.go | 2 +- .../genesyscloud_architect_ivr_init_test.go | 4 +- ...loud_architect_schedulegroups_init_test.go | 4 +- ...esyscloud_architect_schedulegroups_test.go | 4 +- ...esyscloud_architect_schedules_init_test.go | 4 +- ...e_genesyscloud_architect_schedules_test.go | 4 +- ...yscloud_architect_user_prompt_init_test.go | 4 +- .../resource_architect_user_prompt_schema.go | 1 - ...genesyscloud_architect_user_prompt_test.go | 9 +- .../data_source_genesyscloud_auth_division.go | 34 +++ ..._source_genesyscloud_auth_division_test.go | 2 +- .../genesyscloud_auth_division_init_test.go | 60 ++++ .../genesyscloud_auth_division_proxy.go | 164 ++++++++++ .../resource_genesyscloud_auth_division.go | 175 +++++++++++ ...ource_genesyscloud_auth_division_schema.go | 72 +++++ ...esource_genesyscloud_auth_division_test.go | 13 +- ...onversations_messaging_supportedcontent.go | 37 +-- .../data_source_genesyscloud_auth_division.go | 59 ---- .../genesyscloud_flow_milestone_init_test.go | 4 +- ...source_genesyscloud_flow_milestone_test.go | 4 +- .../genesyscloud_flow_outcome_init_test.go | 6 +- .../group/resource_genesyscloud_group_test.go | 9 +- .../genesyscloud_group_roles_init_test.go | 4 +- .../resource_genesyscloud_group_roles_test.go | 10 +- ...enesyscloud_integration_credential_test.go | 3 + .../resource_genesyscloud_oauth_client.go | 288 +++++++++++------- ...esource_genesyscloud_oauth_client_proxy.go | 15 +- ...source_genesyscloud_oauth_client_schema.go | 1 - ...bound_callanalysisresponseset_init_test.go | 3 +- ...d_outbound_callanalysisresponseset_test.go | 4 +- ...rce_genesyscloud_outbound_campaign_test.go | 4 +- ...enesyscloud_outbound_campaign_init_test.go | 3 +- ...rce_genesyscloud_outbound_campaign_test.go | 10 +- ...genesyscloud_outbound_campaignrule_test.go | 4 +- ...yscloud_outbound_campaignrule_init_test.go | 3 +- ...genesyscloud_outbound_campaignrule_test.go | 4 +- .../resource_genesyscloud_outbound_ruleset.go | 36 ++- ...rce_genesyscloud_outbound_sequence_test.go | 4 +- ...enesyscloud_outbound_sequence_init_test.go | 4 +- ...rce_genesyscloud_outbound_sequence_test.go | 12 +- ...esyscloud_wrapupcode_mappings_init_test.go | 4 +- ...cloud_outbound_wrapupcode_mappings_test.go | 8 +- ...d_recording_media_retention_policy_test.go | 3 +- ...ording_media_retention_policy_init_test.go | 3 +- ...d_recording_media_retention_policy_test.go | 9 +- .../resource_cache/datasource_cache.go | 16 +- .../resource_genesyscloud_auth_division.go | 230 -------------- genesyscloud/resource_genesyscloud_init.go | 3 - .../resource_genesyscloud_init_test.go | 5 +- ...ponsemanagement_responseasset_init_test.go | 6 +- ...d_responsemanagement_responseasset_test.go | 4 +- ..._responsemanagement_responseasset_utils.go | 4 +- ...source_genesyscloud_routing_email_route.go | 2 +- ...e_genesyscloud_routing_email_route_test.go | 156 ++-------- .../data_source_genesyscloud_routing_queue.go | 66 ++-- .../genesyscloud_routing_queue_init_test.go | 3 +- .../genesyscloud_routing_queue_proxy.go | 41 ++- .../resource_genesyscloud_routing_queue.go | 59 ++-- ...esource_genesyscloud_routing_queue_test.go | 10 +- ...routing_queue_conditional_group_routing.go | 2 +- ...ng_queue_conditional_group_routing_test.go | 193 ++++++++++-- ...ud_routing_queue_outbound_email_address.go | 2 +- ...uting_queue_outbound_email_address_test.go | 115 +++++++ .../data_source_genesyscloud_routing_skill.go | 4 +- .../resource_genesyscloud_routing_skill.go | 2 +- ...ource_genesyscloud_routing_skill_schema.go | 2 +- ...esyscloud_routing_skill_group_init_test.go | 3 +- ...e_genesyscloud_routing_skill_group_test.go | 12 +- ...enesyscloud_routing_sms_addresses_proxy.go | 3 + ...ce_genesyscloud_routing_wrapupcode_test.go | 4 +- ...nesyscloud_routing_wrapupcode_init_test.go | 4 +- ...ce_genesyscloud_routing_wrapupcode_test.go | 6 +- .../resource_genesyscloud_script_test.go | 6 +- ...cloud_task_management_workbin_init_test.go | 3 +- ...nesyscloud_task_management_workbin_test.go | 10 +- ...esyscloud_task_management_workitem_test.go | 1 - .../data_source_genesyscloud_team_test.go | 4 +- .../team/genesyscloud_team_init_test.go | 4 +- .../team/resource_genesyscloud_team_test.go | 14 +- .../resource_genesyscloud_tf_export_test.go | 13 +- .../tfexporter/tf_exporter_resource_test.go | 5 +- .../user/data_source_genesyscloud_user.go | 26 +- .../user/genesyscloud_user_init_test.go | 3 +- genesyscloud/user/genesyscloud_user_proxy.go | 31 +- .../user/resource_genesyscloud_user_utils.go | 2 - .../genesyscloud_user_roles_init_test.go | 3 +- .../resource_genesyscloud_user_roles_test.go | 8 +- genesyscloud/util/testrunner/testrunner.go | 11 + ...oud_webdeployments_configuration_schema.go | 2 +- ...cloud_webdeployments_configuration_test.go | 16 +- ...loud_webdeployments_configuration_utils.go | 17 ++ go.mod | 8 +- go.sum | 16 +- main.go | 2 + scripts/generate_env.py | 39 +++ 98 files changed, 1499 insertions(+), 847 deletions(-) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 genesyscloud/auth_division/data_source_genesyscloud_auth_division.go rename genesyscloud/{ => auth_division}/data_source_genesyscloud_auth_division_test.go (99%) create mode 100644 genesyscloud/auth_division/genesyscloud_auth_division_init_test.go create mode 100644 genesyscloud/auth_division/genesyscloud_auth_division_proxy.go create mode 100644 genesyscloud/auth_division/resource_genesyscloud_auth_division.go create mode 100644 genesyscloud/auth_division/resource_genesyscloud_auth_division_schema.go rename genesyscloud/{ => auth_division}/resource_genesyscloud_auth_division_test.go (97%) delete mode 100644 genesyscloud/data_source_genesyscloud_auth_division.go delete mode 100644 genesyscloud/resource_genesyscloud_auth_division.go create mode 100755 scripts/generate_env.py diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 000000000..658951ef4 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,11 @@ +FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu + +# Install Genesys Cloud CLI +RUN curl -s https://sdk-cdn.mypurecloud.com/external/go-cli/linux/dl/install.sh | sudo bash + +# Install the Archy CLI +RUN cd ~ && \ + mkdir archy && \ + curl https://sdk-cdn.mypurecloud.com/archy/latest/archy-linux.zip > archy-linux.zip && \ + unzip archy-linux.zip -d ~/archy && \ + cd ~ \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..5bc0c5a08 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,19 @@ +{ + "name": "Terraform and Go", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/terraform:1":{}, + "ghcr.io/devcontainers/features/go:1":{}, + "ghcr.io/devcontainers/features/python": {} + }, + "hostRequirements": { + "cpus": 4, + "memory": "16gb", + "storage": "32gb" + }, + "forwardPorts": [ + 8080 + ] +} \ No newline at end of file diff --git a/GNUmakefile b/GNUmakefile index 4b9cf8322..d77f28939 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -54,6 +54,7 @@ clean: build: mkdir -p ${DIST_DIR} + go mod tidy go build -o ${DIST_DIR} ./... GOOS = $(shell go env GOOS) diff --git a/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go b/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go index 7c2b3ecb7..f461feb73 100644 --- a/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go +++ b/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go @@ -41,7 +41,7 @@ func TestAccResourceArchitectEmergencyGroups(t *testing.T) { // Currently, the ivr resource cannot be registered for these tests because of a cyclic dependency issue. ivrId := "f94e084e-40eb-470b-80d6-0f99cf22d102" if v := os.Getenv("GENESYSCLOUD_REGION"); v == "tca" { - ivrId = "d37d14fe-1e6c-4ed6-a9bb-b6ef0dd8e9cd" + ivrId = "770e3998-11b7-4c96-beb8-215b83201c29" } if !ivrExists(config, ivrId) { diff --git a/genesyscloud/architect_ivr/genesyscloud_architect_ivr_init_test.go b/genesyscloud/architect_ivr/genesyscloud_architect_ivr_init_test.go index 7af70a940..3ba047163 100644 --- a/genesyscloud/architect_ivr/genesyscloud_architect_ivr_init_test.go +++ b/genesyscloud/architect_ivr/genesyscloud_architect_ivr_init_test.go @@ -2,7 +2,7 @@ package architect_ivr import ( "sync" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" didPool "terraform-provider-genesyscloud/genesyscloud/telephony_providers_edges_did_pool" "testing" @@ -33,7 +33,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceArchitectIvrConfig() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() providerResources["genesyscloud_telephony_providers_edges_did_pool"] = didPool.ResourceTelephonyDidPool() } diff --git a/genesyscloud/architect_schedulegroups/genesyscloud_architect_schedulegroups_init_test.go b/genesyscloud/architect_schedulegroups/genesyscloud_architect_schedulegroups_init_test.go index 1991bd939..b2226ef0f 100644 --- a/genesyscloud/architect_schedulegroups/genesyscloud_architect_schedulegroups_init_test.go +++ b/genesyscloud/architect_schedulegroups/genesyscloud_architect_schedulegroups_init_test.go @@ -2,8 +2,8 @@ package architect_schedulegroups import ( "sync" - "terraform-provider-genesyscloud/genesyscloud" architectSchedules "terraform-provider-genesyscloud/genesyscloud/architect_schedules" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -32,7 +32,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources[resourceName] = ResourceArchitectSchedulegroups() providerResources["genesyscloud_architect_schedules"] = architectSchedules.ResourceArchitectSchedules() - providerResources["genesyscloud_auth_division"] = genesyscloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/architect_schedulegroups/resource_genesyscloud_architect_schedulegroups_test.go b/genesyscloud/architect_schedulegroups/resource_genesyscloud_architect_schedulegroups_test.go index 1b2e57d71..92fdcb445 100644 --- a/genesyscloud/architect_schedulegroups/resource_genesyscloud_architect_schedulegroups_test.go +++ b/genesyscloud/architect_schedulegroups/resource_genesyscloud_architect_schedulegroups_test.go @@ -3,8 +3,8 @@ package architect_schedulegroups import ( "fmt" "strings" - gcloud "terraform-provider-genesyscloud/genesyscloud" architectSchedules "terraform-provider-genesyscloud/genesyscloud/architect_schedules" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -132,7 +132,7 @@ func TestAccResourceArchitectScheduleGroups(t *testing.T) { }, { // Create with new division - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + architectSchedules.GenerateArchitectSchedulesResource( // Create Open schedule + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + architectSchedules.GenerateArchitectSchedulesResource( // Create Open schedule schedResource4, openSched2, "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/architect_schedules/genesyscloud_architect_schedules_init_test.go b/genesyscloud/architect_schedules/genesyscloud_architect_schedules_init_test.go index 2530c2d40..9af596032 100644 --- a/genesyscloud/architect_schedules/genesyscloud_architect_schedules_init_test.go +++ b/genesyscloud/architect_schedules/genesyscloud_architect_schedules_init_test.go @@ -2,7 +2,7 @@ package architect_schedules import ( "sync" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -30,7 +30,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceArchitectSchedules() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/architect_schedules/resource_genesyscloud_architect_schedules_test.go b/genesyscloud/architect_schedules/resource_genesyscloud_architect_schedules_test.go index 41821062d..bef797fb1 100644 --- a/genesyscloud/architect_schedules/resource_genesyscloud_architect_schedules_test.go +++ b/genesyscloud/architect_schedules/resource_genesyscloud_architect_schedules_test.go @@ -2,7 +2,7 @@ package architect_schedules import ( "fmt" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -76,7 +76,7 @@ func TestAccResourceArchitectSchedules(t *testing.T) { }, { // Create with new division - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + GenerateArchitectSchedulesResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + GenerateArchitectSchedulesResource( schedResource2, name2, "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_init_test.go b/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_init_test.go index a15abf2e1..04ba55312 100644 --- a/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_init_test.go +++ b/genesyscloud/architect_user_prompt/genesyscloud_architect_user_prompt_init_test.go @@ -2,7 +2,7 @@ package architect_user_prompt import ( "sync" - "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -25,7 +25,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceArchitectUserPrompt() - providerResources["genesyscloud_auth_division"] = genesyscloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go b/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go index db2d2a6d3..9d6fca6ef 100644 --- a/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go +++ b/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go @@ -92,7 +92,6 @@ func ResourceArchitectUserPrompt() *schema.Resource { Description: "Name of the user audio prompt. Note: If the name of the user prompt is changed, this will cause the Prompt to be dropped and recreated with a new ID. This will generate a new ID for the prompt and will invalidate any Architect flows referencing it. ", Type: schema.TypeString, Required: true, - ForceNew: true, }, "description": { Description: "Description of the user audio prompt.", diff --git a/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go b/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go index 2d9c89fed..fb909313c 100644 --- a/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go +++ b/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go @@ -23,6 +23,7 @@ import ( func TestAccResourceUserPromptBasic(t *testing.T) { userPromptResource1 := "test-user_prompt_1" userPromptName1 := "TestUserPrompt_1" + strings.Replace(uuid.NewString(), "-", "", -1) + userPromptName2 := "TestUserPrompt_2" + strings.Replace(uuid.NewString(), "-", "", -1) userPromptDescription1 := "Test description" userPromptResourceLang1 := "en-us" userPromptResourceLang2 := "ja-jp" @@ -78,12 +79,12 @@ func TestAccResourceUserPromptBasic(t *testing.T) { // Update to include TTS message prompt resource Config: GenerateUserPromptResource(&UserPromptStruct{ userPromptResource1, - userPromptName1, + userPromptName2, strconv.Quote(userPromptDescription1), userPromptResources1, }), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "name", userPromptName1), + resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "name", userPromptName2), resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "description", userPromptDescription1), resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "resources.0.language", userPromptResourceLang1), resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "resources.0.tts_string", userPromptResourceTTS1), @@ -93,12 +94,12 @@ func TestAccResourceUserPromptBasic(t *testing.T) { // Update existing language TTS Config: GenerateUserPromptResource(&UserPromptStruct{ userPromptResource1, - userPromptName1, + userPromptName2, strconv.Quote(userPromptDescription1), userPromptResources2, }), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "name", userPromptName1), + resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "name", userPromptName2), resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "description", userPromptDescription1), resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "resources.0.language", userPromptResourceLang1), resource.TestCheckResourceAttr("genesyscloud_architect_user_prompt."+userPromptResource1, "resources.0.tts_string", userPromptResourceTTS2), diff --git a/genesyscloud/auth_division/data_source_genesyscloud_auth_division.go b/genesyscloud/auth_division/data_source_genesyscloud_auth_division.go new file mode 100644 index 000000000..844799e69 --- /dev/null +++ b/genesyscloud/auth_division/data_source_genesyscloud_auth_division.go @@ -0,0 +1,34 @@ +package auth_division + +import ( + "context" + "fmt" + "terraform-provider-genesyscloud/genesyscloud/provider" + "terraform-provider-genesyscloud/genesyscloud/util" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func dataSourceAuthDivisionRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { + sdkConfig := m.(*provider.ProviderMeta).ClientConfig + proxy := getAuthDivisionProxy(sdkConfig) + name := d.Get("name").(string) + + // Query division by name. Retry in case search has not yet indexed the division. + return util.WithRetries(ctx, 15*time.Second, func() *retry.RetryError { + divisionId, resp, retryable, getErr := proxy.getAuthDivisionIdByName(ctx, name) + if getErr != nil && !retryable { + return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Error requesting division %s | error: %s", name, getErr), resp)) + } + if retryable { + return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Error requesting division %s | error: %s", name, getErr), resp)) + } + + d.SetId(divisionId) + return nil + }) +} diff --git a/genesyscloud/data_source_genesyscloud_auth_division_test.go b/genesyscloud/auth_division/data_source_genesyscloud_auth_division_test.go similarity index 99% rename from genesyscloud/data_source_genesyscloud_auth_division_test.go rename to genesyscloud/auth_division/data_source_genesyscloud_auth_division_test.go index be4d3e75e..b9dd6db87 100644 --- a/genesyscloud/data_source_genesyscloud_auth_division_test.go +++ b/genesyscloud/auth_division/data_source_genesyscloud_auth_division_test.go @@ -1,4 +1,4 @@ -package genesyscloud +package auth_division import ( "fmt" diff --git a/genesyscloud/auth_division/genesyscloud_auth_division_init_test.go b/genesyscloud/auth_division/genesyscloud_auth_division_init_test.go new file mode 100644 index 000000000..dd3417c85 --- /dev/null +++ b/genesyscloud/auth_division/genesyscloud_auth_division_init_test.go @@ -0,0 +1,60 @@ +package auth_division + +import ( + "sync" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +/* + The genesyscloud_auth_division_init_test.go file is used to initialize the data sources and resources + used in testing the auth_division resource. +*/ + +// providerDataSources holds a map of all registered datasources +var providerDataSources map[string]*schema.Resource + +// providerResources holds a map of all registered resources +var providerResources map[string]*schema.Resource + +type registerTestInstance struct { + resourceMapMutex sync.RWMutex + datasourceMapMutex sync.RWMutex +} + +// registerTestResources registers all resources used in the tests +func (r *registerTestInstance) registerTestResources() { + r.resourceMapMutex.Lock() + defer r.resourceMapMutex.Unlock() + + providerResources[resourceName] = ResourceAuthDivision() +} + +// registerTestDataSources registers all data sources used in the tests. +func (r *registerTestInstance) registerTestDataSources() { + r.datasourceMapMutex.Lock() + defer r.datasourceMapMutex.Unlock() + + providerDataSources[resourceName] = DataSourceAuthDivision() +} + +// initTestResources initializes all test resources and data sources. +func initTestResources() { + providerDataSources = make(map[string]*schema.Resource) + providerResources = make(map[string]*schema.Resource) + + regInstance := ®isterTestInstance{} + + regInstance.registerTestResources() + regInstance.registerTestDataSources() +} + +// TestMain is a "setup" function called by the testing framework when run the test +func TestMain(m *testing.M) { + // Run setup function before starting the test suite for the auth_division package + initTestResources() + + // Run the test suite for the auth_division package + m.Run() +} diff --git a/genesyscloud/auth_division/genesyscloud_auth_division_proxy.go b/genesyscloud/auth_division/genesyscloud_auth_division_proxy.go new file mode 100644 index 000000000..ca6f76d5c --- /dev/null +++ b/genesyscloud/auth_division/genesyscloud_auth_division_proxy.go @@ -0,0 +1,164 @@ +package auth_division + +import ( + "context" + "fmt" + "log" + rc "terraform-provider-genesyscloud/genesyscloud/resource_cache" + + "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" +) + +var internalProxy *authDivisionProxy + +type getAllAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, name string) (*[]platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) +type createAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, authzDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) +type getAuthDivisionIdByNameFunc func(ctx context.Context, p *authDivisionProxy, name string) (string, *platformclientv2.APIResponse, bool, error) +type getAuthDivisionByIdFunc func(ctx context.Context, p *authDivisionProxy, id string, objectCount, checkCache bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) +type updateAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, id string, authzDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) +type deleteAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, id string, force bool) (*platformclientv2.APIResponse, error) + +type authDivisionProxy struct { + clientConfig *platformclientv2.Configuration + authorizationApi *platformclientv2.AuthorizationApi + createAuthDivisionAttr createAuthDivisionFunc + getAllAuthDivisionAttr getAllAuthDivisionFunc + getAuthDivisionIdByNameAttr getAuthDivisionIdByNameFunc + getAuthDivisionByIdAttr getAuthDivisionByIdFunc + updateAuthDivisionAttr updateAuthDivisionFunc + deleteAuthDivisionAttr deleteAuthDivisionFunc + authDivisionCache rc.CacheInterface[platformclientv2.Authzdivision] +} + +// newAuthDivisionProxy initializes the auth division proxy with all of the data needed to communicate with Genesys Cloud +func newAuthDivisionProxy(clientConfig *platformclientv2.Configuration) *authDivisionProxy { + api := platformclientv2.NewAuthorizationApiWithConfig(clientConfig) + authDivisionCache := rc.NewResourceCache[platformclientv2.Authzdivision]() + return &authDivisionProxy{ + clientConfig: clientConfig, + authorizationApi: api, + createAuthDivisionAttr: createAuthDivisionFn, + getAllAuthDivisionAttr: getAllAuthDivisionFn, + getAuthDivisionIdByNameAttr: getAuthDivisionIdByNameFn, + getAuthDivisionByIdAttr: getAuthDivisionByIdFn, + updateAuthDivisionAttr: updateAuthDivisionFn, + deleteAuthDivisionAttr: deleteAuthDivisionFn, + authDivisionCache: authDivisionCache, + } +} + +// getAuthDivisionProxy acts as a singleton to for the internalProxy. It also ensures +// that we can still proxy our tests by directly setting internalProxy package variable +func getAuthDivisionProxy(clientConfig *platformclientv2.Configuration) *authDivisionProxy { + if internalProxy == nil { + internalProxy = newAuthDivisionProxy(clientConfig) + } + + return internalProxy +} + +func (p *authDivisionProxy) getAllAuthDivision(ctx context.Context, name string) (*[]platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + return p.getAllAuthDivisionAttr(ctx, p, name) +} + +func (p *authDivisionProxy) createAuthDivision(ctx context.Context, authDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + return p.createAuthDivisionAttr(ctx, p, authDivision) +} + +func (p *authDivisionProxy) getAuthDivisionById(ctx context.Context, id string, objectCount, checkCache bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + return p.getAuthDivisionByIdAttr(ctx, p, id, objectCount, checkCache) +} + +func (p *authDivisionProxy) getAuthDivisionIdByName(ctx context.Context, name string) (string, *platformclientv2.APIResponse, bool, error) { + return p.getAuthDivisionIdByNameAttr(ctx, p, name) +} + +func (p *authDivisionProxy) updateAuthDivision(ctx context.Context, id string, authDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + return p.updateAuthDivisionAttr(ctx, p, id, authDivision) +} + +func (p *authDivisionProxy) deleteAuthDivision(ctx context.Context, id string, force bool) (*platformclientv2.APIResponse, error) { + return p.deleteAuthDivisionAttr(ctx, p, id, force) +} + +func getAllAuthDivisionFn(ctx context.Context, p *authDivisionProxy, name string) (*[]platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + var allAuthzDivisions []platformclientv2.Authzdivision + const pageSize = 100 + + authzDivisions, resp, err := p.authorizationApi.GetAuthorizationDivisions(pageSize, 1, "", nil, "", "", false, nil, name) + if err != nil { + return nil, resp, err + } + + if authzDivisions.Entities == nil || len(*authzDivisions.Entities) == 0 { + return &allAuthzDivisions, resp, nil + } + allAuthzDivisions = append(allAuthzDivisions, *authzDivisions.Entities...) + + for pageNum := 2; pageNum <= *authzDivisions.PageCount; pageNum++ { + authzDivisions, resp, err := p.authorizationApi.GetAuthorizationDivisions(pageSize, pageNum, "", nil, "", "", false, nil, name) + if err != nil { + return nil, resp, err + } + + if authzDivisions.Entities == nil || len(*authzDivisions.Entities) == 0 { + break + } + allAuthzDivisions = append(allAuthzDivisions, *authzDivisions.Entities...) + } + + for _, div := range allAuthzDivisions { + rc.SetCache(p.authDivisionCache, *div.Id, div) + } + + return &allAuthzDivisions, resp, nil +} + +// createAuthDivisionFn is an implementation function for creating a Genesys Cloud auth division +func createAuthDivisionFn(ctx context.Context, p *authDivisionProxy, authDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + return p.authorizationApi.PostAuthorizationDivisions(*authDivision) +} + +func getAuthDivisionByIdFn(ctx context.Context, p *authDivisionProxy, id string, objectCount, checkCache bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + if checkCache { + div := rc.GetCacheItem(p.authDivisionCache, id) + if div != nil { + return div, nil, nil + } + } + + return p.authorizationApi.GetAuthorizationDivision(id, objectCount) +} + +func getAuthDivisionIdByNameFn(ctx context.Context, p *authDivisionProxy, name string) (string, *platformclientv2.APIResponse, bool, error) { + authzDivisions, resp, err := getAllAuthDivisionFn(ctx, p, name) + if err != nil { + return "", resp, false, err + } + + if authzDivisions == nil || len(*authzDivisions) == 0 { + return "", resp, true, err + } + + for _, authzDivision := range *authzDivisions { + if *authzDivision.Name == name { + log.Printf("Retrieved the auth division id %s by name %s", *authzDivision.Id, name) + return *authzDivision.Id, resp, false, nil + } + } + + return "", resp, true, fmt.Errorf("unable to find auth division with name %s", name) +} + +func updateAuthDivisionFn(ctx context.Context, p *authDivisionProxy, id string, authDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) { + return p.authorizationApi.PutAuthorizationDivision(id, *authDivision) +} + +func deleteAuthDivisionFn(ctx context.Context, p *authDivisionProxy, id string, force bool) (*platformclientv2.APIResponse, error) { + resp, err := p.authorizationApi.DeleteAuthorizationDivision(id, force) + if err != nil { + return resp, err + } + rc.DeleteCacheItem(p.authDivisionCache, id) + return resp, nil +} diff --git a/genesyscloud/auth_division/resource_genesyscloud_auth_division.go b/genesyscloud/auth_division/resource_genesyscloud_auth_division.go new file mode 100644 index 000000000..b7f15a957 --- /dev/null +++ b/genesyscloud/auth_division/resource_genesyscloud_auth_division.go @@ -0,0 +1,175 @@ +package auth_division + +import ( + "context" + "fmt" + "log" + "terraform-provider-genesyscloud/genesyscloud/provider" + "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/constants" + "terraform-provider-genesyscloud/genesyscloud/util/resourcedata" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" + + "terraform-provider-genesyscloud/genesyscloud/consistency_checker" + + resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" +) + +func getAllAuthDivisions(ctx context.Context, clientConfig *platformclientv2.Configuration) (resourceExporter.ResourceIDMetaMap, diag.Diagnostics) { + resources := make(resourceExporter.ResourceIDMetaMap) + proxy := getAuthDivisionProxy(clientConfig) + + divisions, resp, getErr := proxy.getAllAuthDivision(ctx, "") + if getErr != nil { + return nil, util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to get divisions | error: %s", getErr), resp) + } + + for _, division := range *divisions { + resources[*division.Id] = &resourceExporter.ResourceMeta{Name: *division.Name} + } + + return resources, nil +} + +func createAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sdkConfig := meta.(*provider.ProviderMeta).ClientConfig + proxy := getAuthDivisionProxy(sdkConfig) + + name := d.Get("name").(string) + description := d.Get("description").(string) + home := d.Get("home").(bool) + + if home { + // Home division must already exist, or it cannot be modified + id, diagErr := util.GetHomeDivisionID() + if diagErr != nil { + return diagErr + } + d.SetId(id) + return updateAuthDivision(ctx, d, meta) + } + + log.Printf("Creating division %s", name) + + division, resp, err := proxy.createAuthDivision(ctx, &platformclientv2.Authzdivision{ + Name: &name, + Description: &description, + }) + if err != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to create division %s error: %s", name, err), resp) + } + + d.SetId(*division.Id) + log.Printf("Created division %s %s", name, *division.Id) + return readAuthDivision(ctx, d, meta) +} + +func readAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sdkConfig := meta.(*provider.ProviderMeta).ClientConfig + proxy := getAuthDivisionProxy(sdkConfig) + cc := consistency_checker.NewConsistencyCheck(ctx, d, meta, ResourceAuthDivision(), constants.DefaultConsistencyChecks, resourceName) + + log.Printf("Reading division %s", d.Id()) + + return util.WithRetriesForRead(ctx, d, func() *retry.RetryError { + division, resp, getErr := proxy.getAuthDivisionById(ctx, d.Id(), false, true) + if getErr != nil { + if util.IsStatus404(resp) { + return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Failed to read division %s | error: %s", d.Id(), getErr), resp)) + } + return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Failed to read division %s | error: %s", d.Id(), getErr), resp)) + } + + _ = d.Set("name", *division.Name) + resourcedata.SetNillableValue(d, "description", division.Description) + resourcedata.SetNillableValue(d, "home", division.HomeDivision) + + log.Printf("Read division %s %s", d.Id(), *division.Name) + return cc.CheckState(d) + }) +} + +func updateAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sdkConfig := meta.(*provider.ProviderMeta).ClientConfig + proxy := getAuthDivisionProxy(sdkConfig) + + name := d.Get("name").(string) + description := d.Get("description").(string) + + log.Printf("Updating division %s", name) + + _, resp, err := proxy.updateAuthDivision(ctx, d.Id(), &platformclientv2.Authzdivision{ + Name: &name, + Description: &description, + }) + if err != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to update division %s error: %s", name, err), resp) + } + + log.Printf("Updated division %s", name) + return readAuthDivision(ctx, d, meta) +} + +func deleteAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sdkConfig := meta.(*provider.ProviderMeta).ClientConfig + proxy := getAuthDivisionProxy(sdkConfig) + + name := d.Get("name").(string) + home := d.Get("home").(bool) + + if home { + // Do not delete home division + log.Printf("Not deleting home division %s", name) + return nil + } + + // Sometimes a division with resources in it priorly still thinks it is attached to those resources during a destroy run. + // We're retrying again as those resources should detach completely eventually. + diagErr := util.RetryWhen(util.IsStatus400, func() (*platformclientv2.APIResponse, diag.Diagnostics) { + log.Printf("Deleting division %s", name) + resp, err := proxy.deleteAuthDivision(ctx, d.Id(), false) + if err != nil { + return resp, util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to delete Division %s error: %s", d.Id(), err), resp) + } + return resp, nil + }) + if diagErr != nil { + return diagErr + } + + return util.WithRetries(ctx, 180*time.Second, func() *retry.RetryError { + _, resp, err := proxy.getAuthDivisionById(ctx, d.Id(), false, false) + if err != nil { + if util.IsStatus404(resp) { + // Division deleted + log.Printf("Deleted division %s", name) + return nil + } + return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Error deleting division %s | error:: %s", name, err), resp)) + } + return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Division %s still exists", name), resp)) + }) +} + +func GenerateAuthDivisionBasic(resourceID string, name string) string { + return GenerateAuthDivisionResource(resourceID, name, util.NullValue, util.FalseValue) +} + +func GenerateAuthDivisionResource( + resourceID string, + name string, + description string, + home string) string { + return fmt.Sprintf(`resource "genesyscloud_auth_division" "%s" { + name = "%s" + description = %s + home = %s + } + `, resourceID, name, description, home) +} diff --git a/genesyscloud/auth_division/resource_genesyscloud_auth_division_schema.go b/genesyscloud/auth_division/resource_genesyscloud_auth_division_schema.go new file mode 100644 index 000000000..1aa171fe0 --- /dev/null +++ b/genesyscloud/auth_division/resource_genesyscloud_auth_division_schema.go @@ -0,0 +1,72 @@ +package auth_division + +import ( + "terraform-provider-genesyscloud/genesyscloud/provider" + resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" + registrar "terraform-provider-genesyscloud/genesyscloud/resource_register" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +const resourceName = "genesyscloud_auth_division" + +// SetRegistrar registers all of the resources, datasources and exporters in the package +func SetRegistrar(regInstance registrar.Registrar) { + regInstance.RegisterResource(resourceName, ResourceAuthDivision()) + regInstance.RegisterDataSource(resourceName, DataSourceAuthDivision()) + regInstance.RegisterExporter(resourceName, AuthDivisionExporter()) +} + +func ResourceAuthDivision() *schema.Resource { + return &schema.Resource{ + Description: "Genesys Cloud Authorization Division", + + CreateContext: provider.CreateWithPooledClient(createAuthDivision), + ReadContext: provider.ReadWithPooledClient(readAuthDivision), + UpdateContext: provider.UpdateWithPooledClient(updateAuthDivision), + DeleteContext: provider.DeleteWithPooledClient(deleteAuthDivision), + Importer: &schema.ResourceImporter{ + StateContext: schema.ImportStatePassthroughContext, + }, + SchemaVersion: 1, + Schema: map[string]*schema.Schema{ + "name": { + Description: "Division name.", + Type: schema.TypeString, + Required: true, + }, + "description": { + Description: "Division description.", + Type: schema.TypeString, + Optional: true, + }, + "home": { + Description: "True if this is the home division. This can be set to manage the pre-existing home division. Note: If name attribute is changed, this will cause the auth_division to be dropped and recreated. This will generate a new ID the division. Existing objects with the old division will not be migrated to the new division", + Type: schema.TypeBool, + Optional: true, + ForceNew: true, + }, + }, + } +} + +func DataSourceAuthDivision() *schema.Resource { + return &schema.Resource{ + Description: "Data source for Genesys Cloud Divisions. Select a division by name.", + ReadContext: provider.ReadWithPooledClient(dataSourceAuthDivisionRead), + Schema: map[string]*schema.Schema{ + "name": { + Description: "Division name.", + Type: schema.TypeString, + Required: true, + }, + }, + } +} + +func AuthDivisionExporter() *resourceExporter.ResourceExporter { + return &resourceExporter.ResourceExporter{ + GetResourcesFunc: provider.GetAllWithPooledClient(getAllAuthDivisions), + RefAttrs: map[string]*resourceExporter.RefAttrSettings{}, // No references + } +} diff --git a/genesyscloud/resource_genesyscloud_auth_division_test.go b/genesyscloud/auth_division/resource_genesyscloud_auth_division_test.go similarity index 97% rename from genesyscloud/resource_genesyscloud_auth_division_test.go rename to genesyscloud/auth_division/resource_genesyscloud_auth_division_test.go index 473092ef5..8f13c6628 100644 --- a/genesyscloud/resource_genesyscloud_auth_division_test.go +++ b/genesyscloud/auth_division/resource_genesyscloud_auth_division_test.go @@ -1,10 +1,11 @@ -package genesyscloud +package auth_division import ( "fmt" "log" "strconv" "strings" + "sync" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -16,6 +17,10 @@ import ( "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" ) +var ( + mu sync.Mutex +) + func TestAccResourceAuthDivisionBasic(t *testing.T) { var ( divResource1 = "auth-division1" @@ -231,7 +236,11 @@ func validateHomeDivisionID(divResourceName string) resource.TestCheckFunc { } func cleanupAuthDivision(idPrefix string) { - authAPI := platformclientv2.NewAuthorizationApiWithConfig(sdkConfig) + config, err := provider.AuthorizeSdk() + if err != nil { + return + } + authAPI := platformclientv2.NewAuthorizationApiWithConfig(config) for pageNum := 1; ; pageNum++ { const pageSize = 100 diff --git a/genesyscloud/conversations_messaging_supportedcontent/data_source_genesyscloud_conversations_messaging_supportedcontent.go b/genesyscloud/conversations_messaging_supportedcontent/data_source_genesyscloud_conversations_messaging_supportedcontent.go index 7716d0663..566835769 100644 --- a/genesyscloud/conversations_messaging_supportedcontent/data_source_genesyscloud_conversations_messaging_supportedcontent.go +++ b/genesyscloud/conversations_messaging_supportedcontent/data_source_genesyscloud_conversations_messaging_supportedcontent.go @@ -9,7 +9,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" "terraform-provider-genesyscloud/genesyscloud/provider" rc "terraform-provider-genesyscloud/genesyscloud/resource_cache" @@ -46,43 +45,23 @@ var ( dataSourceSupportedContentCache *rc.DataSourceCache ) -func hydrateSupportedContentCacheFn(c *rc.DataSourceCache) error { +func hydrateSupportedContentCacheFn(c *rc.DataSourceCache, ctx context.Context) error { log.Printf("hydrating cache for data source " + resourceName) - supportContentApi := platformclientv2.NewConversationsApiWithConfig(c.ClientConfig) - - const pageSize = 100 + proxy := getSupportedContentProxy(c.ClientConfig) - supportedContents, _, err := supportContentApi.GetConversationsMessagingSupportedcontent(pageSize, 1) - if err != nil { - return fmt.Errorf("Failed to get supported content: %v", err) + supportedContents, resp, getErr := proxy.getAllSupportedContent(ctx) + if getErr != nil { + return fmt.Errorf("failed to get supported content: %v %v", getErr, resp) } - if supportedContents.Entities == nil || len(*supportedContents.Entities) == 0 { + + if supportedContents == nil || len(*supportedContents) == 0 { return nil } - for _, supportedContent := range *supportedContents.Entities { + for _, supportedContent := range *supportedContents { c.Cache[*supportedContent.Name] = *supportedContent.Id } - - for pageNum := 2; pageNum <= *supportedContents.PageCount; pageNum++ { - supportedContents, _, err := supportContentApi.GetConversationsMessagingSupportedcontent(pageSize, pageNum) - - log.Printf("hydrating cache for data source genesyscloud_conversations_messaging_supportedcontent with page number: %v", pageNum) - if err != nil { - return fmt.Errorf("Failed to get supported content: %v", err) - } - - if supportedContents.Entities == nil || len(*supportedContents.Entities) == 0 { - break - } - - // Add ids to cache - for _, supportedContent := range *supportedContents.Entities { - c.Cache[*supportedContent.Name] = *supportedContent.Id - } - } log.Printf("cache hydration completed for data source " + resourceName) - return nil } diff --git a/genesyscloud/data_source_genesyscloud_auth_division.go b/genesyscloud/data_source_genesyscloud_auth_division.go deleted file mode 100644 index 1bdacb2f1..000000000 --- a/genesyscloud/data_source_genesyscloud_auth_division.go +++ /dev/null @@ -1,59 +0,0 @@ -package genesyscloud - -import ( - "context" - "fmt" - "terraform-provider-genesyscloud/genesyscloud/provider" - "terraform-provider-genesyscloud/genesyscloud/util" - "time" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" - - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" -) - -func dataSourceAuthDivision() *schema.Resource { - return &schema.Resource{ - Description: "Data source for Genesys Cloud Divisions. Select a division by name.", - ReadContext: provider.ReadWithPooledClient(dataSourceAuthDivisionRead), - Schema: map[string]*schema.Schema{ - "name": { - Description: "Division name.", - Type: schema.TypeString, - Required: true, - }, - }, - } -} - -func dataSourceAuthDivisionRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - sdkConfig := m.(*provider.ProviderMeta).ClientConfig - authAPI := platformclientv2.NewAuthorizationApiWithConfig(sdkConfig) - - name := d.Get("name").(string) - - // Query division by name. Retry in case search has not yet indexed the division. - return util.WithRetries(ctx, 15*time.Second, func() *retry.RetryError { - const pageSize = 100 - const pageNum = 1 - divisions, resp, getErr := authAPI.GetAuthorizationDivisions(pageSize, pageNum, "", nil, "", "", false, nil, name) - if getErr != nil { - return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Error requesting division %s | error: %s", name, getErr), resp)) - } - - if divisions.Entities == nil || len(*divisions.Entities) == 0 { - return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("No authorization divisions found with name %s", name), resp)) - } - - for _, division := range *divisions.Entities { - if *division.Name == name { - d.SetId(*division.Id) - return nil - } - } - - return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("No division with name %s found", name), resp)) - }) -} diff --git a/genesyscloud/flow_milestone/genesyscloud_flow_milestone_init_test.go b/genesyscloud/flow_milestone/genesyscloud_flow_milestone_init_test.go index 81b7de4fc..e2a44650c 100644 --- a/genesyscloud/flow_milestone/genesyscloud_flow_milestone_init_test.go +++ b/genesyscloud/flow_milestone/genesyscloud_flow_milestone_init_test.go @@ -2,7 +2,7 @@ package flow_milestone import ( "sync" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -30,7 +30,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceFlowMilestone() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/flow_milestone/resource_genesyscloud_flow_milestone_test.go b/genesyscloud/flow_milestone/resource_genesyscloud_flow_milestone_test.go index eedf346fb..b58d8cdf7 100644 --- a/genesyscloud/flow_milestone/resource_genesyscloud_flow_milestone_test.go +++ b/genesyscloud/flow_milestone/resource_genesyscloud_flow_milestone_test.go @@ -2,7 +2,7 @@ package flow_milestone import ( "fmt" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -59,7 +59,7 @@ func TestAccResourceFlowMilestone(t *testing.T) { }, { // Update with a new division - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + generateFlowMilestoneResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateFlowMilestoneResource( milestoneResource1, name2, "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/flow_outcome/genesyscloud_flow_outcome_init_test.go b/genesyscloud/flow_outcome/genesyscloud_flow_outcome_init_test.go index 66a8575ff..fbb3f2652 100644 --- a/genesyscloud/flow_outcome/genesyscloud_flow_outcome_init_test.go +++ b/genesyscloud/flow_outcome/genesyscloud_flow_outcome_init_test.go @@ -4,9 +4,9 @@ import ( "sync" "testing" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" - gcloud "terraform-provider-genesyscloud/genesyscloud" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) /* @@ -31,7 +31,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceFlowOutcome() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/group/resource_genesyscloud_group_test.go b/genesyscloud/group/resource_genesyscloud_group_test.go index 998fb193d..5645715e9 100644 --- a/genesyscloud/group/resource_genesyscloud_group_test.go +++ b/genesyscloud/group/resource_genesyscloud_group_test.go @@ -106,7 +106,10 @@ func TestAccResourceGroupBasic(t *testing.T) { Destroy: true, }, }, - CheckDestroy: testVerifyGroupsAndUsersDestroyed, + CheckDestroy: func(state *terraform.State) error { + time.Sleep(60 * time.Second) + return testVerifyGroupsAndUsersDestroyed(state) + }, }) } @@ -221,7 +224,7 @@ func TestAccResourceGroupAddresses(t *testing.T) { }, }, CheckDestroy: func(state *terraform.State) error { - time.Sleep(45 * time.Second) + time.Sleep(60 * time.Second) return testVerifyGroupsAndUsersDestroyed(state) }, }) @@ -336,7 +339,7 @@ func TestAccResourceGroupMembers(t *testing.T) { }, }, CheckDestroy: func(state *terraform.State) error { - time.Sleep(45 * time.Second) + time.Sleep(60 * time.Second) return testVerifyGroupsAndUsersDestroyed(state) }, }) diff --git a/genesyscloud/group_roles/genesyscloud_group_roles_init_test.go b/genesyscloud/group_roles/genesyscloud_group_roles_init_test.go index e19cbf5b1..996f90869 100644 --- a/genesyscloud/group_roles/genesyscloud_group_roles_init_test.go +++ b/genesyscloud/group_roles/genesyscloud_group_roles_init_test.go @@ -2,7 +2,7 @@ package group_roles import ( "sync" - "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" "terraform-provider-genesyscloud/genesyscloud/group" "terraform-provider-genesyscloud/genesyscloud/user" @@ -31,7 +31,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_user"] = user.ResourceUser() providerResources["genesyscloud_group"] = group.ResourceGroup() providerResources["genesyscloud_auth_role"] = authRole.ResourceAuthRole() - providerResources["genesyscloud_auth_division"] = genesyscloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // initTestResources initializes all test resources. diff --git a/genesyscloud/group_roles/resource_genesyscloud_group_roles_test.go b/genesyscloud/group_roles/resource_genesyscloud_group_roles_test.go index 54f7fe782..2ac0070de 100644 --- a/genesyscloud/group_roles/resource_genesyscloud_group_roles_test.go +++ b/genesyscloud/group_roles/resource_genesyscloud_group_roles_test.go @@ -6,7 +6,6 @@ import ( "strconv" "strings" "sync" - "terraform-provider-genesyscloud/genesyscloud" "terraform-provider-genesyscloud/genesyscloud/group" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" @@ -17,6 +16,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" "github.com/google/uuid" @@ -83,7 +83,7 @@ func TestAccResourceGroupRolesMembership(t *testing.T) { groupResource1, generateResourceRoles("genesyscloud_auth_role."+roleResource1+".id"), generateResourceRoles("genesyscloud_auth_role."+roleResource2+".id", "genesyscloud_auth_division."+divResource+".id"), - ) + genesyscloud.GenerateAuthDivisionBasic(divResource, divName), + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName), Check: resource.ComposeTestCheckFunc( validateResourceRole("genesyscloud_group_roles."+groupRoleResource, "genesyscloud_auth_role."+roleResource1), validateResourceRole("genesyscloud_group_roles."+groupRoleResource, "genesyscloud_auth_role."+roleResource2, "genesyscloud_auth_division."+divResource), @@ -103,7 +103,7 @@ func TestAccResourceGroupRolesMembership(t *testing.T) { groupRoleResource, groupResource1, generateResourceRoles("genesyscloud_auth_role."+roleResource1+".id", "genesyscloud_auth_division."+divResource+".id"), - ) + genesyscloud.GenerateAuthDivisionBasic(divResource, divName), + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName), Check: resource.ComposeTestCheckFunc( validateResourceRole("genesyscloud_group_roles."+groupRoleResource, "genesyscloud_auth_role."+roleResource1, "genesyscloud_auth_division."+divResource), ), @@ -121,7 +121,7 @@ func TestAccResourceGroupRolesMembership(t *testing.T) { ) + generateGroupRoles( groupRoleResource, groupResource1, - ) + genesyscloud.GenerateAuthDivisionBasic(divResource, divName), + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName), Check: resource.ComposeTestCheckFunc( resource.TestCheckNoResourceAttr("genesyscloud_group_roles."+groupRoleResource, "roles.%"), ), @@ -135,7 +135,7 @@ func TestAccResourceGroupRolesMembership(t *testing.T) { }, }, CheckDestroy: func(state *terraform.State) error { - time.Sleep(45 * time.Second) + time.Sleep(60 * time.Second) return testVerifyGroupsAndUsersDestroyed(state) }, }) diff --git a/genesyscloud/integration_credential/data_source_genesyscloud_integration_credential_test.go b/genesyscloud/integration_credential/data_source_genesyscloud_integration_credential_test.go index f5cf01753..e6d57ca21 100644 --- a/genesyscloud/integration_credential/data_source_genesyscloud_integration_credential_test.go +++ b/genesyscloud/integration_credential/data_source_genesyscloud_integration_credential_test.go @@ -31,6 +31,9 @@ func TestAccDataSourceIntegrationCredential(t *testing.T) { ProviderFactories: provider.GetProviderFactories(providerResources, providerDataSources), Steps: []resource.TestStep{ { + PreConfig: func() { + time.Sleep(30 * time.Second) + }, // Create Config: GenerateCredentialResource( credResource1, diff --git a/genesyscloud/oauth_client/resource_genesyscloud_oauth_client.go b/genesyscloud/oauth_client/resource_genesyscloud_oauth_client.go index 3693ad9a0..0af6392f8 100644 --- a/genesyscloud/oauth_client/resource_genesyscloud_oauth_client.go +++ b/genesyscloud/oauth_client/resource_genesyscloud_oauth_client.go @@ -80,35 +80,104 @@ func createOAuthClient(ctx context.Context, d *schema.ResourceData, meta interfa return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to create oauth client %s error: %s", name, err), resp) } - credentialName := resourcedata.GetNillableValue[string](d, "integration_credential_name") - if credentialName != nil { + createCredential(ctx, d, client, oauthClientProxy) - cred_type := "pureCloudOAuthClient" - results := make(map[string]string) - results["clientId"] = *client.Id - results["clientSecret"] = *client.Secret + d.SetId(*client.Id) + log.Printf("Created oauth client %s %s", name, *client.Id) + return readOAuthClient(ctx, d, meta) +} - createCredential := platformclientv2.Credential{ - Name: credentialName, - VarType: &platformclientv2.Credentialtype{ - Name: &cred_type, - }, - CredentialFields: &results, +func readOAuthClient(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sdkConfig := meta.(*provider.ProviderMeta).ClientConfig + oAuthProxy := GetOAuthClientProxy(sdkConfig) + cc := consistency_checker.NewConsistencyCheck(ctx, d, meta, ResourceOAuthClient(), constants.DefaultConsistencyChecks, resourceName) + + log.Printf("Reading oauth client %s", d.Id()) + + return util.WithRetriesForRead(ctx, d, func() *retry.RetryError { + client, resp, getErr := oAuthProxy.getOAuthClient(ctx, d.Id()) + if getErr != nil { + if util.IsStatus404(resp) { + return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Failed to read oauth client %s | error: %s", d.Id(), getErr), resp)) + } + return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Failed to read oauth client %s | error: %s", d.Id(), getErr), resp)) } - credential, resp, err := oauthClientProxy.createIntegrationClient(ctx, createCredential) + _ = d.Set("name", *client.Name) - if err != nil { - return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to create credential %s error: %s", name, err), resp) + resourcedata.SetNillableValue(d, "description", client.Description) + resourcedata.SetNillableValue(d, "access_token_validity_seconds", client.AccessTokenValiditySeconds) + resourcedata.SetNillableValue(d, "authorized_grant_type", client.AuthorizedGrantType) + resourcedata.SetNillableValue(d, "state", client.State) + + if client.RegisteredRedirectUri != nil { + _ = d.Set("registered_redirect_uris", lists.StringListToSet(*client.RegisteredRedirectUri)) + } else { + _ = d.Set("registered_redirect_uris", nil) } - _ = d.Set("integration_credential_id", *credential.Id) - _ = d.Set("integration_credential_name", *credential.Name) + if client.Scope != nil { + _ = d.Set("scopes", lists.StringListToSet(*client.Scope)) + } else { + _ = d.Set("scopes", nil) + } + + if client.RoleDivisions != nil { + _ = d.Set("roles", flattenOAuthRoles(*client.RoleDivisions)) + } else { + _ = d.Set("roles", nil) + } + + log.Printf("Read oauth client %s %s", d.Id(), *client.Name) + return cc.CheckState(d) + }) +} + +func updateOAuthClient(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return cascadeUpdateOAuthClient(ctx, d, meta, true) +} + +func deleteOAuthClient(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sdkConfig := meta.(*provider.ProviderMeta).ClientConfig + oauthClientProxy := GetOAuthClientProxy(sdkConfig) + + // check if there is a integration credential to delete + deleteCredential(ctx, d, oauthClientProxy) + + name := d.Get("name").(string) + + log.Printf("Deleting oauth client %s", name) + + // The client state must be set to inactive before deleting + _ = d.Set("state", "inactive") + diagErr := cascadeUpdateOAuthClient(ctx, d, meta, false) + if diagErr != nil { + return diagErr } - d.SetId(*client.Id) - log.Printf("Created oauth client %s %s", name, *client.Id) - return readOAuthClient(ctx, d, meta) + resp, err := oauthClientProxy.deleteOAuthClient(ctx, d.Id()) + if err != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to delete oauth client %s error: %s", name, err), resp) + } + + return util.WithRetries(ctx, 30*time.Second, func() *retry.RetryError { + oauthClient, resp, err := oauthClientProxy.getOAuthClient(ctx, d.Id()) + if err != nil { + if util.IsStatus404(resp) { + // OAuth client deleted + log.Printf("Deleted OAuth client %s", d.Id()) + return nil + } + return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Error deleting OAuth client %s | error: %s", d.Id(), err), resp)) + } + + if oauthClient.State != nil && *oauthClient.State == "deleted" { + // OAuth client deleted + log.Printf("Deleted OAuth client %s", d.Id()) + return nil + } + return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("OAuth client %s still exists", d.Id()), resp)) + }) } func updateTerraformUserWithRole(ctx context.Context, sdkConfig *platformclientv2.Configuration, addedRoles *[]platformclientv2.Roledivision) diag.Diagnostics { @@ -162,53 +231,7 @@ func updateTerraformUserWithRole(ctx context.Context, sdkConfig *platformclientv return nil } -func readOAuthClient(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - sdkConfig := meta.(*provider.ProviderMeta).ClientConfig - oAuthProxy := GetOAuthClientProxy(sdkConfig) - cc := consistency_checker.NewConsistencyCheck(ctx, d, meta, ResourceOAuthClient(), constants.DefaultConsistencyChecks, resourceName) - - log.Printf("Reading oauth client %s", d.Id()) - - return util.WithRetriesForRead(ctx, d, func() *retry.RetryError { - client, resp, getErr := oAuthProxy.getOAuthClient(ctx, d.Id()) - if getErr != nil { - if util.IsStatus404(resp) { - return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Failed to read oauth client %s | error: %s", d.Id(), getErr), resp)) - } - return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Failed to read oauth client %s | error: %s", d.Id(), getErr), resp)) - } - - _ = d.Set("name", *client.Name) - - resourcedata.SetNillableValue(d, "description", client.Description) - resourcedata.SetNillableValue(d, "access_token_validity_seconds", client.AccessTokenValiditySeconds) - resourcedata.SetNillableValue(d, "authorized_grant_type", client.AuthorizedGrantType) - resourcedata.SetNillableValue(d, "state", client.State) - - if client.RegisteredRedirectUri != nil { - _ = d.Set("registered_redirect_uris", lists.StringListToSet(*client.RegisteredRedirectUri)) - } else { - _ = d.Set("registered_redirect_uris", nil) - } - - if client.Scope != nil { - _ = d.Set("scopes", lists.StringListToSet(*client.Scope)) - } else { - _ = d.Set("scopes", nil) - } - - if client.RoleDivisions != nil { - _ = d.Set("roles", flattenOAuthRoles(*client.RoleDivisions)) - } else { - _ = d.Set("roles", nil) - } - - log.Printf("Read oauth client %s %s", d.Id(), *client.Name) - return cc.CheckState(d) - }) -} - -func updateOAuthClient(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { +func cascadeUpdateOAuthClient(ctx context.Context, d *schema.ResourceData, meta interface{}, dealIntegrationFlag bool) diag.Diagnostics { name := d.Get("name").(string) description := d.Get("description").(string) tokenSeconds := d.Get("access_token_validity_seconds").(int) @@ -224,7 +247,7 @@ func updateOAuthClient(ctx context.Context, d *schema.ResourceData, meta interfa } log.Printf("Updating oauth client %s", name) - _, resp, err := oauthClientProxy.updateOAuthClient(ctx, d.Id(), platformclientv2.Oauthclientrequest{ + client, resp, err := oauthClientProxy.updateOAuthClient(ctx, d.Id(), platformclientv2.Oauthclientrequest{ Name: &name, Description: &description, AccessTokenValiditySeconds: &tokenSeconds, @@ -239,55 +262,112 @@ func updateOAuthClient(ctx context.Context, d *schema.ResourceData, meta interfa } log.Printf("Updated oauth client %s", name) + + // check if there is a integration credential to update/create + if dealIntegrationFlag { + credentialId := resourcedata.GetNillableValue[string](d, "integration_credential_id") + if credentialId != nil { + currentCredential, resp, getErr := oauthClientProxy.getIntegrationCredential(ctx, *credentialId) + if getErr != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to get integration credential %s %s", *credentialId, getErr), resp) + } + + if currentCredential != nil { + credentialName := resourcedata.GetNillableValue[string](d, "integration_credential_name") + if credentialName != nil { + updateCredential(ctx, d, client, oauthClientProxy) + } else { + deleteCredential(ctx, d, oauthClientProxy) + } + } + } else { + createCredential(ctx, d, client, oauthClientProxy) + } + } + return readOAuthClient(ctx, d, meta) } -func deleteOAuthClient(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - sdkConfig := meta.(*provider.ProviderMeta).ClientConfig - oauthClientProxy := GetOAuthClientProxy(sdkConfig) +func createCredential(ctx context.Context, d *schema.ResourceData, client *platformclientv2.Oauthclient, oauthClientProxy *oauthClientProxy) diag.Diagnostics { + credentialName := resourcedata.GetNillableValue[string](d, "integration_credential_name") + if credentialName != nil { - // check if there is a integration credential to delete - credentialId := resourcedata.GetNillableValue[string](d, "integration_credential_id") - if credentialId != nil { - currentCredential, resp, getErr := oauthClientProxy.getIntegrationCredential(ctx, d.Id()) - if getErr == nil { - _, err := oauthClientProxy.deleteIntegrationCredential(ctx, d.Id()) - return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to delete integration credential %s %s", *currentCredential.Name, err), resp) + credType := "pureCloudOAuthClient" + results := make(map[string]string) + results["clientId"] = *client.Id + results["clientSecret"] = *client.Secret + + createCredential := platformclientv2.Credential{ + Name: credentialName, + VarType: &platformclientv2.Credentialtype{ + Name: &credType, + }, + CredentialFields: &results, } - } - name := d.Get("name").(string) + log.Printf("Creating Integration Credential client %s", *credentialName) + credential, resp, err := oauthClientProxy.createIntegrationClient(ctx, createCredential) - log.Printf("Deleting oauth client %s", name) + if err != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to create credential %s error: %s", *credentialName, err), resp) + } - // The client state must be set to inactive before deleting - _ = d.Set("state", "inactive") - diagErr := updateOAuthClient(ctx, d, meta) - if diagErr != nil { - return diagErr - } + _ = d.Set("integration_credential_id", *credential.Id) + _ = d.Set("integration_credential_name", *credential.Name) - resp, err := oauthClientProxy.deleteOAuthClient(ctx, d.Id()) - if err != nil { - return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to delete oauth client %s error: %s", name, err), resp) + log.Printf("Created Integration Credential client %s", *credentialName) } + return nil +} + +func updateCredential(ctx context.Context, d *schema.ResourceData, client *platformclientv2.Oauthclient, oauthClientProxy *oauthClientProxy) diag.Diagnostics { + credentialId := resourcedata.GetNillableValue[string](d, "integration_credential_id") + credentialName := resourcedata.GetNillableValue[string](d, "integration_credential_name") + if credentialName != nil { + credType := "pureCloudOAuthClient" + results := make(map[string]string) + results["clientId"] = *client.Id + results["clientSecret"] = *client.Secret + + updateCred := platformclientv2.Credential{ + Name: credentialName, + VarType: &platformclientv2.Credentialtype{ + Name: &credType, + }, + CredentialFields: &results, + } + log.Printf("Updating Integration Credential client %s", *credentialName) + credential, resp, err := oauthClientProxy.updateIntegrationClient(ctx, *credentialId, updateCred) - return util.WithRetries(ctx, 30*time.Second, func() *retry.RetryError { - oauthClient, resp, err := oauthClientProxy.getOAuthClient(ctx, d.Id()) if err != nil { - if util.IsStatus404(resp) { - // OAuth client deleted - log.Printf("Deleted OAuth client %s", d.Id()) - return nil - } - return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Error deleting OAuth client %s | error: %s", d.Id(), err), resp)) + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to update credential %s error: %s", *credentialName, err), resp) } - if oauthClient.State != nil && *oauthClient.State == "deleted" { - // OAuth client deleted - log.Printf("Deleted OAuth client %s", d.Id()) - return nil + _ = d.Set("integration_credential_id", *credential.Id) + _ = d.Set("integration_credential_name", *credential.Name) + + log.Printf("Updated Integration Credential client %s", *credentialName) + } + return nil +} + +func deleteCredential(ctx context.Context, d *schema.ResourceData, oauthClientProxy *oauthClientProxy) diag.Diagnostics { + credentialId := resourcedata.GetNillableValue[string](d, "integration_credential_id") + + if credentialId != nil { + log.Printf("Deleting integration credential %s", *credentialId) + _, resp, getErr := oauthClientProxy.getIntegrationCredential(ctx, *credentialId) + if getErr != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to get integration credential %s %s", *credentialId, getErr), resp) } - return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("OAuth client %s still exists", d.Id()), resp)) - }) + _, err := oauthClientProxy.deleteIntegrationCredential(ctx, *credentialId) + if err != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to delete integration credential %s %s", *credentialId, err), resp) + } + log.Printf("Deleted Integration Credential client %s", *credentialId) + + _ = d.Set("integration_credential_id", nil) + _ = d.Set("integration_credential_name", nil) + } + return nil } diff --git a/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_proxy.go b/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_proxy.go index 673342dc7..15f46a053 100644 --- a/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_proxy.go +++ b/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_proxy.go @@ -2,10 +2,9 @@ package oauth_client import ( "context" + "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" "log" "sync" - - "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" ) var internalProxy *oauthClientProxy @@ -22,6 +21,8 @@ type getIntegrationCredentialFunc func(context.Context, *oauthClientProxy, strin type getAllOauthClientsFunc func(ctx context.Context, o *oauthClientProxy) (*[]platformclientv2.Oauthclientlisting, *platformclientv2.APIResponse, error) type deleteOAuthClientFunc func(context.Context, *oauthClientProxy, string) (*platformclientv2.APIResponse, error) type deleteIntegrationCredentialFunc func(context.Context, *oauthClientProxy, string) (*platformclientv2.APIResponse, error) +type updateIntegrationClientFunc func(context.Context, *oauthClientProxy, string, platformclientv2.Credential) (*platformclientv2.Credentialinfo, *platformclientv2.APIResponse, error) +type getAllIntegrationCredentialFunc func(ctx context.Context, o *oauthClientProxy) (*[]platformclientv2.Credentialinfo, *platformclientv2.APIResponse, error) type oauthClientProxy struct { clientConfig *platformclientv2.Configuration @@ -33,6 +34,7 @@ type oauthClientProxy struct { createdClientCacheLock sync.Mutex createOAuthClientAttr createOAuthClientFunc createIntegrationCredentialAttr createIntegrationClientFunc + updateIntegrationCredentialAttr updateIntegrationClientFunc getOAuthClientAttr getOAuthClientFunc getParentOAuthClientTokenAttr getParentOAuthClientTokenFunc getTerraformUserAttr getTerraformUserFunc @@ -72,6 +74,7 @@ func newOAuthClientProxy(clientConfig *platformclientv2.Configuration) *oauthCli updateTerraformUserRolesAttr: updateTerraformUserRolesFn, getIntegrationCredentialAttr: getIntegrationClientFn, + updateIntegrationCredentialAttr: updateIntegrationClientFn, getAllOauthClientsAttr: getAllOauthClientsFn, deleteOAuthClientAttr: deleteOAuthClientFn, deleteIntegrationCredentialAttr: deleteIntegrationClientFn, @@ -152,6 +155,10 @@ func (o *oauthClientProxy) createIntegrationClient(ctx context.Context, credenti return o.createIntegrationCredentialAttr(ctx, o, credential) } +func (o *oauthClientProxy) updateIntegrationClient(ctx context.Context, id string, credential platformclientv2.Credential) (*platformclientv2.Credentialinfo, *platformclientv2.APIResponse, error) { + return o.updateIntegrationCredentialAttr(ctx, o, id, credential) +} + func (o *oauthClientProxy) updateOAuthClient(ctx context.Context, id string, client platformclientv2.Oauthclientrequest) (*platformclientv2.Oauthclient, *platformclientv2.APIResponse, error) { return o.updateOAuthClientAttr(ctx, o, id, client) } @@ -194,6 +201,10 @@ func getIntegrationClientFn(ctx context.Context, o *oauthClientProxy, id string) return o.integrationApi.GetIntegrationsCredential(id) } +func updateIntegrationClientFn(ctx context.Context, o *oauthClientProxy, id string, credential platformclientv2.Credential) (*platformclientv2.Credentialinfo, *platformclientv2.APIResponse, error) { + return o.integrationApi.PutIntegrationsCredential(id, credential) +} + func deleteOAuthClientFn(ctx context.Context, o *oauthClientProxy, id string) (*platformclientv2.APIResponse, error) { return o.oAuthApi.DeleteOauthClient(id) diff --git a/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_schema.go b/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_schema.go index 6feb899fb..4ec92749e 100644 --- a/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_schema.go +++ b/genesyscloud/oauth_client/resource_genesyscloud_oauth_client_schema.go @@ -109,7 +109,6 @@ func ResourceOAuthClient() *schema.Resource { Description: "Optionally, a Name of a Integration Credential (with credential type pureCloudOAuthClient) to be created using this new OAuth Client.", Type: schema.TypeString, Optional: true, - Computed: true, }, }, } diff --git a/genesyscloud/outbound_callanalysisresponseset/genesyscloud_outbound_callanalysisresponseset_init_test.go b/genesyscloud/outbound_callanalysisresponseset/genesyscloud_outbound_callanalysisresponseset_init_test.go index 3fd1a0048..7ae6c6f77 100644 --- a/genesyscloud/outbound_callanalysisresponseset/genesyscloud_outbound_callanalysisresponseset_init_test.go +++ b/genesyscloud/outbound_callanalysisresponseset/genesyscloud_outbound_callanalysisresponseset_init_test.go @@ -4,6 +4,7 @@ import ( "sync" gcloud "terraform-provider-genesyscloud/genesyscloud" flow "terraform-provider-genesyscloud/genesyscloud/architect_flow" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" obContactList "terraform-provider-genesyscloud/genesyscloud/outbound_contact_list" routingWrapupcode "terraform-provider-genesyscloud/genesyscloud/routing_wrapupcode" "testing" @@ -36,7 +37,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_outbound_contact_list"] = obContactList.ResourceOutboundContactList() providerResources["genesyscloud_flow"] = flow.ResourceArchitectFlow() providerResources["genesyscloud_routing_wrapupcode"] = routingWrapupcode.ResourceRoutingWrapupCode() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go b/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go index aef164a3e..e543fc206 100644 --- a/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go +++ b/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go @@ -3,8 +3,8 @@ package outbound_callanalysisresponseset import ( "fmt" "strconv" - gcloud "terraform-provider-genesyscloud/genesyscloud" "terraform-provider-genesyscloud/genesyscloud/architect_flow" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" obContactList "terraform-provider-genesyscloud/genesyscloud/outbound_contact_list" "terraform-provider-genesyscloud/genesyscloud/provider" routingWrapupcode "terraform-provider-genesyscloud/genesyscloud/routing_wrapupcode" @@ -134,7 +134,7 @@ func TestAccResourceOutboundCallAnalysisResponseSet(t *testing.T) { "cell", util.NullValue, ), - ) + gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapupCodeResourceId, wrapupCodeName, "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go b/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go index fcaa79734..a92306372 100644 --- a/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go +++ b/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go @@ -2,11 +2,11 @@ package outbound_campaign import ( "fmt" - gcloud "terraform-provider-genesyscloud/genesyscloud" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" edgeSite "terraform-provider-genesyscloud/genesyscloud/telephony_providers_edges_site" "github.com/google/uuid" @@ -34,7 +34,7 @@ func TestAccDataSourceOutboundCampaign(t *testing.T) { Steps: []resource.TestStep{ { Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + GenerateOutboundCampaignBasic( resourceId, campaignName, diff --git a/genesyscloud/outbound_campaign/genesyscloud_outbound_campaign_init_test.go b/genesyscloud/outbound_campaign/genesyscloud_outbound_campaign_init_test.go index cdf10db23..5cc3639f6 100644 --- a/genesyscloud/outbound_campaign/genesyscloud_outbound_campaign_init_test.go +++ b/genesyscloud/outbound_campaign/genesyscloud_outbound_campaign_init_test.go @@ -5,6 +5,7 @@ import ( "sync" gcloud "terraform-provider-genesyscloud/genesyscloud" flow "terraform-provider-genesyscloud/genesyscloud/architect_flow" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/location" obCallableTimeset "terraform-provider-genesyscloud/genesyscloud/outbound_callabletimeset" obResponseSet "terraform-provider-genesyscloud/genesyscloud/outbound_callanalysisresponseset" @@ -61,7 +62,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_outbound_contactlistfilter"] = obContactListFilter.ResourceOutboundContactlistfilter() providerResources["genesyscloud_outbound_ruleset"] = outboundRuleset.ResourceOutboundRuleset() providerResources["genesyscloud_outbound_callabletimeset"] = obCallableTimeset.ResourceOutboundCallabletimeset() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go b/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go index ec5d2e5ec..45cfe4ade 100644 --- a/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go +++ b/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go @@ -14,7 +14,7 @@ import ( "testing" "time" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" obCallableTimeset "terraform-provider-genesyscloud/genesyscloud/outbound_callabletimeset" obResponseSet "terraform-provider-genesyscloud/genesyscloud/outbound_callanalysisresponseset" obContactList "terraform-provider-genesyscloud/genesyscloud/outbound_contact_list" @@ -104,7 +104,7 @@ func TestAccResourceOutboundCampaignBasic(t *testing.T) { ) + obDnclist.GenerateOutboundDncListBasic( dncListResourceId, "dnc list "+uuid.NewString(), - ) + gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapupCodeResourceId, "tf wrapup code"+uuid.NewString(), "genesyscloud_auth_division."+divResource+".id", @@ -454,7 +454,7 @@ func TestAccResourceOutboundCampaignCampaignStatus(t *testing.T) { "home", strconv.Quote("Home"), ), - ) + gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapupcodeResourceId, "tf wrapup code"+uuid.NewString(), "genesyscloud_auth_division."+divResource+".id", @@ -642,7 +642,7 @@ func TestAccResourceOutboundCampaignStatusOn(t *testing.T) { // Create resources for outbound campaign { Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + GenerateReferencedResourcesForOutboundCampaignTests( contactListResourceId, "", @@ -668,7 +668,7 @@ func TestAccResourceOutboundCampaignStatusOn(t *testing.T) { // the destroy command takes care of turning it off before deleting. { Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + GenerateOutboundCampaignBasic( resourceId, name, diff --git a/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go b/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go index 29b526a8e..cb55f99fa 100644 --- a/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go +++ b/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go @@ -4,7 +4,7 @@ import ( "fmt" "math/rand" "strconv" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" outboundCampaign "terraform-provider-genesyscloud/genesyscloud/outbound_campaign" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" @@ -72,7 +72,7 @@ func TestAccDataSourceOutboundCampaignRule(t *testing.T) { Steps: []resource.TestStep{ { Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + campaign1Resource + campaign2Resource + generateOutboundCampaignRule( diff --git a/genesyscloud/outbound_campaignrule/genesyscloud_outbound_campaignrule_init_test.go b/genesyscloud/outbound_campaignrule/genesyscloud_outbound_campaignrule_init_test.go index 67be78625..b7157081c 100644 --- a/genesyscloud/outbound_campaignrule/genesyscloud_outbound_campaignrule_init_test.go +++ b/genesyscloud/outbound_campaignrule/genesyscloud_outbound_campaignrule_init_test.go @@ -4,6 +4,7 @@ import ( "sync" gcloud "terraform-provider-genesyscloud/genesyscloud" flow "terraform-provider-genesyscloud/genesyscloud/architect_flow" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/location" obResponseSet "terraform-provider-genesyscloud/genesyscloud/outbound_callanalysisresponseset" outboundCampaign "terraform-provider-genesyscloud/genesyscloud/outbound_campaign" @@ -46,7 +47,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_location"] = location.ResourceLocation() providerResources["genesyscloud_telephony_providers_edges_site"] = edgeSite.ResourceSite() providerResources["genesyscloud_outbound_sequence"] = outboundSequence.ResourceOutboundSequence() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go b/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go index 2e4353e1e..0f116f08d 100644 --- a/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go +++ b/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go @@ -3,11 +3,11 @@ package outbound_campaignrule import ( "fmt" "math/rand" - "path/filepath" "strings" outboundSequence "terraform-provider-genesyscloud/genesyscloud/outbound_sequence" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -597,7 +597,7 @@ func generateCampaignResourceForCampaignRuleTests( carResourceId, carName string) string { - fullyQualifiedPath, _ := filepath.Abs(flowFilePath) + fullyQualifiedPath, _ := testrunner.NormalizePath(flowFilePath) return fmt.Sprintf(` resource "genesyscloud_outbound_campaign" "%s" { diff --git a/genesyscloud/outbound_ruleset/resource_genesyscloud_outbound_ruleset.go b/genesyscloud/outbound_ruleset/resource_genesyscloud_outbound_ruleset.go index 4ee3d942a..18ed8e29a 100644 --- a/genesyscloud/outbound_ruleset/resource_genesyscloud_outbound_ruleset.go +++ b/genesyscloud/outbound_ruleset/resource_genesyscloud_outbound_ruleset.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "terraform-provider-genesyscloud/genesyscloud/provider" + routingSkill "terraform-provider-genesyscloud/genesyscloud/routing_skill" "terraform-provider-genesyscloud/genesyscloud/util" "terraform-provider-genesyscloud/genesyscloud/util/constants" "time" @@ -35,13 +36,46 @@ func getAllAuthOutboundRuleset(ctx context.Context, clientConfig *platformclient return nil, util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to get rulesets error: %s", rsErr), resp) } - for _, ruleset := range *rulesets { + // DEVTOOLING-319: filters rule sets by removing the ones that reference skills that no longer exist in GC + skillMap, skillErr := routingSkill.GetAllRoutingSkills(ctx, clientConfig) + if skillErr != nil { + return nil, util.BuildDiagnosticError(resourceName, fmt.Sprintf("Failed to get skill resources"), fmt.Errorf("%v", skillErr)) + } + filteredRuleSets, filterErr := filterOutboundRulesets(*rulesets, skillMap) + if filterErr != nil { + return nil, util.BuildDiagnosticError(resourceName, fmt.Sprintf("Failed to filter outbound rulesets"), fmt.Errorf("%v", filterErr)) + } + + for _, ruleset := range filteredRuleSets { log.Printf("Dealing with ruleset id : %s", *ruleset.Id) resources[*ruleset.Id] = &resourceExporter.ResourceMeta{Name: *ruleset.Name} } return resources, nil } +// filterOutboundRulesets filters rule sets by removing the ones that reference skills that no longer exist in GC +func filterOutboundRulesets(ruleSets []platformclientv2.Ruleset, skillMap resourceExporter.ResourceIDMetaMap) ([]platformclientv2.Ruleset, diag.Diagnostics) { + var filteredRuleSets []platformclientv2.Ruleset + log.Printf("Filtering outbound rule sets") + + for _, ruleSet := range ruleSets { + var foundDeleted bool + for _, rule := range *ruleSet.Rules { + if doesRuleActionsRefDeletedSkill(rule, skillMap) || doesRuleConditionsRefDeletedSkill(rule, skillMap) { + foundDeleted = true + break + } + } + if foundDeleted { + log.Printf("Removing ruleset id '%s'", *ruleSet.Id) + } else { + // No references to a deleted skill in the ruleset, keep it + filteredRuleSets = append(filteredRuleSets, ruleSet) + } + } + return filteredRuleSets, nil +} + // createOutboundRuleset is used by the outbound_ruleset resource to create Genesys cloud outbound_ruleset func createOutboundRuleset(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { sdkConfig := meta.(*provider.ProviderMeta).ClientConfig diff --git a/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go b/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go index 1b816bc7d..b7525f1b6 100644 --- a/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go +++ b/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go @@ -2,12 +2,12 @@ package outbound_sequence import ( "fmt" - gcloud "terraform-provider-genesyscloud/genesyscloud" outboundCampaign "terraform-provider-genesyscloud/genesyscloud/outbound_campaign" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" edgeSite "terraform-provider-genesyscloud/genesyscloud/telephony_providers_edges_site" "github.com/google/uuid" @@ -45,7 +45,7 @@ func TestAccDataSourceOutboundSequence(t *testing.T) { Steps: []resource.TestStep{ { Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + outboundCampaign.GenerateOutboundCampaignBasic( campaignResourceId, campaignName, diff --git a/genesyscloud/outbound_sequence/genesyscloud_outbound_sequence_init_test.go b/genesyscloud/outbound_sequence/genesyscloud_outbound_sequence_init_test.go index 0abe0642a..9293d437b 100644 --- a/genesyscloud/outbound_sequence/genesyscloud_outbound_sequence_init_test.go +++ b/genesyscloud/outbound_sequence/genesyscloud_outbound_sequence_init_test.go @@ -14,6 +14,8 @@ import ( edgeSite "terraform-provider-genesyscloud/genesyscloud/telephony_providers_edges_site" "testing" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" + "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -52,7 +54,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_flow"] = flow.ResourceArchitectFlow() providerResources["genesyscloud_outbound_callanalysisresponseset"] = obResponseSet.ResourceOutboundCallanalysisresponseset() providerResources["genesyscloud_location"] = location.ResourceLocation() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() providerResources["genesyscloud_telephony_providers_edges_site"] = edgeSite.ResourceSite() } diff --git a/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go b/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go index 9063c7cc9..b376b9c50 100644 --- a/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go +++ b/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go @@ -3,12 +3,12 @@ package outbound_sequence import ( "fmt" "strconv" - gcloud "terraform-provider-genesyscloud/genesyscloud" outboundCampaign "terraform-provider-genesyscloud/genesyscloud/outbound_campaign" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" edgeSite "terraform-provider-genesyscloud/genesyscloud/telephony_providers_edges_site" "github.com/google/uuid" @@ -49,7 +49,7 @@ func TestAccResourceOutboundSequence(t *testing.T) { { // Create Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + outboundCampaign.GenerateOutboundCampaignBasic( campaignResourceId, campaignName, @@ -83,7 +83,7 @@ func TestAccResourceOutboundSequence(t *testing.T) { { // Update with a new name, status and repeat value Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + outboundCampaign.GenerateOutboundCampaignBasic( campaignResourceId, campaignName, @@ -157,7 +157,7 @@ func TestAccResourceOutboundSequenceStatus(t *testing.T) { { // Create Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + outboundCampaign.GenerateOutboundCampaignBasic( campaignResourceId, campaignName, @@ -191,7 +191,7 @@ func TestAccResourceOutboundSequenceStatus(t *testing.T) { { // Update with a new name, status and repeat value Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + outboundCampaign.GenerateOutboundCampaignBasic( campaignResourceId, campaignName, @@ -226,7 +226,7 @@ func TestAccResourceOutboundSequenceStatus(t *testing.T) { // Turn back on to test that the sequence can be turned back on again, and ensure that the destroy // command can handle destroying a sequence that is "on" Config: `data "genesyscloud_auth_division_home" "home" {}` + "\n" + - gcloud.GenerateAuthDivisionBasic(divResourceId, divName) + + authDivision.GenerateAuthDivisionBasic(divResourceId, divName) + outboundCampaign.GenerateOutboundCampaignBasic( campaignResourceId, campaignName, diff --git a/genesyscloud/outbound_wrapupcode_mappings/genesyscloud_wrapupcode_mappings_init_test.go b/genesyscloud/outbound_wrapupcode_mappings/genesyscloud_wrapupcode_mappings_init_test.go index 4b59bc12f..d80a446c3 100644 --- a/genesyscloud/outbound_wrapupcode_mappings/genesyscloud_wrapupcode_mappings_init_test.go +++ b/genesyscloud/outbound_wrapupcode_mappings/genesyscloud_wrapupcode_mappings_init_test.go @@ -2,7 +2,7 @@ package outbound_wrapupcode_mappings import ( "sync" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" routingWrapupcode "terraform-provider-genesyscloud/genesyscloud/routing_wrapupcode" "testing" @@ -24,7 +24,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources[resourceName] = ResourceOutboundWrapUpCodeMappings() providerResources["genesyscloud_routing_wrapupcode"] = routingWrapupcode.ResourceRoutingWrapupCode() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } diff --git a/genesyscloud/outbound_wrapupcode_mappings/resource_genesyscloud_outbound_wrapupcode_mappings_test.go b/genesyscloud/outbound_wrapupcode_mappings/resource_genesyscloud_outbound_wrapupcode_mappings_test.go index 591c8bbc6..defc0bdcf 100644 --- a/genesyscloud/outbound_wrapupcode_mappings/resource_genesyscloud_outbound_wrapupcode_mappings_test.go +++ b/genesyscloud/outbound_wrapupcode_mappings/resource_genesyscloud_outbound_wrapupcode_mappings_test.go @@ -4,7 +4,7 @@ import ( "fmt" "strconv" "strings" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" routingWrapupcode "terraform-provider-genesyscloud/genesyscloud/routing_wrapupcode" "terraform-provider-genesyscloud/genesyscloud/util" @@ -37,7 +37,7 @@ func TestAccResourceOutboundWrapupCodeMapping(t *testing.T) { PreConfig: func() { time.Sleep(30 * time.Second) }, - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapupCode1ResourceId, wrapupCode1Name, "genesyscloud_auth_division."+divResource+".id", @@ -67,7 +67,7 @@ resource "genesyscloud_outbound_wrapupcodemappings" "%s" { PreConfig: func() { time.Sleep(30 * time.Second) }, - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCode1ResourceId, wrapupCode1Name, "genesyscloud_auth_division."+divResource+".id") + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCode2ResourceId, wrapupCode2Name, "genesyscloud_auth_division."+divResource+".id") + fmt.Sprintf(` @@ -94,7 +94,7 @@ resource "genesyscloud_outbound_wrapupcodemappings" "%s" { }, // Update { - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCode1ResourceId, wrapupCode1Name, "genesyscloud_auth_division."+divResource+".id") + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCode2ResourceId, wrapupCode2Name, "genesyscloud_auth_division."+divResource+".id") + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCode3ResourceId, wrapupCode3Name, "genesyscloud_auth_division."+divResource+".id") + diff --git a/genesyscloud/recording_media_retention_policy/data_source_genesyscloud_recording_media_retention_policy_test.go b/genesyscloud/recording_media_retention_policy/data_source_genesyscloud_recording_media_retention_policy_test.go index 7876b07f9..f34c0ac42 100644 --- a/genesyscloud/recording_media_retention_policy/data_source_genesyscloud_recording_media_retention_policy_test.go +++ b/genesyscloud/recording_media_retention_policy/data_source_genesyscloud_recording_media_retention_policy_test.go @@ -6,6 +6,7 @@ import ( "strconv" "strings" "terraform-provider-genesyscloud/genesyscloud/architect_flow" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" "terraform-provider-genesyscloud/genesyscloud/provider" routingEmailDomain "terraform-provider-genesyscloud/genesyscloud/routing_email_domain" @@ -175,7 +176,7 @@ func TestAccDataSourceRecordingMediaRetentionPolicy(t *testing.T) { gcloud.GenerateSurveyFormResource(surveyFormResource1, &surveyFormResourceBody) + integration.GenerateIntegrationResource(integrationResource1, strconv.Quote(integrationIntendedState), strconv.Quote(integrationType), "") + routingLanguage.GenerateRoutingLanguageResource(languageResource1, languageName) + - gcloud.GenerateAuthDivisionBasic(divResource, divName) + + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCodeResource1, wrapupCodeName, "genesyscloud_auth_division."+divResource+".id") + architect_flow.GenerateFlowResource( flowResource1, diff --git a/genesyscloud/recording_media_retention_policy/genesyscloud_recording_media_retention_policy_init_test.go b/genesyscloud/recording_media_retention_policy/genesyscloud_recording_media_retention_policy_init_test.go index dd80bfcaf..a68690f8c 100644 --- a/genesyscloud/recording_media_retention_policy/genesyscloud_recording_media_retention_policy_init_test.go +++ b/genesyscloud/recording_media_retention_policy/genesyscloud_recording_media_retention_policy_init_test.go @@ -13,6 +13,7 @@ import ( routingQueue "terraform-provider-genesyscloud/genesyscloud/routing_queue" routingWrapupcode "terraform-provider-genesyscloud/genesyscloud/routing_wrapupcode" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/user" userRoles "terraform-provider-genesyscloud/genesyscloud/user_roles" "testing" @@ -59,7 +60,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_routing_language"] = routingLanguage.ResourceRoutingLanguage() providerResources["genesyscloud_routing_wrapupcode"] = routingWrapupcode.ResourceRoutingWrapupCode() providerResources["genesyscloud_flow"] = flow.ResourceArchitectFlow() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go b/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go index 34b59c913..a158180f4 100644 --- a/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go +++ b/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go @@ -8,6 +8,7 @@ import ( "strconv" "strings" "terraform-provider-genesyscloud/genesyscloud/architect_flow" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" "terraform-provider-genesyscloud/genesyscloud/provider" routingEmailDomain "terraform-provider-genesyscloud/genesyscloud/routing_email_domain" @@ -961,7 +962,7 @@ func TestAccResourceMediaRetentionPolicyBasic(t *testing.T) { gcloud.GenerateSurveyFormResource(surveyFormResource1, &surveyFormResourceBody) + integration.GenerateIntegrationResource(integrationResource1, strconv.Quote(integrationIntendedState), strconv.Quote(integrationType), "") + routinglanguage.GenerateRoutingLanguageResource(languageResource1, languageName) + - gcloud.GenerateAuthDivisionBasic(divResource, divName) + + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCodeResource1, wrapupCodeName, "genesyscloud_auth_division."+divResource+".id") + architect_flow.GenerateFlowResource( flowResource1, @@ -1069,7 +1070,7 @@ func TestAccResourceMediaRetentionPolicyBasic(t *testing.T) { gcloud.GenerateSurveyFormResource(surveyFormResource1, &surveyFormResourceBody) + integration.GenerateIntegrationResource(integrationResource1, strconv.Quote(integrationIntendedState), strconv.Quote(integrationType), "") + routinglanguage.GenerateRoutingLanguageResource(languageResource1, languageName) + - gcloud.GenerateAuthDivisionBasic(divResource, divName) + + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCodeResource1, wrapupCodeName, "genesyscloud_auth_division."+divResource+".id") + architect_flow.GenerateFlowResource( flowResource1, @@ -1177,7 +1178,7 @@ func TestAccResourceMediaRetentionPolicyBasic(t *testing.T) { gcloud.GenerateSurveyFormResource(surveyFormResource1, &surveyFormResourceBody) + integration.GenerateIntegrationResource(integrationResource1, strconv.Quote(integrationIntendedState), strconv.Quote(integrationType), "") + routinglanguage.GenerateRoutingLanguageResource(languageResource1, languageName) + - gcloud.GenerateAuthDivisionBasic(divResource, divName) + + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCodeResource1, wrapupCodeName, "genesyscloud_auth_division."+divResource+".id") + architect_flow.GenerateFlowResource( flowResource1, @@ -1285,7 +1286,7 @@ func TestAccResourceMediaRetentionPolicyBasic(t *testing.T) { gcloud.GenerateSurveyFormResource(surveyFormResource1, &surveyFormResourceBody) + integration.GenerateIntegrationResource(integrationResource1, strconv.Quote(integrationIntendedState), strconv.Quote(integrationType), "") + routinglanguage.GenerateRoutingLanguageResource(languageResource1, languageName) + - gcloud.GenerateAuthDivisionBasic(divResource, divName) + + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource(wrapupCodeResource1, wrapupCodeName, "genesyscloud_auth_division."+divResource+".id") + architect_flow.GenerateFlowResource( flowResource1, diff --git a/genesyscloud/resource_cache/datasource_cache.go b/genesyscloud/resource_cache/datasource_cache.go index 231874c09..e74706bf9 100644 --- a/genesyscloud/resource_cache/datasource_cache.go +++ b/genesyscloud/resource_cache/datasource_cache.go @@ -16,12 +16,14 @@ type DataSourceCache struct { Cache map[string]string mutex sync.RWMutex ClientConfig *platformclientv2.Configuration - HydrateCacheFunc func(*DataSourceCache) error + HydrateCacheFunc func(*DataSourceCache, context.Context) error getApiFunc func(*DataSourceCache, string, context.Context) (string, diag.Diagnostics) } // NewDataSourceCache creates a new data source cache -func NewDataSourceCache(clientConfig *platformclientv2.Configuration, hydrateFn func(*DataSourceCache) error, getFn func(*DataSourceCache, string, context.Context) (string, diag.Diagnostics)) *DataSourceCache { +func NewDataSourceCache(clientConfig *platformclientv2.Configuration, + hydrateFn func(*DataSourceCache, context.Context) error, + getFn func(*DataSourceCache, string, context.Context) (string, diag.Diagnostics)) *DataSourceCache { return &DataSourceCache{ Cache: make(map[string]string), @@ -31,11 +33,11 @@ func NewDataSourceCache(clientConfig *platformclientv2.Configuration, hydrateFn } } -func (c *DataSourceCache) HydrateCacheIfEmpty() error { +func (c *DataSourceCache) HydrateCacheIfEmpty(ctx context.Context) error { c.mutex.Lock() defer c.mutex.Unlock() if c.isEmpty() { - if err := c.hydrateCache(); err != nil { + if err := c.hydrateCache(ctx); err != nil { return err } } @@ -43,8 +45,8 @@ func (c *DataSourceCache) HydrateCacheIfEmpty() error { } // Hydrate the cache with updated values. -func (c *DataSourceCache) hydrateCache() error { - return c.HydrateCacheFunc(c) +func (c *DataSourceCache) hydrateCache(ctx context.Context) error { + return c.HydrateCacheFunc(c, ctx) } // Adds or updates a cache entry @@ -91,7 +93,7 @@ func (c *DataSourceCache) Get(key string) (val string, isFound bool) { func RetrieveId(cache *DataSourceCache, resourceName, key string, ctx context.Context) (string, diag.Diagnostics) { - if err := cache.HydrateCacheIfEmpty(); err != nil { + if err := cache.HydrateCacheIfEmpty(ctx); err != nil { return "", diag.FromErr(err) } diff --git a/genesyscloud/resource_genesyscloud_auth_division.go b/genesyscloud/resource_genesyscloud_auth_division.go deleted file mode 100644 index 59374191b..000000000 --- a/genesyscloud/resource_genesyscloud_auth_division.go +++ /dev/null @@ -1,230 +0,0 @@ -package genesyscloud - -import ( - "context" - "fmt" - "log" - "terraform-provider-genesyscloud/genesyscloud/provider" - "terraform-provider-genesyscloud/genesyscloud/util" - "terraform-provider-genesyscloud/genesyscloud/util/constants" - "time" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" - - "terraform-provider-genesyscloud/genesyscloud/consistency_checker" - - resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" - - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" -) - -func getAllAuthDivisions(_ context.Context, clientConfig *platformclientv2.Configuration) (resourceExporter.ResourceIDMetaMap, diag.Diagnostics) { - resources := make(resourceExporter.ResourceIDMetaMap) - authAPI := platformclientv2.NewAuthorizationApiWithConfig(clientConfig) - - for pageNum := 1; ; pageNum++ { - const pageSize = 100 - divisions, resp, getErr := authAPI.GetAuthorizationDivisions(pageSize, pageNum, "", nil, "", "", false, nil, "") - if getErr != nil { - return nil, util.BuildAPIDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Failed to get page of divisions error: %s", getErr), resp) - } - - if divisions.Entities == nil || len(*divisions.Entities) == 0 { - break - } - - for _, division := range *divisions.Entities { - resources[*division.Id] = &resourceExporter.ResourceMeta{Name: *division.Name} - } - } - - return resources, nil -} - -func AuthDivisionExporter() *resourceExporter.ResourceExporter { - return &resourceExporter.ResourceExporter{ - GetResourcesFunc: provider.GetAllWithPooledClient(getAllAuthDivisions), - RefAttrs: map[string]*resourceExporter.RefAttrSettings{}, // No references - } -} - -func ResourceAuthDivision() *schema.Resource { - return &schema.Resource{ - Description: "Genesys Cloud Authorization Division", - - CreateContext: provider.CreateWithPooledClient(createAuthDivision), - ReadContext: provider.ReadWithPooledClient(readAuthDivision), - UpdateContext: provider.UpdateWithPooledClient(updateAuthDivision), - DeleteContext: provider.DeleteWithPooledClient(deleteAuthDivision), - Importer: &schema.ResourceImporter{ - StateContext: schema.ImportStatePassthroughContext, - }, - SchemaVersion: 1, - Schema: map[string]*schema.Schema{ - "name": { - Description: "Division name.", - Type: schema.TypeString, - Required: true, - }, - "description": { - Description: "Division description.", - Type: schema.TypeString, - Optional: true, - }, - "home": { - Description: "True if this is the home division. This can be set to manage the pre-existing home division. Note: If name attribute is changed, this will cause the auth_division to be dropped and recreated. This will generate a new ID the division. Existing objects with the old division will not be migrated to the new division", - Type: schema.TypeBool, - Optional: true, - ForceNew: true, - }, - }, - } -} - -func createAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - name := d.Get("name").(string) - description := d.Get("description").(string) - home := d.Get("home").(bool) - - sdkConfig := meta.(*provider.ProviderMeta).ClientConfig - authAPI := platformclientv2.NewAuthorizationApiWithConfig(sdkConfig) - - if home { - // Home division must already exist, or it cannot be modified - id, diagErr := util.GetHomeDivisionID() - if diagErr != nil { - return diagErr - } - d.SetId(id) - return updateAuthDivision(ctx, d, meta) - } - - log.Printf("Creating division %s", name) - division, resp, err := authAPI.PostAuthorizationDivisions(platformclientv2.Authzdivision{ - Name: &name, - Description: &description, - }) - if err != nil { - return util.BuildAPIDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Failed to create division %s error: %s", name, err), resp) - } - - d.SetId(*division.Id) - log.Printf("Created division %s %s", name, *division.Id) - return readAuthDivision(ctx, d, meta) -} - -func readAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - sdkConfig := meta.(*provider.ProviderMeta).ClientConfig - authAPI := platformclientv2.NewAuthorizationApiWithConfig(sdkConfig) - cc := consistency_checker.NewConsistencyCheck(ctx, d, meta, ResourceAuthDivision(), constants.DefaultConsistencyChecks, "genesyscloud_auth_division") - - log.Printf("Reading division %s", d.Id()) - - return util.WithRetriesForRead(ctx, d, func() *retry.RetryError { - division, resp, getErr := authAPI.GetAuthorizationDivision(d.Id(), false) - if getErr != nil { - if util.IsStatus404(resp) { - return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Failed to read division %s | error: %s", d.Id(), getErr), resp)) - } - return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Failed to read division %s | error: %s", d.Id(), getErr), resp)) - } - - d.Set("name", *division.Name) - - if division.Description != nil { - d.Set("description", *division.Description) - } else { - d.Set("description", nil) - } - - if division.HomeDivision != nil { - d.Set("home", *division.HomeDivision) - } else { - d.Set("home", nil) - } - - log.Printf("Read division %s %s", d.Id(), *division.Name) - return cc.CheckState(d) - }) -} - -func updateAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - name := d.Get("name").(string) - description := d.Get("description").(string) - - sdkConfig := meta.(*provider.ProviderMeta).ClientConfig - authAPI := platformclientv2.NewAuthorizationApiWithConfig(sdkConfig) - - log.Printf("Updating division %s", name) - _, resp, err := authAPI.PutAuthorizationDivision(d.Id(), platformclientv2.Authzdivision{ - Name: &name, - Description: &description, - }) - if err != nil { - return util.BuildAPIDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Failed to update division %s error: %s", name, err), resp) - } - - log.Printf("Updated division %s", name) - - return readAuthDivision(ctx, d, meta) -} - -func deleteAuthDivision(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - name := d.Get("name").(string) - home := d.Get("home").(bool) - - sdkConfig := meta.(*provider.ProviderMeta).ClientConfig - authAPI := platformclientv2.NewAuthorizationApiWithConfig(sdkConfig) - - if home { - // Do not delete home division - log.Printf("Not deleting home division %s", name) - return nil - } - - // Sometimes a division with resources in it priorly still thinks it is attached to those resources during a destroy run. - // We're retrying again as those resources should detach completely eventually. - diagErr := util.RetryWhen(util.IsStatus400, func() (*platformclientv2.APIResponse, diag.Diagnostics) { - log.Printf("Deleting division %s", name) - resp, err := authAPI.DeleteAuthorizationDivision(d.Id(), false) - if err != nil { - return resp, util.BuildAPIDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Failed to delete Division %s error: %s", d.Id(), err), resp) - } - return resp, nil - }) - if diagErr != nil { - return diagErr - } - - return util.WithRetries(ctx, 180*time.Second, func() *retry.RetryError { - _, resp, err := authAPI.GetAuthorizationDivision(d.Id(), false) - if err != nil { - if util.IsStatus404(resp) { - // Division deleted - log.Printf("Deleted division %s", name) - return nil - } - return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Error deleting division %s | error:: %s", name, err), resp)) - } - return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError("genesyscloud_auth_division", fmt.Sprintf("Division %s still exists", name), resp)) - }) -} - -func GenerateAuthDivisionBasic(resourceID string, name string) string { - return GenerateAuthDivisionResource(resourceID, name, util.NullValue, util.FalseValue) -} - -func GenerateAuthDivisionResource( - resourceID string, - name string, - description string, - home string) string { - return fmt.Sprintf(`resource "genesyscloud_auth_division" "%s" { - name = "%s" - description = %s - home = %s - } - `, resourceID, name, description, home) -} diff --git a/genesyscloud/resource_genesyscloud_init.go b/genesyscloud/resource_genesyscloud_init.go index 847f4b620..3b3159bfe 100644 --- a/genesyscloud/resource_genesyscloud_init.go +++ b/genesyscloud/resource_genesyscloud_init.go @@ -13,7 +13,6 @@ func SetRegistrar(l registrar.Registrar) { func registerDataSources(l registrar.Registrar) { - l.RegisterDataSource("genesyscloud_auth_division", dataSourceAuthDivision()) l.RegisterDataSource("genesyscloud_auth_division_home", DataSourceAuthDivisionHome()) l.RegisterDataSource("genesyscloud_journey_action_map", dataSourceJourneyActionMap()) l.RegisterDataSource("genesyscloud_journey_action_template", dataSourceJourneyActionTemplate()) @@ -30,7 +29,6 @@ func registerDataSources(l registrar.Registrar) { func registerResources(l registrar.Registrar) { - l.RegisterResource("genesyscloud_auth_division", ResourceAuthDivision()) l.RegisterResource("genesyscloud_journey_action_map", ResourceJourneyActionMap()) l.RegisterResource("genesyscloud_journey_action_template", ResourceJourneyActionTemplate()) l.RegisterResource("genesyscloud_journey_outcome", ResourceJourneyOutcome()) @@ -49,7 +47,6 @@ func registerResources(l registrar.Registrar) { } func registerExporters(l registrar.Registrar) { - l.RegisterExporter("genesyscloud_auth_division", AuthDivisionExporter()) l.RegisterExporter("genesyscloud_journey_action_map", JourneyActionMapExporter()) l.RegisterExporter("genesyscloud_journey_action_template", JourneyActionTemplateExporter()) l.RegisterExporter("genesyscloud_journey_outcome", JourneyOutcomeExporter()) diff --git a/genesyscloud/resource_genesyscloud_init_test.go b/genesyscloud/resource_genesyscloud_init_test.go index 6cfeda4d6..fc038396e 100644 --- a/genesyscloud/resource_genesyscloud_init_test.go +++ b/genesyscloud/resource_genesyscloud_init_test.go @@ -6,6 +6,7 @@ import ( "terraform-provider-genesyscloud/genesyscloud/architect_flow" archScheduleGroup "terraform-provider-genesyscloud/genesyscloud/architect_schedulegroups" architectSchedules "terraform-provider-genesyscloud/genesyscloud/architect_schedules" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" cMessagingSettings "terraform-provider-genesyscloud/genesyscloud/conversations_messaging_settings" "terraform-provider-genesyscloud/genesyscloud/group" "terraform-provider-genesyscloud/genesyscloud/location" @@ -49,7 +50,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_group"] = group.ResourceGroup() providerResources["genesyscloud_routing_queue"] = routingQueue.ResourceRoutingQueue() providerResources["genesyscloud_location"] = location.ResourceLocation() - providerResources["genesyscloud_auth_division"] = ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() providerResources["genesyscloud_journey_action_map"] = ResourceJourneyActionMap() providerResources["genesyscloud_journey_action_template"] = ResourceJourneyActionTemplate() providerResources["genesyscloud_journey_outcome"] = ResourceJourneyOutcome() @@ -86,7 +87,7 @@ func (r *registerTestInstance) registerTestDataSources() { providerDataSources["genesyscloud_group"] = group.DataSourceGroup() providerDataSources["genesyscloud_routing_queue"] = routingQueue.DataSourceRoutingQueue() providerDataSources["genesyscloud_auth_division_home"] = DataSourceAuthDivisionHome() - providerDataSources["genesyscloud_auth_division"] = dataSourceAuthDivision() + providerDataSources["genesyscloud_auth_division"] = authDivision.DataSourceAuthDivision() providerDataSources["genesyscloud_auth_division_home"] = DataSourceAuthDivisionHome() providerDataSources["genesyscloud_journey_action_map"] = dataSourceJourneyActionMap() providerDataSources["genesyscloud_journey_action_template"] = dataSourceJourneyActionTemplate() diff --git a/genesyscloud/responsemanagement_responseasset/genesyscloud_responsemanagement_responseasset_init_test.go b/genesyscloud/responsemanagement_responseasset/genesyscloud_responsemanagement_responseasset_init_test.go index ca0306c97..0063d068f 100644 --- a/genesyscloud/responsemanagement_responseasset/genesyscloud_responsemanagement_responseasset_init_test.go +++ b/genesyscloud/responsemanagement_responseasset/genesyscloud_responsemanagement_responseasset_init_test.go @@ -1,10 +1,12 @@ package responsemanagement_responseasset import ( - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "sync" gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) /* @@ -28,7 +30,7 @@ func (r *registerTestInstance) registerTestResources() { r.resourceMapMutex.Lock() defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceResponseManagementResponseAsset() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go index 8d222e26e..8c437077d 100644 --- a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go +++ b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go @@ -4,7 +4,7 @@ import ( "fmt" "log" "path/filepath" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -43,7 +43,7 @@ func TestAccResourceResponseManagementResponseAsset(t *testing.T) { }, { Config: GenerateResponseManagementResponseAssetResource(resourceId, fullPath2, "genesyscloud_auth_division."+divisionResourceId+".id") + - gcloud.GenerateAuthDivisionBasic(divisionResourceId, divisionName), + authDivision.GenerateAuthDivisionBasic(divisionResourceId, divisionName), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("genesyscloud_responsemanagement_responseasset."+resourceId, "filename", fullPath2), resource.TestCheckResourceAttrPair("genesyscloud_responsemanagement_responseasset."+resourceId, "division_id", diff --git a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go index 99ff7e844..47601337c 100644 --- a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go +++ b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go @@ -9,6 +9,7 @@ import ( "strings" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util/files" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" ) func responsemanagementResponseassetResolver(responseAssetId, exportDirectory, subDirectory string, configMap map[string]interface{}, meta interface{}) error { @@ -40,7 +41,8 @@ func responsemanagementResponseassetResolver(responseAssetId, exportDirectory, s } func GenerateResponseManagementResponseAssetResource(resourceId string, fileName string, divisionId string) string { - fullyQualifiedPath, _ := filepath.Abs(fileName) + fullyQualifiedPath, _ := testrunner.NormalizePath(fileName) + return fmt.Sprintf(` resource "genesyscloud_responsemanagement_responseasset" "%s" { filename = "%s" diff --git a/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route.go b/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route.go index 94eb565b6..ad571d648 100644 --- a/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route.go +++ b/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route.go @@ -157,7 +157,7 @@ func readRoutingEmailRoute(ctx context.Context, d *schema.ResourceData, meta int _ = d.Set("reply_email_address", nil) } - log.Printf("Read routing email route %s %v", d.Id(), route.Name) + log.Printf("Read routing email route %s", d.Id()) return cc.CheckState(d) }) } diff --git a/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route_test.go b/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route_test.go index 0e5e3024d..0ee27b244 100644 --- a/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route_test.go +++ b/genesyscloud/routing_email_route/resource_genesyscloud_routing_email_route_test.go @@ -3,9 +3,7 @@ package routing_email_route import ( "fmt" "log" - "regexp" "strings" - "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/provider" routingEmailDomain "terraform-provider-genesyscloud/genesyscloud/routing_email_domain" routingLanguage "terraform-provider-genesyscloud/genesyscloud/routing_language" @@ -24,142 +22,32 @@ import ( ) func TestAccResourceRoutingEmailRoute(t *testing.T) { - var ( - domainRes = "routing-domain1" - domainId = fmt.Sprintf("terraformroutes.%s.com", strings.Replace(uuid.NewString(), "-", "", -1)) - queueResource = "email-queue" - queueName = "Terraform Email Queue-" + uuid.NewString() - langResource = "email-lang" - langName = "tflang" + uuid.NewString() - skillResource = "test-skill1" - skillName = "Terraform Skill" + uuid.NewString() - routeRes = "email-route1" - routeRes2 = "email-route2" - routePattern1 = "terraform1" - routePattern2 = "terraform2" - routePattern3 = "terraform3" - fromEmail1 = "terraform1@test.com" - fromEmail2 = "terraform2@test.com" - fromName1 = "John Terraform" - fromName2 = "Jane Terraform" - priority1 = "1" - bccEmail1 = "test1@" + domainId - bccEmail2 = "test2@" + domainId - emailFlowResource1 = "test_flow1" - emailFlowFilePath1 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml" + domainRes = "routing-domain1" + domainId = fmt.Sprintf("terraformroutes.%s.com", strings.Replace(uuid.NewString(), "-", "", -1)) + queueResource = "email-queue" + queueName = "Terraform Email Queue-" + uuid.NewString() + langResource = "email-lang" + langName = "tflang" + uuid.NewString() + skillResource = "test-skill1" + skillName = "Terraform Skill" + uuid.NewString() + routeRes = "email-route1" + routeRes2 = "email-route2" + routePattern1 = "terraform1" + routePattern2 = "terraform2" + routePattern3 = "terraform3" + fromEmail1 = "terraform1@test.com" + fromEmail2 = "terraform2@test.com" + fromName1 = "John Terraform" + fromName2 = "Jane Terraform" + priority1 = "1" + bccEmail1 = "test1@" + domainId + bccEmail2 = "test2@" + domainId ) CleanupRoutingEmailDomains() - // Test error configs - resource.Test(t, resource.TestCase{ - PreCheck: func() { util.TestAccPreCheck(t) }, - ProviderFactories: provider.GetProviderFactories(providerResources, nil), - Steps: []resource.TestStep{ - { - // Confirm mutual exclusivity of reply_email_address and from_email - Config: routingEmailDomain.GenerateRoutingEmailDomainResource( - domainRes, - domainId, - util.FalseValue, - util.NullValue, - ) + GenerateRoutingEmailRouteResource( - routeRes+"expectFail", - "genesyscloud_routing_email_domain."+domainRes+".id", - routePattern1, - fromName1, - fmt.Sprintf("from_email = \"%s\"", fromEmail1), - generateRoutingReplyEmail( - false, - "genesyscloud_routing_email_domain."+domainRes+".id", - "genesyscloud_routing_email_route."+routeRes2+".id", - ), - ) + GenerateRoutingEmailRouteResource( // Second route to use as the reply_email_address - routeRes2, - "genesyscloud_routing_email_domain."+domainRes+".id", - routePattern3, - fromName1, - fmt.Sprintf("from_email = \"%s\"", fromEmail1), - generateRoutingAutoBcc(fromName2, bccEmail2), - ), - ExpectError: regexp.MustCompile("Conflicting configuration arguments"), - PreConfig: func() { - // Wait for a specified duration - to avoid getting non empty plan - time.Sleep(30 * time.Second) - }, - }, - { - // Confirm mutual exclusivity of reply_email_address and auto_bcc - Config: routingEmailDomain.GenerateRoutingEmailDomainResource( - domainRes, - domainId, - util.FalseValue, - util.NullValue, - ) + GenerateRoutingEmailRouteResource( - routeRes+"expectFail", - "genesyscloud_routing_email_domain."+domainRes+".id", - routePattern1, - fromName1, - generateRoutingAutoBcc(fromName1, bccEmail1), - generateRoutingReplyEmail( - false, - "genesyscloud_routing_email_domain."+domainRes+".id", - "genesyscloud_routing_email_route."+routeRes2+".id", - ), - ) + GenerateRoutingEmailRouteResource( // Second route to use as the reply_email_address - routeRes2, - "genesyscloud_routing_email_domain."+domainRes+".id", - routePattern3, - fromName1, - fmt.Sprintf("from_email = \"%s\"", fromEmail1), - generateRoutingAutoBcc(fromName2, bccEmail2), - ), - ExpectError: regexp.MustCompile("Conflicting configuration arguments"), - }, - { - // Confirm mutual exclusivity of flow_id and queue_id - Config: routingEmailDomain.GenerateRoutingEmailDomainResource( - domainRes, - domainId, - util.FalseValue, - util.NullValue, - ) + routingQueue.GenerateRoutingQueueResourceBasic( - queueResource, - queueName, - ) + routingLanguage.GenerateRoutingLanguageResource( - langResource, - langName, - ) + routingSkill.GenerateRoutingSkillResource( - skillResource, - skillName, - ) + architect_flow.GenerateFlowResource( - emailFlowResource1, - emailFlowFilePath1, - "", - false, - ) + GenerateRoutingEmailRouteResource( - routeRes+"expectFail", - "genesyscloud_routing_email_domain."+domainRes+".id", - routePattern1, - fromName1, - fmt.Sprintf("from_email = \"%s\"", fromEmail1), - generateRoutingEmailQueueSettings( - "genesyscloud_routing_queue."+queueResource+".id", - priority1, - "genesyscloud_routing_language."+langResource+".id", - "genesyscloud_routing_skill."+skillResource+".id", - ), - fmt.Sprintf("flow_id = genesyscloud_flow.%s.id", emailFlowResource1), - ), - ExpectError: regexp.MustCompile("Conflicting configuration arguments"), - }, - }, - CheckDestroy: testVerifyRoutingEmailRouteDestroyed, - }) - CleanupRoutingEmailDomains() domainId = fmt.Sprintf("terraformroutes.%s.com", strings.Replace(uuid.NewString(), "-", "", -1)) - // Standard acceptance tests resource.Test(t, resource.TestCase{ PreCheck: func() { util.TestAccPreCheck(t) }, ProviderFactories: provider.GetProviderFactories(providerResources, nil), @@ -196,7 +84,6 @@ func TestAccResourceRoutingEmailRoute(t *testing.T) { util.FalseValue, util.NullValue, ) + routingQueue.GenerateRoutingQueueResourceBasic( - queueResource, queueName, ) + routingLanguage.GenerateRoutingLanguageResource( @@ -329,6 +216,7 @@ func TestAccResourceRoutingEmailRoute(t *testing.T) { "genesyscloud_routing_email_domain."+domainRes+".id", routePattern2, fromName2, + generateRoutingAutoBcc(fromName2, bccEmail2), generateRoutingReplyEmail( false, "genesyscloud_routing_email_domain."+domainRes+".id", @@ -358,6 +246,8 @@ func TestAccResourceRoutingEmailRoute(t *testing.T) { resource.TestCheckResourceAttr("genesyscloud_routing_email_route."+routeRes, "priority", priority1), resource.TestCheckResourceAttr("genesyscloud_routing_email_route."+routeRes, "reply_email_address.0.domain_id", domainId), resource.TestCheckResourceAttr("genesyscloud_routing_email_route."+routeRes, "reply_email_address.0.domain_id", domainId), + resource.TestCheckResourceAttr("genesyscloud_routing_email_route."+routeRes, "auto_bcc.0.name", fromName2), + resource.TestCheckResourceAttr("genesyscloud_routing_email_route."+routeRes, "auto_bcc.0.email", bccEmail2), resource.TestCheckResourceAttrPair("genesyscloud_routing_email_route."+routeRes, "reply_email_address.0.route_id", "genesyscloud_routing_email_route."+routeRes2, "id"), resource.TestCheckResourceAttr("genesyscloud_routing_email_route."+routeRes2, "auto_bcc.0.name", fromName2), resource.TestCheckResourceAttr("genesyscloud_routing_email_route."+routeRes2, "auto_bcc.0.email", bccEmail2), diff --git a/genesyscloud/routing_queue/data_source_genesyscloud_routing_queue.go b/genesyscloud/routing_queue/data_source_genesyscloud_routing_queue.go index 08fa4fb5b..7ed966b21 100644 --- a/genesyscloud/routing_queue/data_source_genesyscloud_routing_queue.go +++ b/genesyscloud/routing_queue/data_source_genesyscloud_routing_queue.go @@ -15,7 +15,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" ) var ( @@ -48,36 +47,23 @@ func normalizeQueueName(queueName string) string { } // hydrateRoutingQueueCacheFn for hydrating the cache with Genesys Cloud routing queues using the SDK -func hydrateRoutingQueueCacheFn(c *rc.DataSourceCache) error { +func hydrateRoutingQueueCacheFn(c *rc.DataSourceCache, ctx context.Context) error { log.Printf("hydrating cache for data source genesyscloud_routing_queues") - routingApi := platformclientv2.NewRoutingApiWithConfig(c.ClientConfig) - const pageSize = 100 - queues, _, getErr := routingApi.GetRoutingQueues(1, pageSize, "", "", nil, nil, nil, "", false) + proxy := GetRoutingQueueProxy(c.ClientConfig) - if getErr != nil { - return fmt.Errorf("failed to get page of skills: %v", getErr) - } - if queues.Entities == nil || len(*queues.Entities) == 0 { - return nil + // Newly created resources often aren't returned unless there's a delay + time.Sleep(5 * time.Second) + + queues, _, err := proxy.GetAllRoutingQueues(ctx, "") + if err != nil { + return err } - for _, queue := range *queues.Entities { + + // Add ids to cache + for _, queue := range *queues { c.Cache[normalizeQueueName(*queue.Name)] = *queue.Id } - for pageNum := 2; pageNum <= *queues.PageCount; pageNum++ { - - queues, _, getErr := routingApi.GetRoutingQueues(pageNum, pageSize, "", "", nil, nil, nil, "", false) - if getErr != nil { - return fmt.Errorf("failed to get page of queues: %v", getErr) - } - if queues.Entities == nil || len(*queues.Entities) == 0 { - break - } - // Add ids to cache - for _, queue := range *queues.Entities { - c.Cache[normalizeQueueName(*queue.Name)] = *queue.Id - } - } log.Printf("cache hydration completed for data source genesyscloud_routing_queues") return nil } @@ -85,27 +71,21 @@ func hydrateRoutingQueueCacheFn(c *rc.DataSourceCache) error { // Get queue by name. // Returns the queue id (blank if not found) and diag func getQueueByNameFn(c *rc.DataSourceCache, name string, ctx context.Context) (string, diag.Diagnostics) { - routingApi := platformclientv2.NewRoutingApiWithConfig(c.ClientConfig) + proxy := GetRoutingQueueProxy(c.ClientConfig) queueId := "" - const pageSize = 100 + diag := util.WithRetries(ctx, 15*time.Second, func() *retry.RetryError { - for pageNum := 1; ; pageNum++ { - queues, resp, getErr := routingApi.GetRoutingQueues(pageNum, pageSize, "", name, nil, nil, nil, "", false) - if getErr != nil { - return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("error requesting queue %s | error %s", name, getErr), resp)) - } - - if queues.Entities == nil || len(*queues.Entities) == 0 { - return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("no routing queues found with name %s", name), resp)) - } - - for _, queue := range *queues.Entities { - if queue.Name != nil && normalizeQueueName(*queue.Name) == normalizeQueueName(name) { - queueId = *queue.Id - return nil - } - } + queue, resp, retryable, getErr := proxy.getRoutingQueueByName(ctx, name) + if getErr != nil && !retryable { + return retry.NonRetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("error requesting queue %s | error %s", name, getErr), resp)) } + + if retryable { + return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("no routing queue found with name %s", name), resp)) + } + + queueId = queue + return nil }) return queueId, diag diff --git a/genesyscloud/routing_queue/genesyscloud_routing_queue_init_test.go b/genesyscloud/routing_queue/genesyscloud_routing_queue_init_test.go index 466f7f263..2baf47aec 100644 --- a/genesyscloud/routing_queue/genesyscloud_routing_queue_init_test.go +++ b/genesyscloud/routing_queue/genesyscloud_routing_queue_init_test.go @@ -5,6 +5,7 @@ import ( gcloud "terraform-provider-genesyscloud/genesyscloud" architectFlow "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/architect_user_prompt" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/group" routingSkill "terraform-provider-genesyscloud/genesyscloud/routing_skill" routingSkillGroup "terraform-provider-genesyscloud/genesyscloud/routing_skill_group" @@ -44,7 +45,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_flow"] = architectFlow.ResourceArchitectFlow() providerResources["genesyscloud_routing_skill_group"] = routingSkillGroup.ResourceRoutingSkillGroup() providerResources["genesyscloud_architect_user_prompt"] = architect_user_prompt.ResourceArchitectUserPrompt() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/routing_queue/genesyscloud_routing_queue_proxy.go b/genesyscloud/routing_queue/genesyscloud_routing_queue_proxy.go index 2d27a41d0..0a2c31698 100644 --- a/genesyscloud/routing_queue/genesyscloud_routing_queue_proxy.go +++ b/genesyscloud/routing_queue/genesyscloud_routing_queue_proxy.go @@ -3,6 +3,7 @@ package routing_queue import ( "context" "fmt" + "log" rc "terraform-provider-genesyscloud/genesyscloud/resource_cache" "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" @@ -18,8 +19,9 @@ out during testing. var internalProxy *RoutingQueueProxy // Type definitions for each func on our proxy so we can easily mock them out later -type getAllRoutingQueuesFunc func(ctx context.Context, p *RoutingQueueProxy) (*[]platformclientv2.Queue, *platformclientv2.APIResponse, error) +type getAllRoutingQueuesFunc func(ctx context.Context, p *RoutingQueueProxy, queueName string) (*[]platformclientv2.Queue, *platformclientv2.APIResponse, error) type getRoutingQueueByIdFunc func(ctx context.Context, p *RoutingQueueProxy, queueId string) (*platformclientv2.Queue, *platformclientv2.APIResponse, error) +type getRoutingQueueByNameFunc func(ctx context.Context, p *RoutingQueueProxy, queueName string) (string, *platformclientv2.APIResponse, bool, error) type getRoutingQueueWrapupCodeIdsFunc func(ctx context.Context, p *RoutingQueueProxy, queueId string) ([]string, *platformclientv2.APIResponse, error) // RoutingQueueProxy contains all the methods that call genesys cloud APIs. @@ -28,6 +30,7 @@ type RoutingQueueProxy struct { routingApi *platformclientv2.RoutingApi getAllRoutingQueuesAttr getAllRoutingQueuesFunc getRoutingQueueByIdAttr getRoutingQueueByIdFunc + getRoutingQueueByNameAttr getRoutingQueueByNameFunc getRoutingQueueWrapupCodeIdsAttr getRoutingQueueWrapupCodeIdsFunc RoutingQueueCache rc.CacheInterface[platformclientv2.Queue] } @@ -42,6 +45,7 @@ func newRoutingQueuesProxy(clientConfig *platformclientv2.Configuration) *Routin routingApi: api, getAllRoutingQueuesAttr: getAllRoutingQueuesFn, getRoutingQueueByIdAttr: getRoutingQueueByIdFn, + getRoutingQueueByNameAttr: getRoutingQueueByNameFn, getRoutingQueueWrapupCodeIdsAttr: getRoutingQueueWrapupCodeIdsFn, RoutingQueueCache: routingQueueCache, } @@ -57,8 +61,8 @@ func GetRoutingQueueProxy(clientConfig *platformclientv2.Configuration) *Routing } // GetAllRoutingQueues retrieves all Genesys Cloud routing queues -func (p *RoutingQueueProxy) GetAllRoutingQueues(ctx context.Context) (*[]platformclientv2.Queue, *platformclientv2.APIResponse, error) { - return p.getAllRoutingQueuesAttr(ctx, p) +func (p *RoutingQueueProxy) GetAllRoutingQueues(ctx context.Context, queueName string) (*[]platformclientv2.Queue, *platformclientv2.APIResponse, error) { + return p.getAllRoutingQueuesAttr(ctx, p, queueName) } // getRoutingQueueById returns a single Genesys Cloud Routing Queue by ID @@ -66,17 +70,22 @@ func (p *RoutingQueueProxy) getRoutingQueueById(ctx context.Context, queueId str return p.getRoutingQueueByIdAttr(ctx, p, queueId) } +// getRoutingQueueByName returns a single Genesys Cloud Routing Queue by Name +func (p *RoutingQueueProxy) getRoutingQueueByName(ctx context.Context, queueName string) (string, *platformclientv2.APIResponse, bool, error) { + return p.getRoutingQueueByNameAttr(ctx, p, queueName) +} + // getRoutingQueueWrapupCodeIds returns a list of routing queue wrapup code ids func (p *RoutingQueueProxy) getRoutingQueueWrapupCodeIds(ctx context.Context, queueId string) ([]string, *platformclientv2.APIResponse, error) { return p.getRoutingQueueWrapupCodeIdsAttr(ctx, p, queueId) } // getAllRoutingQueuesFn is the implementation for retrieving all routing queues in Genesys Cloud -func getAllRoutingQueuesFn(ctx context.Context, p *RoutingQueueProxy) (*[]platformclientv2.Queue, *platformclientv2.APIResponse, error) { +func getAllRoutingQueuesFn(ctx context.Context, p *RoutingQueueProxy, queueName string) (*[]platformclientv2.Queue, *platformclientv2.APIResponse, error) { var allQueues []platformclientv2.Queue const pageSize = 100 - queues, resp, getErr := p.routingApi.GetRoutingQueues(1, pageSize, "", "", nil, nil, nil, "", false) + queues, resp, getErr := p.routingApi.GetRoutingQueues(1, pageSize, "", queueName, nil, nil, nil, "", false) if getErr != nil { return nil, resp, fmt.Errorf("failed to get first page of queues: %v", getErr) } @@ -131,6 +140,28 @@ func getRoutingQueueByIdFn(ctx context.Context, p *RoutingQueueProxy, queueId st return queue, resp, nil } +// getRoutingQueueByNameFn is the implementation for retrieving a routing queues in Genesys Cloud +func getRoutingQueueByNameFn(ctx context.Context, p *RoutingQueueProxy, queueName string) (string, *platformclientv2.APIResponse, bool, error) { + + queues, resp, err := getAllRoutingQueuesFn(ctx, p, queueName) + + if err != nil { + return "", resp, false, err + } + + if queues == nil || len(*queues) == 0 { + return "", resp, true, err + } + + for _, queue := range *queues { + if *queue.Name == queueName { + log.Printf("Retrieved the routing skill id %s by name %s", *queue.Id, queueName) + return *queue.Id, resp, false, nil + } + } + return "", resp, true, fmt.Errorf("unable to find routing skill with name %s", queueName) +} + func getRoutingQueueWrapupCodeIdsFn(ctx context.Context, p *RoutingQueueProxy, queueId string) ([]string, *platformclientv2.APIResponse, error) { var codeIds []string const pageSize = 100 diff --git a/genesyscloud/routing_queue/resource_genesyscloud_routing_queue.go b/genesyscloud/routing_queue/resource_genesyscloud_routing_queue.go index 081e0d259..61413ffc8 100644 --- a/genesyscloud/routing_queue/resource_genesyscloud_routing_queue.go +++ b/genesyscloud/routing_queue/resource_genesyscloud_routing_queue.go @@ -37,7 +37,7 @@ func getAllRoutingQueues(ctx context.Context, clientConfig *platformclientv2.Con // Newly created resources often aren't returned unless there's a delay time.Sleep(5 * time.Second) - queues, resp, err := proxy.GetAllRoutingQueues(ctx) + queues, resp, err := proxy.GetAllRoutingQueues(ctx, "") if err != nil { return nil, util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("failed to get routing queues: %s", err), resp) } @@ -297,20 +297,9 @@ func updateQueue(ctx context.Context, d *schema.ResourceData, meta interface{}) MemberGroups: &memberGroups, } - if exists := featureToggles.CSGToggleExists(); !exists { - conditionalGroupRouting, diagErr := buildSdkConditionalGroupRouting(d) - if diagErr != nil { - return diagErr - } - updateQueue.ConditionalGroupRouting = conditionalGroupRouting - } else { - log.Printf("%s is set, not updating conditional_group_routing_rules attribute in routing_queue %s resource", featureToggles.CSGToggleName(), d.Id()) - } - - if exists := featureToggles.OEAToggleExists(); !exists { - updateQueue.OutboundEmailAddress = buildSdkQueueEmailAddress(d) - } else { - log.Printf("%s is set, not creating outbound_email_address attribute in routing_queue %s resource", featureToggles.OEAToggleName(), d.Id()) + diagErr := addCGRAndOEA(routingAPI, d, &updateQueue) + if diagErr != nil { + return diagErr } log.Printf("Updating queue %s", *updateQueue.Name) @@ -320,12 +309,11 @@ func updateQueue(ctx context.Context, d *schema.ResourceData, meta interface{}) } _, resp, err := routingAPI.PutRoutingQueue(d.Id(), updateQueue) - if err != nil { return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to update queue %s error: %s", *updateQueue.Name, err), resp) } - diagErr := util.UpdateObjectDivision(d, "QUEUE", sdkConfig) + diagErr = util.UpdateObjectDivision(d, "QUEUE", sdkConfig) if diagErr != nil { return diagErr } @@ -344,6 +332,43 @@ func updateQueue(ctx context.Context, d *schema.ResourceData, meta interface{}) return readQueue(ctx, d, meta) } +/* +DEVTOOLING-751: If conditional group routing rules and outbound email address are managed by their independent resource +they are being removed when the parent queue is updated since the update body does not contain them. +If the independent resources are enabled, pass in the current OEA and/or CGR to the update queue so they are not removed +*/ +func addCGRAndOEA(routingAPI *platformclientv2.RoutingApi, d *schema.ResourceData, queue *platformclientv2.Queuerequest) diag.Diagnostics { + currentQueue, resp, err := routingAPI.GetRoutingQueue(d.Id()) + if err != nil { + return util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("Failed to get queue %s for update, error: %s", *queue.Name, err), resp) + } + + if exists := featureToggles.CSGToggleExists(); !exists { + conditionalGroupRouting, diagErr := buildSdkConditionalGroupRouting(d) + if diagErr != nil { + return diagErr + } + queue.ConditionalGroupRouting = conditionalGroupRouting + } else { + log.Printf("%s is set, not updating conditional_group_routing_rules attribute in routing_queue %s resource", featureToggles.CSGToggleName(), d.Id()) + queue.ConditionalGroupRouting = currentQueue.ConditionalGroupRouting + + // remove queue_id from first CGR rule to avoid api error + if len(*queue.ConditionalGroupRouting.Rules) > 0 { + (*queue.ConditionalGroupRouting.Rules)[0].Queue = nil + } + } + + if exists := featureToggles.OEAToggleExists(); !exists { + queue.OutboundEmailAddress = buildSdkQueueEmailAddress(d) + } else { + log.Printf("%s is set, not updating outbound_email_address attribute in routing_queue %s resource", featureToggles.OEAToggleName(), d.Id()) + queue.OutboundEmailAddress = *currentQueue.OutboundEmailAddress + } + + return nil +} + func deleteQueue(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { name := d.Get("name").(string) diff --git a/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go b/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go index f46601120..caffb5eb1 100644 --- a/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go +++ b/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go @@ -6,9 +6,9 @@ import ( "strconv" "strings" "sync" - gcloud "terraform-provider-genesyscloud/genesyscloud" "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/architect_user_prompt" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/group" "terraform-provider-genesyscloud/genesyscloud/provider" routingSkill "terraform-provider-genesyscloud/genesyscloud/routing_skill" @@ -996,7 +996,7 @@ func TestAccResourceRoutingQueueWrapupCodes(t *testing.T) { "division_id = genesyscloud_auth_division."+divResource+".id", GenerateQueueWrapupCodes("genesyscloud_routing_wrapupcode."+wrapupCodeResource1+".id", "genesyscloud_routing_wrapupcode."+wrapupCodeResource2+".id"), - ) + gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapupCodeResource1, wrapupCodeName1, "genesyscloud_auth_division."+divResource+".id", @@ -1020,7 +1020,7 @@ func TestAccResourceRoutingQueueWrapupCodes(t *testing.T) { "genesyscloud_routing_wrapupcode."+wrapupCodeResource1+".id", "genesyscloud_routing_wrapupcode."+wrapupCodeResource2+".id", "genesyscloud_routing_wrapupcode."+wrapupCodeResource3+".id"), - ) + gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapupCodeResource1, wrapupCodeName1, "genesyscloud_auth_division."+divResource+".id", @@ -1045,7 +1045,7 @@ func TestAccResourceRoutingQueueWrapupCodes(t *testing.T) { queueName, "division_id = genesyscloud_auth_division."+divResource+".id", GenerateQueueWrapupCodes("genesyscloud_routing_wrapupcode."+wrapupCodeResource2+".id"), - ) + gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapupCodeResource2, wrapupCodeName2, "genesyscloud_auth_division."+divResource+".id", @@ -1061,7 +1061,7 @@ func TestAccResourceRoutingQueueWrapupCodes(t *testing.T) { queueName, "division_id = genesyscloud_auth_division."+divResource+".id", GenerateQueueWrapupCodes(), - ) + gcloud.GenerateAuthDivisionBasic(divResource, divName), + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName), Check: resource.ComposeTestCheckFunc( resource.TestCheckNoResourceAttr("genesyscloud_routing_queue."+queueResource, "wrapup_codes.%"), ), diff --git a/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing.go b/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing.go index 4046d93e4..bdb827796 100644 --- a/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing.go +++ b/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing.go @@ -32,7 +32,7 @@ func getAllAuthRoutingQueueConditionalGroup(ctx context.Context, clientConfig *p return nil, nil } - queues, resp, err := proxy.routingQueueProxy.GetAllRoutingQueues(ctx) + queues, resp, err := proxy.routingQueueProxy.GetAllRoutingQueues(ctx, "") if err != nil { return nil, util.BuildAPIDiagnosticError(resourceName, fmt.Sprintf("failed to get conditional group routing rules: %s", err), resp) } diff --git a/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing_test.go b/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing_test.go index fcc99d737..9c996ca72 100644 --- a/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing_test.go +++ b/genesyscloud/routing_queue_conditional_group_routing/resource_genesyscloud_routing_queue_conditional_group_routing_test.go @@ -32,9 +32,8 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { queueResource = "test-queue" queueName1 = "Terraform Test Queue1-" + uuid.NewString() - skillGroupResourceId = "skillgroup" - skillGroupName = "test skillgroup " + uuid.NewString() - + skillGroupResourceId = "skillgroup" + skillGroupName = "test skillgroup " + uuid.NewString() conditionalGroupRoutingRule1Operator = "LessThanOrEqualTo" conditionalGroupRoutingRule1Metric = "EstimatedWaitTime" conditionalGroupRoutingRule1ConditionValue = "0" @@ -120,15 +119,15 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrWith("genesyscloud_routing_queue."+queueResource, "id", checkQueueId(queueIdChan, false)), resource.TestCheckResourceAttrPair( - "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", + resourceName+"."+conditionalGroupRoutingResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", ), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.operator", conditionalGroupRoutingRule1Operator), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.metric", conditionalGroupRoutingRule1Metric), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.condition_value", conditionalGroupRoutingRule1ConditionValue), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.wait_seconds", conditionalGroupRoutingRule1WaitSeconds), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_type", conditionalGroupRoutingRule1GroupType), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.operator", conditionalGroupRoutingRule1Operator), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.metric", conditionalGroupRoutingRule1Metric), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.condition_value", conditionalGroupRoutingRule1ConditionValue), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.wait_seconds", conditionalGroupRoutingRule1WaitSeconds), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_type", conditionalGroupRoutingRule1GroupType), resource.TestCheckResourceAttrPair( - "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_id", "genesyscloud_routing_skill_group."+skillGroupResourceId, "id", + resourceName+"."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_id", "genesyscloud_routing_skill_group."+skillGroupResourceId, "id", ), ), }, @@ -179,15 +178,15 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrWith("genesyscloud_routing_queue."+queueResource, "id", checkQueueId(queueIdChan, false)), resource.TestCheckResourceAttrPair( - "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", + resourceName+"."+conditionalGroupRoutingResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", ), // Rule 1 - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.operator", conditionalGroupRoutingRule1Operator), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.metric", conditionalGroupRoutingRule1Metric), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.condition_value", conditionalGroupRoutingRule1ConditionValue), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.wait_seconds", conditionalGroupRoutingRule1WaitSeconds), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_type", conditionalGroupRoutingRule1GroupType), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.operator", conditionalGroupRoutingRule1Operator), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.metric", conditionalGroupRoutingRule1Metric), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.condition_value", conditionalGroupRoutingRule1ConditionValue), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.wait_seconds", conditionalGroupRoutingRule1WaitSeconds), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_type", conditionalGroupRoutingRule1GroupType), resource.TestCheckResourceAttrPair( "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_id", "genesyscloud_routing_skill_group."+skillGroupResourceId, "id", ), @@ -196,18 +195,18 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { resource.TestCheckResourceAttrPair( "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.1.evaluated_queue_id", "genesyscloud_routing_queue."+queueResource, "id", ), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.1.operator", conditionalGroupRoutingRule2Operator), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.1.metric", conditionalGroupRoutingRule2Metric), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.1.condition_value", conditionalGroupRoutingRule2ConditionValue), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.1.wait_seconds", conditionalGroupRoutingRule2WaitSeconds), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.1.groups.0.member_group_type", conditionalGroupRoutingRule2GroupType), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.1.operator", conditionalGroupRoutingRule2Operator), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.1.metric", conditionalGroupRoutingRule2Metric), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.1.condition_value", conditionalGroupRoutingRule2ConditionValue), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.1.wait_seconds", conditionalGroupRoutingRule2WaitSeconds), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.1.groups.0.member_group_type", conditionalGroupRoutingRule2GroupType), resource.TestCheckResourceAttrPair( - "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.1.groups.0.member_group_id", "genesyscloud_group."+groupResourceId, "id", + resourceName+"."+conditionalGroupRoutingResource, "rules.1.groups.0.member_group_id", "genesyscloud_group."+groupResourceId, "id", ), ), }, { - // Remove a rule + // Remove the skill group rule Config: generateUserWithCustomAttrs( testUserResource, testUserEmail, @@ -216,9 +215,14 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { groupResourceId, groupName, group.GenerateGroupOwners("genesyscloud_user."+testUserResource+".id"), + ) + routingSkillGroup.GenerateRoutingSkillGroupResourceBasic( + skillGroupResourceId, + skillGroupName, + "description", ) + routingQueue.GenerateRoutingQueueResourceBasic( queueResource, queueName1, + "skill_groups = [genesyscloud_routing_skill_group."+skillGroupResourceId+".id]", "groups = [genesyscloud_group."+groupResourceId+".id]", ) + generateConditionalGroupRouting( conditionalGroupRoutingResource, @@ -237,15 +241,15 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrWith("genesyscloud_routing_queue."+queueResource, "id", checkQueueId(queueIdChan, true)), resource.TestCheckResourceAttrPair( - "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", + resourceName+"."+conditionalGroupRoutingResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", ), // Rule 1 - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.operator", conditionalGroupRoutingRule2Operator), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.metric", conditionalGroupRoutingRule2Metric), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.condition_value", conditionalGroupRoutingRule2ConditionValue), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.wait_seconds", conditionalGroupRoutingRule2WaitSeconds), - resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_type", conditionalGroupRoutingRule2GroupType), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.operator", conditionalGroupRoutingRule2Operator), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.metric", conditionalGroupRoutingRule2Metric), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.condition_value", conditionalGroupRoutingRule2ConditionValue), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.wait_seconds", conditionalGroupRoutingRule2WaitSeconds), + resource.TestCheckResourceAttr(resourceName+"."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_type", conditionalGroupRoutingRule2GroupType), resource.TestCheckResourceAttrPair( "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_id", "genesyscloud_group."+groupResourceId, "id", ), @@ -259,9 +263,116 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { return nil }, ), - PreventPostDestroyRefresh: true, }, + { + // Import/Read + ResourceName: resourceName + "." + conditionalGroupRoutingResource, + ImportState: true, + ImportStateVerify: true, + Destroy: true, + }, + }, + CheckDestroy: func(state *terraform.State) error { + time.Sleep(40 * time.Second) + return testVerifyGroupsAndUsersDestroyed(state) + }, + }) +} + +func TestAccResourceRoutingQueueConditionalGroupRoutingExists(t *testing.T) { + var ( + conditionalGroupRoutingResource = "test-conditional-routing-group" + + queueResource = "test-queue" + queueName1 = "Terraform Test Queue-" + uuid.NewString() + queueName2 = "Terraform Test Queue-" + uuid.NewString() + + skillGroupResourceId = "skillgroup" + skillGroupName = "test skillgroup " + uuid.NewString() + + conditionalGroupRoutingRule1Operator = "LessThanOrEqualTo" + conditionalGroupRoutingRule1Metric = "EstimatedWaitTime" + conditionalGroupRoutingRule1ConditionValue = "0" + conditionalGroupRoutingRule1WaitSeconds = "20" + conditionalGroupRoutingRule1GroupType = "SKILLGROUP" + ) + + err := os.Setenv(featureToggles.CSGToggleName(), "enabled") + if err != nil { + t.Errorf("%s is not set", featureToggles.CSGToggleName()) + } + + resource.Test(t, resource.TestCase{ + PreCheck: func() { + util.TestAccPreCheck(t) + }, + ProviderFactories: provider.GetProviderFactories(providerResources, nil), + Steps: []resource.TestStep{ + { + // Create rule + Config: routingSkillGroup.GenerateRoutingSkillGroupResourceBasic( + skillGroupResourceId, + skillGroupName, + "description", + ) + routingQueue.GenerateRoutingQueueResourceBasic( + queueResource, + queueName1, + "skill_groups = [genesyscloud_routing_skill_group."+skillGroupResourceId+".id]", + ) + generateConditionalGroupRouting( + conditionalGroupRoutingResource, + "genesyscloud_routing_queue."+queueResource+".id", + generateConditionalGroupRoutingRuleBlock( + conditionalGroupRoutingRule1Operator, + conditionalGroupRoutingRule1Metric, + conditionalGroupRoutingRule1ConditionValue, + conditionalGroupRoutingRule1WaitSeconds, + generateConditionalGroupRoutingRuleGroupBlock( + "genesyscloud_routing_skill_group."+skillGroupResourceId+".id", + conditionalGroupRoutingRule1GroupType, + ), + ), + ), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair( + "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", + ), + resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.operator", conditionalGroupRoutingRule1Operator), + resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.metric", conditionalGroupRoutingRule1Metric), + resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.condition_value", conditionalGroupRoutingRule1ConditionValue), + resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.wait_seconds", conditionalGroupRoutingRule1WaitSeconds), + resource.TestCheckResourceAttr("genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_type", conditionalGroupRoutingRule1GroupType), + resource.TestCheckResourceAttrPair( + "genesyscloud_routing_queue_conditional_group_routing."+conditionalGroupRoutingResource, "rules.0.groups.0.member_group_id", "genesyscloud_routing_skill_group."+skillGroupResourceId, "id", + ), + ), + }, + { + // Update queue + Config: routingSkillGroup.GenerateRoutingSkillGroupResourceBasic( + skillGroupResourceId, + skillGroupName, + "description", + ) + routingQueue.GenerateRoutingQueueResourceBasic( + queueResource, + queueName2, + "skill_groups = [genesyscloud_routing_skill_group."+skillGroupResourceId+".id]", + ) + generateConditionalGroupRouting( + conditionalGroupRoutingResource, + "genesyscloud_routing_queue."+queueResource+".id", + generateConditionalGroupRoutingRuleBlock( + conditionalGroupRoutingRule1Operator, + conditionalGroupRoutingRule1Metric, + conditionalGroupRoutingRule1ConditionValue, + conditionalGroupRoutingRule1WaitSeconds, + generateConditionalGroupRoutingRuleGroupBlock( + "genesyscloud_routing_skill_group."+skillGroupResourceId+".id", + conditionalGroupRoutingRule1GroupType, + ), + ), + ), + Check: verifyConditionalGroupRoutingExists("genesyscloud_routing_queue." + queueResource), + }, { // Import/Read ResourceName: "genesyscloud_routing_queue_conditional_group_routing." + conditionalGroupRoutingResource, @@ -277,6 +388,28 @@ func TestAccResourceRoutingQueueConditionalGroupRouting(t *testing.T) { }) } +func verifyConditionalGroupRoutingExists(queueResourceName string) resource.TestCheckFunc { + return func(state *terraform.State) error { + queueResource, ok := state.RootModule().Resources[queueResourceName] + if !ok { + return fmt.Errorf("failed to find queue %s in state", queueResourceName) + } + queueID := queueResource.Primary.ID + + routingApi := platformclientv2.NewRoutingApi() + queue, _, err := routingApi.GetRoutingQueue(queueID) + if err != nil { + return err + } + + if queue.ConditionalGroupRouting == nil { + return fmt.Errorf("no conditional group routing found for queue %s %s", queueID, *queue.Name) + } + + return nil + } +} + func checkQueueId(queueIdChan chan string, closeChannel bool) func(value string) error { return func(value string) error { queueId, ok := <-queueIdChan diff --git a/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address.go b/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address.go index e9f412963..7021585ab 100644 --- a/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address.go +++ b/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address.go @@ -32,7 +32,7 @@ func getAllAuthRoutingQueueOutboundEmailAddress(ctx context.Context, clientConfi resources := make(resourceExporter.ResourceIDMetaMap) proxy := getRoutingQueueOutboundEmailAddressProxy(clientConfig) - queues, resp, err := proxy.routingQueueProxy.GetAllRoutingQueues(ctx) + queues, resp, err := proxy.routingQueueProxy.GetAllRoutingQueues(ctx, "") if err != nil { return nil, util.BuildAPIDiagnosticError(resourceName, "failed to get outbound email addresses for routing queues", resp) } diff --git a/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address_test.go b/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address_test.go index 8096e6388..0a92358fa 100644 --- a/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address_test.go +++ b/genesyscloud/routing_queue_outbound_email_address/resource_genesyscloud_routing_queue_outbound_email_address_test.go @@ -111,6 +111,121 @@ func TestAccResourceRoutingQueueOutboundEmailAddress(t *testing.T) { }) } +// Ensure the OEA resource remains if we update the parent queue +func TestAccResourceRoutingQueueOutboundEmailAddressExists(t *testing.T) { + var ( + outboundEmailAddressResource = "test-email-address" + + queueResource = "test-queue" + queueName1 = "Terraform Test Queue-" + uuid.NewString() + queueName2 = "Terraform Test Queue-" + uuid.NewString() + + domainResource = "test-domain" + domainId = fmt.Sprintf("terraform.%s.com", strings.Replace(uuid.NewString(), "-", "", -1)) + + routeResource = "test-route" + routePattern = "terraform1" + fromName = "John Terraform" + ) + + err := os.Setenv(featureToggles.OEAToggleName(), "enabled") + if err != nil { + t.Errorf("%s is not set", featureToggles.OEAToggleName()) + } + + cleanupRoutingEmailDomains() + + resource.Test(t, resource.TestCase{ + PreCheck: func() { util.TestAccPreCheck(t) }, + ProviderFactories: provider.GetProviderFactories(providerResources, nil), + Steps: []resource.TestStep{ + { + Config: routingQueue.GenerateRoutingQueueResourceBasic( + queueResource, + queueName1, + ) + routingEmailDomain.GenerateRoutingEmailDomainResource( + domainResource, + domainId, + util.FalseValue, + util.NullValue, + ) + routingEmailRoute.GenerateRoutingEmailRouteResource( + routeResource, + "genesyscloud_routing_email_domain."+domainResource+".id", + routePattern, + fromName, + ) + generateRoutingQueueOutboundEmailAddressResource( + outboundEmailAddressResource, + "genesyscloud_routing_queue."+queueResource+".id", + "genesyscloud_routing_email_domain."+domainResource+".id", + "genesyscloud_routing_email_route."+routeResource+".id", + ), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair( + "genesyscloud_routing_queue_outbound_email_address."+outboundEmailAddressResource, "queue_id", "genesyscloud_routing_queue."+queueResource, "id", + ), + resource.TestCheckResourceAttrPair( + "genesyscloud_routing_queue_outbound_email_address."+outboundEmailAddressResource, "domain_id", "genesyscloud_routing_email_domain."+domainResource, "id", + ), + resource.TestCheckResourceAttrPair( + "genesyscloud_routing_queue_outbound_email_address."+outboundEmailAddressResource, "route_id", "genesyscloud_routing_email_route."+routeResource, "id", + ), + ), + }, + // Update queue + { + Config: routingQueue.GenerateRoutingQueueResourceBasic( + queueResource, + queueName2, + ) + routingEmailDomain.GenerateRoutingEmailDomainResource( + domainResource, + domainId, + util.FalseValue, + util.NullValue, + ) + routingEmailRoute.GenerateRoutingEmailRouteResource( + routeResource, + "genesyscloud_routing_email_domain."+domainResource+".id", + routePattern, + fromName, + ) + generateRoutingQueueOutboundEmailAddressResource( + outboundEmailAddressResource, + "genesyscloud_routing_queue."+queueResource+".id", + "genesyscloud_routing_email_domain."+domainResource+".id", + "genesyscloud_routing_email_route."+routeResource+".id", + ), + Check: verifyOutboundEmailAddressExists("genesyscloud_routing_queue." + queueResource), + }, + { + // Import/Read + ResourceName: "genesyscloud_routing_queue_outbound_email_address." + outboundEmailAddressResource, + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func verifyOutboundEmailAddressExists(queueResourceName string) resource.TestCheckFunc { + return func(state *terraform.State) error { + queueResource, ok := state.RootModule().Resources[queueResourceName] + if !ok { + return fmt.Errorf("Failed to find queue %s in state", queueResourceName) + } + queueID := queueResource.Primary.ID + + routingApi := platformclientv2.NewRoutingApi() + queue, _, err := routingApi.GetRoutingQueue(queueID) + if err != nil { + return err + } + + if queue.OutboundEmailAddress == nil || *queue.OutboundEmailAddress == nil { + return fmt.Errorf("no outbound email address found for queue %s %s", queueID, *queue.Name) + } + + return nil + } +} + func generateRoutingQueueOutboundEmailAddressResource(resourceId, queueId, domainId, routeId string) string { return fmt.Sprintf(`resource "genesyscloud_routing_queue_outbound_email_address" "%s" { queue_id = %s diff --git a/genesyscloud/routing_skill/data_source_genesyscloud_routing_skill.go b/genesyscloud/routing_skill/data_source_genesyscloud_routing_skill.go index 4b89dac5b..b747c5398 100644 --- a/genesyscloud/routing_skill/data_source_genesyscloud_routing_skill.go +++ b/genesyscloud/routing_skill/data_source_genesyscloud_routing_skill.go @@ -34,11 +34,11 @@ func dataSourceRoutingSkillRead(ctx context.Context, d *schema.ResourceData, m i return nil } -func hydrateRoutingSkillCacheFn(c *rc.DataSourceCache) error { +func hydrateRoutingSkillCacheFn(c *rc.DataSourceCache, ctx context.Context) error { log.Printf("hydrating cache for data source genesyscloud_routing_skill") proxy := getRoutingSkillProxy(c.ClientConfig) - skills, resp, getErr := proxy.getAllRoutingSkills(context.TODO(), "") + skills, resp, getErr := proxy.getAllRoutingSkills(ctx, "") if getErr != nil { return fmt.Errorf("failed to get page of skills: %v %v", getErr, resp) } diff --git a/genesyscloud/routing_skill/resource_genesyscloud_routing_skill.go b/genesyscloud/routing_skill/resource_genesyscloud_routing_skill.go index 7c8693c96..ad3186c3f 100644 --- a/genesyscloud/routing_skill/resource_genesyscloud_routing_skill.go +++ b/genesyscloud/routing_skill/resource_genesyscloud_routing_skill.go @@ -20,7 +20,7 @@ import ( "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" ) -func getAllRoutingSkills(ctx context.Context, clientConfig *platformclientv2.Configuration) (resourceExporter.ResourceIDMetaMap, diag.Diagnostics) { +func GetAllRoutingSkills(ctx context.Context, clientConfig *platformclientv2.Configuration) (resourceExporter.ResourceIDMetaMap, diag.Diagnostics) { resources := make(resourceExporter.ResourceIDMetaMap) proxy := getRoutingSkillProxy(clientConfig) diff --git a/genesyscloud/routing_skill/resource_genesyscloud_routing_skill_schema.go b/genesyscloud/routing_skill/resource_genesyscloud_routing_skill_schema.go index d6720c668..b2c8b94c3 100644 --- a/genesyscloud/routing_skill/resource_genesyscloud_routing_skill_schema.go +++ b/genesyscloud/routing_skill/resource_genesyscloud_routing_skill_schema.go @@ -56,7 +56,7 @@ func ResourceRoutingSkill() *schema.Resource { func RoutingSkillExporter() *resourceExporter.ResourceExporter { return &resourceExporter.ResourceExporter{ - GetResourcesFunc: provider.GetAllWithPooledClient(getAllRoutingSkills), + GetResourcesFunc: provider.GetAllWithPooledClient(GetAllRoutingSkills), RefAttrs: map[string]*resourceExporter.RefAttrSettings{}, // No references } } diff --git a/genesyscloud/routing_skill_group/genesyscloud_routing_skill_group_init_test.go b/genesyscloud/routing_skill_group/genesyscloud_routing_skill_group_init_test.go index 7901ec0e7..7da896e67 100644 --- a/genesyscloud/routing_skill_group/genesyscloud_routing_skill_group_init_test.go +++ b/genesyscloud/routing_skill_group/genesyscloud_routing_skill_group_init_test.go @@ -3,6 +3,7 @@ package routing_skill_group import ( "sync" "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" routingSkill "terraform-provider-genesyscloud/genesyscloud/routing_skill" "terraform-provider-genesyscloud/genesyscloud/user" "testing" @@ -24,7 +25,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceRoutingSkillGroup() - providerResources["genesyscloud_auth_division"] = genesyscloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() providerResources["genesyscloud_user"] = user.ResourceUser() providerResources["genesyscloud_routing_skill"] = routingSkill.ResourceRoutingSkill() } diff --git a/genesyscloud/routing_skill_group/resource_genesyscloud_routing_skill_group_test.go b/genesyscloud/routing_skill_group/resource_genesyscloud_routing_skill_group_test.go index 39077e4fa..228a8283e 100644 --- a/genesyscloud/routing_skill_group/resource_genesyscloud_routing_skill_group_test.go +++ b/genesyscloud/routing_skill_group/resource_genesyscloud_routing_skill_group_test.go @@ -6,12 +6,12 @@ import ( "log" "os" "strings" - gcloud "terraform-provider-genesyscloud/genesyscloud" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" "time" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" routingSkill "terraform-provider-genesyscloud/genesyscloud/routing_skill" lists "terraform-provider-genesyscloud/genesyscloud/util/lists" @@ -221,11 +221,11 @@ func TestAccResourceRoutingSkillGroupMemberDivisionsBasic(t *testing.T) { authDivision1Name := "TF Division " + uuid.NewString() authDivision1Resource := "division1" - authDivision1 := gcloud.GenerateAuthDivisionBasic(authDivision1Resource, authDivision1Name) + authDivision1 := authDivision.GenerateAuthDivisionBasic(authDivision1Resource, authDivision1Name) authDivision2Name := "TF Division " + uuid.NewString() authDivision2Resource := "division2" - authDivision2 := gcloud.GenerateAuthDivisionBasic(authDivision2Resource, authDivision2Name) + authDivision2 := authDivision.GenerateAuthDivisionBasic(authDivision2Resource, authDivision2Name) memberDivisionIds1 := fmt.Sprintf(`[%s]`, strings.Join([]string{"data.genesyscloud_auth_division_home.home.id"}, ", ")) @@ -427,9 +427,9 @@ func TestAccResourceRoutingSkillGroupMemberDivisionsUsersAssigned(t *testing.T) routingSkillResource := routingSkill.GenerateRoutingSkillResource(routingSkillResourceId, routingSkillName) - division1Resource := gcloud.GenerateAuthDivisionBasic(division1ResourceId, division1Name) - division2Resource := gcloud.GenerateAuthDivisionBasic(division2ResourceId, division2Name) - division3Resource := gcloud.GenerateAuthDivisionBasic(division3ResourceId, division3Name) + division1Resource := authDivision.GenerateAuthDivisionBasic(division1ResourceId, division1Name) + division2Resource := authDivision.GenerateAuthDivisionBasic(division2ResourceId, division2Name) + division3Resource := authDivision.GenerateAuthDivisionBasic(division3ResourceId, division3Name) user1Resource := fmt.Sprintf(` resource "genesyscloud_user" "%s" { diff --git a/genesyscloud/routing_sms_addresses/genesyscloud_routing_sms_addresses_proxy.go b/genesyscloud/routing_sms_addresses/genesyscloud_routing_sms_addresses_proxy.go index 85212774a..86d7342c0 100644 --- a/genesyscloud/routing_sms_addresses/genesyscloud_routing_sms_addresses_proxy.go +++ b/genesyscloud/routing_sms_addresses/genesyscloud_routing_sms_addresses_proxy.go @@ -115,6 +115,9 @@ func getSmsAddressIdByNameFn(p *routingSmsAddressProxy, name string, ctx context return "", true, resp, fmt.Errorf("failed to read sms addresses: %v", err) } for _, address := range *smsAddresses { + if address.Name == nil { + continue + } if *address.Name == name { return *address.Id, false, resp, nil } diff --git a/genesyscloud/routing_wrapupcode/data_source_genesyscloud_routing_wrapupcode_test.go b/genesyscloud/routing_wrapupcode/data_source_genesyscloud_routing_wrapupcode_test.go index 2243e7759..a7d19fb2f 100644 --- a/genesyscloud/routing_wrapupcode/data_source_genesyscloud_routing_wrapupcode_test.go +++ b/genesyscloud/routing_wrapupcode/data_source_genesyscloud_routing_wrapupcode_test.go @@ -2,7 +2,7 @@ package routing_wrapupcode import ( "fmt" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -25,7 +25,7 @@ func TestAccDataSourceWrapupcode(t *testing.T) { ProviderFactories: provider.GetProviderFactories(providerResources, providerDataSources), Steps: []resource.TestStep{ { - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + GenerateRoutingWrapupcodeResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + GenerateRoutingWrapupcodeResource( codeRes, codeName, "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/routing_wrapupcode/genesyscloud_routing_wrapupcode_init_test.go b/genesyscloud/routing_wrapupcode/genesyscloud_routing_wrapupcode_init_test.go index 563f93ae8..70514e7e4 100644 --- a/genesyscloud/routing_wrapupcode/genesyscloud_routing_wrapupcode_init_test.go +++ b/genesyscloud/routing_wrapupcode/genesyscloud_routing_wrapupcode_init_test.go @@ -2,7 +2,7 @@ package routing_wrapupcode import ( "sync" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -30,7 +30,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources[resourceName] = ResourceRoutingWrapupCode() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/routing_wrapupcode/resource_genesyscloud_routing_wrapupcode_test.go b/genesyscloud/routing_wrapupcode/resource_genesyscloud_routing_wrapupcode_test.go index 937c0d158..70e1b0455 100644 --- a/genesyscloud/routing_wrapupcode/resource_genesyscloud_routing_wrapupcode_test.go +++ b/genesyscloud/routing_wrapupcode/resource_genesyscloud_routing_wrapupcode_test.go @@ -2,7 +2,7 @@ package routing_wrapupcode import ( "fmt" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -38,7 +38,7 @@ func TestAccResourceRoutingWrapupcode(t *testing.T) { }, { // Create - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + GenerateRoutingWrapupcodeResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + GenerateRoutingWrapupcodeResource( codeResource1, codeName1, "genesyscloud_auth_division."+divResource+".id", @@ -50,7 +50,7 @@ func TestAccResourceRoutingWrapupcode(t *testing.T) { }, { // Update with a new name - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + GenerateRoutingWrapupcodeResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + GenerateRoutingWrapupcodeResource( codeResource1, codeName2, "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/scripts/resource_genesyscloud_script_test.go b/genesyscloud/scripts/resource_genesyscloud_script_test.go index 12c06e057..09c76074c 100644 --- a/genesyscloud/scripts/resource_genesyscloud_script_test.go +++ b/genesyscloud/scripts/resource_genesyscloud_script_test.go @@ -7,6 +7,7 @@ import ( "path/filepath" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -162,7 +163,8 @@ func getScriptId(scriptResourceName string, id *string) resource.TestCheckFunc { } func generateScriptResource(resourceId, scriptName, filePath, substitutions string) string { - fullyQualifiedPath, _ := filepath.Abs(filePath) + fullyQualifiedPath, _ := testrunner.NormalizePath(filePath) + normalizeFilePath := testrunner.NormalizeSlash(filePath) return fmt.Sprintf(` resource "%s" "%s" { script_name = "%s" @@ -170,7 +172,7 @@ resource "%s" "%s" { file_content_hash = filesha256("%s") %s } - `, resourceName, resourceId, scriptName, filePath, fullyQualifiedPath, substitutions) + `, resourceName, resourceId, scriptName, normalizeFilePath, fullyQualifiedPath, substitutions) } func testVerifyScriptDestroyed(state *terraform.State) error { diff --git a/genesyscloud/task_management_workbin/genesyscloud_task_management_workbin_init_test.go b/genesyscloud/task_management_workbin/genesyscloud_task_management_workbin_init_test.go index 6767d7633..9edc5c8d7 100644 --- a/genesyscloud/task_management_workbin/genesyscloud_task_management_workbin_init_test.go +++ b/genesyscloud/task_management_workbin/genesyscloud_task_management_workbin_init_test.go @@ -7,6 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" ) /* @@ -33,7 +34,7 @@ func (r *registerTestInstance) registerTestResources() { defer r.resourceMapMutex.Unlock() providerResources["genesyscloud_task_management_workbin"] = ResourceTaskManagementWorkbin() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/task_management_workbin/resource_genesyscloud_task_management_workbin_test.go b/genesyscloud/task_management_workbin/resource_genesyscloud_task_management_workbin_test.go index 731c143e8..cf07e2986 100644 --- a/genesyscloud/task_management_workbin/resource_genesyscloud_task_management_workbin_test.go +++ b/genesyscloud/task_management_workbin/resource_genesyscloud_task_management_workbin_test.go @@ -9,7 +9,7 @@ import ( "github.com/google/uuid" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" @@ -49,8 +49,8 @@ func TestAccResourceTaskManagementWorkbin(t *testing.T) { }, // Change division { - Config: gcloud.GenerateAuthDivisionBasic(divisionResId1, divisionName1) + - gcloud.GenerateAuthDivisionBasic(divisionResId2, divisionName2) + + Config: authDivision.GenerateAuthDivisionBasic(divisionResId1, divisionName1) + + authDivision.GenerateAuthDivisionBasic(divisionResId2, divisionName2) + GenerateWorkbinResource(workbinResId, workbinName, workDescription, "genesyscloud_auth_division."+divisionResId1+".id"), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr(resourceName+"."+workbinResId, "name", workbinName), @@ -59,8 +59,8 @@ func TestAccResourceTaskManagementWorkbin(t *testing.T) { ), }, { - Config: gcloud.GenerateAuthDivisionBasic(divisionResId1, divisionName1) + - gcloud.GenerateAuthDivisionBasic(divisionResId2, divisionName2) + + Config: authDivision.GenerateAuthDivisionBasic(divisionResId1, divisionName1) + + authDivision.GenerateAuthDivisionBasic(divisionResId2, divisionName2) + GenerateWorkbinResource(workbinResId, workbinName, workDescription, "genesyscloud_auth_division."+divisionResId2+".id"), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrPair(resourceName+"."+workbinResId, "division_id", "genesyscloud_auth_division."+divisionResId2, "id"), diff --git a/genesyscloud/task_management_workitem/resource_genesyscloud_task_management_workitem_test.go b/genesyscloud/task_management_workitem/resource_genesyscloud_task_management_workitem_test.go index 90e28ad1b..42369ba9b 100644 --- a/genesyscloud/task_management_workitem/resource_genesyscloud_task_management_workitem_test.go +++ b/genesyscloud/task_management_workitem/resource_genesyscloud_task_management_workitem_test.go @@ -66,7 +66,6 @@ type workitemConfig struct { } func TestAccResourceTaskManagementWorkitem(t *testing.T) { - t.Parallel() var ( // home division homeDivRes = "home" diff --git a/genesyscloud/team/data_source_genesyscloud_team_test.go b/genesyscloud/team/data_source_genesyscloud_team_test.go index e2325b0fe..5f9242795 100644 --- a/genesyscloud/team/data_source_genesyscloud_team_test.go +++ b/genesyscloud/team/data_source_genesyscloud_team_test.go @@ -2,7 +2,7 @@ package team import ( "fmt" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" "testing" @@ -31,7 +31,7 @@ func TestAccDataSourceResourceTeam(t *testing.T) { Steps: []resource.TestStep{ { - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( teamResource, name, "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/team/genesyscloud_team_init_test.go b/genesyscloud/team/genesyscloud_team_init_test.go index 23cb7cd69..399da7f48 100644 --- a/genesyscloud/team/genesyscloud_team_init_test.go +++ b/genesyscloud/team/genesyscloud_team_init_test.go @@ -2,7 +2,7 @@ package team import ( "sync" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/user" "testing" @@ -30,7 +30,7 @@ func (r *registerTestInstance) registerTestResources() { r.resourceMapMutex.Lock() defer r.resourceMapMutex.Unlock() providerResources["genesyscloud_team"] = ResourceTeam() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() providerResources["genesyscloud_user"] = user.ResourceUser() } diff --git a/genesyscloud/team/resource_genesyscloud_team_test.go b/genesyscloud/team/resource_genesyscloud_team_test.go index edf5e83db..2e821cc86 100644 --- a/genesyscloud/team/resource_genesyscloud_team_test.go +++ b/genesyscloud/team/resource_genesyscloud_team_test.go @@ -12,7 +12,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/mypurecloud/platform-client-sdk-go/v133/platformclientv2" - gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" ) @@ -40,7 +40,7 @@ func TestAccResourceTeam(t *testing.T) { Steps: []resource.TestStep{ { // Create Team - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( resourceId, name1, "genesyscloud_auth_division."+divResource+".id", @@ -54,7 +54,7 @@ func TestAccResourceTeam(t *testing.T) { }, { // Update Team - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( resourceId, name2, "genesyscloud_auth_division."+divResource+".id", @@ -97,7 +97,7 @@ func TestAccResourceTeamAddMembers(t *testing.T) { Steps: []resource.TestStep{ { // Create Team - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( resourceId, name1, @@ -112,7 +112,7 @@ func TestAccResourceTeamAddMembers(t *testing.T) { }, { // Update Team with one member - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateUserWithDivisionId(testUserResource1, testUserName1, testUserEmail1, "genesyscloud_auth_division."+divResource+".id") + generateTeamResource( resourceId, @@ -162,7 +162,7 @@ func TestAccResourceTeamRemoveMembers(t *testing.T) { Steps: []resource.TestStep{ { // Create Team with member - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateUserWithDivisionId(testUserResource1, testUserName1, testUserEmail1, "genesyscloud_auth_division."+divResource+".id") + generateTeamResource( resourceId, @@ -183,7 +183,7 @@ func TestAccResourceTeamRemoveMembers(t *testing.T) { }, { // Update Team with no members - Config: gcloud.GenerateAuthDivisionBasic(divResource, divName) + + Config: authDivision.GenerateAuthDivisionBasic(divResource, divName) + generateTeamResource( resourceId, name1, diff --git a/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go b/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go index 1cadb2ae7..3198f7393 100644 --- a/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go +++ b/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go @@ -17,6 +17,7 @@ import ( "sync" gcloud "terraform-provider-genesyscloud/genesyscloud" "terraform-provider-genesyscloud/genesyscloud/architect_flow" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" obContactList "terraform-provider-genesyscloud/genesyscloud/outbound_contact_list" "terraform-provider-genesyscloud/genesyscloud/provider" resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" @@ -213,7 +214,7 @@ func TestAccResourceTfExportIncludeFilterResourcesByRegExExclusiveToResource(t * queueResourceDef := buildQueueResources(queueResources) wrapupcodeResourceDef := buildWrapupcodeResources(wrapupCodeResources, "genesyscloud_auth_division."+divResource+".id") - config := queueResourceDef + gcloud.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + + config := queueResourceDef + authDivision.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + generateTfExportByIncludeFilterResources( exportResource, exportTestDir, @@ -280,7 +281,7 @@ func TestAccResourceTfExportExcludeFilterResourcesByRegExExclusiveToResource(t * queueResourceDef := buildQueueResources(queueResources) wrapupcodeResourceDef := buildWrapupcodeResources(wrapupCodeResources, "genesyscloud_auth_division."+divResource+".id") - config := queueResourceDef + gcloud.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + + config := queueResourceDef + authDivision.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + generateTfExportByExcludeFilterResources( exportResource, exportTestDir, @@ -362,7 +363,7 @@ func TestAccResourceTfExportSplitFilesAsJSON(t *testing.T) { queueResourceDef := buildQueueResources(queueResources) userResourcesDef := buildUserResources(userResources) wrapupcodeResourceDef := buildWrapupcodeResources(wrapupCodeResources, "genesyscloud_auth_division."+divResource+".id") - config := queueResourceDef + gcloud.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + userResourcesDef + + config := queueResourceDef + authDivision.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + userResourcesDef + generateTfExportByIncludeFilterResources( exportResource, @@ -428,7 +429,7 @@ func TestAccResourceTfExportExcludeFilterResourcesByRegExExclusiveToResourceAndS queueResourceDef := buildQueueResources(queueResources) wrapupcodeResourceDef := buildWrapupcodeResources(wrapupCodeResources, "genesyscloud_auth_division."+divResource+".id") - config := queueResourceDef + gcloud.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + + config := queueResourceDef + authDivision.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + generateTfExportByExcludeFilterResources( exportResource, exportTestDir, @@ -1473,7 +1474,7 @@ func TestAccResourceTfExportSplitFilesAsHCL(t *testing.T) { queueResourceDef := buildQueueResources(queueResources) userResourcesDef := buildUserResources(userResources) wrapupcodeResourceDef := buildWrapupcodeResources(wrapupCodeResources, "genesyscloud_auth_division."+divResource+".id") - config := queueResourceDef + gcloud.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + userResourcesDef + + config := queueResourceDef + authDivision.GenerateAuthDivisionBasic(divResource, divName) + wrapupcodeResourceDef + userResourcesDef + generateTfExportByIncludeFilterResources( exportResource, exportTestDir, @@ -2920,7 +2921,7 @@ func GenerateReferencedResourcesForOutboundCampaignTests( obContactList.GeneratePhoneColumnsBlock("Home", "home", strconv.Quote("Home"))) } - callAnalysisResponseSet = gcloud.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( + callAnalysisResponseSet = authDivision.GenerateAuthDivisionBasic(divResource, divName) + routingWrapupcode.GenerateRoutingWrapupcodeResource( wrapUpCodeResourceId, "wrapupcode "+uuid.NewString(), "genesyscloud_auth_division."+divResource+".id", diff --git a/genesyscloud/tfexporter/tf_exporter_resource_test.go b/genesyscloud/tfexporter/tf_exporter_resource_test.go index f94e1b8dc..8dcd68c77 100644 --- a/genesyscloud/tfexporter/tf_exporter_resource_test.go +++ b/genesyscloud/tfexporter/tf_exporter_resource_test.go @@ -15,6 +15,7 @@ import ( archIvr "terraform-provider-genesyscloud/genesyscloud/architect_ivr" architectSchedulegroups "terraform-provider-genesyscloud/genesyscloud/architect_schedulegroups" architectSchedules "terraform-provider-genesyscloud/genesyscloud/architect_schedules" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" integrationInstagram "terraform-provider-genesyscloud/genesyscloud/conversations_messaging_integrations_instagram" cMessagingSettings "terraform-provider-genesyscloud/genesyscloud/conversations_messaging_settings" @@ -132,7 +133,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_architect_schedulegroups"] = architectSchedulegroups.ResourceArchitectSchedulegroups() providerResources["genesyscloud_architect_user_prompt"] = userPrompt.ResourceArchitectUserPrompt() providerResources["genesyscloud_auth_role"] = authRole.ResourceAuthRole() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() providerResources["genesyscloud_employeeperformance_externalmetrics_definitions"] = employeeperformanceExternalmetricsDefinition.ResourceEmployeeperformanceExternalmetricsDefinition() providerResources["genesyscloud_flow_loglevel"] = flowLogLevel.ResourceFlowLoglevel() providerResources["genesyscloud_group"] = group.ResourceGroup() @@ -234,7 +235,7 @@ func (r *registerTestInstance) registerTestExporters() { RegisterExporter("genesyscloud_architect_schedules", architectSchedules.ArchitectSchedulesExporter()) RegisterExporter("genesyscloud_architect_schedulegroups", architectSchedulegroups.ArchitectSchedulegroupsExporter()) RegisterExporter("genesyscloud_architect_user_prompt", userPrompt.ArchitectUserPromptExporter()) - RegisterExporter("genesyscloud_auth_division", gcloud.AuthDivisionExporter()) + RegisterExporter("genesyscloud_auth_division", authDivision.AuthDivisionExporter()) RegisterExporter("genesyscloud_auth_role", authRole.AuthRoleExporter()) RegisterExporter("genesyscloud_employeeperformance_externalmetrics_definitions", employeeperformanceExternalmetricsDefinition.EmployeeperformanceExternalmetricsDefinitionExporter()) RegisterExporter("genesyscloud_flow", flow.ArchitectFlowExporter()) diff --git a/genesyscloud/user/data_source_genesyscloud_user.go b/genesyscloud/user/data_source_genesyscloud_user.go index 161bd8de1..f31373d24 100644 --- a/genesyscloud/user/data_source_genesyscloud_user.go +++ b/genesyscloud/user/data_source_genesyscloud_user.go @@ -37,7 +37,7 @@ func DataSourceUserRead(ctx context.Context, d *schema.ResourceData, m interface } if dataSourceUserCache == nil { - dataSourceUserCache = rc.NewDataSourceCache(sdkConfig, hydrateUserCacheFn, getUserByNameFn) + dataSourceUserCache = rc.NewDataSourceCache(sdkConfig, hydrateUserCache, getUserByName) } userId, err := rc.RetrieveId(dataSourceUserCache, resourceName, key, ctx) @@ -49,13 +49,11 @@ func DataSourceUserRead(ctx context.Context, d *schema.ResourceData, m interface return nil } -func hydrateUserCacheFn(c *rc.DataSourceCache) error { +func hydrateUserCache(c *rc.DataSourceCache, ctx context.Context) error { log.Printf("hydrating cache for data source %s", resourceName) + proxy := getUserProxy(c.ClientConfig) const pageSize = 100 - usersAPI := platformclientv2.NewUsersApiWithConfig(c.ClientConfig) - - users, response, err := usersAPI.GetUsers(pageSize, 1, nil, nil, "", nil, "", "") - + users, response, err := proxy.hydrateUserCache(ctx, pageSize, 1) if err != nil { return fmt.Errorf("failed to get first page of users: %v %v", err, response) } @@ -63,6 +61,7 @@ func hydrateUserCacheFn(c *rc.DataSourceCache) error { if users.Entities == nil || len(*users.Entities) == 0 { return nil } + for _, user := range *users.Entities { c.Cache[*user.Name] = *user.Id c.Cache[*user.Email] = *user.Id @@ -71,7 +70,7 @@ func hydrateUserCacheFn(c *rc.DataSourceCache) error { for pageNum := 2; pageNum <= *users.PageCount; pageNum++ { - users, response, err := usersAPI.GetUsers(pageSize, pageNum, nil, nil, "", nil, "", "") + users, response, err := proxy.hydrateUserCache(ctx, pageSize, pageNum) log.Printf("hydrating cache for data source %s with page number: %v", resourceName, pageNum) if err != nil { @@ -87,16 +86,14 @@ func hydrateUserCacheFn(c *rc.DataSourceCache) error { } } - log.Printf("cache hydration completed for data source %s", resourceName) - return nil } -func getUserByNameFn(c *rc.DataSourceCache, searchField string, ctx context.Context) (string, diag.Diagnostics) { +func getUserByName(c *rc.DataSourceCache, searchField string, ctx context.Context) (string, diag.Diagnostics) { + log.Printf("getUserByName for data source %s", resourceName) + proxy := getUserProxy(c.ClientConfig) userId := "" - usersAPI := platformclientv2.NewUsersApiWithConfig(c.ClientConfig) - exactSearchType := "EXACT" sortOrderAsc := "ASC" emailField := "email" @@ -109,7 +106,7 @@ func getUserByNameFn(c *rc.DataSourceCache, searchField string, ctx context.Cont searchCriteria.Value = &searchFieldValue diag := util.WithRetries(ctx, 15*time.Second, func() *retry.RetryError { - users, resp, getErr := usersAPI.PostUsersSearch(platformclientv2.Usersearchrequest{ + users, resp, getErr := proxy.getUserByName(ctx, platformclientv2.Usersearchrequest{ SortBy: &emailField, SortOrder: &sortOrderAsc, Query: &[]platformclientv2.Usersearchcriteria{searchCriteria}, @@ -126,6 +123,7 @@ func getUserByNameFn(c *rc.DataSourceCache, searchField string, ctx context.Cont userId = *(*users.Results)[0].Id return nil }) - return userId, diag + log.Printf("getUserByName completed for data source %s", resourceName) + return userId, diag } diff --git a/genesyscloud/user/genesyscloud_user_init_test.go b/genesyscloud/user/genesyscloud_user_init_test.go index b8569aaca..68e35c975 100644 --- a/genesyscloud/user/genesyscloud_user_init_test.go +++ b/genesyscloud/user/genesyscloud_user_init_test.go @@ -4,6 +4,7 @@ import ( "sync" "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" "terraform-provider-genesyscloud/genesyscloud/location" routinglanguage "terraform-provider-genesyscloud/genesyscloud/routing_language" @@ -37,7 +38,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources[resourceName] = ResourceUser() providerResources["genesyscloud_auth_role"] = authRole.ResourceAuthRole() - providerResources["genesyscloud_auth_division"] = genesyscloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() providerResources["genesyscloud_location"] = location.ResourceLocation() providerResources["genesyscloud_routing_skill"] = routingSkill.ResourceRoutingSkill() providerResources["genesyscloud_routing_language"] = routinglanguage.ResourceRoutingLanguage() diff --git a/genesyscloud/user/genesyscloud_user_proxy.go b/genesyscloud/user/genesyscloud_user_proxy.go index 2e56e9c2d..9186dc041 100644 --- a/genesyscloud/user/genesyscloud_user_proxy.go +++ b/genesyscloud/user/genesyscloud_user_proxy.go @@ -30,6 +30,8 @@ type getUserByIdFunc func(ctx context.Context, p *userProxy, id string, expand [ type updateUserFunc func(ctx context.Context, p *userProxy, id string, updateUser *platformclientv2.Updateuser) (*platformclientv2.User, *platformclientv2.APIResponse, error) type deleteUserFunc func(ctx context.Context, p *userProxy, id string) (*interface{}, *platformclientv2.APIResponse, error) type patchUserWithStateFunc func(ctx context.Context, p *userProxy, id string, updateUser *platformclientv2.Updateuser) (*platformclientv2.User, *platformclientv2.APIResponse, error) +type hydrateUserCacheFunc func(ctx context.Context, p *userProxy, pageSize int, pageNum int) (*platformclientv2.Userentitylisting, *platformclientv2.APIResponse, error) +type getUserByNameFunc func(ctx context.Context, p *userProxy, searchUser platformclientv2.Usersearchrequest) (*platformclientv2.Userssearchresponse, *platformclientv2.APIResponse, error) /* The userProxy struct holds all the methods responsible for making calls to @@ -49,6 +51,8 @@ type userProxy struct { updateUserAttr updateUserFunc deleteUserAttr deleteUserFunc patchUserWithStateAttr patchUserWithStateFunc + hydrateUserCacheAttr hydrateUserCacheFunc + getUserByNameAttr getUserByNameFunc userCache rc.CacheInterface[platformclientv2.User] //Define the cache for user resource } @@ -74,6 +78,8 @@ func newUserProxy(clientConfig *platformclientv2.Configuration) *userProxy { updateUserAttr: updateUserFn, deleteUserAttr: deleteUserFn, patchUserWithStateAttr: patchUserWithStateFn, + hydrateUserCacheAttr: hydrateUserCacheFn, + getUserByNameAttr: getUserByNameFn, } } @@ -129,6 +135,16 @@ func (p *userProxy) patchUserWithState(ctx context.Context, id string, updateUse return p.patchUserWithStateAttr(ctx, p, id, updateUser) } +// hydrateUserCache +func (p *userProxy) hydrateUserCache(ctx context.Context, pageSize int, pageNum int) (*platformclientv2.Userentitylisting, *platformclientv2.APIResponse, error) { + return p.hydrateUserCacheAttr(ctx, p, pageSize, pageNum) +} + +// getUserByName +func (p *userProxy) getUserByName(ctx context.Context, searchUser platformclientv2.Usersearchrequest) (*platformclientv2.Userssearchresponse, *platformclientv2.APIResponse, error) { + return p.getUserByNameAttr(ctx, p, searchUser) +} + // createUserFn is an implementation function for creating a Genesys Cloud user func createUserFn(ctx context.Context, p *userProxy, createUser *platformclientv2.Createuser) (*platformclientv2.User, *platformclientv2.APIResponse, error) { return p.userApi.PostUsers(*createUser) @@ -139,9 +155,14 @@ func getUserByIdFn(ctx context.Context, p *userProxy, id string, expand []string return p.userApi.GetUser(id, expand, "", state) } -// updateUserFn is an implementation of the function to update a Genesys Cloud user -func updateUserFn(ctx context.Context, p *userProxy, id string, updateUser *platformclientv2.Updateuser) (*platformclientv2.User, *platformclientv2.APIResponse, error) { - return p.userApi.PatchUser(id, *updateUser) +// hydrateUserCacheFn +func hydrateUserCacheFn(ctx context.Context, p *userProxy, pageSize int, pageNum int) (*platformclientv2.Userentitylisting, *platformclientv2.APIResponse, error) { + return p.userApi.GetUsers(pageSize, 1, nil, nil, "", nil, "", "") +} + +// getUserByNameFn +func getUserByNameFn(ctx context.Context, p *userProxy, searchUser platformclientv2.Usersearchrequest) (*platformclientv2.Userssearchresponse, *platformclientv2.APIResponse, error) { + return p.userApi.PostUsersSearch(searchUser) } // deleteUserFn is an implementation function for deleting a Genesys Cloud user @@ -158,6 +179,10 @@ func patchUserWithStateFn(ctx context.Context, p *userProxy, id string, updateUs return p.userApi.PatchUser(id, *updateUser) } +func updateUserFn(ctx context.Context, p *userProxy, id string, updateUser *platformclientv2.Updateuser) (*platformclientv2.User, *platformclientv2.APIResponse, error) { + return p.userApi.PatchUser(id, *updateUser) +} + // getAllUserFn is the implementation for retrieving all user in Genesys Cloud func getAllUserFn(ctx context.Context, p *userProxy) (*[]platformclientv2.User, *platformclientv2.APIResponse, error) { diff --git a/genesyscloud/user/resource_genesyscloud_user_utils.go b/genesyscloud/user/resource_genesyscloud_user_utils.go index baacaa46d..40e1844ea 100644 --- a/genesyscloud/user/resource_genesyscloud_user_utils.go +++ b/genesyscloud/user/resource_genesyscloud_user_utils.go @@ -27,8 +27,6 @@ var ( "email": "email", "message": "message", } - sdkConfig *platformclientv2.Configuration - err error ) type mediaUtilization struct { diff --git a/genesyscloud/user_roles/genesyscloud_user_roles_init_test.go b/genesyscloud/user_roles/genesyscloud_user_roles_init_test.go index bdfadc28f..65267ed08 100644 --- a/genesyscloud/user_roles/genesyscloud_user_roles_init_test.go +++ b/genesyscloud/user_roles/genesyscloud_user_roles_init_test.go @@ -3,6 +3,7 @@ package user_roles import ( "sync" gcloud "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" "terraform-provider-genesyscloud/genesyscloud/user" @@ -34,7 +35,7 @@ func (r *registerTestInstance) registerTestResources() { providerResources["genesyscloud_user_roles"] = ResourceUserRoles() providerResources["genesyscloud_user"] = user.ResourceUser() providerResources["genesyscloud_auth_role"] = authRole.ResourceAuthRole() - providerResources["genesyscloud_auth_division"] = gcloud.ResourceAuthDivision() + providerResources["genesyscloud_auth_division"] = authDivision.ResourceAuthDivision() } // registerTestDataSources registers all data sources used in the tests. diff --git a/genesyscloud/user_roles/resource_genesyscloud_user_roles_test.go b/genesyscloud/user_roles/resource_genesyscloud_user_roles_test.go index 48c3a4f04..cc8776a59 100644 --- a/genesyscloud/user_roles/resource_genesyscloud_user_roles_test.go +++ b/genesyscloud/user_roles/resource_genesyscloud_user_roles_test.go @@ -4,7 +4,7 @@ import ( "fmt" "strconv" "strings" - "terraform-provider-genesyscloud/genesyscloud" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/user" @@ -88,7 +88,7 @@ func TestAccResourceUserRolesMembership(t *testing.T) { generateResourceRoles("genesyscloud_auth_role."+roleResource1+".id"), generateResourceRoles("genesyscloud_auth_role."+roleResource2+".id", "genesyscloud_auth_division."+divResource+".id", "data.genesyscloud_auth_division_home.home.id"), - ) + genesyscloud.GenerateAuthDivisionBasic(divResource, divName), + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("genesyscloud_user_roles."+userRoleResource, "roles.1.division_ids.#", "0"), resource.TestCheckResourceAttr("genesyscloud_user_roles."+userRoleResource, "roles.0.division_ids.#", "2"), @@ -111,7 +111,7 @@ func TestAccResourceUserRolesMembership(t *testing.T) { userRoleResource, userResource1, generateResourceRoles("genesyscloud_auth_role."+roleResource1+".id", "genesyscloud_auth_division."+divResource+".id"), - ) + genesyscloud.GenerateAuthDivisionBasic(divResource, divName), + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName), Check: resource.ComposeTestCheckFunc( validateResourceRole("genesyscloud_user_roles."+userRoleResource, "genesyscloud_auth_role."+roleResource1, "genesyscloud_auth_division."+divResource), ), @@ -129,7 +129,7 @@ func TestAccResourceUserRolesMembership(t *testing.T) { ) + GenerateUserRoles( userRoleResource, userResource1, - ) + genesyscloud.GenerateAuthDivisionBasic(divResource, divName), + ) + authDivision.GenerateAuthDivisionBasic(divResource, divName), Check: resource.ComposeTestCheckFunc( resource.TestCheckNoResourceAttr("genesyscloud_user_roles."+userRoleResource, "roles.%"), ), diff --git a/genesyscloud/util/testrunner/testrunner.go b/genesyscloud/util/testrunner/testrunner.go index b65248dc9..bfa05a43d 100644 --- a/genesyscloud/util/testrunner/testrunner.go +++ b/genesyscloud/util/testrunner/testrunner.go @@ -37,6 +37,17 @@ func NormalizePath(path string) (string, error) { return fullyQualifiedPath, nil } +func NormalizeSlash(fileNameWithSlash string) string { + fullyQualifiedFileName := fileNameWithSlash + + if runtime.GOOS == "windows" { + // Convert single backslashes to dobule backslashes if necessary + fullyQualifiedFileName = strings.ReplaceAll(fullyQualifiedFileName, "\\", "\\\\") + } + + return fullyQualifiedFileName +} + func GenerateDataSourceTestSteps(resourceName string, testCaseName string, checkFuncs []resource.TestCheckFunc) []resource.TestStep { return GenerateTestSteps(DataSourceTestType, resourceName, testCaseName, checkFuncs) } diff --git a/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_schema.go b/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_schema.go index 22d1939be..450556b8d 100644 --- a/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_schema.go +++ b/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_schema.go @@ -371,7 +371,7 @@ var ( Description: "The condition to be applied to the `url_fragment`. Conditions are 'includes', 'does_not_include', 'starts_with', 'ends_with', 'equals'", Type: schema.TypeString, Required: true, - ValidateFunc: validation.StringInSlice([]string{"includes", "does_not_include", "starts_with", "ends_with", "equals"}, false), + ValidateFunc: validation.StringInSlice([]string{"Includes", "DoesNotInclude", "StartsWith", "EndsWith", "Equals"}, true), }, }, }, diff --git a/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_test.go b/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_test.go index 90d56d53e..a692add9d 100644 --- a/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_test.go +++ b/genesyscloud/webdeployments_configuration/resource_genesyscloud_webdeployments_configuration_test.go @@ -187,8 +187,8 @@ func TestAccResourceWebDeploymentsConfigurationComplex(t *testing.T) { channels, []string{strconv.Quote("selector-one")}, []string{strconv.Quote("selector-one")}, - generatePauseCriteria("/sensitive", "includes"), - generatePauseCriteria("/login", "equals"), + generatePauseCriteria("/sensitive", "Includes"), + generatePauseCriteria("/login", "Equals"), ), ), Check: resource.ComposeTestCheckFunc( @@ -261,9 +261,9 @@ func TestAccResourceWebDeploymentsConfigurationComplex(t *testing.T) { resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.readonly_selectors.0", "selector-one"), resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.#", "2"), resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.0.url_fragment", "/sensitive"), - resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.0.condition", "includes"), + resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.0.condition", "Includes"), resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.1.url_fragment", "/login"), - resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.1.condition", "equals"), + resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.1.condition", "Equals"), resource.TestCheckResourceAttr(fullResourceName, "journey_events.#", "1"), resource.TestCheckResourceAttr(fullResourceName, "journey_events.0.enabled", util.TrueValue), @@ -319,8 +319,8 @@ func TestAccResourceWebDeploymentsConfigurationComplex(t *testing.T) { channelsUpdate, []string{strconv.Quote("selector-one"), strconv.Quote("selector-two")}, []string{strconv.Quote("selector-one"), strconv.Quote("selector-two")}, - generatePauseCriteria("/sensitive", "includes"), - generatePauseCriteria("/login", "equals"), + generatePauseCriteria("/sensitive", "Includes"), + generatePauseCriteria("/login", "Equals"), ), ), Check: resource.ComposeTestCheckFunc( @@ -356,9 +356,9 @@ func TestAccResourceWebDeploymentsConfigurationComplex(t *testing.T) { util.ValidateStringInArray(fullResourceName, "cobrowse.0.readonly_selectors", "selector-two"), resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.#", "2"), resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.0.url_fragment", "/sensitive"), - resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.0.condition", "includes"), + resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.0.condition", "Includes"), resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.1.url_fragment", "/login"), - resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.1.condition", "equals"), + resource.TestCheckResourceAttr(fullResourceName, "cobrowse.0.pause_criteria.1.condition", "Equals"), resource.TestCheckResourceAttr(fullResourceName, "journey_events.#", "1"), resource.TestCheckResourceAttr(fullResourceName, "journey_events.0.enabled", util.TrueValue), resource.TestCheckResourceAttr(fullResourceName, "journey_events.0.excluded_query_parameters.#", "1"), diff --git a/genesyscloud/webdeployments_configuration/utils/resource_genesyscloud_webdeployments_configuration_utils.go b/genesyscloud/webdeployments_configuration/utils/resource_genesyscloud_webdeployments_configuration_utils.go index 91aace5c5..8fbbffdca 100644 --- a/genesyscloud/webdeployments_configuration/utils/resource_genesyscloud_webdeployments_configuration_utils.go +++ b/genesyscloud/webdeployments_configuration/utils/resource_genesyscloud_webdeployments_configuration_utils.go @@ -178,9 +178,26 @@ func FlattenCobrowseSettings(cobrowseSettings *platformclientv2.Cobrowsesettings "channels": cobrowseSettings.Channels, "mask_selectors": cobrowseSettings.MaskSelectors, "readonly_selectors": cobrowseSettings.ReadonlySelectors, + "pause_criteria": flattenPauseCriteria(cobrowseSettings.PauseCriteria), }} } +func flattenPauseCriteria(pauseCriteria *[]platformclientv2.Pausecriteria) []interface{} { + if pauseCriteria == nil { + return nil + } + + criterias := make([]interface{}, len(*pauseCriteria)) + for i, criteria := range *pauseCriteria { + criterias[i] = map[string]interface{}{ + "url_fragment": *criteria.UrlFragment, + "condition": *criteria.Condition, + } + } + + return criterias +} + func flattenLocalizedLabels(localizedLabels *[]platformclientv2.Localizedlabels) []interface{} { if localizedLabels == nil { return nil diff --git a/go.mod b/go.mod index a62097765..ab6e700a6 100644 --- a/go.mod +++ b/go.mod @@ -94,11 +94,11 @@ require ( github.com/subosito/gotenv v1.2.0 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.27.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.28.0 - golang.org/x/sys v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/net v0.29.0 + golang.org/x/sys v0.25.0 // indirect + golang.org/x/text v0.18.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/grpc v1.63.2 // indirect google.golang.org/protobuf v1.34.1 // indirect diff --git a/go.sum b/go.sum index 81469660b..203ffe9f1 100644 --- a/go.sum +++ b/go.sum @@ -362,8 +362,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -404,8 +404,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -442,8 +442,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -454,8 +454,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/main.go b/main.go index b21cc96f7..df81a4ff8 100644 --- a/main.go +++ b/main.go @@ -14,6 +14,7 @@ import ( architectSchedulegroups "terraform-provider-genesyscloud/genesyscloud/architect_schedulegroups" architectSchedules "terraform-provider-genesyscloud/genesyscloud/architect_schedules" userPrompt "terraform-provider-genesyscloud/genesyscloud/architect_user_prompt" + authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" authRole "terraform-provider-genesyscloud/genesyscloud/auth_role" authorizatioProduct "terraform-provider-genesyscloud/genesyscloud/authorization_product" integrationInstagram "terraform-provider-genesyscloud/genesyscloud/conversations_messaging_integrations_instagram" @@ -167,6 +168,7 @@ type RegisterInstance struct { func registerResources() { regInstance := &RegisterInstance{} authRole.SetRegistrar(regInstance) //Registering auth_role + authDivision.SetRegistrar(regInstance) //Registering auth_division oauth.SetRegistrar(regInstance) //Registering oauth_client dt.SetRegistrar(regInstance) //Registering architect data table dtr.SetRegistrar(regInstance) //Registering architect data table row diff --git a/scripts/generate_env.py b/scripts/generate_env.py new file mode 100755 index 000000000..28b78bcb0 --- /dev/null +++ b/scripts/generate_env.py @@ -0,0 +1,39 @@ +## This script is included in our .devcontainers setup. We basically use this to generate our an environment variables file that can be used to set the Genesys Cloud environment variables. + +import os + +def get_user_input(prompt): + return input(prompt).strip() + +def generate_shell_script(client_id, client_secret, region): + script_content = f"""#!/bin/bash + +export GENESYSCLOUD_OAUTHCLIENT_ID="{client_id}" +export GENESYSCLOUD_OAUTHCLIENT_SECRET="{client_secret}" +export GENESYSCLOUD_REGION="{region}" + +echo "Environment variables set successfully!" +""" + return script_content + +def main(): + print("Please enter the following values to generate the environment variables needed to run terraform against your target environment: ") + + client_id = get_user_input("GENESYSCLOUD_OAUTHCLIENT_ID: ") + client_secret = get_user_input("GENESYSCLOUD_OAUTHCLIENT_SECRET: ") + region = get_user_input("GENESYSCLOUD_REGION: ") + + script_content = generate_shell_script(client_id, client_secret, region) + + script_filename = "/tmp/set_genesys_env.sh" + with open(script_filename, "w") as f: + f.write(script_content) + + print(f"\nShell script '{script_filename}' has been generated.") + print(f"To use it, run: source {script_filename}") + + #Make the script executable + os.chmod(script_filename, 0o755) + +if __name__ == "__main__": + main() \ No newline at end of file