@@ -105,3 +105,87 @@ func TestAccFastlyServiceVCLProductEnablement_basic(t *testing.T) {
105105 },
106106 })
107107}
108+
109+ func TestAccFastlyServiceVCLProductEnablement_ddosProtectionModeChange (t * testing.T ) {
110+ var service gofastly.ServiceDetail
111+ serviceName := fmt .Sprintf ("tf-test-%s" , acctest .RandString (10 ))
112+ domainName := fmt .Sprintf ("fastly-test.tf-%s.com" , acctest .RandString (10 ))
113+ backendName := fmt .Sprintf ("backend-tf-%s" , acctest .RandString (10 ))
114+ backendAddress := "httpbin.org"
115+
116+ initialConfig := fmt .Sprintf (`
117+ resource "fastly_service_vcl" "foo" {
118+ name = "%s"
119+
120+ domain {
121+ name = "%s"
122+ comment = "demo"
123+ }
124+
125+ backend {
126+ address = "%s"
127+ name = "%s"
128+ port = 443
129+ shield = "amsterdam-nl"
130+ }
131+
132+ product_enablement {
133+ ddos_protection {
134+ enabled = true
135+ mode = "block"
136+ }
137+ }
138+
139+ force_destroy = true
140+ }
141+ ` , serviceName , domainName , backendAddress , backendName )
142+
143+ updatedConfig := fmt .Sprintf (`
144+ resource "fastly_service_vcl" "foo" {
145+ name = "%s"
146+
147+ domain {
148+ name = "%s"
149+ comment = "demo"
150+ }
151+
152+ backend {
153+ address = "%s"
154+ name = "%s"
155+ port = 443
156+ shield = "amsterdam-nl"
157+ }
158+
159+ product_enablement {
160+ ddos_protection {
161+ enabled = true
162+ mode = "log"
163+ }
164+ }
165+
166+ force_destroy = true
167+ }
168+ ` , serviceName , domainName , backendAddress , backendName )
169+
170+ resource .ParallelTest (t , resource.TestCase {
171+ PreCheck : func () { testAccPreCheck (t ) },
172+ ProviderFactories : testAccProviders ,
173+ CheckDestroy : testAccCheckServiceVCLDestroy ,
174+ Steps : []resource.TestStep {
175+ {
176+ Config : initialConfig ,
177+ Check : resource .ComposeTestCheckFunc (
178+ testAccCheckServiceExists ("fastly_service_vcl.foo" , & service ),
179+ resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "product_enablement.0.ddos_protection.0.mode" , "block" ),
180+ ),
181+ },
182+ {
183+ Config : updatedConfig ,
184+ Check : resource .ComposeTestCheckFunc (
185+ testAccCheckServiceExists ("fastly_service_vcl.foo" , & service ),
186+ resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "product_enablement.0.ddos_protection.0.mode" , "log" ),
187+ ),
188+ },
189+ },
190+ })
191+ }
0 commit comments