Skip to content

Commit 0622339

Browse files
Ty Larrabeemodular-magician
Ty Larrabee
authored andcommitted
Add transfer configs
Signed-off-by: Modular Magician <[email protected]>
1 parent da5d339 commit 0622339

12 files changed

+811
-268
lines changed

google/config.go

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ type Config struct {
7070

7171
AccessContextManagerBasePath string
7272
AppEngineBasePath string
73+
BigqueryDataTransferBasePath string
7374
BinaryAuthorizationBasePath string
7475
CloudBuildBasePath string
7576
CloudSchedulerBasePath string

google/data_source_google_netblock_ip_ranges.go

+11-70
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ func dataSourceGoogleNetblockIpRanges() *schema.Resource {
1313
Read: dataSourceGoogleNetblockIpRangesRead,
1414

1515
Schema: map[string]*schema.Schema{
16-
"range_type": {
17-
Type: schema.TypeString,
18-
Optional: true,
19-
Default: "cloud-netblocks",
20-
},
2116
"cidr_blocks": {
2217
Type: schema.TypeList,
2318
Elem: &schema.Schema{Type: schema.TypeString},
@@ -38,73 +33,18 @@ func dataSourceGoogleNetblockIpRanges() *schema.Resource {
3833
}
3934

4035
func dataSourceGoogleNetblockIpRangesRead(d *schema.ResourceData, meta interface{}) error {
36+
d.SetId("netblock-ip-ranges")
4137

42-
rt := d.Get("range_type").(string)
43-
CidrBlocks := make(map[string][]string)
44-
45-
switch rt {
46-
// Dynamic ranges
47-
case "cloud-netblocks":
48-
// https://cloud.google.com/compute/docs/faq#where_can_i_find_product_name_short_ip_ranges
49-
const CLOUD_NETBLOCK_DNS = "_cloud-netblocks.googleusercontent.com"
50-
CidrBlocks, err := getCidrBlocks(CLOUD_NETBLOCK_DNS)
51-
52-
if err != nil {
53-
return err
54-
}
55-
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
56-
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
57-
d.Set("cidr_blocks_ipv6", CidrBlocks["cidr_blocks_ipv6"])
58-
case "google-netblocks":
59-
// https://support.google.com/a/answer/33786?hl=en
60-
const GOOGLE_NETBLOCK_DNS = "_spf.google.com"
61-
CidrBlocks, err := getCidrBlocks(GOOGLE_NETBLOCK_DNS)
38+
// https://cloud.google.com/compute/docs/faq#where_can_i_find_product_name_short_ip_ranges
39+
CidrBlocks, err := getCidrBlocks()
6240

63-
if err != nil {
64-
return err
65-
}
66-
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
67-
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
68-
d.Set("cidr_blocks_ipv6", CidrBlocks["cidr_blocks_ipv6"])
69-
// Static ranges
70-
case "restricted-googleapis":
71-
// https://cloud.google.com/vpc/docs/configure-private-google-access-hybrid
72-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "199.36.153.4/30")
73-
CidrBlocks["cidr_blocks"] = CidrBlocks["cidr_blocks_ipv4"]
74-
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
75-
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
76-
case "dns-forwarders":
77-
// https://cloud.google.com/dns/zones/#creating-forwarding-zones
78-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "35.199.192.0/19")
79-
CidrBlocks["cidr_blocks"] = CidrBlocks["cidr_blocks_ipv4"]
80-
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
81-
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
82-
case "iap-forwarders":
83-
// https://cloud.google.com/iap/docs/using-tcp-forwarding
84-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "35.235.240.0/20")
85-
CidrBlocks["cidr_blocks"] = CidrBlocks["cidr_blocks_ipv4"]
86-
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
87-
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
88-
case "health-checkers":
89-
// https://cloud.google.com/load-balancing/docs/health-checks#fw-ruleh
90-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "35.191.0.0/16")
91-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "130.211.0.0/22")
92-
CidrBlocks["cidr_blocks"] = CidrBlocks["cidr_blocks_ipv4"]
93-
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
94-
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
95-
case "legacy-health-checkers":
96-
// https://cloud.google.com/load-balancing/docs/health-check#fw-netlbs
97-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "35.191.0.0/16")
98-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "209.85.152.0/22")
99-
CidrBlocks["cidr_blocks_ipv4"] = append(CidrBlocks["cidr_blocks_ipv4"], "209.85.204.0/22")
100-
CidrBlocks["cidr_blocks"] = CidrBlocks["cidr_blocks_ipv4"]
101-
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
102-
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
103-
default:
104-
return fmt.Errorf("Unknown range_type: %s", rt)
41+
if err != nil {
42+
return err
10543
}
10644

