Skip to content

splunk/terraform-genesyscloud-aws

Repository files navigation

Genesys Cloud Terraform Module for Splunk

Terraform module for Genesys Cloud to Splunk via AWS EventBridge.

By executing this module users will:

  • create a Genesys Cloud - AWS EventBridge integration,
  • write events from Genesys Cloud into a Kinesis stream through an AWS EventBridge bus,
  • optionally configure AWS Firehose to deliver the streamed events to an AWS S3 bucket or to Splunk via HEC

    NOTE the usage of S3 bucket is required with a Splunk HEC ingestion

Users can opt to:

👉 This is an art of the possible solution and should not be used in production without testing it throughoutly. 👈

Getting Started

To get started, please check documentation.

Contributions

For reporting unexpected behavior, documentation gaps, entirely new features, please open an issue

Contributions via pull requests are also welcome:

  • Create a branch for the issue / new feature
  • Make your changes on your branch
  • Open a pull request

Credits

This is inspired by the project GenesysCloud-Audit-Events-To-Splunk.

Documentation

Requirements

Name Version
aws >= 5.52.0
genesyscloud >= 1.64.1

Providers

Name Version
aws >= 5.52.0
genesyscloud >= 1.64.1

Modules

No modules.

Resources

Name Type
aws_cloudwatch_event_bus.bus resource
aws_cloudwatch_event_rule.rule resource
aws_cloudwatch_event_target.rule-target resource
aws_iam_role.eventbridge_role resource
aws_iam_role.firehose_role resource
aws_iam_role_policy.eventbridge_policy resource
aws_iam_role_policy.firehose_policy resource
aws_iam_role_policy.s3_policy resource
aws_kinesis_firehose_delivery_stream.firehose_target resource
aws_kinesis_stream.stream resource
aws_s3_bucket.bucket resource
genesyscloud_integration.aws_integration resource
aws_caller_identity.current data source
genesyscloud_organizations_me.current data source

Inputs

Name Description Type Default Required
aws_account_region n/a string "us-east-1" no
event_source_suffix n/a string "conversation-detail-events" no
integration_name n/a string "Amazon EventBridge Source" no
s3_bucket_name n/a string "" no
s3_buffer_interval Buffer interval in seconds before delivering to S3 number 300 no
s3_buffer_size Buffer size in MBs before delivering to S3 number 5 no
s3_compression_format Compression format for S3 data (GZIP, ZIP, Snappy, or HADOOP_SNAPPY) string "GZIP" no
s3_firehose_prefix n/a string "" no
splunk_ack_timeout Splunk HEC acknowledgment timeout in seconds number 300 no
splunk_endpoint_type Splunk HEC endpoint type (Raw or Event) string "Event" no
splunk_hec Splunk HEC token string null no
splunk_s3_backup_mode Splunk S3 backup mode (FailedEventsOnly or AllEvents) string "FailedEventsOnly" no
splunk_url Splunk HTTP Event Collector (HEC) endpoint URL string null no
topic_filters n/a list(string)
[
"v2.routing.queues.{id}.users",
"v2.operations.events.{id}",
"v2.users.{id}.persistentconnection",
"v2.analytics.conversation.{id}.metrics",
"v2.users.{id}.activity",
"v2.users.{id}.geolocation",
"v2.users.{id}.routingStatus",
"v2.conversations.{id}.transcription",
"v2.detail.events.conversation.{id}.acd.end",
"v2.detail.events.conversation.{id}.acd.start",
"v2.detail.events.conversation.{id}.acw",
"v2.detail.events.conversation.{id}.attributes",
"v2.detail.events.conversation.{id}.contact",
"v2.detail.events.conversation.{id}.customer.end",
"v2.detail.events.conversation.{id}.customer.start",
"v2.detail.events.conversation.{id}.flow.end",
"v2.detail.events.conversation.{id}.flow.outcome",
"v2.detail.events.conversation.{id}.flow.start",
"v2.detail.events.conversation.{id}.outbound",
"v2.detail.events.conversation.{id}.user.end",
"v2.detail.events.conversation.{id}.user.start",
"v2.detail.events.conversation.{id}.voicemail.end",
"v2.detail.events.conversation.{id}.voicemail.start",
"v2.detail.events.conversation.{id}.wrapup"
]
no

Outputs

Name Description
eventbridge_arn ARN of event bus for incoming events.
genesys_cloud_org_id ID of the configured Genesys Cloud Organization.
id ID of the Genesys Cloud Integration with EventBridge.
kinesis_arn ARN of the Kinesis Stream.

License

This project is licensed under Apache 2.0.