louy / terraform-provider-uptimerobot

A terraform provider for UptimeRobot
Mozilla Public License 2.0
123 stars 82 forks source link

Terraform UptimeRobot Provider

All Contributors Build Status

Getting started

To install this provider, check out the installation instructions on Terraform's registry page.

terraform {
  required_providers {
    uptimerobot = {
      source = "louy/uptimerobot"
      version = "0.5.1"
    }
  }
}

provider "uptimerobot" {
  api_key = "[YOUR MAIN API KEY]" # or pass via environment variable UPTIMEROBOT_API_KEY
}

data "uptimerobot_account" "account" {}

data "uptimerobot_alert_contact" "default_alert_contact" {
  friendly_name = data.uptimerobot_account.account.email
}

resource "uptimerobot_alert_contact" "slack" {
  friendly_name = "Slack Alert"
  type          = "slack"
  value         = "https://hooks.slack.com/services/XXXXXXX"
}

resource "uptimerobot_monitor" "main" {
  friendly_name = "My Monitor"
  type          = "http"
  url           = "http://example.com"
  # pro allows 60 seconds
  interval      = 300

  alert_contact {
    id = uptimerobot_alert_contact.slack.id
    # threshold  = 0  # pro only
    # recurrence = 0  # pro only
  }

  alert_contact {
    id = data.uptimerobot_alert_contact.default_alert_contact.id
  }
}

resource "uptimerobot_monitor" "custom_port" {
  url           = "doe.john.me"
  type          = "port"
  sub_type      = "custom"
  port          = 5678
  friendly_name = "Custom port"
}

resource "uptimerobot_status_page" "main" {
  friendly_name  = "My Status Page"
  custom_domain  = "status.example.com"
  password       = "WeAreAwsome"
  sort           = "down-up-paused"
  monitors       = [uptimerobot_monitor.main.id]
}

resource "aws_route53_record" {
  zone_id = "[MY ZONE ID]"
  type    = "CNAME"
  records = [uptimerobot_status_page.main.dns_address]
}

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Louay Alakkad

💻 🚧 ⚠️ 📖 🔧

Nham Le

💻

David Rubin

💻 🚧 ⚠️ 📖 🤔 💬

Johan Bloemberg

💻 ⚠️ 🤔 📖

Seb Patane

📦

YIFAN LI

💻 ⚠️

Nicolas Lamirault

📖 🐛 💻

Adam Dobrawy

📖

Clint Byrum

🐛

Tiago Carrondo

🐛

JB

🐛

Carlos Alexandro Becker

💻

Jan Jungnickel

💻

bd0zer

🐛

randrusiak

💻 🐛

Jason Rogena

💻 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!