107-
d.SetId("netblock-ip-ranges-" + rt)
45+
d.Set("cidr_blocks", CidrBlocks["cidr_blocks"])
46+
d.Set("cidr_blocks_ipv4", CidrBlocks["cidr_blocks_ipv4"])
47+
d.Set("cidr_blocks_ipv6", CidrBlocks["cidr_blocks_ipv6"])
10848

10949
return nil
11050
}
@@ -126,11 +66,12 @@ func netblock_request(name string) (string, error) {
12666
return string(body), nil
12767
}
12868

129-
func getCidrBlocks(netblock string) (map[string][]string, error) {
69+
func getCidrBlocks() (map[string][]string, error) {
70+
const INITIAL_NETBLOCK_DNS = "_cloud-netblocks.googleusercontent.com"
13071
var dnsNetblockList []string
13172
cidrBlocks := make(map[string][]string)
13273

133-
response, err := netblock_request(netblock)
74+
response, err := netblock_request(INITIAL_NETBLOCK_DNS)
13475

13576
if err != nil {
13677
return nil, err

google/data_source_google_netblock_ip_ranges_test.go

+7-127
Original file line numberDiff line numberDiff line change
@@ -15,144 +15,24 @@ func TestAccDataSourceGoogleNetblockIpRanges_basic(t *testing.T) {
1515
{
1616
Config: testAccNetblockIpRangesConfig,
1717
Check: resource.ComposeTestCheckFunc(
18-
// Cloud netblocks
19-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.cloud",
18+
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some",
2019
"cidr_blocks.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))),
21-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.cloud",
20+
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some",
2221
"cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")),
23-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.cloud",
22+
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some",
2423
"cidr_blocks_ipv4.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))),
25-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.cloud",
24+
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some",
2625
"cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")),
27-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.cloud",
26+
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some",
2827
"cidr_blocks_ipv6.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))),
29-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.cloud",
28+
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.some",
3029
"cidr_blocks_ipv6.0", regexp.MustCompile("^(?:[0-9a-fA-F]{1,4}:){1,2}.*/[0-9]{1,3}$")),
3130
),
3231
},
33-
{
34-
Config: testAccNetblockIpRangesConfig_google,
35-
Check: resource.ComposeTestCheckFunc(
36-
// Google netblocks
37-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.google",
38-
"cidr_blocks.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))),
39-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.google",
40-
"cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")),
41-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.google",
42-
"cidr_blocks_ipv4.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))),
43-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.google",
44-
"cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")),
45-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.google",
46-
"cidr_blocks_ipv6.#", regexp.MustCompile(("^[1-9]+[0-9]*$"))),
47-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.google",
48-
"cidr_blocks_ipv6.0", regexp.MustCompile("^(?:[0-9a-fA-F]{1,4}:){1,2}.*/[0-9]{1,3}$")),
49-
),
50-
},
51-
{
52-
Config: testAccNetblockIpRangesConfig_restricted,
53-
Check: resource.ComposeTestCheckFunc(
54-
// Private Google Access Restricted VIP
55-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.restricted", "cidr_blocks.#", "1"),
56-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.restricted",
57-
"cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")),
58-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.restricted", "cidr_blocks_ipv4.#", "1"),
59-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.restricted",
60-
"cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")),
61-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.restricted", "cidr_blocks_ipv6.#", "0"),
62-
),
63-
},
64-
{
65-
Config: testAccNetblockIpRangesConfig_dns,
66-
Check: resource.ComposeTestCheckFunc(
67-
// DNS outbound forwarding
68-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.dns", "cidr_blocks.#", "1"),
69-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.dns",
70-
"cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")),
71-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.dns", "cidr_blocks_ipv4.#", "1"),
72-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.dns",
73-
"cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")),
74-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.dns", "cidr_blocks_ipv6.#", "0"),
75-
),
76-
},
77-
{
78-
Config: testAccNetblockIpRangesConfig_iap,
79-
Check: resource.ComposeTestCheckFunc(
80-
// IAP sources
81-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.iap", "cidr_blocks.#", "1"),
82-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.iap",
83-
"cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")),
84-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.iap", "cidr_blocks_ipv4.#", "1"),
85-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.iap",
86-
"cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")),
87-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.iap", "cidr_blocks_ipv6.#", "0"),
88-
),
89-
},
90-
{
91-
Config: testAccNetblockIpRangesConfig_hc,
92-
Check: resource.ComposeTestCheckFunc(
93-
// Modern health checkers
94-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.hc", "cidr_blocks.#", "2"),
95-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.hc",
96-
"cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")),
97-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.hc", "cidr_blocks_ipv4.#", "2"),
98-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.hc",
99-
"cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")),
100-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.hc", "cidr_blocks_ipv6.#", "0"),
101-
),
102-
},
103-
{
104-
Config: testAccNetblockIpRangesConfig_lhc,
105-
Check: resource.ComposeTestCheckFunc(
106-
// Legacy health checkers
107-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.lhc", "cidr_blocks.#", "3"),
108-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.lhc",
109-
"cidr_blocks.0", regexp.MustCompile("^(?:[0-9a-fA-F./:]{1,4}){1,2}.*/[0-9]{1,3}$")),
110-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.lhc", "cidr_blocks_ipv4.#", "3"),
111-
resource.TestMatchResourceAttr("data.google_netblock_ip_ranges.lhc",
112-
"cidr_blocks_ipv4.0", regexp.MustCompile("^(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$")),
113-
resource.TestCheckResourceAttr("data.google_netblock_ip_ranges.lhc", "cidr_blocks_ipv6.#", "0"),
114-
),
115-
},
11632
},
11733
})
11834
}
11935

