diff --git a/mmv1/products/networkservices/MulticastDomain.yaml b/mmv1/products/networkservices/MulticastDomain.yaml index 74f88959297d..77fe979d261e 100644 --- a/mmv1/products/networkservices/MulticastDomain.yaml +++ b/mmv1/products/networkservices/MulticastDomain.yaml @@ -119,6 +119,15 @@ properties: Use the following format: `projects/{project}/locations/global/multicastDomainGroups/{multicast_domain_group}`. immutable: true + - name: ullMulticastDomain + type: NestedObject + description: Information for an Ultra-Low-Latency multicast domain. + immutable: true + properties: + - name: preconfiguredUllDomain + type: String + description: The preconfigured Ultra-Low-Latency domain name. + immutable: true - name: name type: String description: |- diff --git a/mmv1/third_party/terraform/services/networkservices/resource_network_services_multicast_domain_test.go b/mmv1/third_party/terraform/services/networkservices/resource_network_services_multicast_domain_test.go index 95b9611dce00..3f18b09e07fe 100644 --- a/mmv1/third_party/terraform/services/networkservices/resource_network_services_multicast_domain_test.go +++ b/mmv1/third_party/terraform/services/networkservices/resource_network_services_multicast_domain_test.go @@ -85,3 +85,88 @@ resource "google_network_services_multicast_domain" md_test { } `, context) } + +func TestAccNetworkServicesMulticastDomain_networkServicesUllMulticastDomainUpdateExample(t *testing.T) { + t.Parallel() + + context := map[string]interface{}{ + "random_suffix": acctest.RandString(t, 10), + } + + acctest.VcrTest(t, resource.TestCase{ + PreCheck: func() { acctest.AccTestPreCheck(t) }, + ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t), + CheckDestroy: testAccCheckNetworkServicesMulticastDomainDestroyProducer(t), + Steps: []resource.TestStep{ + { + Config: testAccNetworkServicesMulticastDomain_networkServicesUllMulticastDomainUpdateExample_full(context), + }, + { + ResourceName: "google_network_services_multicast_domain.md_test", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"labels", "location", "multicast_domain_id", "terraform_labels"}, + }, + { + Config: testAccNetworkServicesMulticastDomain_networkServicesUllMulticastDomainUpdateExample_diff(context), + ConfigPlanChecks: resource.ConfigPlanChecks{ + PreApply: []plancheck.PlanCheck{ + plancheck.ExpectResourceAction("google_network_services_multicast_domain.md_test", plancheck.ResourceActionUpdate), + }, + }, + }, + { + ResourceName: "google_network_services_multicast_domain.md_test", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"labels", "location", "multicast_domain_id", "terraform_labels"}, + }, + }, + }) +} + +func testAccNetworkServicesMulticastDomain_networkServicesUllMulticastDomainUpdateExample_full(context map[string]interface{}) string { + return acctest.Nprintf(` +resource "google_compute_network" "network" { + name = "tf-test-test-md-network%{random_suffix}" + auto_create_subnetworks = false +} +resource "google_network_services_multicast_domain" md_test { + multicast_domain_id = "tf-test-test-md-domain%{random_suffix}" + location = "global" + admin_network = google_compute_network.network.id + connection_config { + connection_type="SAME_VPC" + } + ull_multicast_domain_config { + preconfigured_ull_domain = "e2e-test-internal-feed" + } + depends_on = [google_compute_network.network] +} +`, context) +} + +func testAccNetworkServicesMulticastDomain_networkServicesUllMulticastDomainUpdateExample_diff(context map[string]interface{}) string { + return acctest.Nprintf(` +resource "google_compute_network" "network" { + name = "tf-test-test-md-network%{random_suffix}" + auto_create_subnetworks = false +} +resource "google_network_services_multicast_domain" md_test { + multicast_domain_id = "tf-test-test-md-domain%{random_suffix}" + location = "global" + description = "A sample domain" + labels = { + label-one = "value-one" + } + admin_network = google_compute_network.network.id + connection_config { + connection_type="SAME_VPC" + } + ull_multicast_domain_config { + preconfigured_ull_domain = "e2e-test-internal-feed" + } + depends_on = [google_compute_network.network] +} +`, context) +}