Skip to content

Commit 54cffa8

Browse files
Add Changes to Main (#2046)
-Fix Test case issues -Added endpoint check to Apple Integration Tests -Enable guide tests -Increasing retry timeout by 2 mins after division deletion -Fix conv message settings -Fix quality forms survey language validation -Export resource by ID -Routing Queue Test Fix and Go Checks fix -Added timeAndDateCondition to outbound_ruleset -Add retries to publish DT call due to 409 -Routing Queue Test Fix and Go Checks fix -Consistency check timeout fix for updating quality forms survey
1 parent 450a8e7 commit 54cffa8

File tree

144 files changed

+6553
-281
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+6553
-281
lines changed

.amazonq/rules/new-resource.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Adding A New Resource Type
2+
3+
1. Create new package inside `genesyscloud` with the following files. The package name should match the name of the resource (minus, the genesyscloud\_ prefix).
4+
- `resource_genesyscloud_{resource_name}_schema.go` - The file containing the schema definition for the resource, data source, and exporter. It also contains a constant variable which defines the resource name, and a public function called `SetRegistrar`, which will be called from outside the package to register the resource with the provider. The schema should closely match Public API schemas, but there are some Terraform schema limitations that may require some deviation from the API.
5+
- `resource_genesyscloud_{resource_name}.go` - Contains the create, read, update and delete functions for the resource (the methods for the resource's `CreateContext`, `ReadContext`, `UpdateContext`, and `DeleteContext` attributes.) It also contains the getAll function to be used by the exporter. If you have a few helper functions present in this file, that is fine, but if there are more than 1-2 helper functions you should create a `resource_genesyscloud_{resource_name}_utils.go` to contain the business logic.
6+
- `resource_genesyscloud_{resource_name}_test.go` - Contains the resource tests. Write acceptance test cases that cover all of the attributes and CRUD operations for the resource. Acceptance tests modify real resources in a test org and require an OAuth Client authorized to create, update, and delete the resource type in the org. See existing tests for examples and [Terraform Acceptance Test documentation](https://www.terraform.io/docs/extend/testing/acceptance-tests/index.html) for more details. Unit tests are also encouraged where applicable (for helper functions etc.)
7+
- `data_source_genesyscloud_{resource_name}.go` - This file contains all of the data source logic for a resource. The data source should call any Genesys Cloud APIs through its API proxy class. All functions and variables in this class should be private.
8+
- `data_source_genesyscloud_{resource_name}_test.go` - Contains the data source tests.
9+
- `genesyscloud_{resource_name}_proxy.go` - This contains all of the API logic for interacting with the Genesys Cloud APIs. This is meant to be an isolated layer from Terraform, so know Terraform objects should be passed back and forth to this code. All functions and variables in this class should be private.
10+
- `genesyscloud_{resource_name}_init_test.go` - This file contains all of the logic needed to initialize a test case for your resource. All functions and variables in this class should be private.
11+
2. Add a new folder for the resource and data source under the `/examples` folder. An example `resource.tf` file for the resource should be added to the folder along with an `apis.md` file listing all of the APIs the resource uses. To generate the documentation, run `go generate`. **Note:** Everything inside the `docs` directory is generated based off schema data and the content inside `examples`. Do not manually edit anything inside `docs`.
12+
3. Import your package to `main.go` at the root of the project and, from the `registerResources` function, call the SetRegistrar function passing in the `regInstance` variable.

.amazonq/rules/project.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Terraform Provider Genesys Cloud
2+
3+
This Golang project is a Terraform provider for the Genesys Cloud APIs.
4+
5+
Further details about this project can be found in the ./README.md file
6+
7+
Utilize the ./DICTIONARY.md file for ensuring proper and consistent domain language usage.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "genesyscloud_ai_studio_summary_setting Data Source - terraform-provider-genesyscloud"
4+
subcategory: ""
5+
description: |-
6+
Genesys Cloud ai studio summary setting data source. Select an ai studio summary setting by name
7+
---
8+
9+
# genesyscloud_ai_studio_summary_setting (Data Source)
10+
11+
Genesys Cloud ai studio summary setting data source. Select an ai studio summary setting by name
12+
13+
## Example Usage
14+
15+
```terraform
16+
data "genesyscloud_ai_studio_summary_setting" "summary_setting" {
17+
name = "my_summary_setting"
18+
}
19+
```
20+
21+
<!-- schema generated by tfplugindocs -->
22+
## Schema
23+
24+
### Required
25+
26+
- `name` (String) ai studio summary setting name
27+
28+
### Read-Only
29+
30+
- `id` (String) The ID of this resource.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "genesyscloud_conversations_messaging_integrations_apple Data Source - terraform-provider-genesyscloud"
4+
subcategory: ""
5+
description: |-
6+
Genesys Cloud apple integration data source. Select an apple integration by name
7+
---
8+
9+
# genesyscloud_conversations_messaging_integrations_apple (Data Source)
10+
11+
Genesys Cloud apple integration data source. Select an apple integration by name
12+
13+
## Example Usage
14+
15+
```terraform
16+
data "genesyscloud_conversations_messaging_integrations_apple" "example" {
17+
name = "Apple Messages Integration"
18+
}
19+
```
20+
21+
<!-- schema generated by tfplugindocs -->
22+
## Schema
23+
24+
### Required
25+
26+
- `name` (String) apple integration name
27+
28+
### Read-Only
29+
30+
- `id` (String) The ID of this resource.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
page_title: "genesyscloud_ai_studio_summary_setting Resource - terraform-provider-genesyscloud"
3+
subcategory: ""
4+
description: |-
5+
Genesys Cloud ai studio summary setting
6+
---
7+
# genesyscloud_ai_studio_summary_setting (Resource)
8+
9+
Genesys Cloud ai studio summary setting
10+
11+
## API Usage
12+
The following Genesys Cloud APIs are used by this resource. Ensure your OAuth Client has been granted the necessary scopes and permissions to perform these operations:
13+
14+
- [POST /api/v2/conversations/summaries/settings](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-conversations-summaries-settings)
15+
- [GET /api/v2/conversations/summaries/settings/{summarySettingId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-conversations-summaries-settings--summarySettingId-)
16+
- [PUT /api/v2/conversations/summaries/settings/{summarySettingId}](https://developer.genesys.cloud/devapps/api-explorer#put-api-v2-conversations-summaries-settings--summarySettingId-)
17+
- [DELETE /api/v2/conversations/summaries/settings/{summarySettingId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-conversations-summaries-settings--summarySettingId-)
18+
- [GET /api/v2/conversations/summaries/settings](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-conversations-summaries-settings)
19+
20+
21+
## Example Usage
22+
23+
```terraform
24+
resource "genesyscloud_ai_studio_summary_setting" "summary" {
25+
name = "user10"
26+
language = "en-au"
27+
summary_type = "Concise"
28+
setting_type = "Basic"
29+
format = "BulletPoints"
30+
mask_p_i_i {
31+
all = true
32+
}
33+
participant_labels {
34+
internal = "Advisor"
35+
external = "Member"
36+
}
37+
predefined_insights = []
38+
prompt = ""
39+
}
40+
```
41+
42+
<!-- schema generated by tfplugindocs -->
43+
## Schema
44+
45+
### Required
46+
47+
- `language` (String) Language of the generated summary, e.g. en-US, it-IT.
48+
- `name` (String) Name of the summary setting.
49+
50+
### Optional
51+
52+
- `custom_entities` (Block List) Custom entity definition. (see [below for nested schema](#nestedblock--custom_entities))
53+
- `format` (String) Format of the generated summary.
54+
- `mask_p_i_i` (Block List, Max: 1) Displaying PII in the generated summary. (see [below for nested schema](#nestedblock--mask_p_i_i))
55+
- `participant_labels` (Block List, Max: 1) How to refer to interaction participants in the generated summary. (see [below for nested schema](#nestedblock--participant_labels))
56+
- `predefined_insights` (Set of String) Set which insights to include in the generated summary by default.
57+
- `prompt` (String) Custom prompt of summary setting.
58+
- `setting_type` (String) Type of the summary setting.
59+
- `summary_type` (String) Level of detail of the generated summary.
60+
61+
### Read-Only
62+
63+
- `id` (String) The ID of this resource.
64+
65+
<a id="nestedblock--custom_entities"></a>
66+
### Nested Schema for `custom_entities`
67+
68+
Optional:
69+
70+
- `description` (String) Describe the information the entity captures.
71+
- `label` (String) Label how the entity should be called.
72+
73+
74+
<a id="nestedblock--mask_p_i_i"></a>
75+
### Nested Schema for `mask_p_i_i`
76+
77+
Required:
78+
79+
- `all` (Boolean) Toggle PII visibility in summary.
80+
81+
82+
<a id="nestedblock--participant_labels"></a>
83+
### Nested Schema for `participant_labels`
84+
85+
Optional:
86+
87+
- `external` (String) Specify how to refer the external participant of the interaction.
88+
- `internal` (String) Specify how to refer the internal participant of the interaction.
89+
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
page_title: "genesyscloud_conversations_messaging_integrations_apple Resource - terraform-provider-genesyscloud"
3+
subcategory: ""
4+
description: |-
5+
Genesys Cloud apple integration
6+
---
7+
# genesyscloud_conversations_messaging_integrations_apple (Resource)
8+
9+
Genesys Cloud apple integration
10+
11+
## API Usage
12+
The following Genesys Cloud APIs are used by this resource. Ensure your OAuth Client has been granted the necessary scopes and permissions to perform these operations:
13+
14+
* [POST /api/v2/conversations/messaging/integrations/apple](https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-conversations-messaging-integrations-apple)
15+
* [GET /api/v2/conversations/messaging/integrations/apple/{integrationId}](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-conversations-messaging-integrations-apple--integrationId-)
16+
* [PATCH /api/v2/conversations/messaging/integrations/apple/{integrationId}](https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-conversations-messaging-integrations-apple--integrationId-)
17+
* [DELETE /api/v2/conversations/messaging/integrations/apple/{integrationId}](https://developer.genesys.cloud/devapps/api-explorer#delete-api-v2-conversations-messaging-integrations-apple--integrationId-)
18+
* [GET /api/v2/conversations/messaging/integrations/apple](https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-conversations-messaging-integrations-apple)
19+
20+
## Example Usage
21+
22+
```terraform
23+
resource "genesyscloud_conversations_messaging_integrations_apple" "example" {
24+
name = "Apple Messages Integration"
25+
messages_for_business_id = "your-apple-messages-business-id"
26+
business_name = "Your Business Name"
27+
logo_url = "https://example.com/logo.png"
28+
supported_content_id = genesyscloud_conversations_messaging_supportedcontent.example.id
29+
messaging_setting_id = genesyscloud_conversations_messaging_settings.example.id
30+
31+
apple_i_message_app {
32+
application_name = "Your App Name"
33+
application_id = "your-app-id"
34+
bundle_id = "com.yourcompany.yourapp"
35+
}
36+
37+
apple_authentication {
38+
oauth_client_id = "your-oauth-client-id"
39+
oauth_client_secret = "your-oauth-client-secret"
40+
oauth_token_url = "https://appleid.apple.com/auth/oauth2/token"
41+
oauth_scope = "profile"
42+
}
43+
44+
apple_pay {
45+
store_name = "Your Store"
46+
merchant_id = "merchant.com.yourcompany.yourstore"
47+
domain_name = "yourstore.com"
48+
payment_capabilities = ["supports3DS", "supportsCredit", "supportsDebit"]
49+
supported_payment_networks = ["visa", "masterCard", "amex"]
50+
payment_certificate_credential_id = "your-payment-certificate-credential-id"
51+
payment_gateway_url = "https://yourstore.com/payment-gateway"
52+
fallback_url = "https://yourstore.com/fallback"
53+
shipping_method_update_url = "https://yourstore.com/shipping-method-update"
54+
shipping_contact_update_url = "https://yourstore.com/shipping-contact-update"
55+
payment_method_update_url = "https://yourstore.com/payment-method-update"
56+
order_tracking_url = "https://yourstore.com/order-tracking"
57+
}
58+
}
59+
```
60+
61+
<!-- schema generated by tfplugindocs -->
62+
## Schema
63+
64+
### Required
65+
66+
- `messages_for_business_id` (String) The Apple Messages for Business Id for the Apple messaging integration.
67+
- `name` (String) The name of the Apple messaging integration.
68+
69+
### Optional
70+
71+
- `apple_authentication` (Block List, Max: 1) The Apple Messages for Business authentication setting. (see [below for nested schema](#nestedblock--apple_authentication))
72+
- `apple_i_message_app` (Block List, Max: 1) Interactive Application (iMessage App) Settings. (see [below for nested schema](#nestedblock--apple_i_message_app))
73+
- `apple_pay` (Block List, Max: 1) Apple Pay settings. (see [below for nested schema](#nestedblock--apple_pay))
74+
- `business_name` (String) The name of the business.
75+
- `logo_url` (String) The url of the businesses logo.
76+
- `messaging_setting_id` (String) The ID of the messaging setting configured for this integration
77+
- `supported_content_id` (String) The ID of the supported content profile configured for this integration. If not set, the default supported content profile will be used.
78+
79+
### Read-Only
80+
81+
- `id` (String) The ID of this resource.
82+
83+
<a id="nestedblock--apple_authentication"></a>
84+
### Nested Schema for `apple_authentication`
85+
86+
Optional:
87+
88+
- `oauth_client_id` (String) The Apple Messages for Business OAuth client id.
89+
- `oauth_client_secret` (String) The Apple Messages for Business OAuth client secret.
90+
- `oauth_scope` (String) The Apple Messages for Business OAuth scope.
91+
- `oauth_token_url` (String) The Apple Messages for Business token URL.
92+
93+
94+
<a id="nestedblock--apple_i_message_app"></a>
95+
### Nested Schema for `apple_i_message_app`
96+
97+
Required:
98+
99+
- `application_id` (String) Application ID.
100+
- `application_name` (String) Application Name.
101+
- `bundle_id` (String) Bundle ID.
102+
103+
104+
<a id="nestedblock--apple_pay"></a>
105+
### Nested Schema for `apple_pay`
106+
107+
Required:
108+
109+
- `domain_name` (String) The domain name associated with the merchant account.
110+
- `merchant_id` (String) The stores merchant identifier.
111+
- `payment_capabilities` (List of String) The payment capabilities supported by the merchant.
112+
- `payment_certificate_credential_id` (String) The Genesys credentialId the payment certificates are stored under. Must be a valid and existing credential ID created via /api/v2/integrations/credentials endpoint. See API documentation: https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-integrations-credentials. Example payload: {"type": "applePayCertificate", "credentialFields": {"merchantKey": "base-64-key", "merchantCertificate": "base-64-cert"}}
113+
- `payment_gateway_url` (String) The url used to process payments.
114+
- `store_name` (String) The name of the store.
115+
- `supported_payment_networks` (List of String) The payment networks supported by the merchant.
116+
117+
Optional:
118+
119+
- `fallback_url` (String) The url opened in a web browser if the customers device is unable to make payments using Apple Pay.
120+
- `order_tracking_url` (String) The url called after completing the order to update the order information in your system
121+
- `payment_method_update_url` (String) The url called when the customer changes their payment method.
122+
- `shipping_contact_update_url` (String) The url called when the customer changes their shipping address information.
123+
- `shipping_method_update_url` (String) The url called when the customer changes the shipping method.
124+

docs/resources/group.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ The following Genesys Cloud APIs are used by this resource. Ensure your OAuth Cl
1919
* [GET /api/v2/groups/{groupId}/individuals](https://developer.mypurecloud.com/api/rest/v2/groups/#get-api-v2-groups--groupId--individuals)
2020
* [POST /api/v2/groups/{groupId}/members](https://developer.mypurecloud.com/api/rest/v2/groups/#post-api-v2-groups--groupId--members)
2121
* [DELETE /api/v2/groups/{groupId}/members](https://developer.mypurecloud.com/api/rest/v2/groups/#delete-api-v2-groups--groupId--members)
22+
* [GET /api/v2/voicemail/groups/{groupId}/policy](https://developer.genesys.cloud/commdigital/voicemail/#get-api-v2-voicemail-groups--groupId--policy)
23+
* [PATCH /api/v2/voicemail/groups/{groupId}/policy](https://developer.genesys.cloud/commdigital/voicemail/#patch-api-v2-voicemail-groups--groupId--policy)
2224

2325
## Example Usage
2426

@@ -75,6 +77,7 @@ resource "genesyscloud_group" "example_group2" {
7577
- `rules_visible` (Boolean) Are membership rules visible to the person requesting to view the group. Defaults to `true`.
7678
- `type` (String) Group type (official | social). This cannot be modified. Changing type attribute will cause the existing genesys_group object to dropped and recreated with a new ID. Defaults to `official`.
7779
- `visibility` (String) Who can view this group (public | owners | members). Defaults to `public`.
80+
- `voicemail_policy` (Block List, Max: 1) The voicemail policy associated with this group (see [below for nested schema](#nestedblock--voicemail_policy))
7881

7982
### Read-Only
8083

@@ -92,3 +95,13 @@ Optional:
9295
- `extension` (String) Phone extension.
9396
- `number` (String) Phone number for this contact type. Must be in an E.164 number format.
9497

98+
99+
<a id="nestedblock--voicemail_policy"></a>
100+
### Nested Schema for `voicemail_policy`
101+
102+
Optional:
103+
104+
- `disable_email_pii` (Boolean) Removes any PII from group emails. This is overridden by the analogous organization configuration value. This is always true if HIPAA is enabled or unknown for an organization.
105+
- `include_email_transcriptions` (Boolean) Whether to include the voicemail transcription in a group notification email.
106+
- `send_email_notifications` (Boolean) Whether email notifications are sent to group members when a new voicemail is received.
107+

docs/resources/idp_adfs.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ resource "genesyscloud_idp_adfs" "adfs" {
2525
target_uri = "https://example.com/login"
2626
relying_party_identifier = "unique-id-from-adfs"
2727
disabled = true
28+
sign_authn_requests = false
2829
}
2930
```
3031

@@ -41,6 +42,7 @@ resource "genesyscloud_idp_adfs" "adfs" {
4142
- `disabled` (Boolean) True if ADFS is disabled. Defaults to `false`.
4243
- `name` (String) IDP ADFS resource name
4344
- `relying_party_identifier` (String) String used to identify Genesys Cloud to ADFS.
45+
- `sign_authn_requests` (Boolean) True if the Genesys Cloud authentication request should be signed. Defaults to `false`.
4446
- `slo_binding` (String)
4547
- `slo_uri` (String) Provided by ADFS on app creation
4648
- `target_uri` (String) Target URI provided by ADFS.

docs/resources/idp_generic.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ resource "genesyscloud_idp_generic" "generic" {
2727
logo_image_data = filebase64("${local.working_dir.idp_generic}/logo.svg")
2828
endpoint_compression = false
2929
name_identifier_format = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
30+
sign_authn_requests = false
3031
}
3132
```
3233

@@ -46,6 +47,7 @@ resource "genesyscloud_idp_generic" "generic" {
4647
- `logo_image_data` (String) Base64 encoded SVG image.
4748
- `name_identifier_format` (String) SAML name identifier format. (urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified | urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress | urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName | urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName | urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos | urn:oasis:names:tc:SAML:2.0:nameid-format:entity | urn:oasis:names:tc:SAML:2.0:nameid-format:persistent | urn:oasis:names:tc:SAML:2.0:nameid-format:transient) Defaults to `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`.
4849
- `relying_party_identifier` (String) String used to identify Genesys Cloud to the identity provider.
50+
- `sign_authn_requests` (Boolean) True if the Genesys Cloud authentication request should be signed. Defaults to `false`.
4951
- `slo_binding` (String) Valid values: HTTP Redirect, HTTP Post
5052
- `slo_uri` (String) Provided on app creation.
5153
- `target_uri` (String) Target URI provided by the provider.

0 commit comments

Comments
 (0)