12036
const testAccNetblockIpRangesConfig = `
121-
data "google_netblock_ip_ranges" "cloud" {}
122-
`
123-
124-
const testAccNetblockIpRangesConfig_google = `
125-
data "google_netblock_ip_ranges" "google" {
126-
range_type = "google-netblocks"
127-
}
128-
`
129-
130-
const testAccNetblockIpRangesConfig_restricted = `
131-
data "google_netblock_ip_ranges" "restricted" {
132-
range_type = "restricted-googleapis"
133-
}
134-
`
135-
136-
const testAccNetblockIpRangesConfig_dns = `
137-
data "google_netblock_ip_ranges" "dns" {
138-
range_type = "dns-forwarders"
139-
}
140-
`
141-
142-
const testAccNetblockIpRangesConfig_iap = `
143-
data "google_netblock_ip_ranges" "iap" {
144-
range_type = "iap-forwarders"
145-
}
146-
`
147-
148-
const testAccNetblockIpRangesConfig_hc = `
149-
data "google_netblock_ip_ranges" "hc" {
150-
range_type = "health-checkers"
151-
}
152-
`
153-
154-
const testAccNetblockIpRangesConfig_lhc = `
155-
data "google_netblock_ip_ranges" "lhc" {
156-
range_type = "legacy-health-checkers"
157-
}
37+
data "google_netblock_ip_ranges" "some" {}
15838
`

google/provider.go

