A Terraform provider for Meltwater based on the persistent/infrastructure parts of the Meltwater API. Such as setting up webhooks and recurring exports.
Terraform registry documentation
Clone repository anywhere:
$ git clone https://github.com/meltwater/terraform-provider-meltwater.git
Enter the provider directory and build the provider
$ cd terraform-provider-meltwater
$ make compile
Or alternatively, to install it as a plugin, run
$ cd terraform-provider-meltwater
$ make install
If you're building the provider, follow the instructions to install it as a plugin. After placing it into your plugins directory, run terraform init
to initialize it.
Set an environment variable, TF_VAR_meltwater_api_key
to store your Meltwater API key. This is the recommended way to not commit an access token into your version control system.
export TF_VAR_meltwater_api_key=<your meltwater api key>
Your token is now accessible in your Terraform configuration as
var.meltwater_api_key
, and can be used to configure the provider.
The example below demonstrates the following operations:
- Create a search
- Keyword search
- Combined search
- Boolean search
- Create a recurring export
terraform {
required_providers {
meltwater = {
source = "meltwater/meltwater"
version = "<VERSION_HERE>"
}
}
}
variable "meltwater_api_key" {
type = string
}
provider "meltwater" {
# NOTE: This is populated from the `TF_VAR_meltwater_api_key` environment variable.
api_key = var.meltwater_api_key
}
resource "meltwater_search" "my_awesome_search" {
type = "social"
category = "explore"
name = "Golang - terraform"
query {
// One of keyword, combined or boolean
keyword {
case_sensitivity = "yes"
all_keywords = ["golang"]
any_keywords = []
not_keywords = ["foobar"]
}
combined {
all_searches = [16058498]
not_searches = [7912335]
}
boolean {
case_sensitivity = "hybrid"
boolean = "(SourceName: /r/ProgrammingHumour OR SourceName: /r/Golang) AND metaData.discussionType:\"og\" AND language:\"fr\""
}
}
}
resource "meltwater_recurring_export" "my_awesome_recurring_export" {
search_id = meltwater_search.my_awesome_search.id
timezone = "Europe/London"
window_time_unit = "week"
window_time = "00:00:00"
window_size = 1
}