NOTES:
-* resource/statuscake_test: `contact_id (int)` has been replaced with `contact_group (type: list)`
+* resource/statuscake_test: `contact_id (int)` has been deprecated, use instead: `contact_group (type: list)`
* resource:statuscake_test: `test_tags` has been changed from a CSV string to list of strings
},
"contact_group": {
- Type: schema.TypeSet,
- Elem: &schema.Schema{Type: schema.TypeString},
- Optional: true,
- Set: schema.HashString,
+ Type: schema.TypeSet,
+ Elem: &schema.Schema{Type: schema.TypeString},
+ Optional: true,
+ Set: schema.HashString,
+ ConflictsWith: []string{"contact_id"},
+ },
+
+ "contact_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ ConflictsWith: []string{"contact_group"},
+ Deprecated: "use contact_group instead",
},
"check_rate": {
TestType: d.Get("test_type").(string),
Paused: d.Get("paused").(bool),
Timeout: d.Get("timeout").(int),
- ContactGroup: castSetToSliceStrings(d.Get("contact_group").(*schema.Set).List()),
Confirmation: d.Get("confirmations").(int),
Port: d.Get("port").(int),
TriggerRate: d.Get("trigger_rate").(int),
FollowRedirect: d.Get("follow_redirect").(bool),
}
+ if v, ok := d.GetOk("contact_group"); ok {
+ newTest.ContactGroup = castSetToSliceStrings(v.(*schema.Set).List())
+ } else if v, ok := d.GetOk("contact_id"); ok {
+ newTest.ContactID = v.(int)
+ }
+
log.Printf("[DEBUG] Creating new StatusCake Test: %s", d.Get("website_name").(string))
response, err := client.Tests().Update(newTest)
if err != nil {
return fmt.Errorf("Error Getting StatusCake Test Details for %s: Error: %s", d.Id(), err)
}
+
+ if v, ok := d.GetOk("contact_group"); ok {
+ d.Set("contact_group", v)
+ } else if v, ok := d.GetOk("contact_id"); ok {
+ d.Set("contact_id", v)
+ }
d.Set("website_name", testResp.WebsiteName)
d.Set("website_url", testResp.WebsiteURL)
d.Set("check_rate", testResp.CheckRate)
d.Set("test_type", testResp.TestType)
d.Set("paused", testResp.Paused)
d.Set("timeout", testResp.Timeout)
- d.Set("contact_group", testResp.ContactGroup)
d.Set("confirmations", testResp.Confirmation)
d.Set("port", testResp.Port)
d.Set("trigger_rate", testResp.TriggerRate)
}
if v, ok := d.GetOk("contact_group"); ok {
test.ContactGroup = castSetToSliceStrings(v.(*schema.Set).List())
+ } else if v, ok := d.GetOk("contact_id"); ok {
+ test.ContactID = v.(int)
}
if v, ok := d.GetOk("test_type"); ok {
test.TestType = v.(string)
})
}
+func TestAccStatusCake_basic_deprecated_contact_ID(t *testing.T) {
+ var test statuscake.Test
+
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccTestCheckDestroy(&test),
+ Steps: []resource.TestStep{
+ {
+ Config: interpolateTerraformTemplate(testAccTestConfig_deprecated),
+ Check: resource.ComposeTestCheckFunc(
+ testAccTestCheckExists("statuscake_test.google", &test),
+ testAccTestCheckAttributes("statuscake_test.google", &test),
+ ),
+ },
+ },
+ })
+}
+
func TestAccStatusCake_tcp(t *testing.T) {
var test statuscake.Test
trigger_rate = 10
}
`
-
+const testAccTestConfig_deprecated = `
+resource "statuscake_test" "google" {
+ website_name = "google.com"
+ website_url = "www.google.com"
+ test_type = "HTTP"
+ check_rate = 300
+ timeout = 10
+ contact_id = %s
+ confirmations = 1
+ trigger_rate = 10
+}
+`
const testAccTestConfig_update = `
resource "statuscake_test" "google" {
website_name = "google.com"
* `website_name` - (Required) This is the name of the test and the website to be monitored.
* `website_url` - (Required) The URL of the website to be monitored
* `check_rate` - (Optional) Test check rate in seconds. Defaults to 300
+* `contact_id` - **Deprecated** (Optional) The id of the contact group to be added to the test. Each test can have only one.
* `contact_group` - (Optional) Set test contact groups, must be array of strings.
* `test_type` - (Required) The type of Test. Either HTTP, TCP, PING, or DNS
* `paused` - (Optional) Whether or not the test is paused. Defaults to false.
* `do_not_find` - (Optional) If the above string should be found to trigger a alert. 1 = will trigger if find_string found.
* `real_browser` - (Optional) Use 1 to TURN OFF real browser testing.
* `test_tags` - (Optional) Set test tags, must be array of strings.
-* `status_codes` - (Optional) Comma Seperated List of StatusCodes to Trigger Error on. Defaults are "204, 205, 206, 303, 400, 401, 403, 404, 405, 406, 408, 410, 413, 444, 429, 494, 495, 496, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 521, 522, 523, 524, 520, 598, 599".
+* `status_codes` - (Optional) Comma Separated List of StatusCodes to Trigger Error on. Defaults are "204, 205, 206, 303, 400, 401, 403, 404, 405, 406, 408, 410, 413, 444, 429, 494, 495, 496, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 521, 522, 523, 524, 520, 598, 599".
* `use_jar` - (Optional) Set to true to enable the Cookie Jar. Required for some redirects. Default is false.
* `post_raw` - (Optional) Use to populate the RAW POST data field on the test.
* `final_endpoint` - (Optional) Use to specify the expected Final URL in the testing process.