Skip to content

Conversation

@ctrombley
Copy link
Collaborator

@ctrombley ctrombley commented Aug 20, 2025

Description

This PR updates DeliveryResponses field parsing of NotificationConfiguration. NotificationConfiguration now parses DeliveryResponses, originally by @jpadrianoGo (#1129).

The change aims to be part of automating notification configuration management for workspaces. This aligns with API's NotificationConfiguration return for List, Create, Read, Update, and Verify operations.

curl
--header "Authorization: Bearer $TOKEN"
--request POST
--data @payload.json
https://app.terraform.io/api/v2/workspaces/ws-***/notification-configurations/

{ "data": { "id": "nc-***", "type": "notification-configurations", "attributes": { "enabled": true, "name": "Notify organization users about run", "destination-type": "generic", "triggers": [ "run:applying", "run:completed", "run:created", "run:errored", "run:needs_attention", "run:planning" ], "delivery-responses": [ { "code": "200", "body": "{\"code\":200,\"description\":\"OK\"}", "headers": { "content-length": ["31"], "content-type": ["application/json"], "date": ["Mon, 16 Jun 2025 01:42:05 GMT"] }, "sent-at": "2025-06-16T01:42:06+00:00", "successful": "true", "url": "***" } ], "created-at": "2025-06-16T01:42:06.447Z", "updated-at": "2025-06-16T01:42:06.447Z", "url": "***", "token": null }, "relationships": { "subscribable": { "data": { "id": "ws-***", "type": "workspaces" } } }, "links": { "self": "/api/v2/notification-configurations/nc-***" } } }

A new function is added to parse DeliveryResponse func parseDeliveryResponses(nc *NotificationConfiguration).
The following functions have been updated to use parseDeliveryResponses:

  • NotificationConfigurations.List(ctx context.Context, subscribableID string, options *NotificationConfigurationListOptions) (*NotificationConfigurationList, error)
  • NotificationConfigurations.Create(ctx context.Context, subscribableID string, options NotificationConfigurationCreateOptions) (*NotificationConfiguration, error)
  • NotificationConfigurations.Read(ctx context.Context, notificationConfigurationID string) (*NotificationConfiguration, error)
  • NotificationConfigurations.Update(ctx context.Context, notificationConfigurationID string, options NotificationConfigurationUpdateOptions) (*NotificationConfiguration, error)

Testing plan

  1. Generate the required environment variables for go test, TFE_ADDRESS, TFE_TOKEN, and TFC_RUN_TASK_URL
  2. Run TFE_ADDRESS="https://example" TFE_TOKEN="example" TFC_RUN_TASK_URL="working-URL" go test ./... -v -run TestNotificationConfigurationReadDeliveryResponses . The new tests should pass.
  3. DeliveryResponses is read for NotificationConfigurations.
  4. Run all tests in notification_configuration_integration_test.go and existing tests should pass.

External links

Output from tests

Including output from tests may require access to a TFE instance. Ignore this section if you have no environment to test against.

$ TFE_ADDRESS="https://example" TFE_TOKEN="example" TFC_RUN_TASK_URL="working-URL" go test ./... -v -run TestNotificationConfigurationReadDeliveryResponses === RUN TestNotificationConfigurationReadDeliveryResponses === RUN TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_create === RUN TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_list === RUN TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_read === RUN TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_update === RUN TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_verify === RUN TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_disabled --- PASS: TestNotificationConfigurationReadDeliveryResponses (17.20s) --- PASS: TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_create (2.28s) --- PASS: TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_list (3.35s) --- PASS: TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_read (2.45s) --- PASS: TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_update (2.74s) --- PASS: TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_verify (2.83s) --- PASS: TestNotificationConfigurationReadDeliveryResponses/with_notification_configuration_disabled (2.48s) PASS ok github.com/hashicorp/go-tfe 17.211s 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants