Skip to content

Commit b598133

Browse files
rileykarsonmodular-magician
authored andcommitted
Add support for google_access_context_manager_service_perimeter
1 parent 52bfa4d commit b598133

4 files changed

+888
-2
lines changed

google-beta/provider_accesscontextmanager_gen.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package google
1717
import "github.com/hashicorp/terraform/helper/schema"
1818

1919
var GeneratedAccessContextManagerResourcesMap = map[string]*schema.Resource{
20-
"google_access_context_manager_access_policy": resourceAccessContextManagerAccessPolicy(),
21-
"google_access_context_manager_access_level": resourceAccessContextManagerAccessLevel(),
20+
"google_access_context_manager_access_policy": resourceAccessContextManagerAccessPolicy(),
21+
"google_access_context_manager_access_level": resourceAccessContextManagerAccessLevel(),
22+
"google_access_context_manager_service_perimeter": resourceAccessContextManagerServicePerimeter(),
2223
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
package google
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
7+
"github.com/hashicorp/terraform/helper/resource"
8+
"github.com/hashicorp/terraform/terraform"
9+
)
10+
11+
// Access Context Manager tests need to run serially
12+
func TestAccAccessContextManagerServicePerimeter_basic(t *testing.T) {
13+
org := getTestOrgFromEnv(t)
14+
15+
resource.Test(t, resource.TestCase{
16+
PreCheck: func() { testAccPreCheck(t) },
17+
Providers: testAccProviders,
18+
CheckDestroy: testAccCheckAccessContextManagerServicePerimeterDestroy,
19+
Steps: []resource.TestStep{
20+
{
21+
Config: testAccAccessContextManagerServicePerimeter_basic(org, "my policy", "level", "perimeter"),
22+
},
23+
{
24+
ResourceName: "google_access_context_manager_service_perimeter.test-access",
25+
ImportState: true,
26+
ImportStateVerify: true,
27+
},
28+
},
29+
})
30+
}
31+
32+
func TestAccAccessContextManagerServicePerimeter_update(t *testing.T) {
33+
org := getTestOrgFromEnv(t)
34+
35+
resource.Test(t, resource.TestCase{
36+
PreCheck: func() { testAccPreCheck(t) },
37+
Providers: testAccProviders,
38+
CheckDestroy: testAccCheckAccessContextManagerServicePerimeterDestroy,
39+
Steps: []resource.TestStep{
40+
{
41+
Config: testAccAccessContextManagerServicePerimeter_update(org, "my policy", "level", "perimeter"),
42+
},
43+
{
44+
ResourceName: "google_access_context_manager_service_perimeter.test-access",
45+
ImportState: true,
46+
ImportStateVerify: true,
47+
},
48+
{
49+
Config: testAccAccessContextManagerServicePerimeter_update2(org, "my policy", "level", "perimeter"),
50+
},
51+
{
52+
ResourceName: "google_access_context_manager_service_perimeter.test-access",
53+
ImportState: true,
54+
ImportStateVerify: true,
55+
},
56+
},
57+
})
58+
}
59+
60+
func testAccCheckAccessContextManagerServicePerimeterDestroy(s *terraform.State) error {
61+
for _, rs := range s.RootModule().Resources {
62+
if rs.Type != "google_access_context_manager_service_perimeter" {
63+
continue
64+
}
65+
66+
config := testAccProvider.Meta().(*Config)
67+
68+
url, err := replaceVarsForTest(rs, "https://accesscontextmanager.googleapis.com/v1beta/{{name}}")
69+
if err != nil {
70+
return err
71+
}
72+
73+
_, err = sendRequest(config, "GET", url, nil)
74+
if err == nil {
75+
return fmt.Errorf("ServicePerimeter still exists at %s", url)
76+
}
77+
}
78+
79+
return nil
80+
}
81+
82+
func testAccAccessContextManagerServicePerimeter_basic(org, policyTitle, levelTitleName, perimeterTitleName string) string {
83+
return fmt.Sprintf(`
84+
resource "google_access_context_manager_access_policy" "test-access" {
85+
parent = "organizations/%s"
86+
title = "%s"
87+
}
88+
89+
resource "google_access_context_manager_access_level" "test-access" {
90+
parent = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}"
91+
name = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}/accessLevels/%s"
92+
title = "%s"
93+
description = "hello"
94+
basic {
95+
combining_function = "AND"
96+
conditions {
97+
ip_subnetworks = ["192.0.4.0/24"]
98+
}
99+
}
100+
}
101+
102+
resource "google_access_context_manager_service_perimeter" "test-access" {
103+
parent = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}"
104+
name = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}/servicePerimeters/%s"
105+
title = "%s"
106+
perimeter_type = "PERIMETER_TYPE_BRIDGE"
107+
}
108+
`, org, policyTitle, levelTitleName, levelTitleName, perimeterTitleName, perimeterTitleName)
109+
}
110+
111+
func testAccAccessContextManagerServicePerimeter_update(org, policyTitle, levelTitleName, perimeterTitleName string) string {
112+
return fmt.Sprintf(`
113+
resource "google_access_context_manager_access_policy" "test-access" {
114+
parent = "organizations/%s"
115+
title = "%s"
116+
}
117+
118+
resource "google_access_context_manager_access_level" "test-access" {
119+
parent = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}"
120+
name = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}/accessLevels/%s"
121+
title = "%s"
122+
description = "hello"
123+
basic {
124+
combining_function = "AND"
125+
conditions {
126+
ip_subnetworks = ["192.0.4.0/24"]
127+
}
128+
}
129+
}
130+
131+
resource "google_access_context_manager_service_perimeter" "test-access" {
132+
parent = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}"
133+
name = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}/servicePerimeters/%s"
134+
title = "%s"
135+
perimeter_type = "PERIMETER_TYPE_REGULAR"
136+
status {
137+
restricted_services = ["*"]
138+
}
139+
}
140+
`, org, policyTitle, levelTitleName, levelTitleName, perimeterTitleName, perimeterTitleName)
141+
}
142+
143+
func testAccAccessContextManagerServicePerimeter_update2(org, policyTitle, levelTitleName, perimeterTitleName string) string {
144+
return fmt.Sprintf(`
145+
resource "google_access_context_manager_access_policy" "test-access" {
146+
parent = "organizations/%s"
147+
title = "%s"
148+
}
149+
150+
resource "google_access_context_manager_access_level" "test-access" {
151+
parent = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}"
152+
name = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}/accessLevels/%s"
153+
title = "%s"
154+
description = "hello"
155+
basic {
156+
combining_function = "AND"
157+
conditions {
158+
ip_subnetworks = ["192.0.4.0/24"]
159+
}
160+
}
161+
}
162+
163+
resource "google_access_context_manager_service_perimeter" "test-access" {
164+
parent = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}"
165+
name = "accessPolicies/${google_access_context_manager_access_policy.test-access.name}/servicePerimeters/%s"
166+
title = "%s"
167+
perimeter_type = "PERIMETER_TYPE_REGULAR"
168+
status {
169+
unrestricted_services = ["*"]
170+
}
171+
}
172+
`, org, policyTitle, levelTitleName, levelTitleName, perimeterTitleName, perimeterTitleName)
173+
}

0 commit comments

Comments
 (0)