diff --git a/civo/network/resource_network.go b/civo/network/resource_network.go index d769fd3..11918f0 100644 --- a/civo/network/resource_network.go +++ b/civo/network/resource_network.go @@ -139,6 +139,14 @@ func resourceNetworkCreate(ctx context.Context, d *schema.ResourceData, m interf return err } d.SetId(network.ID) + + // Create a default firewall for the network + log.Printf("[INFO] Creating default firewall for the network %s", d.Get("label").(string)) + err = createDefaultFirewall(apiClient, network.ID, network.Label) + if err != nil { + return err + } + return nil }, 10*time.Second, 2*time.Minute) @@ -262,9 +270,25 @@ func expandStringList(input interface{}) []string { return result } + func customizeDiffNetwork(ctx context.Context, d *schema.ResourceDiff, meta interface{}) error { if d.Id() != "" && d.HasChange("cidr_v4") { return fmt.Errorf("the 'cidr_v4' field is immutable") } + +// createDefaultFirewall function to create a default firewall +func createDefaultFirewall(apiClient *civogo.Client, networkID string, networkName string) error { + + firewallConfig := civogo.FirewallConfig{ + Name: fmt.Sprintf("%s-default", networkName), + NetworkID: networkID, + Region: apiClient.Region, + } + + // Create the default firewall + _, err := apiClient.NewFirewall(&firewallConfig) + if err != nil { + return err + } return nil }