1// +build go1.13
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5
6package armnetwork_test
7
8import (
9	"context"
10	"log"
11	"time"
12
13	"github.com/Azure/azure-sdk-for-go/sdk/armcore"
14	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
15	"github.com/Azure/azure-sdk-for-go/sdk/network/armnetwork"
16	"github.com/Azure/azure-sdk-for-go/sdk/to"
17)
18
19func ExampleVirtualNetworksClient_BeginCreateOrUpdate() {
20	cred, err := azidentity.NewDefaultAzureCredential(nil)
21	if err != nil {
22		log.Fatalf("failed to obtain a credential: %v", err)
23	}
24	client := armnetwork.NewVirtualNetworksClient(armcore.NewDefaultConnection(cred, nil), "<subscription ID>")
25	poller, err := client.BeginCreateOrUpdate(
26		context.Background(),
27		"<resource group name>",
28		"<virtual network name>",
29		armnetwork.VirtualNetwork{
30			Resource: armnetwork.Resource{
31				Name:     to.StringPtr("<virtual network name>"),
32				Location: to.StringPtr("<Azure location>"),
33			},
34			Properties: &armnetwork.VirtualNetworkPropertiesFormat{
35				AddressSpace: &armnetwork.AddressSpace{
36					AddressPrefixes: []*string{
37						to.StringPtr("10.0.0.0/8"),
38					},
39				},
40			},
41		},
42		nil,
43	)
44	if err != nil {
45		log.Fatalf("failed to obtain a response: %v", err)
46	}
47	resp, err := poller.PollUntilDone(context.Background(), 30*time.Second)
48	if err != nil {
49		log.Fatalf("failed to create resource: %v", err)
50	}
51	log.Printf("virtual network ID: %v", *resp.VirtualNetwork.ID)
52}
53
54func ExampleVirtualNetworksClient_BeginCreateOrUpdate_withSubnets() {
55	cred, err := azidentity.NewDefaultAzureCredential(nil)
56	if err != nil {
57		log.Fatalf("failed to obtain a credential: %v", err)
58	}
59	client := armnetwork.NewVirtualNetworksClient(armcore.NewDefaultConnection(cred, nil), "<subscription ID>")
60	poller, err := client.BeginCreateOrUpdate(
61		context.Background(),
62		"<resource group name>",
63		"<virtual network name>",
64		armnetwork.VirtualNetwork{
65			Resource: armnetwork.Resource{
66				Name:     to.StringPtr("<virtual network name>"),
67				Location: to.StringPtr("<Azure location>"),
68			},
69			Properties: &armnetwork.VirtualNetworkPropertiesFormat{
70				AddressSpace: &armnetwork.AddressSpace{
71					AddressPrefixes: []*string{
72						to.StringPtr("10.0.0.0/8"),
73					},
74				},
75				Subnets: []*armnetwork.Subnet{
76					{
77						Name: to.StringPtr("<subnet name 1>"),
78						Properties: &armnetwork.SubnetPropertiesFormat{
79							AddressPrefix: to.StringPtr("10.0.0.0/16"),
80						},
81					},
82					{
83						Name: to.StringPtr("<subnet name 2>"),
84						Properties: &armnetwork.SubnetPropertiesFormat{
85							AddressPrefix: to.StringPtr("10.1.0.0/16"),
86						},
87					},
88				},
89			},
90		},
91		nil,
92	)
93	if err != nil {
94		log.Fatalf("failed to obtain a response: %v", err)
95	}
96	resp, err := poller.PollUntilDone(context.Background(), 30*time.Second)
97	if err != nil {
98		log.Fatalf("failed to create resource: %v", err)
99	}
100	log.Printf("virtual network ID: %v", *resp.VirtualNetwork.ID)
101}
102
103func ExampleVirtualNetworksClient_Get() {
104	cred, err := azidentity.NewDefaultAzureCredential(nil)
105	if err != nil {
106		log.Fatalf("failed to obtain a credential: %v", err)
107	}
108	client := armnetwork.NewVirtualNetworksClient(armcore.NewDefaultConnection(cred, nil), "<subscription ID>")
109	resp, err := client.Get(context.Background(), "<resource group name>", "<virtual network name>", nil)
110	if err != nil {
111		log.Fatalf("failed to get resource: %v", err)
112	}
113	log.Printf("virtual network ID: %v", *resp.VirtualNetwork.ID)
114}
115
116func ExampleVirtualNetworksClient_BeginDelete() {
117	cred, err := azidentity.NewDefaultAzureCredential(nil)
118	if err != nil {
119		log.Fatalf("failed to obtain a credential: %v", err)
120	}
121	client := armnetwork.NewVirtualNetworksClient(armcore.NewDefaultConnection(cred, nil), "<subscription ID>")
122	resp, err := client.BeginDelete(context.Background(), "<resource group name>", "<virtual network name>", nil)
123	if err != nil {
124		log.Fatalf("failed to obtain a response: %v", err)
125	}
126	_, err = resp.PollUntilDone(context.Background(), 30*time.Second)
127	if err != nil {
128		log.Fatalf("failed to delete resource: %v", err)
129	}
130}
131