github.com/IBM-Cloud/terraform@v0.6.4-0.20170726051544-8872b87621df/builtin/providers/pagerduty/resource_pagerduty_service_test.go (about)

     1  package pagerduty
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/PagerDuty/go-pagerduty"
     8  	"github.com/hashicorp/terraform/helper/acctest"
     9  	"github.com/hashicorp/terraform/helper/resource"
    10  	"github.com/hashicorp/terraform/terraform"
    11  )
    12  
    13  func TestAccPagerDutyService_Basic(t *testing.T) {
    14  	username := fmt.Sprintf("tf-%s", acctest.RandString(5))
    15  	email := fmt.Sprintf("%s@foo.com", username)
    16  	escalationPolicy := fmt.Sprintf("tf-%s", acctest.RandString(5))
    17  	service := fmt.Sprintf("tf-%s", acctest.RandString(5))
    18  	serviceUpdated := fmt.Sprintf("tf-%s", acctest.RandString(5))
    19  
    20  	resource.Test(t, resource.TestCase{
    21  		PreCheck:     func() { testAccPreCheck(t) },
    22  		Providers:    testAccProviders,
    23  		CheckDestroy: testAccCheckPagerDutyServiceDestroy,
    24  		Steps: []resource.TestStep{
    25  			{
    26  				Config: testAccCheckPagerDutyServiceConfig(username, email, escalationPolicy, service),
    27  				Check: resource.ComposeTestCheckFunc(
    28  					testAccCheckPagerDutyServiceExists("pagerduty_service.foo"),
    29  					resource.TestCheckResourceAttr(
    30  						"pagerduty_service.foo", "name", service),
    31  					resource.TestCheckResourceAttr(
    32  						"pagerduty_service.foo", "description", "foo"),
    33  					resource.TestCheckResourceAttr(
    34  						"pagerduty_service.foo", "auto_resolve_timeout", "1800"),
    35  					resource.TestCheckResourceAttr(
    36  						"pagerduty_service.foo", "acknowledgement_timeout", "1800"),
    37  					resource.TestCheckResourceAttr(
    38  						"pagerduty_service.foo", "incident_urgency_rule.#", "1"),
    39  					resource.TestCheckResourceAttr(
    40  						"pagerduty_service.foo", "incident_urgency_rule.0.urgency", "high"),
    41  					resource.TestCheckResourceAttr(
    42  						"pagerduty_service.foo", "incident_urgency_rule.0.type", "constant"),
    43  				),
    44  			},
    45  			{
    46  				Config: testAccCheckPagerDutyServiceConfigUpdated(username, email, escalationPolicy, serviceUpdated),
    47  				Check: resource.ComposeTestCheckFunc(
    48  					testAccCheckPagerDutyServiceExists("pagerduty_service.foo"),
    49  					resource.TestCheckResourceAttr(
    50  						"pagerduty_service.foo", "name", serviceUpdated),
    51  					resource.TestCheckResourceAttr(
    52  						"pagerduty_service.foo", "description", "bar"),
    53  					resource.TestCheckResourceAttr(
    54  						"pagerduty_service.foo", "auto_resolve_timeout", "3600"),
    55  					resource.TestCheckResourceAttr(
    56  						"pagerduty_service.foo", "acknowledgement_timeout", "3600"),
    57  					resource.TestCheckResourceAttr(
    58  						"pagerduty_service.foo", "incident_urgency_rule.#", "1"),
    59  					resource.TestCheckResourceAttr(
    60  						"pagerduty_service.foo", "incident_urgency_rule.0.urgency", "high"),
    61  					resource.TestCheckResourceAttr(
    62  						"pagerduty_service.foo", "incident_urgency_rule.0.type", "constant"),
    63  				),
    64  			},
    65  		},
    66  	})
    67  }
    68  
    69  func TestAccPagerDutyService_BasicWithIncidentUrgencyRules(t *testing.T) {
    70  	username := fmt.Sprintf("tf-%s", acctest.RandString(5))
    71  	email := fmt.Sprintf("%s@foo.com", username)
    72  	escalationPolicy := fmt.Sprintf("tf-%s", acctest.RandString(5))
    73  	service := fmt.Sprintf("tf-%s", acctest.RandString(5))
    74  	serviceUpdated := fmt.Sprintf("tf-%s", acctest.RandString(5))
    75  
    76  	resource.Test(t, resource.TestCase{
    77  		PreCheck:     func() { testAccPreCheck(t) },
    78  		Providers:    testAccProviders,
    79  		CheckDestroy: testAccCheckPagerDutyServiceDestroy,
    80  		Steps: []resource.TestStep{
    81  			{
    82  				Config: testAccCheckPagerDutyServiceWithIncidentUrgencyRulesConfig(username, email, escalationPolicy, service),
    83  				Check: resource.ComposeTestCheckFunc(
    84  					testAccCheckPagerDutyServiceExists("pagerduty_service.foo"),
    85  					resource.TestCheckResourceAttr(
    86  						"pagerduty_service.foo", "name", service),
    87  					resource.TestCheckResourceAttr(
    88  						"pagerduty_service.foo", "description", "foo"),
    89  					resource.TestCheckResourceAttr(
    90  						"pagerduty_service.foo", "auto_resolve_timeout", "1800"),
    91  					resource.TestCheckResourceAttr(
    92  						"pagerduty_service.foo", "acknowledgement_timeout", "1800"),
    93  					resource.TestCheckResourceAttr(
    94  						"pagerduty_service.foo", "incident_urgency_rule.#", "1"),
    95  					resource.TestCheckResourceAttr(
    96  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.#", "1"),
    97  					resource.TestCheckResourceAttr(
    98  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.0.type", "constant"),
    99  					resource.TestCheckResourceAttr(
   100  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.0.urgency", "high"),
   101  					resource.TestCheckResourceAttr(
   102  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.#", "1"),
   103  					resource.TestCheckResourceAttr(
   104  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.0.type", "constant"),
   105  					resource.TestCheckResourceAttr(
   106  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.0.urgency", "low"),
   107  					resource.TestCheckResourceAttr(
   108  						"pagerduty_service.foo", "incident_urgency_rule.0.type", "use_support_hours"),
   109  					resource.TestCheckResourceAttr(
   110  						"pagerduty_service.foo", "scheduled_actions.#", "1"),
   111  					resource.TestCheckResourceAttr(
   112  						"pagerduty_service.foo", "scheduled_actions.0.at.#", "1"),
   113  					resource.TestCheckResourceAttr(
   114  						"pagerduty_service.foo", "scheduled_actions.0.at.0.name", "support_hours_start"),
   115  					resource.TestCheckResourceAttr(
   116  						"pagerduty_service.foo", "scheduled_actions.0.to_urgency", "high"),
   117  					resource.TestCheckResourceAttr(
   118  						"pagerduty_service.foo", "scheduled_actions.0.type", "urgency_change"),
   119  					resource.TestCheckResourceAttr(
   120  						"pagerduty_service.foo", "support_hours.#", "1"),
   121  					resource.TestCheckResourceAttr(
   122  						"pagerduty_service.foo", "support_hours.0.days_of_week.#", "5"),
   123  					resource.TestCheckResourceAttr(
   124  						"pagerduty_service.foo", "support_hours.0.days_of_week.0", "1"),
   125  					resource.TestCheckResourceAttr(
   126  						"pagerduty_service.foo", "support_hours.0.days_of_week.1", "2"),
   127  					resource.TestCheckResourceAttr(
   128  						"pagerduty_service.foo", "support_hours.0.days_of_week.2", "3"),
   129  					resource.TestCheckResourceAttr(
   130  						"pagerduty_service.foo", "support_hours.0.days_of_week.3", "4"),
   131  					resource.TestCheckResourceAttr(
   132  						"pagerduty_service.foo", "support_hours.0.days_of_week.4", "5"),
   133  					resource.TestCheckResourceAttr(
   134  						"pagerduty_service.foo", "support_hours.0.end_time", "17:00:00"),
   135  					resource.TestCheckResourceAttr(
   136  						"pagerduty_service.foo", "support_hours.0.start_time", "09:00:00"),
   137  					resource.TestCheckResourceAttr(
   138  						"pagerduty_service.foo", "support_hours.0.time_zone", "America/Lima"),
   139  					resource.TestCheckResourceAttr(
   140  						"pagerduty_service.foo", "support_hours.0.type", "fixed_time_per_day"),
   141  				),
   142  			},
   143  			{
   144  				Config: testAccCheckPagerDutyServiceWithIncidentUrgencyRulesConfigUpdated(username, email, escalationPolicy, serviceUpdated),
   145  				Check: resource.ComposeTestCheckFunc(
   146  					testAccCheckPagerDutyServiceExists("pagerduty_service.foo"),
   147  					resource.TestCheckResourceAttr(
   148  						"pagerduty_service.foo", "name", serviceUpdated),
   149  					resource.TestCheckResourceAttr(
   150  						"pagerduty_service.foo", "description", "bar bar bar"),
   151  					resource.TestCheckResourceAttr(
   152  						"pagerduty_service.foo", "auto_resolve_timeout", "3600"),
   153  					resource.TestCheckResourceAttr(
   154  						"pagerduty_service.foo", "acknowledgement_timeout", "3600"),
   155  					resource.TestCheckResourceAttr(
   156  						"pagerduty_service.foo", "incident_urgency_rule.#", "1"),
   157  					resource.TestCheckResourceAttr(
   158  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.#", "1"),
   159  					resource.TestCheckResourceAttr(
   160  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.0.type", "constant"),
   161  					resource.TestCheckResourceAttr(
   162  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.0.urgency", "high"),
   163  					resource.TestCheckResourceAttr(
   164  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.#", "1"),
   165  					resource.TestCheckResourceAttr(
   166  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.0.type", "constant"),
   167  					resource.TestCheckResourceAttr(
   168  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.0.urgency", "low"),
   169  					resource.TestCheckResourceAttr(
   170  						"pagerduty_service.foo", "incident_urgency_rule.0.type", "use_support_hours"),
   171  					resource.TestCheckResourceAttr(
   172  						"pagerduty_service.foo", "scheduled_actions.#", "1"),
   173  					resource.TestCheckResourceAttr(
   174  						"pagerduty_service.foo", "scheduled_actions.0.at.#", "1"),
   175  					resource.TestCheckResourceAttr(
   176  						"pagerduty_service.foo", "scheduled_actions.0.at.0.name", "support_hours_start"),
   177  					resource.TestCheckResourceAttr(
   178  						"pagerduty_service.foo", "scheduled_actions.0.to_urgency", "high"),
   179  					resource.TestCheckResourceAttr(
   180  						"pagerduty_service.foo", "scheduled_actions.0.type", "urgency_change"),
   181  					resource.TestCheckResourceAttr(
   182  						"pagerduty_service.foo", "support_hours.#", "1"),
   183  					resource.TestCheckResourceAttr(
   184  						"pagerduty_service.foo", "support_hours.0.days_of_week.#", "5"),
   185  					resource.TestCheckResourceAttr(
   186  						"pagerduty_service.foo", "support_hours.0.days_of_week.0", "1"),
   187  					resource.TestCheckResourceAttr(
   188  						"pagerduty_service.foo", "support_hours.0.days_of_week.1", "2"),
   189  					resource.TestCheckResourceAttr(
   190  						"pagerduty_service.foo", "support_hours.0.days_of_week.2", "3"),
   191  					resource.TestCheckResourceAttr(
   192  						"pagerduty_service.foo", "support_hours.0.days_of_week.3", "4"),
   193  					resource.TestCheckResourceAttr(
   194  						"pagerduty_service.foo", "support_hours.0.days_of_week.4", "5"),
   195  					resource.TestCheckResourceAttr(
   196  						"pagerduty_service.foo", "support_hours.0.end_time", "17:00:00"),
   197  					resource.TestCheckResourceAttr(
   198  						"pagerduty_service.foo", "support_hours.0.start_time", "09:00:00"),
   199  					resource.TestCheckResourceAttr(
   200  						"pagerduty_service.foo", "support_hours.0.time_zone", "America/Lima"),
   201  					resource.TestCheckResourceAttr(
   202  						"pagerduty_service.foo", "support_hours.0.type", "fixed_time_per_day"),
   203  				),
   204  			},
   205  		},
   206  	})
   207  }
   208  
   209  func TestAccPagerDutyService_FromBasicToCustomIncidentUrgencyRules(t *testing.T) {
   210  	username := fmt.Sprintf("tf-%s", acctest.RandString(5))
   211  	email := fmt.Sprintf("%s@foo.com", username)
   212  	escalationPolicy := fmt.Sprintf("tf-%s", acctest.RandString(5))
   213  	service := fmt.Sprintf("tf-%s", acctest.RandString(5))
   214  	serviceUpdated := fmt.Sprintf("tf-%s", acctest.RandString(5))
   215  
   216  	resource.Test(t, resource.TestCase{
   217  		PreCheck:     func() { testAccPreCheck(t) },
   218  		Providers:    testAccProviders,
   219  		CheckDestroy: testAccCheckPagerDutyServiceDestroy,
   220  		Steps: []resource.TestStep{
   221  			{
   222  				Config: testAccCheckPagerDutyServiceConfig(username, email, escalationPolicy, service),
   223  				Check: resource.ComposeTestCheckFunc(
   224  					testAccCheckPagerDutyServiceExists("pagerduty_service.foo"),
   225  					resource.TestCheckResourceAttr(
   226  						"pagerduty_service.foo", "name", service),
   227  					resource.TestCheckResourceAttr(
   228  						"pagerduty_service.foo", "description", "foo"),
   229  					resource.TestCheckResourceAttr(
   230  						"pagerduty_service.foo", "auto_resolve_timeout", "1800"),
   231  					resource.TestCheckResourceAttr(
   232  						"pagerduty_service.foo", "acknowledgement_timeout", "1800"),
   233  					resource.TestCheckResourceAttr(
   234  						"pagerduty_service.foo", "incident_urgency_rule.#", "1"),
   235  					resource.TestCheckResourceAttr(
   236  						"pagerduty_service.foo", "incident_urgency_rule.0.urgency", "high"),
   237  					resource.TestCheckResourceAttr(
   238  						"pagerduty_service.foo", "incident_urgency_rule.0.type", "constant"),
   239  				),
   240  			},
   241  			{
   242  				Config: testAccCheckPagerDutyServiceWithIncidentUrgencyRulesConfigUpdated(username, email, escalationPolicy, serviceUpdated),
   243  				Check: resource.ComposeTestCheckFunc(
   244  					testAccCheckPagerDutyServiceExists("pagerduty_service.foo"),
   245  					resource.TestCheckResourceAttr(
   246  						"pagerduty_service.foo", "name", serviceUpdated),
   247  					resource.TestCheckResourceAttr(
   248  						"pagerduty_service.foo", "description", "bar bar bar"),
   249  					resource.TestCheckResourceAttr(
   250  						"pagerduty_service.foo", "auto_resolve_timeout", "3600"),
   251  					resource.TestCheckResourceAttr(
   252  						"pagerduty_service.foo", "acknowledgement_timeout", "3600"),
   253  					resource.TestCheckResourceAttr(
   254  						"pagerduty_service.foo", "incident_urgency_rule.#", "1"),
   255  					resource.TestCheckResourceAttr(
   256  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.#", "1"),
   257  					resource.TestCheckResourceAttr(
   258  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.0.type", "constant"),
   259  					resource.TestCheckResourceAttr(
   260  						"pagerduty_service.foo", "incident_urgency_rule.0.during_support_hours.0.urgency", "high"),
   261  					resource.TestCheckResourceAttr(
   262  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.#", "1"),
   263  					resource.TestCheckResourceAttr(
   264  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.0.type", "constant"),
   265  					resource.TestCheckResourceAttr(
   266  						"pagerduty_service.foo", "incident_urgency_rule.0.outside_support_hours.0.urgency", "low"),
   267  					resource.TestCheckResourceAttr(
   268  						"pagerduty_service.foo", "incident_urgency_rule.0.type", "use_support_hours"),
   269  					resource.TestCheckResourceAttr(
   270  						"pagerduty_service.foo", "scheduled_actions.#", "1"),
   271  					resource.TestCheckResourceAttr(
   272  						"pagerduty_service.foo", "scheduled_actions.0.at.#", "1"),
   273  					resource.TestCheckResourceAttr(
   274  						"pagerduty_service.foo", "scheduled_actions.0.at.0.name", "support_hours_start"),
   275  					resource.TestCheckResourceAttr(
   276  						"pagerduty_service.foo", "scheduled_actions.0.to_urgency", "high"),
   277  					resource.TestCheckResourceAttr(
   278  						"pagerduty_service.foo", "scheduled_actions.0.type", "urgency_change"),
   279  					resource.TestCheckResourceAttr(
   280  						"pagerduty_service.foo", "support_hours.#", "1"),
   281  					resource.TestCheckResourceAttr(
   282  						"pagerduty_service.foo", "support_hours.0.days_of_week.#", "5"),
   283  					resource.TestCheckResourceAttr(
   284  						"pagerduty_service.foo", "support_hours.0.days_of_week.0", "1"),
   285  					resource.TestCheckResourceAttr(
   286  						"pagerduty_service.foo", "support_hours.0.days_of_week.1", "2"),
   287  					resource.TestCheckResourceAttr(
   288  						"pagerduty_service.foo", "support_hours.0.days_of_week.2", "3"),
   289  					resource.TestCheckResourceAttr(
   290  						"pagerduty_service.foo", "support_hours.0.days_of_week.3", "4"),
   291  					resource.TestCheckResourceAttr(
   292  						"pagerduty_service.foo", "support_hours.0.days_of_week.4", "5"),
   293  					resource.TestCheckResourceAttr(
   294  						"pagerduty_service.foo", "support_hours.0.end_time", "17:00:00"),
   295  					resource.TestCheckResourceAttr(
   296  						"pagerduty_service.foo", "support_hours.0.start_time", "09:00:00"),
   297  					resource.TestCheckResourceAttr(
   298  						"pagerduty_service.foo", "support_hours.0.time_zone", "America/Lima"),
   299  					resource.TestCheckResourceAttr(
   300  						"pagerduty_service.foo", "support_hours.0.type", "fixed_time_per_day"),
   301  				),
   302  			},
   303  		},
   304  	})
   305  }
   306  
   307  func testAccCheckPagerDutyServiceDestroy(s *terraform.State) error {
   308  	client := testAccProvider.Meta().(*pagerduty.Client)
   309  	for _, r := range s.RootModule().Resources {
   310  		if r.Type != "pagerduty_service" {
   311  			continue
   312  		}
   313  
   314  		_, err := client.GetService(r.Primary.ID, &pagerduty.GetServiceOptions{})
   315  
   316  		if err == nil {
   317  			return fmt.Errorf("Service still exists")
   318  		}
   319  
   320  	}
   321  	return nil
   322  }
   323  
   324  func testAccCheckPagerDutyServiceExists(n string) resource.TestCheckFunc {
   325  	return func(s *terraform.State) error {
   326  		rs, ok := s.RootModule().Resources[n]
   327  		if !ok {
   328  			return fmt.Errorf("Not found: %s", n)
   329  		}
   330  
   331  		if rs.Primary.ID == "" {
   332  			return fmt.Errorf("No Service ID is set")
   333  		}
   334  
   335  		client := testAccProvider.Meta().(*pagerduty.Client)
   336  
   337  		found, err := client.GetService(rs.Primary.ID, &pagerduty.GetServiceOptions{})
   338  		if err != nil {
   339  			return err
   340  		}
   341  
   342  		if found.ID != rs.Primary.ID {
   343  			return fmt.Errorf("Service not found: %v - %v", rs.Primary.ID, found)
   344  		}
   345  
   346  		return nil
   347  	}
   348  }
   349  
   350  func testAccCheckPagerDutyServiceConfig(username, email, escalationPolicy, service string) string {
   351  	return fmt.Sprintf(`
   352  resource "pagerduty_user" "foo" {
   353  	name        = "%s"
   354  	email       = "%s"
   355  	color       = "green"
   356  	role        = "user"
   357  	job_title   = "foo"
   358  	description = "foo"
   359  }
   360  
   361  resource "pagerduty_escalation_policy" "foo" {
   362  	name        = "%s"
   363  	description = "bar"
   364  	num_loops   = 2
   365  	rule {
   366  		escalation_delay_in_minutes = 10
   367  		target {
   368  			type = "user_reference"
   369  			id   = "${pagerduty_user.foo.id}"
   370  		}
   371  	}
   372  }
   373  
   374  resource "pagerduty_service" "foo" {
   375  	name                    = "%s"
   376  	description             = "foo"
   377  	auto_resolve_timeout    = 1800
   378  	acknowledgement_timeout = 1800
   379  	escalation_policy       = "${pagerduty_escalation_policy.foo.id}"
   380  	incident_urgency_rule {
   381  		type    = "constant"
   382  		urgency = "high"
   383  	}
   384  }
   385  `, username, email, escalationPolicy, service)
   386  }
   387  
   388  func testAccCheckPagerDutyServiceConfigUpdated(username, email, escalationPolicy, service string) string {
   389  	return fmt.Sprintf(`
   390  resource "pagerduty_user" "foo" {
   391  	name        = "%s"
   392  	email       = "%s"
   393  	color       = "green"
   394  	role        = "user"
   395  	job_title   = "foo"
   396  	description = "foo"
   397  }
   398  
   399  resource "pagerduty_escalation_policy" "foo" {
   400  	name        = "%s"
   401  	description = "bar"
   402  	num_loops   = 2
   403  
   404  	rule {
   405  		escalation_delay_in_minutes = 10
   406  		target {
   407  			type = "user_reference"
   408  			id   = "${pagerduty_user.foo.id}"
   409  		}
   410  	}
   411  }
   412  
   413  resource "pagerduty_service" "foo" {
   414  	name                    = "%s"
   415  	description             = "bar"
   416  	auto_resolve_timeout    = 3600
   417  	acknowledgement_timeout = 3600
   418  
   419  	escalation_policy       = "${pagerduty_escalation_policy.foo.id}"
   420  	incident_urgency_rule {
   421  		type    = "constant"
   422  		urgency = "high"
   423  	}
   424  }
   425  `, username, email, escalationPolicy, service)
   426  }
   427  
   428  func testAccCheckPagerDutyServiceWithIncidentUrgencyRulesConfig(username, email, escalationPolicy, service string) string {
   429  	return fmt.Sprintf(`
   430  resource "pagerduty_user" "foo" {
   431  	name        = "%s"
   432  	email       = "%s"
   433  	color       = "green"
   434  	role        = "user"
   435  	job_title   = "foo"
   436  	description = "foo"
   437  }
   438  
   439  resource "pagerduty_escalation_policy" "foo" {
   440  	name        = "%s"
   441  	description = "bar"
   442  	num_loops   = 2
   443  
   444  	rule {
   445  		escalation_delay_in_minutes = 10
   446  		target {
   447  			type = "user_reference"
   448  			id   = "${pagerduty_user.foo.id}"
   449  		}
   450  	}
   451  }
   452  
   453  resource "pagerduty_service" "foo" {
   454  	name                    = "%s"
   455  	description             = "foo"
   456  	auto_resolve_timeout    = 1800
   457  	acknowledgement_timeout = 1800
   458  	escalation_policy       = "${pagerduty_escalation_policy.foo.id}"
   459  
   460  	incident_urgency_rule {
   461  		type = "use_support_hours"
   462  
   463  		during_support_hours {
   464  			type    = "constant"
   465  			urgency = "high"
   466  		}
   467  		outside_support_hours {
   468  			type    = "constant"
   469  			urgency = "low"
   470  		}
   471  	}
   472  
   473  	support_hours = [{
   474  		type         = "fixed_time_per_day"
   475  		time_zone    = "America/Lima"
   476  		start_time   = "09:00:00"
   477  		end_time     = "17:00:00"
   478  		days_of_week = [ 1, 2, 3, 4, 5 ]
   479  	}]
   480  
   481  	scheduled_actions {
   482  		type = "urgency_change"
   483  		to_urgency = "high"
   484  		at {
   485  			type = "named_time",
   486  			name = "support_hours_start"
   487  		}
   488  	}
   489  }
   490  `, username, email, escalationPolicy, service)
   491  }
   492  
   493  func testAccCheckPagerDutyServiceWithIncidentUrgencyRulesConfigUpdated(username, email, escalationPolicy, service string) string {
   494  	return fmt.Sprintf(`
   495  	resource "pagerduty_user" "foo" {
   496  	name        = "%s"
   497  	email       = "%s"
   498  	color       = "green"
   499  	role        = "user"
   500  	job_title   = "foo"
   501  	description = "foo"
   502  }
   503  
   504  resource "pagerduty_escalation_policy" "foo" {
   505  	name        = "%s"
   506  	description = "bar"
   507  	num_loops   = 2
   508  
   509  	rule {
   510  		escalation_delay_in_minutes = 10
   511  		target {
   512  			type = "user_reference"
   513  			id   = "${pagerduty_user.foo.id}"
   514  		}
   515  	}
   516  }
   517  
   518  resource "pagerduty_service" "foo" {
   519  	name                    = "%s"
   520  	description             = "bar bar bar"
   521  	auto_resolve_timeout    = 3600
   522  	acknowledgement_timeout = 3600
   523  	escalation_policy       = "${pagerduty_escalation_policy.foo.id}"
   524  
   525  	incident_urgency_rule {
   526  		type = "use_support_hours"
   527  		during_support_hours {
   528  			type    = "constant"
   529  			urgency = "high"
   530  		}
   531  		outside_support_hours {
   532  			type    = "constant"
   533  			urgency = "low"
   534  		}
   535  	}
   536  
   537  	support_hours = [{
   538  		type         = "fixed_time_per_day"
   539  		time_zone    = "America/Lima"
   540  		start_time   = "09:00:00"
   541  		end_time     = "17:00:00"
   542  		days_of_week = [ 1, 2, 3, 4, 5 ]
   543  	}]
   544  
   545  	scheduled_actions {
   546  		type = "urgency_change"
   547  		to_urgency = "high"
   548  		at {
   549  			type = "named_time",
   550  			name = "support_hours_start"
   551  		}
   552  	}
   553  }
   554  `, username, email, escalationPolicy, service)
   555  }