@@ -650,6 +650,28 @@ func testAccCheckComputeNetworkIsCustomSubnet(t *testing.T, n string, network *c
650650 }
651651}
652652
653+ func testAccCheckComputeNetworkIsUlaInternalIpv6Enabled(t *testing.T, n string, network *compute.Network, expectEnabled bool) resource.TestCheckFunc {
654+ return func(s *terraform.State) error {
655+ config := acctest.GoogleProviderConfig(t)
656+
657+ found, err := config.NewComputeClient(config.UserAgent).Networks.Get(
658+ config.Project, network.Name).Do()
659+ if err != nil {
660+ return err
661+ }
662+
663+ if found.EnableUlaInternalIpv6 != expectEnabled {
664+ return fmt.Errorf("does not match expected EnableUlaInternalIpv6 value")
665+ }
666+
667+ if expectEnabled && found.InternalIpv6Range == "" {
668+ return fmt.Errorf("should have InternalIPv6Range")
669+ }
670+
671+ return nil
672+ }
673+ }
674+
653675func testAccCheckComputeNetworkHasMtu(t *testing.T, n string, network *compute.Network, mtu int32) resource.TestCheckFunc {
654676 return func(s *terraform.State) error {
655677 config := acctest.GoogleProviderConfig(t)
@@ -848,6 +870,39 @@ func TestAccComputeNetwork_networkBgpStandardModeDeleteMed(t *testing.T) {
848870 })
849871}
850872
873+ func TestAccComputeNetwork_updateEnableUlaInternalIpv6(t *testing.T) {
874+ t.Parallel()
875+
876+ var network compute.Network
877+ var updatedNetwork compute.Network
878+ suffixName := acctest.RandString(t, 10)
879+ networkName := fmt.Sprintf("tf-test-network-enable-ula-%s", suffixName)
880+
881+ acctest.VcrTest(t, resource.TestCase{
882+ PreCheck: func() { acctest.AccTestPreCheck(t) },
883+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
884+ CheckDestroy: testAccCheckComputeNetworkDestroyProducer(t),
885+ Steps: []resource.TestStep{
886+ {
887+ Config: testAccComputeNetwork_custom_subnet(networkName),
888+ Check: resource.ComposeTestCheckFunc(
889+ testAccCheckComputeNetworkExists(
890+ t, "google_compute_network.baz", &network),
891+ ),
892+ },
893+ {
894+ Config: testAccComputeNetwork_ula(networkName),
895+ Check: resource.ComposeTestCheckFunc(
896+ testAccCheckComputeNetworkExists(
897+ t, "google_compute_network.baz", &updatedNetwork),
898+ testAccCheckComputeNetworkWasUpdated(&updatedNetwork, &network),
899+ ),
900+ },
901+ },
902+ })
903+ }
904+
905+
851906func testAccComputeNetwork_basic(networkName string) string {
852907 return fmt.Sprintf(`
853908resource "google_compute_network" "bar" {
@@ -866,6 +921,16 @@ resource "google_compute_network" "baz" {
866921`, networkName)
867922}
868923
924+ func testAccComputeNetwork_ula(networkName string) string {
925+ return fmt.Sprintf(`
926+ resource "google_compute_network" "baz" {
927+ name = "%s"
928+ auto_create_subnetworks = false
929+ enable_ula_internal_ipv6 = true
930+ }
931+ `, networkName)
932+ }
933+
869934func testAccComputeNetwork_bgp(name, bgpBestPathSelectionMode, bgpAlwaysCompareMed, deleteBgpAlwaysCompareMed string) string {
870935 var medLine, deleteMedLine string
871936 if bgpAlwaysCompareMed != "" {
0 commit comments