+4
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ func Provider() terraform.ResourceProvider {
100100
// Generated Products
101101
AccessContextManagerCustomEndpointEntryKey: AccessContextManagerCustomEndpointEntry,
102102
AppEngineCustomEndpointEntryKey: AppEngineCustomEndpointEntry,
103+
BigqueryDataTransferCustomEndpointEntryKey: BigqueryDataTransferCustomEndpointEntry,
103104
BinaryAuthorizationCustomEndpointEntryKey: BinaryAuthorizationCustomEndpointEntry,
104105
CloudBuildCustomEndpointEntryKey: CloudBuildCustomEndpointEntry,
105106
CloudSchedulerCustomEndpointEntryKey: CloudSchedulerCustomEndpointEntry,
@@ -213,6 +214,7 @@ func ResourceMapWithErrors() (map[string]*schema.Resource, error) {
213214
return mergeResourceMaps(
214215
GeneratedAccessContextManagerResourcesMap,
215216
GeneratedAppEngineResourcesMap,
217+
GeneratedBigqueryDataTransferResourcesMap,
216218
GeneratedBinaryAuthorizationResourcesMap,
217219
GeneratedCloudBuildResourcesMap,
218220
GeneratedCloudSchedulerResourcesMap,
@@ -384,6 +386,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
384386
// Generated products
385387
config.AccessContextManagerBasePath = d.Get(AccessContextManagerCustomEndpointEntryKey).(string)
386388
config.AppEngineBasePath = d.Get(AppEngineCustomEndpointEntryKey).(string)
389+
config.BigqueryDataTransferBasePath = d.Get(BigqueryDataTransferCustomEndpointEntryKey).(string)
387390
config.BinaryAuthorizationBasePath = d.Get(BinaryAuthorizationCustomEndpointEntryKey).(string)
388391
config.CloudBuildBasePath = d.Get(CloudBuildCustomEndpointEntryKey).(string)
389392
config.CloudSchedulerBasePath = d.Get(CloudSchedulerCustomEndpointEntryKey).(string)
@@ -441,6 +444,7 @@ func ConfigureBasePaths(c *Config) {
441444
// Generated Products
442445
c.AccessContextManagerBasePath = AccessContextManagerDefaultBasePath
443446
c.AppEngineBasePath = AppEngineDefaultBasePath
447+
c.BigqueryDataTransferBasePath = BigqueryDataTransferDefaultBasePath
444448
c.BinaryAuthorizationBasePath = BinaryAuthorizationDefaultBasePath
445449
c.CloudBuildBasePath = CloudBuildDefaultBasePath
446450
c.CloudSchedulerBasePath = CloudSchedulerDefaultBasePath
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** AUTO GENERATED CODE ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This file is automatically generated by Magic Modules and manual
8+
// changes will be clobbered when the file is regenerated.
9+
//
10+
// Please read more about how to change this file in
11+
// .github/CONTRIBUTING.md.
12+
//
13+
// ----------------------------------------------------------------------------
14+
15+
package google
16+
17+
import "github.com/hashicorp/terraform/helper/schema"
18+
19+
// If the base path has changed as a result of your PR, make sure to update
20+
// the provider_reference page!
21+
var BigqueryDataTransferDefaultBasePath = "https://bigquerydatatransfer.googleapis.com/v1/"
22+
var BigqueryDataTransferCustomEndpointEntryKey = "bigquery_data_transfer_custom_endpoint"
23+
var BigqueryDataTransferCustomEndpointEntry = &schema.Schema{
24+
Type: schema.TypeString,
25+
Optional: true,
26+
ValidateFunc: validateCustomEndpoint,
27+
DefaultFunc: schema.MultiEnvDefaultFunc([]string{
28+
"GOOGLE_BIGQUERY_DATA_TRANSFER_CUSTOM_ENDPOINT",
29+
}, BigqueryDataTransferDefaultBasePath),
30+
}
31+
32+
var GeneratedBigqueryDataTransferResourcesMap = map[string]*schema.Resource{
33+
"google_bigquery_data_transfer_config": resourceBigqueryDataTransferConfig(),
34+
}

0 commit comments

Comments
 (0)