Skip to content

Commit 729816e

Browse files
PLUTO-8020: add fields 'set', 'active', 'title', 'mitigation' for all resource_rules (#55)
1 parent 89e037b commit 729816e

30 files changed

Lines changed: 2143 additions & 1639 deletions

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ module github.com/wallarm/terraform-provider-wallarm
33
go 1.23
44

55
require (
6-
github.com/google/go-cmp v0.5.4
6+
github.com/google/go-cmp v0.6.0
77
github.com/hashicorp/go-cleanhttp v0.5.1
88
github.com/hashicorp/terraform-plugin-sdk v1.16.0
99
github.com/pkg/errors v0.9.1
10-
github.com/wallarm/wallarm-go v0.5.6
10+
github.com/samber/lo v1.51.0
11+
github.com/wallarm/wallarm-go v0.5.8
1112
)
1213

1314
require (
@@ -73,15 +74,14 @@ require (
7374
github.com/zclconf/go-cty v1.2.1 // indirect
7475
github.com/zclconf/go-cty-yaml v1.0.1 // indirect
7576
go.opencensus.io v0.22.4 // indirect
76-
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
77+
golang.org/x/crypto v0.23.0 // indirect
7778
golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
78-
golang.org/x/mod v0.4.2 // indirect
79-
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 // indirect
79+
golang.org/x/mod v0.17.0 // indirect
80+
golang.org/x/net v0.25.0 // indirect
8081
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect
81-
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect
82-
golang.org/x/text v0.3.6 // indirect
83-
golang.org/x/tools v0.1.5 // indirect
84-
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
82+
golang.org/x/sys v0.20.0 // indirect
83+
golang.org/x/text v0.22.0 // indirect
84+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
8585
google.golang.org/api v0.29.0 // indirect
8686
google.golang.org/appengine v1.6.6 // indirect
8787
google.golang.org/genproto v0.0.0-20200711021454-869866162049 // indirect

go.sum

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
132132
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
133133
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
134134
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
135-
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
136-
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
135+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
136+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
137137
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
138138
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
139139
github.com/google/martian/v3 v3.0.0 h1:pMen7vLs8nvgEYhywH3KDWJIJTeEr2ULsVWHWYHQyBs=
@@ -272,6 +272,8 @@ github.com/posener/complete v1.2.1 h1:LrvDIY//XNo65Lq84G/akBuMGlawHvGBABv8f/ZN6D
272272
github.com/posener/complete v1.2.1/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E=
273273
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
274274
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
275+
github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI=
276+
github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0=
275277
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
276278
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
277279
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
@@ -291,8 +293,8 @@ github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oW
291293
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
292294
github.com/vmihailenco/msgpack v4.0.1+incompatible h1:RMF1enSPeKTlXrXdOcqjFUElywVZjjC6pqse21bKbEU=
293295
github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
294-
github.com/wallarm/wallarm-go v0.5.6 h1:6Blpy71RJUDNNZGYrQowusp4vW3p9pF/abXFE81PDV0=
295-
github.com/wallarm/wallarm-go v0.5.6/go.mod h1:KQxO+EBaGpIgOqBoByKW4KNMEJFgkxR64FSiA4U/52I=
296+
github.com/wallarm/wallarm-go v0.5.8 h1:4RSQCtPjxv6u7dNhA5sf0fAnFFZPlc2T80DTVJ2gkAo=
297+
github.com/wallarm/wallarm-go v0.5.8/go.mod h1:KQxO+EBaGpIgOqBoByKW4KNMEJFgkxR64FSiA4U/52I=
296298
github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=
297299
github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
298300
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -318,8 +320,9 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U
318320
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
319321
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
320322
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
321-
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
322323
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
324+
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
325+
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
323326
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
324327
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
325328
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -351,8 +354,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
351354
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
352355
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
353356
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
354-
golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
355-
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
357+
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
358+
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
356359
golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
357360
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
358361
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -381,8 +384,8 @@ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/
381384
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
382385
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
383386
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
384-
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 h1:4CSI6oo7cOjJKajidEljs9h+uP0rRZBPPPhcCbj5mw8=
385-
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
387+
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
388+
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
386389
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
387390
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
388391
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -397,6 +400,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
397400
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
398401
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
399402
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
403+
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
404+
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
400405
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
401406
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
402407
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -425,15 +430,17 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w
425430
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
426431
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
427432
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
428-
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I=
429-
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
433+
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
434+
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
435+
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
436+
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
430437
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
431438
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
432439
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
433440
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
434441
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
435-
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
436-
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
442+
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
443+
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
437444
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
438445
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
439446
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -475,13 +482,11 @@ golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roY
475482
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
476483
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
477484
golang.org/x/tools v0.0.0-20200713011307-fd294ab11aed/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
478-
golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
479-
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
485+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
486+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
480487
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
481488
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
482489
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
483-
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
484-
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
485490
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
486491
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
487492
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=

wallarm/default.go

Lines changed: 73 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,11 @@ const (
1717

1818
var (
1919
defaultClientIDWithValidationSchema = &schema.Schema{
20-
Type: schema.TypeInt,
21-
Optional: true,
22-
Computed: true,
23-
Description: "The Client ID to perform changes",
24-
ValidateFunc: func(val interface{}, key string) (warns []string, errs []error) {
25-
v := val.(int)
26-
if v <= 0 {
27-
errs = append(errs, fmt.Errorf("%q must be positive, got: %d", key, v))
28-
}
29-
return
30-
},
20+
Type: schema.TypeInt,
21+
Optional: true,
22+
Computed: true,
23+
Description: "The Client ID to perform changes",
24+
ValidateFunc: validation.IntAtLeast(1),
3125
}
3226

3327
defaultResourceRuleActionSchema = &schema.Schema{
@@ -257,4 +251,72 @@ var (
257251
},
258252
},
259253
}
254+
255+
commonResourceRuleFields = map[string]*schema.Schema{
256+
"rule_id": {
257+
Type: schema.TypeInt,
258+
Computed: true,
259+
},
260+
"action_id": {
261+
Type: schema.TypeInt,
262+
Computed: true,
263+
},
264+
"rule_type": {
265+
Type: schema.TypeString,
266+
Computed: true,
267+
},
268+
"client_id": defaultClientIDWithValidationSchema,
269+
"comment": {
270+
Type: schema.TypeString,
271+
Optional: true,
272+
ForceNew: true,
273+
},
274+
"set": {
275+
Type: schema.TypeString,
276+
Optional: true,
277+
ForceNew: true,
278+
},
279+
"active": {
280+
Type: schema.TypeBool,
281+
Default: true,
282+
Optional: true,
283+
ForceNew: true,
284+
},
285+
"title": {
286+
Type: schema.TypeString,
287+
Optional: true,
288+
ForceNew: true,
289+
},
290+
"mitigation": {
291+
Type: schema.TypeString,
292+
Optional: true,
293+
Computed: true,
294+
},
295+
}
260296
)
297+
298+
type CommonResourceRuleFieldsDTO struct {
299+
Comment string
300+
Set string
301+
Active bool
302+
Title string
303+
Mitigation string
304+
}
305+
306+
func getCommonResourceRuleFieldsDTOFromResourceData(d *schema.ResourceData) CommonResourceRuleFieldsDTO {
307+
if d == nil {
308+
return CommonResourceRuleFieldsDTO{}
309+
}
310+
comment, _ := d.Get("comment").(string)
311+
set, _ := d.Get("set").(string)
312+
active, _ := d.Get("active").(bool)
313+
title, _ := d.Get("title").(string)
314+
mitigation, _ := d.Get("mitigation").(string)
315+
return CommonResourceRuleFieldsDTO{
316+
Comment: comment,
317+
Set: set,
318+
Active: active,
319+
Title: title,
320+
Mitigation: mitigation,
321+
}
322+
}

wallarm/provider.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ func Provider() terraform.ResourceProvider {
131131
"wallarm_integration_teams": resourceWallarmTeams(),
132132
"wallarm_trigger": resourceWallarmTrigger(),
133133
"wallarm_rule_binary_data": resourceWallarmBinaryData(),
134+
"wallarm_rule_enum": resourceWallarmEnum(),
134135
"wallarm_rule_disable_attack_type": resourceWallarmDisableAttackType(),
135136
"wallarm_rule_variative_keys": resourceWallarmVariativeKeys(),
136137
"wallarm_rule_variative_values": resourceWallarmVariativeValues(),
@@ -141,8 +142,10 @@ func Provider() terraform.ResourceProvider {
141142
"wallarm_rule_regex": resourceWallarmRegex(),
142143
"wallarm_rule_ignore_regex": resourceWallarmIgnoreRegex(),
143144
"wallarm_rule_set_response_header": resourceWallarmSetResponseHeader(),
145+
"wallarm_rule_brute": resourceWallarmBrute(),
144146
"wallarm_rule_bruteforce_counter": resourceWallarmBruteForceCounter(),
145147
"wallarm_rule_dirbust_counter": resourceWallarmDirbustCounter(),
148+
"wallarm_rule_bola": resourceWallarmBola(),
146149
"wallarm_rule_bola_counter": resourceWallarmBolaCounter(),
147150
"wallarm_rule_rate_limit": resourceWallarmRateLimit(),
148151
"wallarm_rule_uploads": resourceWallarmUploads(),

wallarm/resource_application.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,9 @@ func resourceWallarmAppCreate(d *schema.ResourceData, m interface{}) error {
5050
appID := d.Get("app_id").(int)
5151

5252
appBody := &wallarm.AppCreate{
53-
Name: name,
54-
AppFilter: &wallarm.AppFilter{
55-
ID: appID,
56-
Clientid: clientID},
53+
Name: name,
54+
ID: &appID,
55+
Clientid: clientID,
5756
}
5857

5958
if err := client.AppCreate(appBody); err != nil {
@@ -91,7 +90,7 @@ func resourceWallarmAppRead(d *schema.ResourceData, m interface{}) error {
9190
}
9291
found := false
9392
for _, app := range appResp.Body {
94-
if app.ID == appID {
93+
if app.ID != nil && *app.ID == appID {
9594
found = true
9695
d.Set("name", name)
9796
d.Set("app_id", app.ID)
@@ -180,7 +179,7 @@ func resourceWallarmAppImport(d *schema.ResourceData, m interface{}) ([]*schema.
180179
}
181180

182181
for _, app := range appResp.Body {
183-
if app.ID == appID {
182+
if app.ID != nil && *app.ID == appID {
184183
d.Set("name", name)
185184
d.Set("app_id", app.ID)
186185
d.Set("client_id", clientID)

wallarm/resource_application_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ func testAccCheckWallarmAppResourceExists(n string) resource.TestCheckFunc {
133133
}
134134

135135
for _, app := range appResp.Body {
136-
if app.ID == appID || app.Name == name {
136+
if app.ID != nil && *app.ID == appID || app.Name == name {
137137
return nil
138138
}
139139
}

wallarm/resource_ip_list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func resourceWallarmIPListCreate(listType wallarm.IPListType) schema.CreateFunc
107107
}
108108
apps = make([]int, len(appResp.Body))
109109
for i, app := range appResp.Body {
110-
apps[i] = app.ID
110+
apps[i] = *app.ID
111111
}
112112
}
113113

@@ -230,7 +230,7 @@ func resourceWallarmIPListRead(listType wallarm.IPListType) schema.ReadFunc {
230230
}
231231
apps = make([]int, len(appResp.Body))
232232
for i, app := range appResp.Body {
233-
apps[i] = app.ID
233+
apps[i] = *app.ID
234234
}
235235
}
236236

0 commit comments

Comments
 (0)