diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 00000000..d8717527 --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,34 @@ +name: Documentation Checks +on: + push: + branches: + - main + pull_request: + paths: + - .markdownlinkcheck.json + - .markdownlint.yml + - .github/workflows/documentation.yml + - .go-version + - docs/** + +jobs: + markdown-link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: gaurav-nelson/github-action-markdown-link-check@v1 + with: + use-quiet-mode: 'yes' + use-verbose-mode: 'yes' + config-file: '.markdownlinkcheck.json' + folder-path: 'docs' + file-extension: '.md' + markdown-lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: avto-dev/markdown-lint@v1 + with: + config: '.markdownlint.yml' + args: 'docs' + diff --git a/.markdownlint.yml b/.markdownlint.yml new file mode 100644 index 00000000..5a2d5766 --- /dev/null +++ b/.markdownlint.yml @@ -0,0 +1,9 @@ +# Configuration for markdownlint +# https://github.com/DavidAnson/markdownlint#configuration + +default: true + +# Disabled Rules +# https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md + +MD013: false diff --git a/docs/data-sources/team.md b/docs/data-sources/team.md new file mode 100644 index 00000000..4b05b9a7 --- /dev/null +++ b/docs/data-sources/team.md @@ -0,0 +1,30 @@ +--- +layout: "pingdom" +page_title: "Bitbucket: pingdom_team" +sidebar_current: "docs-pingdom-data-team" +description: |- + Provides a data for a Bitbucket team +--- + +# pingdom\_team + +Provides a way to fetch data on a team. + +## Example Usage + +```hcl +data "pingdom_team" "example" { + team = "gob" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The team name to look up. + +## Attributes Reference + +* `id` - The team ID. +* `member_ids` - A list of memebers ids. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..6a1af6e3 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,76 @@ +--- +layout: "pingdom" +page_title: "Provider: Pingdom" +sidebar_current: "docs-pingdom-index" +description: |- + The Pingdom provider to interact with checks, users, etc.. +--- + +# Pingdom Provider + +The Pingdom provider allows you to manage resources including checks, +users, and teams. + +Use the navigation to the left to read about the available resources. + +## Example Usage + +```terraform +terraform { + required_providers { + pingdom = { + source = "drfaust92/pingdom" + } + } +} + +variable "pingdom_api_token" {} +variable "solarwinds_user" {} +variable "solarwinds_passwd" {} + +provider "pingdom" { + api_token = var.pingdom_api_token + solarwinds_user = var.solarwinds_user + solarwinds_passwd = var.solarwinds_passwd +} + +resource "pingdom_check" "example" { + type = "http" + name = "my http check" + host = "example.com" + resolution = 5 +} + +resource "pingdom_check" "example_with_alert" { + type = "http" + name = "my http check" + host = "example.com" + resolution = 5 + sendnotificationwhendown = 2 # alert after 5 mins, with resolution 5*(2-1) + + integrationids = [ + 12345678, + 23456789 + ] + userids = [ + 24680, + 13579 + ] +} +``` + +## Argument Reference + +The following arguments are supported in the `provider` block: + +* `api_token` - (Optional) API Token to use to authenticate. You can +also set this via the environment variable: `PINGDOM_API_TOKEN` + +* `solarwinds_user` - (Optional) Solarwinds user. You can +also set this via the environment variable: `SOLARWINDS_USER` + +* `solarwinds_passwd` - (Optional) Solarwinds password. You can +also set this via the environment variable: `SOLARWINDS_PASSWD` + +* `solarwinds_org_id` - (Optional) Solarwinds Org Id. You can +also set this via the environment variable: `SOLARWINDS_ORG_ID` diff --git a/docs/resources/check.md b/docs/resources/check.md new file mode 100644 index 00000000..6842e69b --- /dev/null +++ b/docs/resources/check.md @@ -0,0 +1,74 @@ +--- +layout: "pingdom" +page_title: "Pingdom: pingdom_check" +sidebar_current: "docs-pingdom-resource-check" +description: |- + Provides a Pingdom Check +--- + +# pingdom\_check + +Provides a Pingdom check resource. + +This allows you to manage your pingdom checks. + +## Example Usage + +```hcl +resource "pingdom_hook" "deploy_on_push" { + check = "myteam" + url = "https://mywebhookservice.mycompany.com/deploy-on-push" + description = "Deploy the code via my webhook" + + events = [ + "repo:push", + ] +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) Check name. +* `host` - (Required) Target host. +* `type` - (Required) Type of check. Valid values are `http`, `tcp`, `ping` and `dns`. +* `custom_message` - (Optional) Custom message that will be added to email and webhook alerts. +* `encryption` - (Optional) Connection encryption. +* `expectedip` - (Optional) Expected IP. Valid only for `dns` check type. +* `integrationids` - (Optional) Integration identifiers. +* `nameserver` - (Optional) DNS server to use. Valid only for `dns` check type. +* `notifyagainevery` - (Optional) Notify again every n result. 0 means that no extra notifications will be sent. +* `notifywhenbackup` - (Optional) Notify when back up again. +* `password` - (Optional) Password to auth with. +* `paused` - (Optional) Whether the check is paused. +* `port` - (Optional) Target port. +* `postdata` - (Optional) Data that should be posted to the web page, for example submission data for a sign-up or login form. The data needs to be formatted in the same way as a web browser would send it to the web server. +* `probefilters` - (Optional) Filters used for probe selections. Overwrites previous filters for check. To remove all filters from a check, use an empty value. Comma separated key:value pairs. Currently only region is supported. Possible values are `EU`, `NA`, `APAC`, and `LATAM`. For example, "region: NA". +* `requestheaders` - (Optional) Custom HTTP header. The entry value should contain a one-element string array. The element should contain headerName and headerValue colon-separated. To add more than one header send other parameters named requestheaders{number}. +* `resolution` - (Optional) How often should the check be tested? (minutes). Valid values are `1`, `5`, `15`, `30`, `60`. Default value is `5`. +* `responsetime_threshold` - (Optional) Triggers a down alert if the response time exceeds threshold specified in ms (Not available for Starter and Free plans.) +* `sendnotificationwhendown` - (Optional) Send notification when down X times. Default value is `2`. +* `shouldcontain` - (Optional) Target site should contain this string. Note! This parameter cannot be used together with the parameter `shouldnotcontain`, use only one of them in your request. Valid for `http` check. +* `shouldnotcontain` - (Optional) Target site should NOT contain this string. Note! This parameter cannot be used together with the parameter `shouldcontain`, use only one of them in your request. Valid for `http` check. +* `ssl_down_days_before` - (Optional) Treat the target site as down if a certificate expires within the given number of days. This parameter will be ignored if `verify_certificate` is set to `false`. It will appear provided `verify_certificate` is `true` and `ssl_down_days_before` value is greater than or equals `1`. Default value is `0`. +* `tags` - (Optional) List of tags for check. The maximum length of a tag is 64 characters. +* `stringtoexpect` - (Optional) String to expect in response. Valid for `tcp` check. +* `stringtosend` - (Optional) String to send. Valid for `tcp` check. +* `teamids` - (Optional) Teams to alert. +* `url` - (Optional) Path to target on server. +* `userids` - (Optional) Users to alert. +* `username` - (Optional) Username to auth with. +* `verify_certificate` - (Optional) Treat target site as down if an invalid/unverifiable certificate is found. Default value is `true`. + +## Attributes Reference + +* `id` - The check ID. + +## Import + +Checks can be imported using their id, e.g. + +```sh +terraform import pingdom_check.example check_id +``` diff --git a/pingdom/data_source_pingdom_team.go b/pingdom/data_source_pingdom_team.go index 8cfa92dd..a9d7e218 100644 --- a/pingdom/data_source_pingdom_team.go +++ b/pingdom/data_source_pingdom_team.go @@ -22,8 +22,7 @@ func dataSourcePingdomTeam() *schema.Resource { }, "member_ids": { Type: schema.TypeSet, - Optional: true, - ForceNew: false, + Computed: true, Elem: &schema.Schema{Type: schema.TypeInt}, }, },