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// Code generated by Microsoft (R) AutoRest Code Generator.
6// Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
8package armnetwork
9
10import (
11	"context"
12	"encoding/json"
13	"fmt"
14	"net/http"
15	"time"
16)
17
18// AAD Vpn authentication type related parameters.
19type AadAuthenticationParameters struct {
20	// AAD Vpn authentication parameter AAD audience.
21	AadAudience *string `json:"aadAudience,omitempty"`
22
23	// AAD Vpn authentication parameter AAD issuer.
24	AadIssuer *string `json:"aadIssuer,omitempty"`
25
26	// AAD Vpn authentication parameter AAD tenant.
27	AadTenant *string `json:"aadTenant,omitempty"`
28}
29
30// AddressSpace contains an array of IP address ranges that can be used by subnets of the virtual network.
31type AddressSpace struct {
32	// A list of address blocks reserved for this virtual network in CIDR notation.
33	AddressPrefixes *[]string `json:"addressPrefixes,omitempty"`
34}
35
36// Application gateway resource.
37type ApplicationGateway struct {
38	Resource
39	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
40	Etag *string `json:"etag,omitempty" azure:"ro"`
41
42	// The identity of the application gateway, if configured.
43	IDentity *ManagedServiceIDentity `json:"identity,omitempty"`
44
45	// Properties of the application gateway.
46	Properties *ApplicationGatewayPropertiesFormat `json:"properties,omitempty"`
47
48	// A list of availability zones denoting where the resource needs to come from.
49	Zones *[]string `json:"zones,omitempty"`
50}
51
52// Authentication certificates of an application gateway.
53type ApplicationGatewayAuthenticationCertificate struct {
54	SubResource
55	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
56	Etag *string `json:"etag,omitempty" azure:"ro"`
57
58	// Name of the authentication certificate that is unique within an Application Gateway.
59	Name *string `json:"name,omitempty"`
60
61	// Properties of the application gateway authentication certificate.
62	Properties *ApplicationGatewayAuthenticationCertificatePropertiesFormat `json:"properties,omitempty"`
63
64	// READ-ONLY; Type of the resource.
65	Type *string `json:"type,omitempty" azure:"ro"`
66}
67
68// Authentication certificates properties of an application gateway.
69type ApplicationGatewayAuthenticationCertificatePropertiesFormat struct {
70	// Certificate public data.
71	Data *string `json:"data,omitempty"`
72
73	// READ-ONLY; The provisioning state of the authentication certificate resource.
74	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
75}
76
77// Application Gateway autoscale configuration.
78type ApplicationGatewayAutoscaleConfiguration struct {
79	// Upper bound on number of Application Gateway capacity.
80	MaxCapacity *int32 `json:"maxCapacity,omitempty"`
81
82	// Lower bound on number of Application Gateway capacity.
83	MinCapacity *int32 `json:"minCapacity,omitempty"`
84}
85
86// Response for ApplicationGatewayAvailableSslOptions API service call.
87type ApplicationGatewayAvailableSslOptions struct {
88	Resource
89	// Properties of the application gateway available SSL options.
90	Properties *ApplicationGatewayAvailableSslOptionsPropertiesFormat `json:"properties,omitempty"`
91}
92
93// Properties of ApplicationGatewayAvailableSslOptions.
94type ApplicationGatewayAvailableSslOptionsPropertiesFormat struct {
95	// List of available Ssl cipher suites.
96	AvailableCipherSuites *[]ApplicationGatewaySslCipherSuite `json:"availableCipherSuites,omitempty"`
97
98	// List of available Ssl protocols.
99	AvailableProtocols *[]ApplicationGatewaySslProtocol `json:"availableProtocols,omitempty"`
100
101	// Name of the Ssl predefined policy applied by default to application gateway.
102	DefaultPolicy *ApplicationGatewaySslPolicyName `json:"defaultPolicy,omitempty"`
103
104	// List of available Ssl predefined policy.
105	PredefinedPolicies *[]SubResource `json:"predefinedPolicies,omitempty"`
106}
107
108// ApplicationGatewayAvailableSslOptionsResponse is the response envelope for operations that return a ApplicationGatewayAvailableSslOptions type.
109type ApplicationGatewayAvailableSslOptionsResponse struct {
110	// Response for ApplicationGatewayAvailableSslOptions API service call.
111	ApplicationGatewayAvailableSslOptions *ApplicationGatewayAvailableSslOptions
112
113	// RawResponse contains the underlying HTTP response.
114	RawResponse *http.Response
115}
116
117// Response for ApplicationGatewayAvailableSslOptions API service call.
118type ApplicationGatewayAvailableSslPredefinedPolicies struct {
119	// URL to get the next set of results.
120	NextLink *string `json:"nextLink,omitempty"`
121
122	// List of available Ssl predefined policy.
123	Value *[]ApplicationGatewaySslPredefinedPolicy `json:"value,omitempty"`
124}
125
126// ApplicationGatewayAvailableSslPredefinedPoliciesResponse is the response envelope for operations that return a ApplicationGatewayAvailableSslPredefinedPolicies
127// type.
128type ApplicationGatewayAvailableSslPredefinedPoliciesResponse struct {
129	// Response for ApplicationGatewayAvailableSslOptions API service call.
130	ApplicationGatewayAvailableSslPredefinedPolicies *ApplicationGatewayAvailableSslPredefinedPolicies
131
132	// RawResponse contains the underlying HTTP response.
133	RawResponse *http.Response
134}
135
136// Response for ApplicationGatewayAvailableWafRuleSets API service call.
137type ApplicationGatewayAvailableWafRuleSetsResult struct {
138	// The list of application gateway rule sets.
139	Value *[]ApplicationGatewayFirewallRuleSet `json:"value,omitempty"`
140}
141
142// ApplicationGatewayAvailableWafRuleSetsResultResponse is the response envelope for operations that return a ApplicationGatewayAvailableWafRuleSetsResult
143// type.
144type ApplicationGatewayAvailableWafRuleSetsResultResponse struct {
145	// Response for ApplicationGatewayAvailableWafRuleSets API service call.
146	ApplicationGatewayAvailableWafRuleSetsResult *ApplicationGatewayAvailableWafRuleSetsResult
147
148	// RawResponse contains the underlying HTTP response.
149	RawResponse *http.Response
150}
151
152// Backend address of an application gateway.
153type ApplicationGatewayBackendAddress struct {
154	// Fully qualified domain name (FQDN).
155	Fqdn *string `json:"fqdn,omitempty"`
156
157	// IP address.
158	IPAddress *string `json:"ipAddress,omitempty"`
159}
160
161// Backend Address Pool of an application gateway.
162type ApplicationGatewayBackendAddressPool struct {
163	SubResource
164	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
165	Etag *string `json:"etag,omitempty" azure:"ro"`
166
167	// Name of the backend address pool that is unique within an Application Gateway.
168	Name *string `json:"name,omitempty"`
169
170	// Properties of the application gateway backend address pool.
171	Properties *ApplicationGatewayBackendAddressPoolPropertiesFormat `json:"properties,omitempty"`
172
173	// READ-ONLY; Type of the resource.
174	Type *string `json:"type,omitempty" azure:"ro"`
175}
176
177// Properties of Backend Address Pool of an application gateway.
178type ApplicationGatewayBackendAddressPoolPropertiesFormat struct {
179	// Backend addresses.
180	BackendAddresses *[]ApplicationGatewayBackendAddress `json:"backendAddresses,omitempty"`
181
182	// READ-ONLY; Collection of references to IPs defined in network interfaces.
183	BackendIPConfigurations *[]NetworkInterfaceIPConfiguration `json:"backendIPConfigurations,omitempty" azure:"ro"`
184
185	// READ-ONLY; The provisioning state of the backend address pool resource.
186	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
187}
188
189// Backend address pool settings of an application gateway.
190type ApplicationGatewayBackendHTTPSettings struct {
191	SubResource
192	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
193	Etag *string `json:"etag,omitempty" azure:"ro"`
194
195	// Name of the backend http settings that is unique within an Application Gateway.
196	Name *string `json:"name,omitempty"`
197
198	// Properties of the application gateway backend HTTP settings.
199	Properties *ApplicationGatewayBackendHTTPSettingsPropertiesFormat `json:"properties,omitempty"`
200
201	// READ-ONLY; Type of the resource.
202	Type *string `json:"type,omitempty" azure:"ro"`
203}
204
205// Properties of Backend address pool settings of an application gateway.
206type ApplicationGatewayBackendHTTPSettingsPropertiesFormat struct {
207	// Cookie name to use for the affinity cookie.
208	AffinityCookieName *string `json:"affinityCookieName,omitempty"`
209
210	// Array of references to application gateway authentication certificates.
211	AuthenticationCertificates *[]SubResource `json:"authenticationCertificates,omitempty"`
212
213	// Connection draining of the backend http settings resource.
214	ConnectionDraining *ApplicationGatewayConnectionDraining `json:"connectionDraining,omitempty"`
215
216	// Cookie based affinity.
217	CookieBasedAffinity *ApplicationGatewayCookieBasedAffinity `json:"cookieBasedAffinity,omitempty"`
218
219	// Host header to be sent to the backend servers.
220	HostName *string `json:"hostName,omitempty"`
221
222	// Path which should be used as a prefix for all HTTP requests. Null means no path will be prefixed. Default value is null.
223	Path *string `json:"path,omitempty"`
224
225	// Whether to pick host header should be picked from the host name of the backend server. Default value is false.
226	PickHostNameFromBackendAddress *bool `json:"pickHostNameFromBackendAddress,omitempty"`
227
228	// The destination port on the backend.
229	Port *int32 `json:"port,omitempty"`
230
231	// Probe resource of an application gateway.
232	Probe *SubResource `json:"probe,omitempty"`
233
234	// Whether the probe is enabled. Default value is false.
235	ProbeEnabled *bool `json:"probeEnabled,omitempty"`
236
237	// The protocol used to communicate with the backend.
238	Protocol *ApplicationGatewayProtocol `json:"protocol,omitempty"`
239
240	// READ-ONLY; The provisioning state of the backend HTTP settings resource.
241	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
242
243	// Request timeout in seconds. Application Gateway will fail the request if response is not received within RequestTimeout. Acceptable values are from 1
244	// second to 86400 seconds.
245	RequestTimeout *int32 `json:"requestTimeout,omitempty"`
246
247	// Array of references to application gateway trusted root certificates.
248	TrustedRootCertificates *[]SubResource `json:"trustedRootCertificates,omitempty"`
249}
250
251// Response for ApplicationGatewayBackendHealth API service call.
252type ApplicationGatewayBackendHealth struct {
253	// A list of ApplicationGatewayBackendHealthPool resources.
254	BackendAddressPools *[]ApplicationGatewayBackendHealthPool `json:"backendAddressPools,omitempty"`
255}
256
257// Application gateway BackendHealthHttp settings.
258type ApplicationGatewayBackendHealthHTTPSettings struct {
259	// Reference to an ApplicationGatewayBackendHttpSettings resource.
260	BackendHTTPSettings *ApplicationGatewayBackendHTTPSettings `json:"backendHttpSettings,omitempty"`
261
262	// List of ApplicationGatewayBackendHealthServer resources.
263	Servers *[]ApplicationGatewayBackendHealthServer `json:"servers,omitempty"`
264}
265
266// Result of on demand test probe.
267type ApplicationGatewayBackendHealthOnDemand struct {
268	// Reference to an ApplicationGatewayBackendAddressPool resource.
269	BackendAddressPool *ApplicationGatewayBackendAddressPool `json:"backendAddressPool,omitempty"`
270
271	// Application gateway BackendHealthHttp settings.
272	BackendHealthHTTPSettings *ApplicationGatewayBackendHealthHTTPSettings `json:"backendHealthHttpSettings,omitempty"`
273}
274
275// ApplicationGatewayBackendHealthOnDemandPollerResponse is the response envelope for operations that asynchronously return a ApplicationGatewayBackendHealthOnDemand
276// type.
277type ApplicationGatewayBackendHealthOnDemandPollerResponse struct {
278	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
279	PollUntilDone func(ctx context.Context, frequency time.Duration) (ApplicationGatewayBackendHealthOnDemandResponse, error)
280
281	// Poller contains an initialized poller.
282	Poller ApplicationGatewayBackendHealthOnDemandPoller
283
284	// RawResponse contains the underlying HTTP response.
285	RawResponse *http.Response
286}
287
288// ApplicationGatewayBackendHealthOnDemandResponse is the response envelope for operations that return a ApplicationGatewayBackendHealthOnDemand type.
289type ApplicationGatewayBackendHealthOnDemandResponse struct {
290	// Result of on demand test probe.
291	ApplicationGatewayBackendHealthOnDemand *ApplicationGatewayBackendHealthOnDemand
292
293	// RawResponse contains the underlying HTTP response.
294	RawResponse *http.Response
295}
296
297// ApplicationGatewayBackendHealthPollerResponse is the response envelope for operations that asynchronously return a ApplicationGatewayBackendHealth type.
298type ApplicationGatewayBackendHealthPollerResponse struct {
299	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
300	PollUntilDone func(ctx context.Context, frequency time.Duration) (ApplicationGatewayBackendHealthResponse, error)
301
302	// Poller contains an initialized poller.
303	Poller ApplicationGatewayBackendHealthPoller
304
305	// RawResponse contains the underlying HTTP response.
306	RawResponse *http.Response
307}
308
309// Application gateway BackendHealth pool.
310type ApplicationGatewayBackendHealthPool struct {
311	// Reference to an ApplicationGatewayBackendAddressPool resource.
312	BackendAddressPool *ApplicationGatewayBackendAddressPool `json:"backendAddressPool,omitempty"`
313
314	// List of ApplicationGatewayBackendHealthHttpSettings resources.
315	BackendHTTPSettingsCollection *[]ApplicationGatewayBackendHealthHTTPSettings `json:"backendHttpSettingsCollection,omitempty"`
316}
317
318// ApplicationGatewayBackendHealthResponse is the response envelope for operations that return a ApplicationGatewayBackendHealth type.
319type ApplicationGatewayBackendHealthResponse struct {
320	// Response for ApplicationGatewayBackendHealth API service call.
321	ApplicationGatewayBackendHealth *ApplicationGatewayBackendHealth
322
323	// RawResponse contains the underlying HTTP response.
324	RawResponse *http.Response
325}
326
327// Application gateway backendhealth http settings.
328type ApplicationGatewayBackendHealthServer struct {
329	// IP address or FQDN of backend server.
330	Address *string `json:"address,omitempty"`
331
332	// Health of backend server.
333	Health *ApplicationGatewayBackendHealthServerHealth `json:"health,omitempty"`
334
335	// Health Probe Log.
336	HealthProbeLog *string `json:"healthProbeLog,omitempty"`
337
338	// Reference to IP configuration of backend server.
339	IPConfiguration *NetworkInterfaceIPConfiguration `json:"ipConfiguration,omitempty"`
340}
341
342// Application gateway client authentication configuration.
343type ApplicationGatewayClientAuthConfiguration struct {
344	// Verify client certificate issuer name on the application gateway.
345	VerifyClientCertIssuerDn *bool `json:"verifyClientCertIssuerDN,omitempty"`
346}
347
348// Connection draining allows open connections to a backend server to be active for a specified time after the backend server got removed from the configuration.
349type ApplicationGatewayConnectionDraining struct {
350	// The number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds.
351	DrainTimeoutInSec *int32 `json:"drainTimeoutInSec,omitempty"`
352
353	// Whether connection draining is enabled or not.
354	Enabled *bool `json:"enabled,omitempty"`
355}
356
357// Customer error of an application gateway.
358type ApplicationGatewayCustomError struct {
359	// Error page URL of the application gateway customer error.
360	CustomErrorPageURL *string `json:"customErrorPageUrl,omitempty"`
361
362	// Status code of the application gateway customer error.
363	StatusCode *ApplicationGatewayCustomErrorStatusCode `json:"statusCode,omitempty"`
364}
365
366// Allows to disable rules within a rule group or an entire rule group.
367type ApplicationGatewayFirewallDisabledRuleGroup struct {
368	// The name of the rule group that will be disabled.
369	RuleGroupName *string `json:"ruleGroupName,omitempty"`
370
371	// The list of rules that will be disabled. If null, all rules of the rule group will be disabled.
372	Rules *[]int32 `json:"rules,omitempty"`
373}
374
375// Allow to exclude some variable satisfy the condition for the WAF check.
376type ApplicationGatewayFirewallExclusion struct {
377	// The variable to be excluded.
378	MatchVariable *string `json:"matchVariable,omitempty"`
379
380	// When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to.
381	Selector *string `json:"selector,omitempty"`
382
383	// When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to.
384	SelectorMatchOperator *string `json:"selectorMatchOperator,omitempty"`
385}
386
387// A web application firewall rule.
388type ApplicationGatewayFirewallRule struct {
389	// The description of the web application firewall rule.
390	Description *string `json:"description,omitempty"`
391
392	// The identifier of the web application firewall rule.
393	RuleID *int32 `json:"ruleId,omitempty"`
394}
395
396// A web application firewall rule group.
397type ApplicationGatewayFirewallRuleGroup struct {
398	// The description of the web application firewall rule group.
399	Description *string `json:"description,omitempty"`
400
401	// The name of the web application firewall rule group.
402	RuleGroupName *string `json:"ruleGroupName,omitempty"`
403
404	// The rules of the web application firewall rule group.
405	Rules *[]ApplicationGatewayFirewallRule `json:"rules,omitempty"`
406}
407
408// A web application firewall rule set.
409type ApplicationGatewayFirewallRuleSet struct {
410	Resource
411	// Properties of the application gateway firewall rule set.
412	Properties *ApplicationGatewayFirewallRuleSetPropertiesFormat `json:"properties,omitempty"`
413}
414
415// Properties of the web application firewall rule set.
416type ApplicationGatewayFirewallRuleSetPropertiesFormat struct {
417	// READ-ONLY; The provisioning state of the web application firewall rule set.
418	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
419
420	// The rule groups of the web application firewall rule set.
421	RuleGroups *[]ApplicationGatewayFirewallRuleGroup `json:"ruleGroups,omitempty"`
422
423	// The type of the web application firewall rule set.
424	RuleSetType *string `json:"ruleSetType,omitempty"`
425
426	// The version of the web application firewall rule set type.
427	RuleSetVersion *string `json:"ruleSetVersion,omitempty"`
428}
429
430// Frontend IP configuration of an application gateway.
431type ApplicationGatewayFrontendIPConfiguration struct {
432	SubResource
433	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
434	Etag *string `json:"etag,omitempty" azure:"ro"`
435
436	// Name of the frontend IP configuration that is unique within an Application Gateway.
437	Name *string `json:"name,omitempty"`
438
439	// Properties of the application gateway frontend IP configuration.
440	Properties *ApplicationGatewayFrontendIPConfigurationPropertiesFormat `json:"properties,omitempty"`
441
442	// READ-ONLY; Type of the resource.
443	Type *string `json:"type,omitempty" azure:"ro"`
444}
445
446// Properties of Frontend IP configuration of an application gateway.
447type ApplicationGatewayFrontendIPConfigurationPropertiesFormat struct {
448	// PrivateIPAddress of the network interface IP Configuration.
449	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
450
451	// The private IP address allocation method.
452	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
453
454	// Reference to the application gateway private link configuration.
455	PrivateLinkConfiguration *SubResource `json:"privateLinkConfiguration,omitempty"`
456
457	// READ-ONLY; The provisioning state of the frontend IP configuration resource.
458	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
459
460	// Reference to the PublicIP resource.
461	PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"`
462
463	// Reference to the subnet resource.
464	Subnet *SubResource `json:"subnet,omitempty"`
465}
466
467// Frontend port of an application gateway.
468type ApplicationGatewayFrontendPort struct {
469	SubResource
470	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
471	Etag *string `json:"etag,omitempty" azure:"ro"`
472
473	// Name of the frontend port that is unique within an Application Gateway.
474	Name *string `json:"name,omitempty"`
475
476	// Properties of the application gateway frontend port.
477	Properties *ApplicationGatewayFrontendPortPropertiesFormat `json:"properties,omitempty"`
478
479	// READ-ONLY; Type of the resource.
480	Type *string `json:"type,omitempty" azure:"ro"`
481}
482
483// Properties of Frontend port of an application gateway.
484type ApplicationGatewayFrontendPortPropertiesFormat struct {
485	// Frontend port.
486	Port *int32 `json:"port,omitempty"`
487
488	// READ-ONLY; The provisioning state of the frontend port resource.
489	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
490}
491
492// Http listener of an application gateway.
493type ApplicationGatewayHTTPListener struct {
494	SubResource
495	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
496	Etag *string `json:"etag,omitempty" azure:"ro"`
497
498	// Name of the HTTP listener that is unique within an Application Gateway.
499	Name *string `json:"name,omitempty"`
500
501	// Properties of the application gateway HTTP listener.
502	Properties *ApplicationGatewayHTTPListenerPropertiesFormat `json:"properties,omitempty"`
503
504	// READ-ONLY; Type of the resource.
505	Type *string `json:"type,omitempty" azure:"ro"`
506}
507
508// Properties of HTTP listener of an application gateway.
509type ApplicationGatewayHTTPListenerPropertiesFormat struct {
510	// Custom error configurations of the HTTP listener.
511	CustomErrorConfigurations *[]ApplicationGatewayCustomError `json:"customErrorConfigurations,omitempty"`
512
513	// Reference to the FirewallPolicy resource.
514	FirewallPolicy *SubResource `json:"firewallPolicy,omitempty"`
515
516	// Frontend IP configuration resource of an application gateway.
517	FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"`
518
519	// Frontend port resource of an application gateway.
520	FrontendPort *SubResource `json:"frontendPort,omitempty"`
521
522	// Host name of HTTP listener.
523	HostName *string `json:"hostName,omitempty"`
524
525	// List of Host names for HTTP Listener that allows special wildcard characters as well.
526	HostNames *[]string `json:"hostNames,omitempty"`
527
528	// Protocol of the HTTP listener.
529	Protocol *ApplicationGatewayProtocol `json:"protocol,omitempty"`
530
531	// READ-ONLY; The provisioning state of the HTTP listener resource.
532	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
533
534	// Applicable only if protocol is https. Enables SNI for multi-hosting.
535	RequireServerNameIndication *bool `json:"requireServerNameIndication,omitempty"`
536
537	// SSL certificate resource of an application gateway.
538	SslCertificate *SubResource `json:"sslCertificate,omitempty"`
539
540	// SSL profile resource of the application gateway.
541	SslProfile *SubResource `json:"sslProfile,omitempty"`
542}
543
544// Header configuration of the Actions set in Application Gateway.
545type ApplicationGatewayHeaderConfiguration struct {
546	// Header name of the header configuration.
547	HeaderName *string `json:"headerName,omitempty"`
548
549	// Header value of the header configuration.
550	HeaderValue *string `json:"headerValue,omitempty"`
551}
552
553// IP configuration of an application gateway. Currently 1 public and 1 private IP configuration is allowed.
554type ApplicationGatewayIPConfiguration struct {
555	SubResource
556	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
557	Etag *string `json:"etag,omitempty" azure:"ro"`
558
559	// Name of the IP configuration that is unique within an Application Gateway.
560	Name *string `json:"name,omitempty"`
561
562	// Properties of the application gateway IP configuration.
563	Properties *ApplicationGatewayIPConfigurationPropertiesFormat `json:"properties,omitempty"`
564
565	// READ-ONLY; Type of the resource.
566	Type *string `json:"type,omitempty" azure:"ro"`
567}
568
569// Properties of IP configuration of an application gateway.
570type ApplicationGatewayIPConfigurationPropertiesFormat struct {
571	// READ-ONLY; The provisioning state of the application gateway IP configuration resource.
572	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
573
574	// Reference to the subnet resource. A subnet from where application gateway gets its private address.
575	Subnet *SubResource `json:"subnet,omitempty"`
576}
577
578// Response for ListApplicationGateways API service call.
579type ApplicationGatewayListResult struct {
580	// URL to get the next set of results.
581	NextLink *string `json:"nextLink,omitempty"`
582
583	// List of an application gateways in a resource group.
584	Value *[]ApplicationGateway `json:"value,omitempty"`
585}
586
587// ApplicationGatewayListResultResponse is the response envelope for operations that return a ApplicationGatewayListResult type.
588type ApplicationGatewayListResultResponse struct {
589	// Response for ListApplicationGateways API service call.
590	ApplicationGatewayListResult *ApplicationGatewayListResult
591
592	// RawResponse contains the underlying HTTP response.
593	RawResponse *http.Response
594}
595
596// Details of on demand test probe request.
597type ApplicationGatewayOnDemandProbe struct {
598	// Reference to backend pool of application gateway to which probe request will be sent.
599	BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"`
600
601	// Reference to backend http setting of application gateway to be used for test probe.
602	BackendHTTPSettings *SubResource `json:"backendHttpSettings,omitempty"`
603
604	// Host name to send the probe to.
605	Host *string `json:"host,omitempty"`
606
607	// Criterion for classifying a healthy probe response.
608	Match *ApplicationGatewayProbeHealthResponseMatch `json:"match,omitempty"`
609
610	// Relative path of probe. Valid path starts from '/'. Probe is sent to ://:.
611	Path *string `json:"path,omitempty"`
612
613	// Whether the host header should be picked from the backend http settings. Default value is false.
614	PickHostNameFromBackendHTTPSettings *bool `json:"pickHostNameFromBackendHttpSettings,omitempty"`
615
616	// The protocol used for the probe.
617	Protocol *ApplicationGatewayProtocol `json:"protocol,omitempty"`
618
619	// The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second
620	// to 86400 seconds.
621	Timeout *int32 `json:"timeout,omitempty"`
622}
623
624// Path rule of URL path map of an application gateway.
625type ApplicationGatewayPathRule struct {
626	SubResource
627	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
628	Etag *string `json:"etag,omitempty" azure:"ro"`
629
630	// Name of the path rule that is unique within an Application Gateway.
631	Name *string `json:"name,omitempty"`
632
633	// Properties of the application gateway path rule.
634	Properties *ApplicationGatewayPathRulePropertiesFormat `json:"properties,omitempty"`
635
636	// READ-ONLY; Type of the resource.
637	Type *string `json:"type,omitempty" azure:"ro"`
638}
639
640// Properties of path rule of an application gateway.
641type ApplicationGatewayPathRulePropertiesFormat struct {
642	// Backend address pool resource of URL path map path rule.
643	BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"`
644
645	// Backend http settings resource of URL path map path rule.
646	BackendHTTPSettings *SubResource `json:"backendHttpSettings,omitempty"`
647
648	// Reference to the FirewallPolicy resource.
649	FirewallPolicy *SubResource `json:"firewallPolicy,omitempty"`
650
651	// Path rules of URL path map.
652	Paths *[]string `json:"paths,omitempty"`
653
654	// READ-ONLY; The provisioning state of the path rule resource.
655	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
656
657	// Redirect configuration resource of URL path map path rule.
658	RedirectConfiguration *SubResource `json:"redirectConfiguration,omitempty"`
659
660	// Rewrite rule set resource of URL path map path rule.
661	RewriteRuleSet *SubResource `json:"rewriteRuleSet,omitempty"`
662}
663
664// ApplicationGatewayPollerResponse is the response envelope for operations that asynchronously return a ApplicationGateway type.
665type ApplicationGatewayPollerResponse struct {
666	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
667	PollUntilDone func(ctx context.Context, frequency time.Duration) (ApplicationGatewayResponse, error)
668
669	// Poller contains an initialized poller.
670	Poller ApplicationGatewayPoller
671
672	// RawResponse contains the underlying HTTP response.
673	RawResponse *http.Response
674}
675
676// Private Endpoint connection on an application gateway.
677type ApplicationGatewayPrivateEndpointConnection struct {
678	SubResource
679	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
680	Etag *string `json:"etag,omitempty" azure:"ro"`
681
682	// Name of the private endpoint connection on an application gateway.
683	Name *string `json:"name,omitempty"`
684
685	// Properties of the application gateway private endpoint connection.
686	Properties *ApplicationGatewayPrivateEndpointConnectionProperties `json:"properties,omitempty"`
687
688	// READ-ONLY; Type of the resource.
689	Type *string `json:"type,omitempty" azure:"ro"`
690}
691
692// Response for ListApplicationGatewayPrivateEndpointConnection API service call. Gets all private endpoint connections for an application gateway.
693type ApplicationGatewayPrivateEndpointConnectionListResult struct {
694	// URL to get the next set of results.
695	NextLink *string `json:"nextLink,omitempty"`
696
697	// List of private endpoint connections on an application gateway.
698	Value *[]ApplicationGatewayPrivateEndpointConnection `json:"value,omitempty"`
699}
700
701// ApplicationGatewayPrivateEndpointConnectionListResultResponse is the response envelope for operations that return a ApplicationGatewayPrivateEndpointConnectionListResult
702// type.
703type ApplicationGatewayPrivateEndpointConnectionListResultResponse struct {
704	// Response for ListApplicationGatewayPrivateEndpointConnection API service call. Gets all private endpoint connections for an application gateway.
705	ApplicationGatewayPrivateEndpointConnectionListResult *ApplicationGatewayPrivateEndpointConnectionListResult
706
707	// RawResponse contains the underlying HTTP response.
708	RawResponse *http.Response
709}
710
711// ApplicationGatewayPrivateEndpointConnectionPollerResponse is the response envelope for operations that asynchronously return a ApplicationGatewayPrivateEndpointConnection
712// type.
713type ApplicationGatewayPrivateEndpointConnectionPollerResponse struct {
714	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
715	PollUntilDone func(ctx context.Context, frequency time.Duration) (ApplicationGatewayPrivateEndpointConnectionResponse, error)
716
717	// Poller contains an initialized poller.
718	Poller ApplicationGatewayPrivateEndpointConnectionPoller
719
720	// RawResponse contains the underlying HTTP response.
721	RawResponse *http.Response
722}
723
724// Properties of Private Link Resource of an application gateway.
725type ApplicationGatewayPrivateEndpointConnectionProperties struct {
726	// READ-ONLY; The consumer link id.
727	LinkIDentifier *string `json:"linkIdentifier,omitempty" azure:"ro"`
728
729	// READ-ONLY; The resource of private end point.
730	PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty" azure:"ro"`
731
732	// A collection of information about the state of the connection between service consumer and provider.
733	PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"`
734
735	// READ-ONLY; The provisioning state of the application gateway private endpoint connection resource.
736	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
737}
738
739// ApplicationGatewayPrivateEndpointConnectionResponse is the response envelope for operations that return a ApplicationGatewayPrivateEndpointConnection
740// type.
741type ApplicationGatewayPrivateEndpointConnectionResponse struct {
742	// Private Endpoint connection on an application gateway.
743	ApplicationGatewayPrivateEndpointConnection *ApplicationGatewayPrivateEndpointConnection
744
745	// RawResponse contains the underlying HTTP response.
746	RawResponse *http.Response
747}
748
749// ApplicationGatewayPrivateEndpointConnectionsBeginDeleteOptions contains the optional parameters for the ApplicationGatewayPrivateEndpointConnections.BeginDelete
750// method.
751type ApplicationGatewayPrivateEndpointConnectionsBeginDeleteOptions struct {
752	// placeholder for future optional parameters
753}
754
755// ApplicationGatewayPrivateEndpointConnectionsBeginUpdateOptions contains the optional parameters for the ApplicationGatewayPrivateEndpointConnections.BeginUpdate
756// method.
757type ApplicationGatewayPrivateEndpointConnectionsBeginUpdateOptions struct {
758	// placeholder for future optional parameters
759}
760
761// ApplicationGatewayPrivateEndpointConnectionsGetOptions contains the optional parameters for the ApplicationGatewayPrivateEndpointConnections.Get method.
762type ApplicationGatewayPrivateEndpointConnectionsGetOptions struct {
763	// placeholder for future optional parameters
764}
765
766// ApplicationGatewayPrivateEndpointConnectionsListOptions contains the optional parameters for the ApplicationGatewayPrivateEndpointConnections.List method.
767type ApplicationGatewayPrivateEndpointConnectionsListOptions struct {
768	// placeholder for future optional parameters
769}
770
771// Private Link Configuration on an application gateway.
772type ApplicationGatewayPrivateLinkConfiguration struct {
773	SubResource
774	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
775	Etag *string `json:"etag,omitempty" azure:"ro"`
776
777	// Name of the private link configuration that is unique within an Application Gateway.
778	Name *string `json:"name,omitempty"`
779
780	// Properties of the application gateway private link configuration.
781	Properties *ApplicationGatewayPrivateLinkConfigurationProperties `json:"properties,omitempty"`
782
783	// READ-ONLY; Type of the resource.
784	Type *string `json:"type,omitempty" azure:"ro"`
785}
786
787// Properties of private link configuration on an application gateway.
788type ApplicationGatewayPrivateLinkConfigurationProperties struct {
789	// An array of application gateway private link ip configurations.
790	IPConfigurations *[]ApplicationGatewayPrivateLinkIPConfiguration `json:"ipConfigurations,omitempty"`
791
792	// READ-ONLY; The provisioning state of the application gateway private link configuration.
793	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
794}
795
796// The application gateway private link ip configuration.
797type ApplicationGatewayPrivateLinkIPConfiguration struct {
798	SubResource
799	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
800	Etag *string `json:"etag,omitempty" azure:"ro"`
801
802	// The name of application gateway private link ip configuration.
803	Name *string `json:"name,omitempty"`
804
805	// Properties of an application gateway private link ip configuration.
806	Properties *ApplicationGatewayPrivateLinkIPConfigurationProperties `json:"properties,omitempty"`
807
808	// READ-ONLY; The resource type.
809	Type *string `json:"type,omitempty" azure:"ro"`
810}
811
812// Properties of an application gateway private link IP configuration.
813type ApplicationGatewayPrivateLinkIPConfigurationProperties struct {
814	// Whether the ip configuration is primary or not.
815	Primary *bool `json:"primary,omitempty"`
816
817	// The private IP address of the IP configuration.
818	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
819
820	// The private IP address allocation method.
821	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
822
823	// READ-ONLY; The provisioning state of the application gateway private link IP configuration.
824	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
825
826	// Reference to the subnet resource.
827	Subnet *SubResource `json:"subnet,omitempty"`
828}
829
830// PrivateLink Resource of an application gateway.
831type ApplicationGatewayPrivateLinkResource struct {
832	SubResource
833	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
834	Etag *string `json:"etag,omitempty" azure:"ro"`
835
836	// Name of the private link resource that is unique within an Application Gateway.
837	Name *string `json:"name,omitempty"`
838
839	// Properties of the application gateway private link resource.
840	Properties *ApplicationGatewayPrivateLinkResourceProperties `json:"properties,omitempty"`
841
842	// READ-ONLY; Type of the resource.
843	Type *string `json:"type,omitempty" azure:"ro"`
844}
845
846// Response for ListApplicationGatewayPrivateLinkResources API service call. Gets all private link resources for an application gateway.
847type ApplicationGatewayPrivateLinkResourceListResult struct {
848	// URL to get the next set of results.
849	NextLink *string `json:"nextLink,omitempty"`
850
851	// List of private link resources of an application gateway.
852	Value *[]ApplicationGatewayPrivateLinkResource `json:"value,omitempty"`
853}
854
855// ApplicationGatewayPrivateLinkResourceListResultResponse is the response envelope for operations that return a ApplicationGatewayPrivateLinkResourceListResult
856// type.
857type ApplicationGatewayPrivateLinkResourceListResultResponse struct {
858	// Response for ListApplicationGatewayPrivateLinkResources API service call. Gets all private link resources for an application gateway.
859	ApplicationGatewayPrivateLinkResourceListResult *ApplicationGatewayPrivateLinkResourceListResult
860
861	// RawResponse contains the underlying HTTP response.
862	RawResponse *http.Response
863}
864
865// Properties of a private link resource.
866type ApplicationGatewayPrivateLinkResourceProperties struct {
867	// READ-ONLY; Group identifier of private link resource.
868	GroupID *string `json:"groupId,omitempty" azure:"ro"`
869
870	// READ-ONLY; Required member names of private link resource.
871	RequiredMembers *[]string `json:"requiredMembers,omitempty" azure:"ro"`
872
873	// Required DNS zone names of the the private link resource.
874	RequiredZoneNames *[]string `json:"requiredZoneNames,omitempty"`
875}
876
877// ApplicationGatewayPrivateLinkResourcesListOptions contains the optional parameters for the ApplicationGatewayPrivateLinkResources.List method.
878type ApplicationGatewayPrivateLinkResourcesListOptions struct {
879	// placeholder for future optional parameters
880}
881
882// Probe of the application gateway.
883type ApplicationGatewayProbe struct {
884	SubResource
885	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
886	Etag *string `json:"etag,omitempty" azure:"ro"`
887
888	// Name of the probe that is unique within an Application Gateway.
889	Name *string `json:"name,omitempty"`
890
891	// Properties of the application gateway probe.
892	Properties *ApplicationGatewayProbePropertiesFormat `json:"properties,omitempty"`
893
894	// READ-ONLY; Type of the resource.
895	Type *string `json:"type,omitempty" azure:"ro"`
896}
897
898// Application gateway probe health response match.
899type ApplicationGatewayProbeHealthResponseMatch struct {
900	// Body that must be contained in the health response. Default value is empty.
901	Body *string `json:"body,omitempty"`
902
903	// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399.
904	StatusCodes *[]string `json:"statusCodes,omitempty"`
905}
906
907// Properties of probe of an application gateway.
908type ApplicationGatewayProbePropertiesFormat struct {
909	// Host name to send the probe to.
910	Host *string `json:"host,omitempty"`
911
912	// The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds.
913	Interval *int32 `json:"interval,omitempty"`
914
915	// Criterion for classifying a healthy probe response.
916	Match *ApplicationGatewayProbeHealthResponseMatch `json:"match,omitempty"`
917
918	// Minimum number of servers that are always marked healthy. Default value is 0.
919	MinServers *int32 `json:"minServers,omitempty"`
920
921	// Relative path of probe. Valid path starts from '/'. Probe is sent to ://:.
922	Path *string `json:"path,omitempty"`
923
924	// Whether the host header should be picked from the backend http settings. Default value is false.
925	PickHostNameFromBackendHTTPSettings *bool `json:"pickHostNameFromBackendHttpSettings,omitempty"`
926
927	// Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will
928	// be used. This property is valid for Standardv2 and
929	// WAFv2 only.
930	Port *int32 `json:"port,omitempty"`
931
932	// The protocol used for the probe.
933	Protocol *ApplicationGatewayProtocol `json:"protocol,omitempty"`
934
935	// READ-ONLY; The provisioning state of the probe resource.
936	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
937
938	// The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second
939	// to 86400 seconds.
940	Timeout *int32 `json:"timeout,omitempty"`
941
942	// The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second
943	// to 20.
944	UnhealthyThreshold *int32 `json:"unhealthyThreshold,omitempty"`
945}
946
947// Properties of the application gateway.
948type ApplicationGatewayPropertiesFormat struct {
949	// Authentication certificates of the application gateway resource. For default limits, see Application Gateway limits
950	// [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
951	AuthenticationCertificates *[]ApplicationGatewayAuthenticationCertificate `json:"authenticationCertificates,omitempty"`
952
953	// Autoscale Configuration.
954	AutoscaleConfiguration *ApplicationGatewayAutoscaleConfiguration `json:"autoscaleConfiguration,omitempty"`
955
956	// Backend address pool of the application gateway resource. For default limits, see Application Gateway limits
957	// [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
958	BackendAddressPools *[]ApplicationGatewayBackendAddressPool `json:"backendAddressPools,omitempty"`
959
960	// Backend http settings of the application gateway resource. For default limits, see Application Gateway limits
961	// [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
962	BackendHTTPSettingsCollection *[]ApplicationGatewayBackendHTTPSettings `json:"backendHttpSettingsCollection,omitempty"`
963
964	// Custom error configurations of the application gateway resource.
965	CustomErrorConfigurations *[]ApplicationGatewayCustomError `json:"customErrorConfigurations,omitempty"`
966
967	// Whether FIPS is enabled on the application gateway resource.
968	EnableFips *bool `json:"enableFips,omitempty"`
969
970	// Whether HTTP2 is enabled on the application gateway resource.
971	EnableHTTP2 *bool `json:"enableHttp2,omitempty"`
972
973	// Reference to the FirewallPolicy resource.
974	FirewallPolicy *SubResource `json:"firewallPolicy,omitempty"`
975
976	// If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config.
977	ForceFirewallPolicyAssociation *bool `json:"forceFirewallPolicyAssociation,omitempty"`
978
979	// Frontend IP addresses of the application gateway resource. For default limits, see Application Gateway limits
980	// [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
981	FrontendIPConfigurations *[]ApplicationGatewayFrontendIPConfiguration `json:"frontendIPConfigurations,omitempty"`
982
983	// Frontend ports of the application gateway resource. For default limits, see Application Gateway limits [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
984	FrontendPorts *[]ApplicationGatewayFrontendPort `json:"frontendPorts,omitempty"`
985
986	// Subnets of the application gateway resource. For default limits, see Application Gateway limits [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
987	GatewayIPConfigurations *[]ApplicationGatewayIPConfiguration `json:"gatewayIPConfigurations,omitempty"`
988
989	// Http listeners of the application gateway resource. For default limits, see Application Gateway limits [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
990	HTTPListeners *[]ApplicationGatewayHTTPListener `json:"httpListeners,omitempty"`
991
992	// READ-ONLY; Operational state of the application gateway resource.
993	OperationalState *ApplicationGatewayOperationalState `json:"operationalState,omitempty" azure:"ro"`
994
995	// READ-ONLY; Private Endpoint connections on application gateway.
996	PrivateEndpointConnections *[]ApplicationGatewayPrivateEndpointConnection `json:"privateEndpointConnections,omitempty" azure:"ro"`
997
998	// PrivateLink configurations on application gateway.
999	PrivateLinkConfigurations *[]ApplicationGatewayPrivateLinkConfiguration `json:"privateLinkConfigurations,omitempty"`
1000
1001	// Probes of the application gateway resource.
1002	Probes *[]ApplicationGatewayProbe `json:"probes,omitempty"`
1003
1004	// READ-ONLY; The provisioning state of the application gateway resource.
1005	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1006
1007	// Redirect configurations of the application gateway resource. For default limits, see Application Gateway limits
1008	// [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
1009	RedirectConfigurations *[]ApplicationGatewayRedirectConfiguration `json:"redirectConfigurations,omitempty"`
1010
1011	// Request routing rules of the application gateway resource.
1012	RequestRoutingRules *[]ApplicationGatewayRequestRoutingRule `json:"requestRoutingRules,omitempty"`
1013
1014	// READ-ONLY; The resource GUID property of the application gateway resource.
1015	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
1016
1017	// Rewrite rules for the application gateway resource.
1018	RewriteRuleSets *[]ApplicationGatewayRewriteRuleSet `json:"rewriteRuleSets,omitempty"`
1019
1020	// SKU of the application gateway resource.
1021	SKU *ApplicationGatewaySKU `json:"sku,omitempty"`
1022
1023	// SSL certificates of the application gateway resource. For default limits, see Application Gateway limits [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits]
1024	// .
1025	SslCertificates *[]ApplicationGatewaySslCertificate `json:"sslCertificates,omitempty"`
1026
1027	// SSL policy of the application gateway resource.
1028	SslPolicy *ApplicationGatewaySslPolicy `json:"sslPolicy,omitempty"`
1029
1030	// SSL profiles of the application gateway resource. For default limits, see Application Gateway limits [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
1031	SslProfiles *[]ApplicationGatewaySslProfile `json:"sslProfiles,omitempty"`
1032
1033	// Trusted client certificates of the application gateway resource. For default limits, see Application Gateway limits
1034	// [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
1035	TrustedClientCertificates *[]ApplicationGatewayTrustedClientCertificate `json:"trustedClientCertificates,omitempty"`
1036
1037	// Trusted Root certificates of the application gateway resource. For default limits, see Application Gateway limits
1038	// [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
1039	TrustedRootCertificates *[]ApplicationGatewayTrustedRootCertificate `json:"trustedRootCertificates,omitempty"`
1040
1041	// URL path map of the application gateway resource. For default limits, see Application Gateway limits [https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits].
1042	URLPathMaps *[]ApplicationGatewayURLPathMap `json:"urlPathMaps,omitempty"`
1043
1044	// Web application firewall configuration.
1045	WebApplicationFirewallConfiguration *ApplicationGatewayWebApplicationFirewallConfiguration `json:"webApplicationFirewallConfiguration,omitempty"`
1046}
1047
1048// Redirect configuration of an application gateway.
1049type ApplicationGatewayRedirectConfiguration struct {
1050	SubResource
1051	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1052	Etag *string `json:"etag,omitempty" azure:"ro"`
1053
1054	// Name of the redirect configuration that is unique within an Application Gateway.
1055	Name *string `json:"name,omitempty"`
1056
1057	// Properties of the application gateway redirect configuration.
1058	Properties *ApplicationGatewayRedirectConfigurationPropertiesFormat `json:"properties,omitempty"`
1059
1060	// READ-ONLY; Type of the resource.
1061	Type *string `json:"type,omitempty" azure:"ro"`
1062}
1063
1064// Properties of redirect configuration of the application gateway.
1065type ApplicationGatewayRedirectConfigurationPropertiesFormat struct {
1066	// Include path in the redirected url.
1067	IncludePath *bool `json:"includePath,omitempty"`
1068
1069	// Include query string in the redirected url.
1070	IncludeQueryString *bool `json:"includeQueryString,omitempty"`
1071
1072	// Path rules specifying redirect configuration.
1073	PathRules *[]SubResource `json:"pathRules,omitempty"`
1074
1075	// HTTP redirection type.
1076	RedirectType *ApplicationGatewayRedirectType `json:"redirectType,omitempty"`
1077
1078	// Request routing specifying redirect configuration.
1079	RequestRoutingRules *[]SubResource `json:"requestRoutingRules,omitempty"`
1080
1081	// Reference to a listener to redirect the request to.
1082	TargetListener *SubResource `json:"targetListener,omitempty"`
1083
1084	// Url to redirect the request to.
1085	TargetURL *string `json:"targetUrl,omitempty"`
1086
1087	// Url path maps specifying default redirect configuration.
1088	URLPathMaps *[]SubResource `json:"urlPathMaps,omitempty"`
1089}
1090
1091// Request routing rule of an application gateway.
1092type ApplicationGatewayRequestRoutingRule struct {
1093	SubResource
1094	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1095	Etag *string `json:"etag,omitempty" azure:"ro"`
1096
1097	// Name of the request routing rule that is unique within an Application Gateway.
1098	Name *string `json:"name,omitempty"`
1099
1100	// Properties of the application gateway request routing rule.
1101	Properties *ApplicationGatewayRequestRoutingRulePropertiesFormat `json:"properties,omitempty"`
1102
1103	// READ-ONLY; Type of the resource.
1104	Type *string `json:"type,omitempty" azure:"ro"`
1105}
1106
1107// Properties of request routing rule of the application gateway.
1108type ApplicationGatewayRequestRoutingRulePropertiesFormat struct {
1109	// Backend address pool resource of the application gateway.
1110	BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"`
1111
1112	// Backend http settings resource of the application gateway.
1113	BackendHTTPSettings *SubResource `json:"backendHttpSettings,omitempty"`
1114
1115	// Http listener resource of the application gateway.
1116	HTTPListener *SubResource `json:"httpListener,omitempty"`
1117
1118	// Priority of the request routing rule.
1119	Priority *int32 `json:"priority,omitempty"`
1120
1121	// READ-ONLY; The provisioning state of the request routing rule resource.
1122	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1123
1124	// Redirect configuration resource of the application gateway.
1125	RedirectConfiguration *SubResource `json:"redirectConfiguration,omitempty"`
1126
1127	// Rewrite Rule Set resource in Basic rule of the application gateway.
1128	RewriteRuleSet *SubResource `json:"rewriteRuleSet,omitempty"`
1129
1130	// Rule type.
1131	RuleType *ApplicationGatewayRequestRoutingRuleType `json:"ruleType,omitempty"`
1132
1133	// URL path map resource of the application gateway.
1134	URLPathMap *SubResource `json:"urlPathMap,omitempty"`
1135}
1136
1137// ApplicationGatewayResponse is the response envelope for operations that return a ApplicationGateway type.
1138type ApplicationGatewayResponse struct {
1139	// Application gateway resource.
1140	ApplicationGateway *ApplicationGateway
1141
1142	// RawResponse contains the underlying HTTP response.
1143	RawResponse *http.Response
1144}
1145
1146// Rewrite rule of an application gateway.
1147type ApplicationGatewayRewriteRule struct {
1148	// Set of actions to be done as part of the rewrite Rule.
1149	ActionSet *ApplicationGatewayRewriteRuleActionSet `json:"actionSet,omitempty"`
1150
1151	// Conditions based on which the action set execution will be evaluated.
1152	Conditions *[]ApplicationGatewayRewriteRuleCondition `json:"conditions,omitempty"`
1153
1154	// Name of the rewrite rule that is unique within an Application Gateway.
1155	Name *string `json:"name,omitempty"`
1156
1157	// Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet.
1158	RuleSequence *int32 `json:"ruleSequence,omitempty"`
1159}
1160
1161// Set of actions in the Rewrite Rule in Application Gateway.
1162type ApplicationGatewayRewriteRuleActionSet struct {
1163	// Request Header Actions in the Action Set.
1164	RequestHeaderConfigurations *[]ApplicationGatewayHeaderConfiguration `json:"requestHeaderConfigurations,omitempty"`
1165
1166	// Response Header Actions in the Action Set.
1167	ResponseHeaderConfigurations *[]ApplicationGatewayHeaderConfiguration `json:"responseHeaderConfigurations,omitempty"`
1168
1169	// Url Configuration Action in the Action Set.
1170	URLConfiguration *ApplicationGatewayURLConfiguration `json:"urlConfiguration,omitempty"`
1171}
1172
1173// Set of conditions in the Rewrite Rule in Application Gateway.
1174type ApplicationGatewayRewriteRuleCondition struct {
1175	// Setting this paramter to truth value with force the pattern to do a case in-sensitive comparison.
1176	IgnoreCase *bool `json:"ignoreCase,omitempty"`
1177
1178	// Setting this value as truth will force to check the negation of the condition given by the user.
1179	Negate *bool `json:"negate,omitempty"`
1180
1181	// The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition.
1182	Pattern *string `json:"pattern,omitempty"`
1183
1184	// The condition parameter of the RewriteRuleCondition.
1185	Variable *string `json:"variable,omitempty"`
1186}
1187
1188// Rewrite rule set of an application gateway.
1189type ApplicationGatewayRewriteRuleSet struct {
1190	SubResource
1191	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1192	Etag *string `json:"etag,omitempty" azure:"ro"`
1193
1194	// Name of the rewrite rule set that is unique within an Application Gateway.
1195	Name *string `json:"name,omitempty"`
1196
1197	// Properties of the application gateway rewrite rule set.
1198	Properties *ApplicationGatewayRewriteRuleSetPropertiesFormat `json:"properties,omitempty"`
1199}
1200
1201// Properties of rewrite rule set of the application gateway.
1202type ApplicationGatewayRewriteRuleSetPropertiesFormat struct {
1203	// READ-ONLY; The provisioning state of the rewrite rule set resource.
1204	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1205
1206	// Rewrite rules in the rewrite rule set.
1207	RewriteRules *[]ApplicationGatewayRewriteRule `json:"rewriteRules,omitempty"`
1208}
1209
1210// SKU of an application gateway.
1211type ApplicationGatewaySKU struct {
1212	// Capacity (instance count) of an application gateway.
1213	Capacity *int32 `json:"capacity,omitempty"`
1214
1215	// Name of an application gateway SKU.
1216	Name *ApplicationGatewaySKUName `json:"name,omitempty"`
1217
1218	// Tier of an application gateway.
1219	Tier *ApplicationGatewayTier `json:"tier,omitempty"`
1220}
1221
1222// SSL certificates of an application gateway.
1223type ApplicationGatewaySslCertificate struct {
1224	SubResource
1225	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1226	Etag *string `json:"etag,omitempty" azure:"ro"`
1227
1228	// Name of the SSL certificate that is unique within an Application Gateway.
1229	Name *string `json:"name,omitempty"`
1230
1231	// Properties of the application gateway SSL certificate.
1232	Properties *ApplicationGatewaySslCertificatePropertiesFormat `json:"properties,omitempty"`
1233
1234	// READ-ONLY; Type of the resource.
1235	Type *string `json:"type,omitempty" azure:"ro"`
1236}
1237
1238// Properties of SSL certificates of an application gateway.
1239type ApplicationGatewaySslCertificatePropertiesFormat struct {
1240	// Base-64 encoded pfx certificate. Only applicable in PUT Request.
1241	Data *string `json:"data,omitempty"`
1242
1243	// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault.
1244	KeyVaultSecretID *string `json:"keyVaultSecretId,omitempty"`
1245
1246	// Password for the pfx file specified in data. Only applicable in PUT request.
1247	Password *string `json:"password,omitempty"`
1248
1249	// READ-ONLY; The provisioning state of the SSL certificate resource.
1250	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1251
1252	// READ-ONLY; Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request.
1253	PublicCertData *string `json:"publicCertData,omitempty" azure:"ro"`
1254}
1255
1256// Application Gateway Ssl policy.
1257type ApplicationGatewaySslPolicy struct {
1258	// Ssl cipher suites to be enabled in the specified order to application gateway.
1259	CipherSuites *[]ApplicationGatewaySslCipherSuite `json:"cipherSuites,omitempty"`
1260
1261	// Ssl protocols to be disabled on application gateway.
1262	DisabledSslProtocols *[]ApplicationGatewaySslProtocol `json:"disabledSslProtocols,omitempty"`
1263
1264	// Minimum version of Ssl protocol to be supported on application gateway.
1265	MinProtocolVersion *ApplicationGatewaySslProtocol `json:"minProtocolVersion,omitempty"`
1266
1267	// Name of Ssl predefined policy.
1268	PolicyName *ApplicationGatewaySslPolicyName `json:"policyName,omitempty"`
1269
1270	// Type of Ssl Policy.
1271	PolicyType *ApplicationGatewaySslPolicyType `json:"policyType,omitempty"`
1272}
1273
1274// An Ssl predefined policy.
1275type ApplicationGatewaySslPredefinedPolicy struct {
1276	SubResource
1277	// Name of the Ssl predefined policy.
1278	Name *string `json:"name,omitempty"`
1279
1280	// Properties of the application gateway SSL predefined policy.
1281	Properties *ApplicationGatewaySslPredefinedPolicyPropertiesFormat `json:"properties,omitempty"`
1282}
1283
1284// Properties of ApplicationGatewaySslPredefinedPolicy.
1285type ApplicationGatewaySslPredefinedPolicyPropertiesFormat struct {
1286	// Ssl cipher suites to be enabled in the specified order for application gateway.
1287	CipherSuites *[]ApplicationGatewaySslCipherSuite `json:"cipherSuites,omitempty"`
1288
1289	// Minimum version of Ssl protocol to be supported on application gateway.
1290	MinProtocolVersion *ApplicationGatewaySslProtocol `json:"minProtocolVersion,omitempty"`
1291}
1292
1293// ApplicationGatewaySslPredefinedPolicyResponse is the response envelope for operations that return a ApplicationGatewaySslPredefinedPolicy type.
1294type ApplicationGatewaySslPredefinedPolicyResponse struct {
1295	// An Ssl predefined policy.
1296	ApplicationGatewaySslPredefinedPolicy *ApplicationGatewaySslPredefinedPolicy
1297
1298	// RawResponse contains the underlying HTTP response.
1299	RawResponse *http.Response
1300}
1301
1302// SSL profile of an application gateway.
1303type ApplicationGatewaySslProfile struct {
1304	SubResource
1305	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1306	Etag *string `json:"etag,omitempty" azure:"ro"`
1307
1308	// Name of the SSL profile that is unique within an Application Gateway.
1309	Name *string `json:"name,omitempty"`
1310
1311	// Properties of the application gateway SSL profile.
1312	Properties *ApplicationGatewaySslProfilePropertiesFormat `json:"properties,omitempty"`
1313
1314	// READ-ONLY; Type of the resource.
1315	Type *string `json:"type,omitempty" azure:"ro"`
1316}
1317
1318// Properties of SSL profile of an application gateway.
1319type ApplicationGatewaySslProfilePropertiesFormat struct {
1320	// Client authentication configuration of the application gateway resource.
1321	ClientAuthConfiguration *ApplicationGatewayClientAuthConfiguration `json:"clientAuthConfiguration,omitempty"`
1322
1323	// READ-ONLY; The provisioning state of the HTTP listener resource.
1324	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1325
1326	// SSL policy of the application gateway resource.
1327	SslPolicy *ApplicationGatewaySslPolicy `json:"sslPolicy,omitempty"`
1328
1329	// Array of references to application gateway trusted client certificates.
1330	TrustedClientCertificates *[]SubResource `json:"trustedClientCertificates,omitempty"`
1331}
1332
1333// Trusted client certificates of an application gateway.
1334type ApplicationGatewayTrustedClientCertificate struct {
1335	SubResource
1336	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1337	Etag *string `json:"etag,omitempty" azure:"ro"`
1338
1339	// Name of the trusted client certificate that is unique within an Application Gateway.
1340	Name *string `json:"name,omitempty"`
1341
1342	// Properties of the application gateway trusted client certificate.
1343	Properties *ApplicationGatewayTrustedClientCertificatePropertiesFormat `json:"properties,omitempty"`
1344
1345	// READ-ONLY; Type of the resource.
1346	Type *string `json:"type,omitempty" azure:"ro"`
1347}
1348
1349// Trusted client certificates properties of an application gateway.
1350type ApplicationGatewayTrustedClientCertificatePropertiesFormat struct {
1351	// Certificate public data.
1352	Data *string `json:"data,omitempty"`
1353
1354	// READ-ONLY; The provisioning state of the trusted client certificate resource.
1355	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1356}
1357
1358// Trusted Root certificates of an application gateway.
1359type ApplicationGatewayTrustedRootCertificate struct {
1360	SubResource
1361	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1362	Etag *string `json:"etag,omitempty" azure:"ro"`
1363
1364	// Name of the trusted root certificate that is unique within an Application Gateway.
1365	Name *string `json:"name,omitempty"`
1366
1367	// Properties of the application gateway trusted root certificate.
1368	Properties *ApplicationGatewayTrustedRootCertificatePropertiesFormat `json:"properties,omitempty"`
1369
1370	// READ-ONLY; Type of the resource.
1371	Type *string `json:"type,omitempty" azure:"ro"`
1372}
1373
1374// Trusted Root certificates properties of an application gateway.
1375type ApplicationGatewayTrustedRootCertificatePropertiesFormat struct {
1376	// Certificate public data.
1377	Data *string `json:"data,omitempty"`
1378
1379	// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault.
1380	KeyVaultSecretID *string `json:"keyVaultSecretId,omitempty"`
1381
1382	// READ-ONLY; The provisioning state of the trusted root certificate resource.
1383	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1384}
1385
1386// Url configuration of the Actions set in Application Gateway.
1387type ApplicationGatewayURLConfiguration struct {
1388	// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null.
1389	ModifiedPath *string `json:"modifiedPath,omitempty"`
1390
1391	// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null.
1392	ModifiedQueryString *string `json:"modifiedQueryString,omitempty"`
1393
1394	// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false.
1395	Reroute *bool `json:"reroute,omitempty"`
1396}
1397
1398// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting.
1399type ApplicationGatewayURLPathMap struct {
1400	SubResource
1401	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1402	Etag *string `json:"etag,omitempty" azure:"ro"`
1403
1404	// Name of the URL path map that is unique within an Application Gateway.
1405	Name *string `json:"name,omitempty"`
1406
1407	// Properties of the application gateway URL path map.
1408	Properties *ApplicationGatewayURLPathMapPropertiesFormat `json:"properties,omitempty"`
1409
1410	// READ-ONLY; Type of the resource.
1411	Type *string `json:"type,omitempty" azure:"ro"`
1412}
1413
1414// Properties of UrlPathMap of the application gateway.
1415type ApplicationGatewayURLPathMapPropertiesFormat struct {
1416	// Default backend address pool resource of URL path map.
1417	DefaultBackendAddressPool *SubResource `json:"defaultBackendAddressPool,omitempty"`
1418
1419	// Default backend http settings resource of URL path map.
1420	DefaultBackendHTTPSettings *SubResource `json:"defaultBackendHttpSettings,omitempty"`
1421
1422	// Default redirect configuration resource of URL path map.
1423	DefaultRedirectConfiguration *SubResource `json:"defaultRedirectConfiguration,omitempty"`
1424
1425	// Default Rewrite rule set resource of URL path map.
1426	DefaultRewriteRuleSet *SubResource `json:"defaultRewriteRuleSet,omitempty"`
1427
1428	// Path rule of URL path map resource.
1429	PathRules *[]ApplicationGatewayPathRule `json:"pathRules,omitempty"`
1430
1431	// READ-ONLY; The provisioning state of the URL path map resource.
1432	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1433}
1434
1435// Application gateway web application firewall configuration.
1436type ApplicationGatewayWebApplicationFirewallConfiguration struct {
1437	// The disabled rule groups.
1438	DisabledRuleGroups *[]ApplicationGatewayFirewallDisabledRuleGroup `json:"disabledRuleGroups,omitempty"`
1439
1440	// Whether the web application firewall is enabled or not.
1441	Enabled *bool `json:"enabled,omitempty"`
1442
1443	// The exclusion list.
1444	Exclusions *[]ApplicationGatewayFirewallExclusion `json:"exclusions,omitempty"`
1445
1446	// Maximum file upload size in Mb for WAF.
1447	FileUploadLimitInMb *int32 `json:"fileUploadLimitInMb,omitempty"`
1448
1449	// Web application firewall mode.
1450	FirewallMode *ApplicationGatewayFirewallMode `json:"firewallMode,omitempty"`
1451
1452	// Maximum request body size for WAF.
1453	MaxRequestBodySize *int32 `json:"maxRequestBodySize,omitempty"`
1454
1455	// Maximum request body size in Kb for WAF.
1456	MaxRequestBodySizeInKb *int32 `json:"maxRequestBodySizeInKb,omitempty"`
1457
1458	// Whether allow WAF to check request Body.
1459	RequestBodyCheck *bool `json:"requestBodyCheck,omitempty"`
1460
1461	// The type of the web application firewall rule set. Possible values are: 'OWASP'.
1462	RuleSetType *string `json:"ruleSetType,omitempty"`
1463
1464	// The version of the rule set type.
1465	RuleSetVersion *string `json:"ruleSetVersion,omitempty"`
1466}
1467
1468// ApplicationGatewaysBeginBackendHealthOnDemandOptions contains the optional parameters for the ApplicationGateways.BeginBackendHealthOnDemand method.
1469type ApplicationGatewaysBeginBackendHealthOnDemandOptions struct {
1470	// Expands BackendAddressPool and BackendHttpSettings referenced in backend health.
1471	Expand *string
1472}
1473
1474// ApplicationGatewaysBeginBackendHealthOptions contains the optional parameters for the ApplicationGateways.BeginBackendHealth method.
1475type ApplicationGatewaysBeginBackendHealthOptions struct {
1476	// Expands BackendAddressPool and BackendHttpSettings referenced in backend health.
1477	Expand *string
1478}
1479
1480// ApplicationGatewaysBeginCreateOrUpdateOptions contains the optional parameters for the ApplicationGateways.BeginCreateOrUpdate method.
1481type ApplicationGatewaysBeginCreateOrUpdateOptions struct {
1482	// placeholder for future optional parameters
1483}
1484
1485// ApplicationGatewaysBeginDeleteOptions contains the optional parameters for the ApplicationGateways.BeginDelete method.
1486type ApplicationGatewaysBeginDeleteOptions struct {
1487	// placeholder for future optional parameters
1488}
1489
1490// ApplicationGatewaysBeginStartOptions contains the optional parameters for the ApplicationGateways.BeginStart method.
1491type ApplicationGatewaysBeginStartOptions struct {
1492	// placeholder for future optional parameters
1493}
1494
1495// ApplicationGatewaysBeginStopOptions contains the optional parameters for the ApplicationGateways.BeginStop method.
1496type ApplicationGatewaysBeginStopOptions struct {
1497	// placeholder for future optional parameters
1498}
1499
1500// ApplicationGatewaysGetOptions contains the optional parameters for the ApplicationGateways.Get method.
1501type ApplicationGatewaysGetOptions struct {
1502	// placeholder for future optional parameters
1503}
1504
1505// ApplicationGatewaysGetSslPredefinedPolicyOptions contains the optional parameters for the ApplicationGateways.GetSslPredefinedPolicy method.
1506type ApplicationGatewaysGetSslPredefinedPolicyOptions struct {
1507	// placeholder for future optional parameters
1508}
1509
1510// ApplicationGatewaysListAllOptions contains the optional parameters for the ApplicationGateways.ListAll method.
1511type ApplicationGatewaysListAllOptions struct {
1512	// placeholder for future optional parameters
1513}
1514
1515// ApplicationGatewaysListAvailableRequestHeadersOptions contains the optional parameters for the ApplicationGateways.ListAvailableRequestHeaders method.
1516type ApplicationGatewaysListAvailableRequestHeadersOptions struct {
1517	// placeholder for future optional parameters
1518}
1519
1520// ApplicationGatewaysListAvailableResponseHeadersOptions contains the optional parameters for the ApplicationGateways.ListAvailableResponseHeaders method.
1521type ApplicationGatewaysListAvailableResponseHeadersOptions struct {
1522	// placeholder for future optional parameters
1523}
1524
1525// ApplicationGatewaysListAvailableServerVariablesOptions contains the optional parameters for the ApplicationGateways.ListAvailableServerVariables method.
1526type ApplicationGatewaysListAvailableServerVariablesOptions struct {
1527	// placeholder for future optional parameters
1528}
1529
1530// ApplicationGatewaysListAvailableSslOptionsOptions contains the optional parameters for the ApplicationGateways.ListAvailableSslOptions method.
1531type ApplicationGatewaysListAvailableSslOptionsOptions struct {
1532	// placeholder for future optional parameters
1533}
1534
1535// ApplicationGatewaysListAvailableSslPredefinedPoliciesOptions contains the optional parameters for the ApplicationGateways.ListAvailableSslPredefinedPolicies
1536// method.
1537type ApplicationGatewaysListAvailableSslPredefinedPoliciesOptions struct {
1538	// placeholder for future optional parameters
1539}
1540
1541// ApplicationGatewaysListAvailableWafRuleSetsOptions contains the optional parameters for the ApplicationGateways.ListAvailableWafRuleSets method.
1542type ApplicationGatewaysListAvailableWafRuleSetsOptions struct {
1543	// placeholder for future optional parameters
1544}
1545
1546// ApplicationGatewaysListOptions contains the optional parameters for the ApplicationGateways.List method.
1547type ApplicationGatewaysListOptions struct {
1548	// placeholder for future optional parameters
1549}
1550
1551// ApplicationGatewaysUpdateTagsOptions contains the optional parameters for the ApplicationGateways.UpdateTags method.
1552type ApplicationGatewaysUpdateTagsOptions struct {
1553	// placeholder for future optional parameters
1554}
1555
1556// Rule of type application.
1557type ApplicationRule struct {
1558	FirewallPolicyRule
1559	// List of destination IP addresses or Service Tags.
1560	DestinationAddresses *[]string `json:"destinationAddresses,omitempty"`
1561
1562	// List of FQDN Tags for this rule.
1563	FqdnTags *[]string `json:"fqdnTags,omitempty"`
1564
1565	// Array of Application Protocols.
1566	Protocols *[]FirewallPolicyRuleApplicationProtocol `json:"protocols,omitempty"`
1567
1568	// List of source IP addresses for this rule.
1569	SourceAddresses *[]string `json:"sourceAddresses,omitempty"`
1570
1571	// List of source IpGroups for this rule.
1572	SourceIPGroups *[]string `json:"sourceIpGroups,omitempty"`
1573
1574	// List of FQDNs for this rule.
1575	TargetFqdns *[]string `json:"targetFqdns,omitempty"`
1576
1577	// List of Urls for this rule condition.
1578	TargetURLs *[]string `json:"targetUrls,omitempty"`
1579
1580	// Terminate TLS connections for this rule.
1581	TerminateTLS *bool `json:"terminateTLS,omitempty"`
1582
1583	// List of destination azure web categories.
1584	WebCategories *[]string `json:"webCategories,omitempty"`
1585}
1586
1587// MarshalJSON implements the json.Marshaller interface for type ApplicationRule.
1588func (a ApplicationRule) MarshalJSON() ([]byte, error) {
1589	objectMap := a.FirewallPolicyRule.marshalInternal(FirewallPolicyRuleTypeApplicationRule)
1590	if a.DestinationAddresses != nil {
1591		objectMap["destinationAddresses"] = a.DestinationAddresses
1592	}
1593	if a.FqdnTags != nil {
1594		objectMap["fqdnTags"] = a.FqdnTags
1595	}
1596	if a.Protocols != nil {
1597		objectMap["protocols"] = a.Protocols
1598	}
1599	if a.SourceAddresses != nil {
1600		objectMap["sourceAddresses"] = a.SourceAddresses
1601	}
1602	if a.SourceIPGroups != nil {
1603		objectMap["sourceIpGroups"] = a.SourceIPGroups
1604	}
1605	if a.TargetFqdns != nil {
1606		objectMap["targetFqdns"] = a.TargetFqdns
1607	}
1608	if a.TargetURLs != nil {
1609		objectMap["targetUrls"] = a.TargetURLs
1610	}
1611	if a.TerminateTLS != nil {
1612		objectMap["terminateTLS"] = a.TerminateTLS
1613	}
1614	if a.WebCategories != nil {
1615		objectMap["webCategories"] = a.WebCategories
1616	}
1617	return json.Marshal(objectMap)
1618}
1619
1620// UnmarshalJSON implements the json.Unmarshaller interface for type ApplicationRule.
1621func (a *ApplicationRule) UnmarshalJSON(data []byte) error {
1622	var rawMsg map[string]*json.RawMessage
1623	if err := json.Unmarshal(data, &rawMsg); err != nil {
1624		return err
1625	}
1626	for key, val := range rawMsg {
1627		var err error
1628		switch key {
1629		case "destinationAddresses":
1630			if val != nil {
1631				err = json.Unmarshal(*val, &a.DestinationAddresses)
1632			}
1633			delete(rawMsg, key)
1634		case "fqdnTags":
1635			if val != nil {
1636				err = json.Unmarshal(*val, &a.FqdnTags)
1637			}
1638			delete(rawMsg, key)
1639		case "protocols":
1640			if val != nil {
1641				err = json.Unmarshal(*val, &a.Protocols)
1642			}
1643			delete(rawMsg, key)
1644		case "sourceAddresses":
1645			if val != nil {
1646				err = json.Unmarshal(*val, &a.SourceAddresses)
1647			}
1648			delete(rawMsg, key)
1649		case "sourceIpGroups":
1650			if val != nil {
1651				err = json.Unmarshal(*val, &a.SourceIPGroups)
1652			}
1653			delete(rawMsg, key)
1654		case "targetFqdns":
1655			if val != nil {
1656				err = json.Unmarshal(*val, &a.TargetFqdns)
1657			}
1658			delete(rawMsg, key)
1659		case "targetUrls":
1660			if val != nil {
1661				err = json.Unmarshal(*val, &a.TargetURLs)
1662			}
1663			delete(rawMsg, key)
1664		case "terminateTLS":
1665			if val != nil {
1666				err = json.Unmarshal(*val, &a.TerminateTLS)
1667			}
1668			delete(rawMsg, key)
1669		case "webCategories":
1670			if val != nil {
1671				err = json.Unmarshal(*val, &a.WebCategories)
1672			}
1673			delete(rawMsg, key)
1674		}
1675		if err != nil {
1676			return err
1677		}
1678	}
1679	return a.FirewallPolicyRule.unmarshalInternal(rawMsg)
1680}
1681
1682// An application security group in a resource group.
1683type ApplicationSecurityGroup struct {
1684	Resource
1685	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
1686	Etag *string `json:"etag,omitempty" azure:"ro"`
1687
1688	// Properties of the application security group.
1689	Properties *ApplicationSecurityGroupPropertiesFormat `json:"properties,omitempty"`
1690}
1691
1692// A list of application security groups.
1693type ApplicationSecurityGroupListResult struct {
1694	// READ-ONLY; The URL to get the next set of results.
1695	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
1696
1697	// A list of application security groups.
1698	Value *[]ApplicationSecurityGroup `json:"value,omitempty"`
1699}
1700
1701// ApplicationSecurityGroupListResultResponse is the response envelope for operations that return a ApplicationSecurityGroupListResult type.
1702type ApplicationSecurityGroupListResultResponse struct {
1703	// A list of application security groups.
1704	ApplicationSecurityGroupListResult *ApplicationSecurityGroupListResult
1705
1706	// RawResponse contains the underlying HTTP response.
1707	RawResponse *http.Response
1708}
1709
1710// ApplicationSecurityGroupPollerResponse is the response envelope for operations that asynchronously return a ApplicationSecurityGroup type.
1711type ApplicationSecurityGroupPollerResponse struct {
1712	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
1713	PollUntilDone func(ctx context.Context, frequency time.Duration) (ApplicationSecurityGroupResponse, error)
1714
1715	// Poller contains an initialized poller.
1716	Poller ApplicationSecurityGroupPoller
1717
1718	// RawResponse contains the underlying HTTP response.
1719	RawResponse *http.Response
1720}
1721
1722// Application security group properties.
1723type ApplicationSecurityGroupPropertiesFormat struct {
1724	// READ-ONLY; The provisioning state of the application security group resource.
1725	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1726
1727	// READ-ONLY; The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name
1728	// or migrate the resource across subscriptions or resource
1729	// groups.
1730	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
1731}
1732
1733// ApplicationSecurityGroupResponse is the response envelope for operations that return a ApplicationSecurityGroup type.
1734type ApplicationSecurityGroupResponse struct {
1735	// An application security group in a resource group.
1736	ApplicationSecurityGroup *ApplicationSecurityGroup
1737
1738	// RawResponse contains the underlying HTTP response.
1739	RawResponse *http.Response
1740}
1741
1742// ApplicationSecurityGroupsBeginCreateOrUpdateOptions contains the optional parameters for the ApplicationSecurityGroups.BeginCreateOrUpdate method.
1743type ApplicationSecurityGroupsBeginCreateOrUpdateOptions struct {
1744	// placeholder for future optional parameters
1745}
1746
1747// ApplicationSecurityGroupsBeginDeleteOptions contains the optional parameters for the ApplicationSecurityGroups.BeginDelete method.
1748type ApplicationSecurityGroupsBeginDeleteOptions struct {
1749	// placeholder for future optional parameters
1750}
1751
1752// ApplicationSecurityGroupsGetOptions contains the optional parameters for the ApplicationSecurityGroups.Get method.
1753type ApplicationSecurityGroupsGetOptions struct {
1754	// placeholder for future optional parameters
1755}
1756
1757// ApplicationSecurityGroupsListAllOptions contains the optional parameters for the ApplicationSecurityGroups.ListAll method.
1758type ApplicationSecurityGroupsListAllOptions struct {
1759	// placeholder for future optional parameters
1760}
1761
1762// ApplicationSecurityGroupsListOptions contains the optional parameters for the ApplicationSecurityGroups.List method.
1763type ApplicationSecurityGroupsListOptions struct {
1764	// placeholder for future optional parameters
1765}
1766
1767// ApplicationSecurityGroupsUpdateTagsOptions contains the optional parameters for the ApplicationSecurityGroups.UpdateTags method.
1768type ApplicationSecurityGroupsUpdateTagsOptions struct {
1769	// placeholder for future optional parameters
1770}
1771
1772// Response for ListAuthorizations API service call retrieves all authorizations that belongs to an ExpressRouteCircuit.
1773type AuthorizationListResult struct {
1774	// The URL to get the next set of results.
1775	NextLink *string `json:"nextLink,omitempty"`
1776
1777	// The authorizations in an ExpressRoute Circuit.
1778	Value *[]ExpressRouteCircuitAuthorization `json:"value,omitempty"`
1779}
1780
1781// AuthorizationListResultResponse is the response envelope for operations that return a AuthorizationListResult type.
1782type AuthorizationListResultResponse struct {
1783	// Response for ListAuthorizations API service call retrieves all authorizations that belongs to an ExpressRouteCircuit.
1784	AuthorizationListResult *AuthorizationListResult
1785
1786	// RawResponse contains the underlying HTTP response.
1787	RawResponse *http.Response
1788}
1789
1790// Properties of ExpressRouteCircuitAuthorization.
1791type AuthorizationPropertiesFormat struct {
1792	// The authorization key.
1793	AuthorizationKey *string `json:"authorizationKey,omitempty"`
1794
1795	// The authorization use status.
1796	AuthorizationUseStatus *AuthorizationUseStatus `json:"authorizationUseStatus,omitempty"`
1797
1798	// READ-ONLY; The provisioning state of the authorization resource.
1799	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
1800}
1801
1802// The information of an AutoApprovedPrivateLinkService.
1803type AutoApprovedPrivateLinkService struct {
1804	// The id of the private link service resource.
1805	PrivateLinkService *string `json:"privateLinkService,omitempty"`
1806}
1807
1808// An array of private link service id that can be linked to a private end point with auto approved.
1809type AutoApprovedPrivateLinkServicesResult struct {
1810	// READ-ONLY; The URL to get the next set of results.
1811	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
1812
1813	// An array of auto approved private link service.
1814	Value *[]AutoApprovedPrivateLinkService `json:"value,omitempty"`
1815}
1816
1817// AutoApprovedPrivateLinkServicesResultResponse is the response envelope for operations that return a AutoApprovedPrivateLinkServicesResult type.
1818type AutoApprovedPrivateLinkServicesResultResponse struct {
1819	// An array of private link service id that can be linked to a private end point with auto approved.
1820	AutoApprovedPrivateLinkServicesResult *AutoApprovedPrivateLinkServicesResult
1821
1822	// RawResponse contains the underlying HTTP response.
1823	RawResponse *http.Response
1824}
1825
1826// Availability of the metric.
1827type Availability struct {
1828	// Duration of the availability blob.
1829	BlobDuration *string `json:"blobDuration,omitempty"`
1830
1831	// The retention of the availability.
1832	Retention *string `json:"retention,omitempty"`
1833
1834	// The time grain of the availability.
1835	TimeGrain *string `json:"timeGrain,omitempty"`
1836}
1837
1838// The serviceName of an AvailableDelegation indicates a possible delegation for a subnet.
1839type AvailableDelegation struct {
1840	// The actions permitted to the service upon delegation.
1841	Actions *[]string `json:"actions,omitempty"`
1842
1843	// A unique identifier of the AvailableDelegation resource.
1844	ID *string `json:"id,omitempty"`
1845
1846	// The name of the AvailableDelegation resource.
1847	Name *string `json:"name,omitempty"`
1848
1849	// The name of the service and resource.
1850	ServiceName *string `json:"serviceName,omitempty"`
1851
1852	// Resource type.
1853	Type *string `json:"type,omitempty"`
1854}
1855
1856// AvailableDelegationsListOptions contains the optional parameters for the AvailableDelegations.List method.
1857type AvailableDelegationsListOptions struct {
1858	// placeholder for future optional parameters
1859}
1860
1861// An array of available delegations.
1862type AvailableDelegationsResult struct {
1863	// READ-ONLY; The URL to get the next set of results.
1864	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
1865
1866	// An array of available delegations.
1867	Value *[]AvailableDelegation `json:"value,omitempty"`
1868}
1869
1870// AvailableDelegationsResultResponse is the response envelope for operations that return a AvailableDelegationsResult type.
1871type AvailableDelegationsResultResponse struct {
1872	// An array of available delegations.
1873	AvailableDelegationsResult *AvailableDelegationsResult
1874
1875	// RawResponse contains the underlying HTTP response.
1876	RawResponse *http.Response
1877}
1878
1879// AvailableEndpointServicesListOptions contains the optional parameters for the AvailableEndpointServices.List method.
1880type AvailableEndpointServicesListOptions struct {
1881	// placeholder for future optional parameters
1882}
1883
1884// The information of an AvailablePrivateEndpointType.
1885type AvailablePrivateEndpointType struct {
1886	// A unique identifier of the AvailablePrivateEndpoint Type resource.
1887	ID *string `json:"id,omitempty"`
1888
1889	// The name of the service and resource.
1890	Name *string `json:"name,omitempty"`
1891
1892	// The name of the service and resource.
1893	ResourceName *string `json:"resourceName,omitempty"`
1894
1895	// Resource type.
1896	Type *string `json:"type,omitempty"`
1897}
1898
1899// AvailablePrivateEndpointTypesListByResourceGroupOptions contains the optional parameters for the AvailablePrivateEndpointTypes.ListByResourceGroup method.
1900type AvailablePrivateEndpointTypesListByResourceGroupOptions struct {
1901	// placeholder for future optional parameters
1902}
1903
1904// AvailablePrivateEndpointTypesListOptions contains the optional parameters for the AvailablePrivateEndpointTypes.List method.
1905type AvailablePrivateEndpointTypesListOptions struct {
1906	// placeholder for future optional parameters
1907}
1908
1909// An array of available PrivateEndpoint types.
1910type AvailablePrivateEndpointTypesResult struct {
1911	// READ-ONLY; The URL to get the next set of results.
1912	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
1913
1914	// An array of available privateEndpoint type.
1915	Value *[]AvailablePrivateEndpointType `json:"value,omitempty"`
1916}
1917
1918// AvailablePrivateEndpointTypesResultResponse is the response envelope for operations that return a AvailablePrivateEndpointTypesResult type.
1919type AvailablePrivateEndpointTypesResultResponse struct {
1920	// An array of available PrivateEndpoint types.
1921	AvailablePrivateEndpointTypesResult *AvailablePrivateEndpointTypesResult
1922
1923	// RawResponse contains the underlying HTTP response.
1924	RawResponse *http.Response
1925}
1926
1927// List of available countries with details.
1928type AvailableProvidersList struct {
1929	// List of available countries.
1930	Countries *[]AvailableProvidersListCountry `json:"countries,omitempty"`
1931}
1932
1933// City or town details.
1934type AvailableProvidersListCity struct {
1935	// The city or town name.
1936	CityName *string `json:"cityName,omitempty"`
1937
1938	// A list of Internet service providers.
1939	Providers *[]string `json:"providers,omitempty"`
1940}
1941
1942// Country details.
1943type AvailableProvidersListCountry struct {
1944	// The country name.
1945	CountryName *string `json:"countryName,omitempty"`
1946
1947	// A list of Internet service providers.
1948	Providers *[]string `json:"providers,omitempty"`
1949
1950	// List of available states in the country.
1951	States *[]AvailableProvidersListState `json:"states,omitempty"`
1952}
1953
1954// Constraints that determine the list of available Internet service providers.
1955type AvailableProvidersListParameters struct {
1956	// A list of Azure regions.
1957	AzureLocations *[]string `json:"azureLocations,omitempty"`
1958
1959	// The city or town for available providers list.
1960	City *string `json:"city,omitempty"`
1961
1962	// The country for available providers list.
1963	Country *string `json:"country,omitempty"`
1964
1965	// The state for available providers list.
1966	State *string `json:"state,omitempty"`
1967}
1968
1969// AvailableProvidersListPollerResponse is the response envelope for operations that asynchronously return a AvailableProvidersList type.
1970type AvailableProvidersListPollerResponse struct {
1971	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
1972	PollUntilDone func(ctx context.Context, frequency time.Duration) (AvailableProvidersListResponse, error)
1973
1974	// Poller contains an initialized poller.
1975	Poller AvailableProvidersListPoller
1976
1977	// RawResponse contains the underlying HTTP response.
1978	RawResponse *http.Response
1979}
1980
1981// AvailableProvidersListResponse is the response envelope for operations that return a AvailableProvidersList type.
1982type AvailableProvidersListResponse struct {
1983	// List of available countries with details.
1984	AvailableProvidersList *AvailableProvidersList
1985
1986	// RawResponse contains the underlying HTTP response.
1987	RawResponse *http.Response
1988}
1989
1990// State details.
1991type AvailableProvidersListState struct {
1992	// List of available cities or towns in the state.
1993	Cities *[]AvailableProvidersListCity `json:"cities,omitempty"`
1994
1995	// A list of Internet service providers.
1996	Providers *[]string `json:"providers,omitempty"`
1997
1998	// The state name.
1999	StateName *string `json:"stateName,omitempty"`
2000}
2001
2002// AvailableResourceGroupDelegationsListOptions contains the optional parameters for the AvailableResourceGroupDelegations.List method.
2003type AvailableResourceGroupDelegationsListOptions struct {
2004	// placeholder for future optional parameters
2005}
2006
2007// The available service alias.
2008type AvailableServiceAlias struct {
2009	// The ID of the service alias.
2010	ID *string `json:"id,omitempty"`
2011
2012	// The name of the service alias.
2013	Name *string `json:"name,omitempty"`
2014
2015	// The resource name of the service alias.
2016	ResourceName *string `json:"resourceName,omitempty"`
2017
2018	// The type of the resource.
2019	Type *string `json:"type,omitempty"`
2020}
2021
2022// AvailableServiceAliasesListByResourceGroupOptions contains the optional parameters for the AvailableServiceAliases.ListByResourceGroup method.
2023type AvailableServiceAliasesListByResourceGroupOptions struct {
2024	// placeholder for future optional parameters
2025}
2026
2027// AvailableServiceAliasesListOptions contains the optional parameters for the AvailableServiceAliases.List method.
2028type AvailableServiceAliasesListOptions struct {
2029	// placeholder for future optional parameters
2030}
2031
2032// An array of available service aliases.
2033type AvailableServiceAliasesResult struct {
2034	// READ-ONLY; The URL to get the next set of results.
2035	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
2036
2037	// An array of available service aliases.
2038	Value *[]AvailableServiceAlias `json:"value,omitempty"`
2039}
2040
2041// AvailableServiceAliasesResultResponse is the response envelope for operations that return a AvailableServiceAliasesResult type.
2042type AvailableServiceAliasesResultResponse struct {
2043	// An array of available service aliases.
2044	AvailableServiceAliasesResult *AvailableServiceAliasesResult
2045
2046	// RawResponse contains the underlying HTTP response.
2047	RawResponse *http.Response
2048}
2049
2050// The response body contains the status of the specified asynchronous operation, indicating whether it has succeeded, is in progress, or has failed. Note
2051// that this status is distinct from the HTTP
2052// status code returned for the Get Operation Status operation itself. If the asynchronous operation succeeded, the response body includes the HTTP status
2053// code for the successful request. If the
2054// asynchronous operation failed, the response body includes the HTTP status code for the failed request and error information regarding the failure.
2055type AzureAsyncOperationResult struct {
2056	// Details of the error occurred during specified asynchronous operation.
2057	Error *Error `json:"error,omitempty"`
2058
2059	// Status of the Azure async operation.
2060	Status *NetworkOperationStatus `json:"status,omitempty"`
2061}
2062
2063// Azure Firewall resource.
2064type AzureFirewall struct {
2065	Resource
2066	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2067	Etag *string `json:"etag,omitempty" azure:"ro"`
2068
2069	// Properties of the azure firewall.
2070	Properties *AzureFirewallPropertiesFormat `json:"properties,omitempty"`
2071
2072	// A list of availability zones denoting where the resource needs to come from.
2073	Zones *[]string `json:"zones,omitempty"`
2074}
2075
2076// Properties of an application rule.
2077type AzureFirewallApplicationRule struct {
2078	// Description of the rule.
2079	Description *string `json:"description,omitempty"`
2080
2081	// List of FQDN Tags for this rule.
2082	FqdnTags *[]string `json:"fqdnTags,omitempty"`
2083
2084	// Name of the application rule.
2085	Name *string `json:"name,omitempty"`
2086
2087	// Array of ApplicationRuleProtocols.
2088	Protocols *[]AzureFirewallApplicationRuleProtocol `json:"protocols,omitempty"`
2089
2090	// List of source IP addresses for this rule.
2091	SourceAddresses *[]string `json:"sourceAddresses,omitempty"`
2092
2093	// List of source IpGroups for this rule.
2094	SourceIPGroups *[]string `json:"sourceIpGroups,omitempty"`
2095
2096	// List of FQDNs for this rule.
2097	TargetFqdns *[]string `json:"targetFqdns,omitempty"`
2098}
2099
2100// Application rule collection resource.
2101type AzureFirewallApplicationRuleCollection struct {
2102	SubResource
2103	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2104	Etag *string `json:"etag,omitempty" azure:"ro"`
2105
2106	// The name of the resource that is unique within the Azure firewall. This name can be used to access the resource.
2107	Name *string `json:"name,omitempty"`
2108
2109	// Properties of the azure firewall application rule collection.
2110	Properties *AzureFirewallApplicationRuleCollectionPropertiesFormat `json:"properties,omitempty"`
2111}
2112
2113// Properties of the application rule collection.
2114type AzureFirewallApplicationRuleCollectionPropertiesFormat struct {
2115	// The action type of a rule collection.
2116	Action *AzureFirewallRcAction `json:"action,omitempty"`
2117
2118	// Priority of the application rule collection resource.
2119	Priority *int32 `json:"priority,omitempty"`
2120
2121	// READ-ONLY; The provisioning state of the application rule collection resource.
2122	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2123
2124	// Collection of rules used by a application rule collection.
2125	Rules *[]AzureFirewallApplicationRule `json:"rules,omitempty"`
2126}
2127
2128// Properties of the application rule protocol.
2129type AzureFirewallApplicationRuleProtocol struct {
2130	// Port number for the protocol, cannot be greater than 64000. This field is optional.
2131	Port *int32 `json:"port,omitempty"`
2132
2133	// Protocol type.
2134	ProtocolType *AzureFirewallApplicationRuleProtocolType `json:"protocolType,omitempty"`
2135}
2136
2137// Azure Firewall FQDN Tag Resource.
2138type AzureFirewallFqdnTag struct {
2139	Resource
2140	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2141	Etag *string `json:"etag,omitempty" azure:"ro"`
2142
2143	// Properties of the azure firewall FQDN tag.
2144	Properties *AzureFirewallFqdnTagPropertiesFormat `json:"properties,omitempty"`
2145}
2146
2147// Response for ListAzureFirewallFqdnTags API service call.
2148type AzureFirewallFqdnTagListResult struct {
2149	// URL to get the next set of results.
2150	NextLink *string `json:"nextLink,omitempty"`
2151
2152	// List of Azure Firewall FQDN Tags in a resource group.
2153	Value *[]AzureFirewallFqdnTag `json:"value,omitempty"`
2154}
2155
2156// AzureFirewallFqdnTagListResultResponse is the response envelope for operations that return a AzureFirewallFqdnTagListResult type.
2157type AzureFirewallFqdnTagListResultResponse struct {
2158	// Response for ListAzureFirewallFqdnTags API service call.
2159	AzureFirewallFqdnTagListResult *AzureFirewallFqdnTagListResult
2160
2161	// RawResponse contains the underlying HTTP response.
2162	RawResponse *http.Response
2163}
2164
2165// Azure Firewall FQDN Tag Properties.
2166type AzureFirewallFqdnTagPropertiesFormat struct {
2167	// READ-ONLY; The name of this FQDN Tag.
2168	FqdnTagName *string `json:"fqdnTagName,omitempty" azure:"ro"`
2169
2170	// READ-ONLY; The provisioning state of the Azure firewall FQDN tag resource.
2171	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2172}
2173
2174// AzureFirewallFqdnTagsListAllOptions contains the optional parameters for the AzureFirewallFqdnTags.ListAll method.
2175type AzureFirewallFqdnTagsListAllOptions struct {
2176	// placeholder for future optional parameters
2177}
2178
2179// IP configuration of an Azure Firewall.
2180type AzureFirewallIPConfiguration struct {
2181	SubResource
2182	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2183	Etag *string `json:"etag,omitempty" azure:"ro"`
2184
2185	// Name of the resource that is unique within a resource group. This name can be used to access the resource.
2186	Name *string `json:"name,omitempty"`
2187
2188	// Properties of the azure firewall IP configuration.
2189	Properties *AzureFirewallIPConfigurationPropertiesFormat `json:"properties,omitempty"`
2190
2191	// READ-ONLY; Type of the resource.
2192	Type *string `json:"type,omitempty" azure:"ro"`
2193}
2194
2195// Properties of IP configuration of an Azure Firewall.
2196type AzureFirewallIPConfigurationPropertiesFormat struct {
2197	// READ-ONLY; The Firewall Internal Load Balancer IP to be used as the next hop in User Defined Routes.
2198	PrivateIPAddress *string `json:"privateIPAddress,omitempty" azure:"ro"`
2199
2200	// READ-ONLY; The provisioning state of the Azure firewall IP configuration resource.
2201	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2202
2203	// Reference to the PublicIP resource. This field is a mandatory input if subnet is not null.
2204	PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"`
2205
2206	// Reference to the subnet resource. This resource must be named 'AzureFirewallSubnet' or 'AzureFirewallManagementSubnet'.
2207	Subnet *SubResource `json:"subnet,omitempty"`
2208}
2209
2210// IpGroups associated with azure firewall.
2211type AzureFirewallIPGroups struct {
2212	// READ-ONLY; The iteration number.
2213	ChangeNumber *string `json:"changeNumber,omitempty" azure:"ro"`
2214
2215	// READ-ONLY; Resource ID.
2216	ID *string `json:"id,omitempty" azure:"ro"`
2217}
2218
2219// Response for ListAzureFirewalls API service call.
2220type AzureFirewallListResult struct {
2221	// URL to get the next set of results.
2222	NextLink *string `json:"nextLink,omitempty"`
2223
2224	// List of Azure Firewalls in a resource group.
2225	Value *[]AzureFirewall `json:"value,omitempty"`
2226}
2227
2228// AzureFirewallListResultResponse is the response envelope for operations that return a AzureFirewallListResult type.
2229type AzureFirewallListResultResponse struct {
2230	// Response for ListAzureFirewalls API service call.
2231	AzureFirewallListResult *AzureFirewallListResult
2232
2233	// RawResponse contains the underlying HTTP response.
2234	RawResponse *http.Response
2235}
2236
2237// AzureFirewall NAT Rule Collection Action.
2238type AzureFirewallNatRcAction struct {
2239	// The type of action.
2240	Type *AzureFirewallNatRCActionType `json:"type,omitempty"`
2241}
2242
2243// Properties of a NAT rule.
2244type AzureFirewallNatRule struct {
2245	// Description of the rule.
2246	Description *string `json:"description,omitempty"`
2247
2248	// List of destination IP addresses for this rule. Supports IP ranges, prefixes, and service tags.
2249	DestinationAddresses *[]string `json:"destinationAddresses,omitempty"`
2250
2251	// List of destination ports.
2252	DestinationPorts *[]string `json:"destinationPorts,omitempty"`
2253
2254	// Name of the NAT rule.
2255	Name *string `json:"name,omitempty"`
2256
2257	// Array of AzureFirewallNetworkRuleProtocols applicable to this NAT rule.
2258	Protocols *[]AzureFirewallNetworkRuleProtocol `json:"protocols,omitempty"`
2259
2260	// List of source IP addresses for this rule.
2261	SourceAddresses *[]string `json:"sourceAddresses,omitempty"`
2262
2263	// List of source IpGroups for this rule.
2264	SourceIPGroups *[]string `json:"sourceIpGroups,omitempty"`
2265
2266	// The translated address for this NAT rule.
2267	TranslatedAddress *string `json:"translatedAddress,omitempty"`
2268
2269	// The translated FQDN for this NAT rule.
2270	TranslatedFqdn *string `json:"translatedFqdn,omitempty"`
2271
2272	// The translated port for this NAT rule.
2273	TranslatedPort *string `json:"translatedPort,omitempty"`
2274}
2275
2276// NAT rule collection resource.
2277type AzureFirewallNatRuleCollection struct {
2278	SubResource
2279	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2280	Etag *string `json:"etag,omitempty" azure:"ro"`
2281
2282	// The name of the resource that is unique within the Azure firewall. This name can be used to access the resource.
2283	Name *string `json:"name,omitempty"`
2284
2285	// Properties of the azure firewall NAT rule collection.
2286	Properties *AzureFirewallNatRuleCollectionProperties `json:"properties,omitempty"`
2287}
2288
2289// Properties of the NAT rule collection.
2290type AzureFirewallNatRuleCollectionProperties struct {
2291	// The action type of a NAT rule collection.
2292	Action *AzureFirewallNatRcAction `json:"action,omitempty"`
2293
2294	// Priority of the NAT rule collection resource.
2295	Priority *int32 `json:"priority,omitempty"`
2296
2297	// READ-ONLY; The provisioning state of the NAT rule collection resource.
2298	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2299
2300	// Collection of rules used by a NAT rule collection.
2301	Rules *[]AzureFirewallNatRule `json:"rules,omitempty"`
2302}
2303
2304// Properties of the network rule.
2305type AzureFirewallNetworkRule struct {
2306	// Description of the rule.
2307	Description *string `json:"description,omitempty"`
2308
2309	// List of destination IP addresses.
2310	DestinationAddresses *[]string `json:"destinationAddresses,omitempty"`
2311
2312	// List of destination FQDNs.
2313	DestinationFqdns *[]string `json:"destinationFqdns,omitempty"`
2314
2315	// List of destination IpGroups for this rule.
2316	DestinationIPGroups *[]string `json:"destinationIpGroups,omitempty"`
2317
2318	// List of destination ports.
2319	DestinationPorts *[]string `json:"destinationPorts,omitempty"`
2320
2321	// Name of the network rule.
2322	Name *string `json:"name,omitempty"`
2323
2324	// Array of AzureFirewallNetworkRuleProtocols.
2325	Protocols *[]AzureFirewallNetworkRuleProtocol `json:"protocols,omitempty"`
2326
2327	// List of source IP addresses for this rule.
2328	SourceAddresses *[]string `json:"sourceAddresses,omitempty"`
2329
2330	// List of source IpGroups for this rule.
2331	SourceIPGroups *[]string `json:"sourceIpGroups,omitempty"`
2332}
2333
2334// Network rule collection resource.
2335type AzureFirewallNetworkRuleCollection struct {
2336	SubResource
2337	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2338	Etag *string `json:"etag,omitempty" azure:"ro"`
2339
2340	// The name of the resource that is unique within the Azure firewall. This name can be used to access the resource.
2341	Name *string `json:"name,omitempty"`
2342
2343	// Properties of the azure firewall network rule collection.
2344	Properties *AzureFirewallNetworkRuleCollectionPropertiesFormat `json:"properties,omitempty"`
2345}
2346
2347// Properties of the network rule collection.
2348type AzureFirewallNetworkRuleCollectionPropertiesFormat struct {
2349	// The action type of a rule collection.
2350	Action *AzureFirewallRcAction `json:"action,omitempty"`
2351
2352	// Priority of the network rule collection resource.
2353	Priority *int32 `json:"priority,omitempty"`
2354
2355	// READ-ONLY; The provisioning state of the network rule collection resource.
2356	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2357
2358	// Collection of rules used by a network rule collection.
2359	Rules *[]AzureFirewallNetworkRule `json:"rules,omitempty"`
2360}
2361
2362// AzureFirewallPollerResponse is the response envelope for operations that asynchronously return a AzureFirewall type.
2363type AzureFirewallPollerResponse struct {
2364	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
2365	PollUntilDone func(ctx context.Context, frequency time.Duration) (AzureFirewallResponse, error)
2366
2367	// Poller contains an initialized poller.
2368	Poller AzureFirewallPoller
2369
2370	// RawResponse contains the underlying HTTP response.
2371	RawResponse *http.Response
2372}
2373
2374// Properties of the Azure Firewall.
2375type AzureFirewallPropertiesFormat struct {
2376	// The additional properties used to further config this azure firewall.
2377	AdditionalProperties *map[string]string `json:"additionalProperties,omitempty"`
2378
2379	// Collection of application rule collections used by Azure Firewall.
2380	ApplicationRuleCollections *[]AzureFirewallApplicationRuleCollection `json:"applicationRuleCollections,omitempty"`
2381
2382	// The firewallPolicy associated with this azure firewall.
2383	FirewallPolicy *SubResource `json:"firewallPolicy,omitempty"`
2384
2385	// IP addresses associated with AzureFirewall.
2386	HubIPAddresses *HubIPAddresses `json:"hubIPAddresses,omitempty"`
2387
2388	// IP configuration of the Azure Firewall resource.
2389	IPConfigurations *[]AzureFirewallIPConfiguration `json:"ipConfigurations,omitempty"`
2390
2391	// READ-ONLY; IpGroups associated with AzureFirewall.
2392	IPGroups *[]AzureFirewallIPGroups `json:"ipGroups,omitempty" azure:"ro"`
2393
2394	// IP configuration of the Azure Firewall used for management traffic.
2395	ManagementIPConfiguration *AzureFirewallIPConfiguration `json:"managementIpConfiguration,omitempty"`
2396
2397	// Collection of NAT rule collections used by Azure Firewall.
2398	NatRuleCollections *[]AzureFirewallNatRuleCollection `json:"natRuleCollections,omitempty"`
2399
2400	// Collection of network rule collections used by Azure Firewall.
2401	NetworkRuleCollections *[]AzureFirewallNetworkRuleCollection `json:"networkRuleCollections,omitempty"`
2402
2403	// READ-ONLY; The provisioning state of the Azure firewall resource.
2404	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2405
2406	// The Azure Firewall Resource SKU.
2407	SKU *AzureFirewallSKU `json:"sku,omitempty"`
2408
2409	// The operation mode for Threat Intelligence.
2410	ThreatIntelMode *AzureFirewallThreatIntelMode `json:"threatIntelMode,omitempty"`
2411
2412	// The virtualHub to which the firewall belongs.
2413	VirtualHub *SubResource `json:"virtualHub,omitempty"`
2414}
2415
2416// Public IP Address associated with azure firewall.
2417type AzureFirewallPublicIPAddress struct {
2418	// Public IP Address value.
2419	Address *string `json:"address,omitempty"`
2420}
2421
2422// Properties of the AzureFirewallRCAction.
2423type AzureFirewallRcAction struct {
2424	// The type of action.
2425	Type *AzureFirewallRCActionType `json:"type,omitempty"`
2426}
2427
2428// AzureFirewallResponse is the response envelope for operations that return a AzureFirewall type.
2429type AzureFirewallResponse struct {
2430	// Azure Firewall resource.
2431	AzureFirewall *AzureFirewall
2432
2433	// RawResponse contains the underlying HTTP response.
2434	RawResponse *http.Response
2435}
2436
2437// SKU of an Azure Firewall.
2438type AzureFirewallSKU struct {
2439	// Name of an Azure Firewall SKU.
2440	Name *AzureFirewallSKUName `json:"name,omitempty"`
2441
2442	// Tier of an Azure Firewall.
2443	Tier *AzureFirewallSKUTier `json:"tier,omitempty"`
2444}
2445
2446// AzureFirewallsBeginCreateOrUpdateOptions contains the optional parameters for the AzureFirewalls.BeginCreateOrUpdate method.
2447type AzureFirewallsBeginCreateOrUpdateOptions struct {
2448	// placeholder for future optional parameters
2449}
2450
2451// AzureFirewallsBeginDeleteOptions contains the optional parameters for the AzureFirewalls.BeginDelete method.
2452type AzureFirewallsBeginDeleteOptions struct {
2453	// placeholder for future optional parameters
2454}
2455
2456// AzureFirewallsBeginUpdateTagsOptions contains the optional parameters for the AzureFirewalls.BeginUpdateTags method.
2457type AzureFirewallsBeginUpdateTagsOptions struct {
2458	// placeholder for future optional parameters
2459}
2460
2461// AzureFirewallsGetOptions contains the optional parameters for the AzureFirewalls.Get method.
2462type AzureFirewallsGetOptions struct {
2463	// placeholder for future optional parameters
2464}
2465
2466// AzureFirewallsListAllOptions contains the optional parameters for the AzureFirewalls.ListAll method.
2467type AzureFirewallsListAllOptions struct {
2468	// placeholder for future optional parameters
2469}
2470
2471// AzureFirewallsListOptions contains the optional parameters for the AzureFirewalls.List method.
2472type AzureFirewallsListOptions struct {
2473	// placeholder for future optional parameters
2474}
2475
2476// Azure reachability report details.
2477type AzureReachabilityReport struct {
2478	// The aggregation level of Azure reachability report. Can be Country, State or City.
2479	AggregationLevel *string `json:"aggregationLevel,omitempty"`
2480
2481	// Parameters that define a geographic location.
2482	ProviderLocation *AzureReachabilityReportLocation `json:"providerLocation,omitempty"`
2483
2484	// List of Azure reachability report items.
2485	ReachabilityReport *[]AzureReachabilityReportItem `json:"reachabilityReport,omitempty"`
2486}
2487
2488// Azure reachability report details for a given provider location.
2489type AzureReachabilityReportItem struct {
2490	// The Azure region.
2491	AzureLocation *string `json:"azureLocation,omitempty"`
2492
2493	// List of latency details for each of the time series.
2494	Latencies *[]AzureReachabilityReportLatencyInfo `json:"latencies,omitempty"`
2495
2496	// The Internet service provider.
2497	Provider *string `json:"provider,omitempty"`
2498}
2499
2500// Details on latency for a time series.
2501type AzureReachabilityReportLatencyInfo struct {
2502	// The relative latency score between 1 and 100, higher values indicating a faster connection.
2503	Score *int32 `json:"score,omitempty"`
2504
2505	// The time stamp.
2506	TimeStamp *time.Time `json:"timeStamp,omitempty"`
2507}
2508
2509// MarshalJSON implements the json.Marshaller interface for type AzureReachabilityReportLatencyInfo.
2510func (a AzureReachabilityReportLatencyInfo) MarshalJSON() ([]byte, error) {
2511	objectMap := make(map[string]interface{})
2512	if a.Score != nil {
2513		objectMap["score"] = a.Score
2514	}
2515	if a.TimeStamp != nil {
2516		objectMap["timeStamp"] = (*timeRFC3339)(a.TimeStamp)
2517	}
2518	return json.Marshal(objectMap)
2519}
2520
2521// UnmarshalJSON implements the json.Unmarshaller interface for type AzureReachabilityReportLatencyInfo.
2522func (a *AzureReachabilityReportLatencyInfo) UnmarshalJSON(data []byte) error {
2523	var rawMsg map[string]*json.RawMessage
2524	if err := json.Unmarshal(data, &rawMsg); err != nil {
2525		return err
2526	}
2527	for key, val := range rawMsg {
2528		var err error
2529		switch key {
2530		case "score":
2531			if val != nil {
2532				err = json.Unmarshal(*val, &a.Score)
2533			}
2534			delete(rawMsg, key)
2535		case "timeStamp":
2536			if val != nil {
2537				var aux timeRFC3339
2538				err = json.Unmarshal(*val, &aux)
2539				a.TimeStamp = (*time.Time)(&aux)
2540			}
2541			delete(rawMsg, key)
2542		}
2543		if err != nil {
2544			return err
2545		}
2546	}
2547	return nil
2548}
2549
2550// Parameters that define a geographic location.
2551type AzureReachabilityReportLocation struct {
2552	// The name of the city or town.
2553	City *string `json:"city,omitempty"`
2554
2555	// The name of the country.
2556	Country *string `json:"country,omitempty"`
2557
2558	// The name of the state.
2559	State *string `json:"state,omitempty"`
2560}
2561
2562// Geographic and time constraints for Azure reachability report.
2563type AzureReachabilityReportParameters struct {
2564	// Optional Azure regions to scope the query to.
2565	AzureLocations *[]string `json:"azureLocations,omitempty"`
2566
2567	// The end time for the Azure reachability report.
2568	EndTime *time.Time `json:"endTime,omitempty"`
2569
2570	// Parameters that define a geographic location.
2571	ProviderLocation *AzureReachabilityReportLocation `json:"providerLocation,omitempty"`
2572
2573	// List of Internet service providers.
2574	Providers *[]string `json:"providers,omitempty"`
2575
2576	// The start time for the Azure reachability report.
2577	StartTime *time.Time `json:"startTime,omitempty"`
2578}
2579
2580// MarshalJSON implements the json.Marshaller interface for type AzureReachabilityReportParameters.
2581func (a AzureReachabilityReportParameters) MarshalJSON() ([]byte, error) {
2582	objectMap := make(map[string]interface{})
2583	if a.AzureLocations != nil {
2584		objectMap["azureLocations"] = a.AzureLocations
2585	}
2586	if a.EndTime != nil {
2587		objectMap["endTime"] = (*timeRFC3339)(a.EndTime)
2588	}
2589	if a.ProviderLocation != nil {
2590		objectMap["providerLocation"] = a.ProviderLocation
2591	}
2592	if a.Providers != nil {
2593		objectMap["providers"] = a.Providers
2594	}
2595	if a.StartTime != nil {
2596		objectMap["startTime"] = (*timeRFC3339)(a.StartTime)
2597	}
2598	return json.Marshal(objectMap)
2599}
2600
2601// UnmarshalJSON implements the json.Unmarshaller interface for type AzureReachabilityReportParameters.
2602func (a *AzureReachabilityReportParameters) UnmarshalJSON(data []byte) error {
2603	var rawMsg map[string]*json.RawMessage
2604	if err := json.Unmarshal(data, &rawMsg); err != nil {
2605		return err
2606	}
2607	for key, val := range rawMsg {
2608		var err error
2609		switch key {
2610		case "azureLocations":
2611			if val != nil {
2612				err = json.Unmarshal(*val, &a.AzureLocations)
2613			}
2614			delete(rawMsg, key)
2615		case "endTime":
2616			if val != nil {
2617				var aux timeRFC3339
2618				err = json.Unmarshal(*val, &aux)
2619				a.EndTime = (*time.Time)(&aux)
2620			}
2621			delete(rawMsg, key)
2622		case "providerLocation":
2623			if val != nil {
2624				err = json.Unmarshal(*val, &a.ProviderLocation)
2625			}
2626			delete(rawMsg, key)
2627		case "providers":
2628			if val != nil {
2629				err = json.Unmarshal(*val, &a.Providers)
2630			}
2631			delete(rawMsg, key)
2632		case "startTime":
2633			if val != nil {
2634				var aux timeRFC3339
2635				err = json.Unmarshal(*val, &aux)
2636				a.StartTime = (*time.Time)(&aux)
2637			}
2638			delete(rawMsg, key)
2639		}
2640		if err != nil {
2641			return err
2642		}
2643	}
2644	return nil
2645}
2646
2647// AzureReachabilityReportPollerResponse is the response envelope for operations that asynchronously return a AzureReachabilityReport type.
2648type AzureReachabilityReportPollerResponse struct {
2649	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
2650	PollUntilDone func(ctx context.Context, frequency time.Duration) (AzureReachabilityReportResponse, error)
2651
2652	// Poller contains an initialized poller.
2653	Poller AzureReachabilityReportPoller
2654
2655	// RawResponse contains the underlying HTTP response.
2656	RawResponse *http.Response
2657}
2658
2659// AzureReachabilityReportResponse is the response envelope for operations that return a AzureReachabilityReport type.
2660type AzureReachabilityReportResponse struct {
2661	// Azure reachability report details.
2662	AzureReachabilityReport *AzureReachabilityReport
2663
2664	// RawResponse contains the underlying HTTP response.
2665	RawResponse *http.Response
2666}
2667
2668// Azure Web Category Resource.
2669type AzureWebCategory struct {
2670	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2671	Etag *string `json:"etag,omitempty" azure:"ro"`
2672
2673	// Resource ID.
2674	ID *string `json:"id,omitempty"`
2675
2676	// READ-ONLY; Resource name.
2677	Name *string `json:"name,omitempty" azure:"ro"`
2678
2679	// Properties of the Azure Web Category.
2680	Properties *AzureWebCategoryPropertiesFormat `json:"properties,omitempty"`
2681
2682	// READ-ONLY; Resource type.
2683	Type *string `json:"type,omitempty" azure:"ro"`
2684}
2685
2686// Response for ListAzureWebCategories API service call.
2687type AzureWebCategoryListResult struct {
2688	// URL to get the next set of results.
2689	NextLink *string `json:"nextLink,omitempty"`
2690
2691	// List of Azure Web Categories for a given Subscription.
2692	Value *[]AzureWebCategory `json:"value,omitempty"`
2693}
2694
2695// AzureWebCategoryListResultResponse is the response envelope for operations that return a AzureWebCategoryListResult type.
2696type AzureWebCategoryListResultResponse struct {
2697	// Response for ListAzureWebCategories API service call.
2698	AzureWebCategoryListResult *AzureWebCategoryListResult
2699
2700	// RawResponse contains the underlying HTTP response.
2701	RawResponse *http.Response
2702}
2703
2704// Azure Web Category Properties.
2705type AzureWebCategoryPropertiesFormat struct {
2706	// READ-ONLY; The name of the group that the category belongs to.
2707	Group *string `json:"group,omitempty" azure:"ro"`
2708}
2709
2710// AzureWebCategoryResponse is the response envelope for operations that return a AzureWebCategory type.
2711type AzureWebCategoryResponse struct {
2712	// Azure Web Category Resource.
2713	AzureWebCategory *AzureWebCategory
2714
2715	// RawResponse contains the underlying HTTP response.
2716	RawResponse *http.Response
2717}
2718
2719// Pool of backend IP addresses.
2720type BackendAddressPool struct {
2721	SubResource
2722	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2723	Etag *string `json:"etag,omitempty" azure:"ro"`
2724
2725	// The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource.
2726	Name *string `json:"name,omitempty"`
2727
2728	// Properties of load balancer backend address pool.
2729	Properties *BackendAddressPoolPropertiesFormat `json:"properties,omitempty"`
2730
2731	// READ-ONLY; Type of the resource.
2732	Type *string `json:"type,omitempty" azure:"ro"`
2733}
2734
2735// BackendAddressPoolPollerResponse is the response envelope for operations that asynchronously return a BackendAddressPool type.
2736type BackendAddressPoolPollerResponse struct {
2737	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
2738	PollUntilDone func(ctx context.Context, frequency time.Duration) (BackendAddressPoolResponse, error)
2739
2740	// Poller contains an initialized poller.
2741	Poller BackendAddressPoolPoller
2742
2743	// RawResponse contains the underlying HTTP response.
2744	RawResponse *http.Response
2745}
2746
2747// Properties of the backend address pool.
2748type BackendAddressPoolPropertiesFormat struct {
2749	// READ-ONLY; An array of references to IP addresses defined in network interfaces.
2750	BackendIPConfigurations *[]NetworkInterfaceIPConfiguration `json:"backendIPConfigurations,omitempty" azure:"ro"`
2751
2752	// An array of backend addresses.
2753	LoadBalancerBackendAddresses *[]LoadBalancerBackendAddress `json:"loadBalancerBackendAddresses,omitempty"`
2754
2755	// READ-ONLY; An array of references to load balancing rules that use this backend address pool.
2756	LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty" azure:"ro"`
2757
2758	// READ-ONLY; A reference to an outbound rule that uses this backend address pool.
2759	OutboundRule *SubResource `json:"outboundRule,omitempty" azure:"ro"`
2760
2761	// READ-ONLY; An array of references to outbound rules that use this backend address pool.
2762	OutboundRules *[]SubResource `json:"outboundRules,omitempty" azure:"ro"`
2763
2764	// READ-ONLY; The provisioning state of the backend address pool resource.
2765	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2766}
2767
2768// BackendAddressPoolResponse is the response envelope for operations that return a BackendAddressPool type.
2769type BackendAddressPoolResponse struct {
2770	// Pool of backend IP addresses.
2771	BackendAddressPool *BackendAddressPool
2772
2773	// RawResponse contains the underlying HTTP response.
2774	RawResponse *http.Response
2775}
2776
2777// The session detail for a target.
2778type BastionActiveSession struct {
2779	// READ-ONLY; The protocol used to connect to the target.
2780	Protocol *BastionConnectProtocol `json:"protocol,omitempty" azure:"ro"`
2781
2782	// READ-ONLY; The type of the resource.
2783	ResourceType *string `json:"resourceType,omitempty" azure:"ro"`
2784
2785	// READ-ONLY; Duration in mins the session has been active.
2786	SessionDurationInMins *float32 `json:"sessionDurationInMins,omitempty" azure:"ro"`
2787
2788	// READ-ONLY; A unique id for the session.
2789	SessionID *string `json:"sessionId,omitempty" azure:"ro"`
2790
2791	// READ-ONLY; The time when the session started.
2792	StartTime interface{} `json:"startTime,omitempty" azure:"ro"`
2793
2794	// READ-ONLY; The host name of the target.
2795	TargetHostName *string `json:"targetHostName,omitempty" azure:"ro"`
2796
2797	// READ-ONLY; The IP Address of the target.
2798	TargetIPAddress *string `json:"targetIpAddress,omitempty" azure:"ro"`
2799
2800	// READ-ONLY; The resource group of the target.
2801	TargetResourceGroup *string `json:"targetResourceGroup,omitempty" azure:"ro"`
2802
2803	// READ-ONLY; The resource id of the target.
2804	TargetResourceID *string `json:"targetResourceId,omitempty" azure:"ro"`
2805
2806	// READ-ONLY; The subscription id for the target virtual machine.
2807	TargetSubscriptionID *string `json:"targetSubscriptionId,omitempty" azure:"ro"`
2808
2809	// READ-ONLY; The user name who is active on this session.
2810	UserName *string `json:"userName,omitempty" azure:"ro"`
2811}
2812
2813// Response for GetActiveSessions.
2814type BastionActiveSessionListResult struct {
2815	// The URL to get the next set of results.
2816	NextLink *string `json:"nextLink,omitempty"`
2817
2818	// List of active sessions on the bastion.
2819	Value *[]BastionActiveSession `json:"value,omitempty"`
2820}
2821
2822// BastionActiveSessionListResultPagerPollerResponse is the response envelope for operations that asynchronously return a BastionActiveSessionListResultPager
2823// type.
2824type BastionActiveSessionListResultPagerPollerResponse struct {
2825	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
2826	PollUntilDone func(ctx context.Context, frequency time.Duration) (BastionActiveSessionListResultPager, error)
2827
2828	// Poller contains an initialized poller.
2829	Poller BastionActiveSessionListResultPagerPoller
2830
2831	// RawResponse contains the underlying HTTP response.
2832	RawResponse *http.Response
2833}
2834
2835// BastionActiveSessionListResultResponse is the response envelope for operations that return a BastionActiveSessionListResult type.
2836type BastionActiveSessionListResultResponse struct {
2837	// Response for GetActiveSessions.
2838	BastionActiveSessionListResult *BastionActiveSessionListResult
2839
2840	// RawResponse contains the underlying HTTP response.
2841	RawResponse *http.Response
2842}
2843
2844// Bastion Host resource.
2845type BastionHost struct {
2846	Resource
2847	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2848	Etag *string `json:"etag,omitempty" azure:"ro"`
2849
2850	// Represents the bastion host resource.
2851	Properties *BastionHostPropertiesFormat `json:"properties,omitempty"`
2852}
2853
2854// IP configuration of an Bastion Host.
2855type BastionHostIPConfiguration struct {
2856	SubResource
2857	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
2858	Etag *string `json:"etag,omitempty" azure:"ro"`
2859
2860	// Name of the resource that is unique within a resource group. This name can be used to access the resource.
2861	Name *string `json:"name,omitempty"`
2862
2863	// Represents the ip configuration associated with the resource.
2864	Properties *BastionHostIPConfigurationPropertiesFormat `json:"properties,omitempty"`
2865
2866	// READ-ONLY; Ip configuration type.
2867	Type *string `json:"type,omitempty" azure:"ro"`
2868}
2869
2870// Properties of IP configuration of an Bastion Host.
2871type BastionHostIPConfigurationPropertiesFormat struct {
2872	// Private IP allocation method.
2873	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
2874
2875	// READ-ONLY; The provisioning state of the bastion host IP configuration resource.
2876	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2877
2878	// Reference of the PublicIP resource.
2879	PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"`
2880
2881	// Reference of the subnet resource.
2882	Subnet *SubResource `json:"subnet,omitempty"`
2883}
2884
2885// Response for ListBastionHosts API service call.
2886type BastionHostListResult struct {
2887	// URL to get the next set of results.
2888	NextLink *string `json:"nextLink,omitempty"`
2889
2890	// List of Bastion Hosts in a resource group.
2891	Value *[]BastionHost `json:"value,omitempty"`
2892}
2893
2894// BastionHostListResultResponse is the response envelope for operations that return a BastionHostListResult type.
2895type BastionHostListResultResponse struct {
2896	// Response for ListBastionHosts API service call.
2897	BastionHostListResult *BastionHostListResult
2898
2899	// RawResponse contains the underlying HTTP response.
2900	RawResponse *http.Response
2901}
2902
2903// BastionHostPollerResponse is the response envelope for operations that asynchronously return a BastionHost type.
2904type BastionHostPollerResponse struct {
2905	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
2906	PollUntilDone func(ctx context.Context, frequency time.Duration) (BastionHostResponse, error)
2907
2908	// Poller contains an initialized poller.
2909	Poller BastionHostPoller
2910
2911	// RawResponse contains the underlying HTTP response.
2912	RawResponse *http.Response
2913}
2914
2915// Properties of the Bastion Host.
2916type BastionHostPropertiesFormat struct {
2917	// FQDN for the endpoint on which bastion host is accessible.
2918	DNSName *string `json:"dnsName,omitempty"`
2919
2920	// IP configuration of the Bastion Host resource.
2921	IPConfigurations *[]BastionHostIPConfiguration `json:"ipConfigurations,omitempty"`
2922
2923	// READ-ONLY; The provisioning state of the bastion host resource.
2924	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
2925}
2926
2927// BastionHostResponse is the response envelope for operations that return a BastionHost type.
2928type BastionHostResponse struct {
2929	// Bastion Host resource.
2930	BastionHost *BastionHost
2931
2932	// RawResponse contains the underlying HTTP response.
2933	RawResponse *http.Response
2934}
2935
2936// BastionHostsBeginCreateOrUpdateOptions contains the optional parameters for the BastionHosts.BeginCreateOrUpdate method.
2937type BastionHostsBeginCreateOrUpdateOptions struct {
2938	// placeholder for future optional parameters
2939}
2940
2941// BastionHostsBeginDeleteOptions contains the optional parameters for the BastionHosts.BeginDelete method.
2942type BastionHostsBeginDeleteOptions struct {
2943	// placeholder for future optional parameters
2944}
2945
2946// BastionHostsGetOptions contains the optional parameters for the BastionHosts.Get method.
2947type BastionHostsGetOptions struct {
2948	// placeholder for future optional parameters
2949}
2950
2951// BastionHostsListByResourceGroupOptions contains the optional parameters for the BastionHosts.ListByResourceGroup method.
2952type BastionHostsListByResourceGroupOptions struct {
2953	// placeholder for future optional parameters
2954}
2955
2956// BastionHostsListOptions contains the optional parameters for the BastionHosts.List method.
2957type BastionHostsListOptions struct {
2958	// placeholder for future optional parameters
2959}
2960
2961// Response for DisconnectActiveSessions.
2962type BastionSessionDeleteResult struct {
2963	// The URL to get the next set of results.
2964	NextLink *string `json:"nextLink,omitempty"`
2965
2966	// List of sessions with their corresponding state.
2967	Value *[]BastionSessionState `json:"value,omitempty"`
2968}
2969
2970// BastionSessionDeleteResultResponse is the response envelope for operations that return a BastionSessionDeleteResult type.
2971type BastionSessionDeleteResultResponse struct {
2972	// Response for DisconnectActiveSessions.
2973	BastionSessionDeleteResult *BastionSessionDeleteResult
2974
2975	// RawResponse contains the underlying HTTP response.
2976	RawResponse *http.Response
2977}
2978
2979// The session state detail for a target.
2980type BastionSessionState struct {
2981	// READ-ONLY; Used for extra information.
2982	Message *string `json:"message,omitempty" azure:"ro"`
2983
2984	// READ-ONLY; A unique id for the session.
2985	SessionID *string `json:"sessionId,omitempty" azure:"ro"`
2986
2987	// READ-ONLY; The state of the session. Disconnected/Failed/NotFound.
2988	State *string `json:"state,omitempty" azure:"ro"`
2989}
2990
2991// Bastion Shareable Link.
2992type BastionShareableLink struct {
2993	// READ-ONLY; The unique Bastion Shareable Link to the virtual machine.
2994	Bsl *string `json:"bsl,omitempty" azure:"ro"`
2995
2996	// READ-ONLY; The time when the link was created.
2997	CreatedAt *string `json:"createdAt,omitempty" azure:"ro"`
2998
2999	// READ-ONLY; Optional field indicating the warning or error message related to the vm in case of partial failure.
3000	Message *string `json:"message,omitempty" azure:"ro"`
3001
3002	// Reference of the virtual machine resource.
3003	VM *Resource `json:"vm,omitempty"`
3004}
3005
3006// Post request for all the Bastion Shareable Link endpoints.
3007type BastionShareableLinkListRequest struct {
3008	// List of VM references.
3009	VMs *[]BastionShareableLink `json:"vms,omitempty"`
3010}
3011
3012// Response for all the Bastion Shareable Link endpoints.
3013type BastionShareableLinkListResult struct {
3014	// The URL to get the next set of results.
3015	NextLink *string `json:"nextLink,omitempty"`
3016
3017	// List of Bastion Shareable Links for the request.
3018	Value *[]BastionShareableLink `json:"value,omitempty"`
3019}
3020
3021// BastionShareableLinkListResultPagerPollerResponse is the response envelope for operations that asynchronously return a BastionShareableLinkListResultPager
3022// type.
3023type BastionShareableLinkListResultPagerPollerResponse struct {
3024	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
3025	PollUntilDone func(ctx context.Context, frequency time.Duration) (BastionShareableLinkListResultPager, error)
3026
3027	// Poller contains an initialized poller.
3028	Poller BastionShareableLinkListResultPagerPoller
3029
3030	// RawResponse contains the underlying HTTP response.
3031	RawResponse *http.Response
3032}
3033
3034// BastionShareableLinkListResultResponse is the response envelope for operations that return a BastionShareableLinkListResult type.
3035type BastionShareableLinkListResultResponse struct {
3036	// Response for all the Bastion Shareable Link endpoints.
3037	BastionShareableLinkListResult *BastionShareableLinkListResult
3038
3039	// RawResponse contains the underlying HTTP response.
3040	RawResponse *http.Response
3041}
3042
3043// Contains bgp community information offered in Service Community resources.
3044type BgpCommunity struct {
3045	// The name of the bgp community. e.g. Skype.
3046	CommunityName *string `json:"communityName,omitempty"`
3047
3048	// The prefixes that the bgp community contains.
3049	CommunityPrefixes *[]string `json:"communityPrefixes,omitempty"`
3050
3051	// The value of the bgp community. For more information: https://docs.microsoft.com/en-us/azure/expressroute/expressroute-routing.
3052	CommunityValue *string `json:"communityValue,omitempty"`
3053
3054	// Customer is authorized to use bgp community or not.
3055	IsAuthorizedToUse *bool `json:"isAuthorizedToUse,omitempty"`
3056
3057	// The service group of the bgp community contains.
3058	ServiceGroup *string `json:"serviceGroup,omitempty"`
3059
3060	// The region which the service support. e.g. For O365, region is Global.
3061	ServiceSupportedRegion *string `json:"serviceSupportedRegion,omitempty"`
3062}
3063
3064// Virtual Appliance Site resource.
3065type BgpConnection struct {
3066	SubResource
3067	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
3068	Etag *string `json:"etag,omitempty" azure:"ro"`
3069
3070	// Name of the connection.
3071	Name *string `json:"name,omitempty"`
3072
3073	// The properties of the Bgp connections.
3074	Properties *BgpConnectionProperties `json:"properties,omitempty"`
3075
3076	// READ-ONLY; Connection type.
3077	Type *string `json:"type,omitempty" azure:"ro"`
3078}
3079
3080// BgpConnectionPollerResponse is the response envelope for operations that asynchronously return a BgpConnection type.
3081type BgpConnectionPollerResponse struct {
3082	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
3083	PollUntilDone func(ctx context.Context, frequency time.Duration) (BgpConnectionResponse, error)
3084
3085	// Poller contains an initialized poller.
3086	Poller BgpConnectionPoller
3087
3088	// RawResponse contains the underlying HTTP response.
3089	RawResponse *http.Response
3090}
3091
3092// Properties of the bgp connection.
3093type BgpConnectionProperties struct {
3094	// READ-ONLY; The current state of the VirtualHub to Peer.
3095	ConnectionState *HubBgpConnectionStatus `json:"connectionState,omitempty" azure:"ro"`
3096
3097	// Peer ASN.
3098	PeerAsn *int64 `json:"peerAsn,omitempty"`
3099
3100	// Peer IP.
3101	PeerIP *string `json:"peerIp,omitempty"`
3102
3103	// READ-ONLY; The provisioning state of the resource.
3104	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
3105}
3106
3107// BgpConnectionResponse is the response envelope for operations that return a BgpConnection type.
3108type BgpConnectionResponse struct {
3109	// Virtual Appliance Site resource.
3110	BgpConnection *BgpConnection
3111
3112	// RawResponse contains the underlying HTTP response.
3113	RawResponse *http.Response
3114}
3115
3116// BGP peer status details.
3117type BgpPeerStatus struct {
3118	// READ-ONLY; The autonomous system number of the remote BGP peer.
3119	Asn *int64 `json:"asn,omitempty" azure:"ro"`
3120
3121	// READ-ONLY; For how long the peering has been up.
3122	ConnectedDuration *string `json:"connectedDuration,omitempty" azure:"ro"`
3123
3124	// READ-ONLY; The virtual network gateway's local address.
3125	LocalAddress *string `json:"localAddress,omitempty" azure:"ro"`
3126
3127	// READ-ONLY; The number of BGP messages received.
3128	MessagesReceived *int64 `json:"messagesReceived,omitempty" azure:"ro"`
3129
3130	// READ-ONLY; The number of BGP messages sent.
3131	MessagesSent *int64 `json:"messagesSent,omitempty" azure:"ro"`
3132
3133	// READ-ONLY; The remote BGP peer.
3134	Neighbor *string `json:"neighbor,omitempty" azure:"ro"`
3135
3136	// READ-ONLY; The number of routes learned from this peer.
3137	RoutesReceived *int64 `json:"routesReceived,omitempty" azure:"ro"`
3138
3139	// READ-ONLY; The BGP peer state.
3140	State *BgpPeerState `json:"state,omitempty" azure:"ro"`
3141}
3142
3143// Response for list BGP peer status API service call.
3144type BgpPeerStatusListResult struct {
3145	// List of BGP peers.
3146	Value *[]BgpPeerStatus `json:"value,omitempty"`
3147}
3148
3149// BgpPeerStatusListResultPollerResponse is the response envelope for operations that asynchronously return a BgpPeerStatusListResult type.
3150type BgpPeerStatusListResultPollerResponse struct {
3151	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
3152	PollUntilDone func(ctx context.Context, frequency time.Duration) (BgpPeerStatusListResultResponse, error)
3153
3154	// Poller contains an initialized poller.
3155	Poller BgpPeerStatusListResultPoller
3156
3157	// RawResponse contains the underlying HTTP response.
3158	RawResponse *http.Response
3159}
3160
3161// BgpPeerStatusListResultResponse is the response envelope for operations that return a BgpPeerStatusListResult type.
3162type BgpPeerStatusListResultResponse struct {
3163	// Response for list BGP peer status API service call.
3164	BgpPeerStatusListResult *BgpPeerStatusListResult
3165
3166	// RawResponse contains the underlying HTTP response.
3167	RawResponse *http.Response
3168}
3169
3170// BgpServiceCommunitiesListOptions contains the optional parameters for the BgpServiceCommunities.List method.
3171type BgpServiceCommunitiesListOptions struct {
3172	// placeholder for future optional parameters
3173}
3174
3175// Service Community Properties.
3176type BgpServiceCommunity struct {
3177	Resource
3178	// Properties of the BGP service community.
3179	Properties *BgpServiceCommunityPropertiesFormat `json:"properties,omitempty"`
3180}
3181
3182// Response for the ListServiceCommunity API service call.
3183type BgpServiceCommunityListResult struct {
3184	// The URL to get the next set of results.
3185	NextLink *string `json:"nextLink,omitempty"`
3186
3187	// A list of service community resources.
3188	Value *[]BgpServiceCommunity `json:"value,omitempty"`
3189}
3190
3191// BgpServiceCommunityListResultResponse is the response envelope for operations that return a BgpServiceCommunityListResult type.
3192type BgpServiceCommunityListResultResponse struct {
3193	// Response for the ListServiceCommunity API service call.
3194	BgpServiceCommunityListResult *BgpServiceCommunityListResult
3195
3196	// RawResponse contains the underlying HTTP response.
3197	RawResponse *http.Response
3198}
3199
3200// Properties of Service Community.
3201type BgpServiceCommunityPropertiesFormat struct {
3202	// A list of bgp communities.
3203	BgpCommunities *[]BgpCommunity `json:"bgpCommunities,omitempty"`
3204
3205	// The name of the bgp community. e.g. Skype.
3206	ServiceName *string `json:"serviceName,omitempty"`
3207}
3208
3209// BGP settings details.
3210type BgpSettings struct {
3211	// The BGP speaker's ASN.
3212	Asn *int64 `json:"asn,omitempty"`
3213
3214	// The BGP peering address and BGP identifier of this BGP speaker.
3215	BgpPeeringAddress *string `json:"bgpPeeringAddress,omitempty"`
3216
3217	// BGP peering address with IP configuration ID for virtual network gateway.
3218	BgpPeeringAddresses *[]IPConfigurationBgpPeeringAddress `json:"bgpPeeringAddresses,omitempty"`
3219
3220	// The weight added to routes learned from this BGP speaker.
3221	PeerWeight *int32 `json:"peerWeight,omitempty"`
3222}
3223
3224// Network Virtual Appliance Sku Properties.
3225type BreakOutCategoryPolicies struct {
3226	// Flag to control breakout of o365 allow category.
3227	Allow *bool `json:"allow,omitempty"`
3228
3229	// Flag to control breakout of o365 default category.
3230	Default *bool `json:"default,omitempty"`
3231
3232	// Flag to control breakout of o365 optimize category.
3233	Optimize *bool `json:"optimize,omitempty"`
3234}
3235
3236// Request body of the CheckPrivateLinkServiceVisibility API service call.
3237type CheckPrivateLinkServiceVisibilityRequest struct {
3238	// The alias of the private link service.
3239	PrivateLinkServiceAlias *string `json:"privateLinkServiceAlias,omitempty"`
3240}
3241
3242// An error response from the service.
3243type CloudError struct {
3244	// Cloud error body.
3245	InnerError *CloudErrorBody `json:"error,omitempty"`
3246}
3247
3248// Error implements the error interface for type CloudError.
3249func (e CloudError) Error() string {
3250	msg := ""
3251	if e.InnerError != nil {
3252		msg += "InnerError: \n"
3253		if e.InnerError.Code != nil {
3254			msg += fmt.Sprintf("\tCode: %v\n", *e.InnerError.Code)
3255		}
3256		if e.InnerError.Message != nil {
3257			msg += fmt.Sprintf("\tMessage: %v\n", *e.InnerError.Message)
3258		}
3259		if e.InnerError.Target != nil {
3260			msg += fmt.Sprintf("\tTarget: %v\n", *e.InnerError.Target)
3261		}
3262		if e.InnerError.Details != nil {
3263			msg += fmt.Sprintf("\tDetails: %v\n", *e.InnerError.Details)
3264		}
3265	}
3266	if msg == "" {
3267		msg = "missing error info"
3268	}
3269	return msg
3270}
3271
3272// An error response from the service.
3273type CloudErrorBody struct {
3274	// An identifier for the error. Codes are invariant and are intended to be consumed programmatically.
3275	Code *string `json:"code,omitempty"`
3276
3277	// A list of additional details about the error.
3278	Details *[]CloudErrorBody `json:"details,omitempty"`
3279
3280	// A message describing the error, intended to be suitable for display in a user interface.
3281	Message *string `json:"message,omitempty"`
3282
3283	// The target of the particular error. For example, the name of the property in error.
3284	Target *string `json:"target,omitempty"`
3285}
3286
3287type Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties struct {
3288	// READ-ONLY; The client id of user assigned identity.
3289	ClientID *string `json:"clientId,omitempty" azure:"ro"`
3290
3291	// READ-ONLY; The principal id of user assigned identity.
3292	PrincipalID *string `json:"principalId,omitempty" azure:"ro"`
3293}
3294
3295// Parameters that define the operation to create a connection monitor.
3296type ConnectionMonitor struct {
3297	// Connection monitor location.
3298	Location *string `json:"location,omitempty"`
3299
3300	// Properties of the connection monitor.
3301	Properties *ConnectionMonitorParameters `json:"properties,omitempty"`
3302
3303	// Connection monitor tags.
3304	Tags *map[string]string `json:"tags,omitempty"`
3305}
3306
3307// Describes the destination of connection monitor.
3308type ConnectionMonitorDestination struct {
3309	// Address of the connection monitor destination (IP or domain name).
3310	Address *string `json:"address,omitempty"`
3311
3312	// The destination port used by connection monitor.
3313	Port *int32 `json:"port,omitempty"`
3314
3315	// The ID of the resource used as the destination by connection monitor.
3316	ResourceID *string `json:"resourceId,omitempty"`
3317}
3318
3319// Describes the connection monitor endpoint.
3320type ConnectionMonitorEndpoint struct {
3321	// Address of the connection monitor endpoint (IP or domain name).
3322	Address *string `json:"address,omitempty"`
3323
3324	// Test coverage for the endpoint.
3325	CoverageLevel *CoverageLevel `json:"coverageLevel,omitempty"`
3326
3327	// Filter for sub-items within the endpoint.
3328	Filter *ConnectionMonitorEndpointFilter `json:"filter,omitempty"`
3329
3330	// The name of the connection monitor endpoint.
3331	Name *string `json:"name,omitempty"`
3332
3333	// Resource ID of the connection monitor endpoint.
3334	ResourceID *string `json:"resourceId,omitempty"`
3335
3336	// Endpoint scope.
3337	Scope *ConnectionMonitorEndpointScope `json:"scope,omitempty"`
3338
3339	// The endpoint type.
3340	Type *EndpointType `json:"type,omitempty"`
3341}
3342
3343// Describes the connection monitor endpoint filter.
3344type ConnectionMonitorEndpointFilter struct {
3345	// List of items in the filter.
3346	Items *[]ConnectionMonitorEndpointFilterItem `json:"items,omitempty"`
3347
3348	// The behavior of the endpoint filter. Currently only 'Include' is supported.
3349	Type *ConnectionMonitorEndpointFilterType `json:"type,omitempty"`
3350}
3351
3352// Describes the connection monitor endpoint filter item.
3353type ConnectionMonitorEndpointFilterItem struct {
3354	// The address of the filter item.
3355	Address *string `json:"address,omitempty"`
3356
3357	// The type of item included in the filter. Currently only 'AgentAddress' is supported.
3358	Type *ConnectionMonitorEndpointFilterItemType `json:"type,omitempty"`
3359}
3360
3361// Describes the connection monitor endpoint scope.
3362type ConnectionMonitorEndpointScope struct {
3363	// List of items which needs to be excluded from the endpoint scope.
3364	Exclude *[]ConnectionMonitorEndpointScopeItem `json:"exclude,omitempty"`
3365
3366	// List of items which needs to be included to the endpoint scope.
3367	Include *[]ConnectionMonitorEndpointScopeItem `json:"include,omitempty"`
3368}
3369
3370// Describes the connection monitor endpoint scope item.
3371type ConnectionMonitorEndpointScopeItem struct {
3372	// The address of the endpoint item. Supported types are IPv4/IPv6 subnet mask or IPv4/IPv6 IP address.
3373	Address *string `json:"address,omitempty"`
3374}
3375
3376// Describes the HTTP configuration.
3377type ConnectionMonitorHTTPConfiguration struct {
3378	// The HTTP method to use.
3379	Method *HTTPConfigurationMethod `json:"method,omitempty"`
3380
3381	// The path component of the URI. For instance, "/dir1/dir2".
3382	Path *string `json:"path,omitempty"`
3383
3384	// The port to connect to.
3385	Port *int32 `json:"port,omitempty"`
3386
3387	// Value indicating whether HTTPS is preferred over HTTP in cases where the choice is not explicit.
3388	PreferHTTPs *bool `json:"preferHTTPS,omitempty"`
3389
3390	// The HTTP headers to transmit with the request.
3391	RequestHeaders *[]HTTPHeader `json:"requestHeaders,omitempty"`
3392
3393	// HTTP status codes to consider successful. For instance, "2xx,301-304,418".
3394	ValidStatusCodeRanges *[]string `json:"validStatusCodeRanges,omitempty"`
3395}
3396
3397// Describes the ICMP configuration.
3398type ConnectionMonitorIcmpConfiguration struct {
3399	// Value indicating whether path evaluation with trace route should be disabled.
3400	DisableTraceRoute *bool `json:"disableTraceRoute,omitempty"`
3401}
3402
3403// List of connection monitors.
3404type ConnectionMonitorListResult struct {
3405	// Information about connection monitors.
3406	Value *[]ConnectionMonitorResult `json:"value,omitempty"`
3407}
3408
3409// ConnectionMonitorListResultResponse is the response envelope for operations that return a ConnectionMonitorListResult type.
3410type ConnectionMonitorListResultResponse struct {
3411	// List of connection monitors.
3412	ConnectionMonitorListResult *ConnectionMonitorListResult
3413
3414	// RawResponse contains the underlying HTTP response.
3415	RawResponse *http.Response
3416}
3417
3418// Describes a connection monitor output destination.
3419type ConnectionMonitorOutput struct {
3420	// Connection monitor output destination type. Currently, only "Workspace" is supported.
3421	Type *OutputType `json:"type,omitempty"`
3422
3423	// Describes the settings for producing output into a log analytics workspace.
3424	WorkspaceSettings *ConnectionMonitorWorkspaceSettings `json:"workspaceSettings,omitempty"`
3425}
3426
3427// Parameters that define the operation to create a connection monitor.
3428type ConnectionMonitorParameters struct {
3429	// Determines if the connection monitor will start automatically once created.
3430	AutoStart *bool `json:"autoStart,omitempty"`
3431
3432	// Describes the destination of connection monitor.
3433	Destination *ConnectionMonitorDestination `json:"destination,omitempty"`
3434
3435	// List of connection monitor endpoints.
3436	Endpoints *[]ConnectionMonitorEndpoint `json:"endpoints,omitempty"`
3437
3438	// Monitoring interval in seconds.
3439	MonitoringIntervalInSeconds *int32 `json:"monitoringIntervalInSeconds,omitempty"`
3440
3441	// Optional notes to be associated with the connection monitor.
3442	Notes *string `json:"notes,omitempty"`
3443
3444	// List of connection monitor outputs.
3445	Outputs *[]ConnectionMonitorOutput `json:"outputs,omitempty"`
3446
3447	// Describes the source of connection monitor.
3448	Source *ConnectionMonitorSource `json:"source,omitempty"`
3449
3450	// List of connection monitor test configurations.
3451	TestConfigurations *[]ConnectionMonitorTestConfiguration `json:"testConfigurations,omitempty"`
3452
3453	// List of connection monitor test groups.
3454	TestGroups *[]ConnectionMonitorTestGroup `json:"testGroups,omitempty"`
3455}
3456
3457func (c ConnectionMonitorParameters) marshalInternal() map[string]interface{} {
3458	objectMap := make(map[string]interface{})
3459	if c.AutoStart != nil {
3460		objectMap["autoStart"] = c.AutoStart
3461	}
3462	if c.Destination != nil {
3463		objectMap["destination"] = c.Destination
3464	}
3465	if c.Endpoints != nil {
3466		objectMap["endpoints"] = c.Endpoints
3467	}
3468	if c.MonitoringIntervalInSeconds != nil {
3469		objectMap["monitoringIntervalInSeconds"] = c.MonitoringIntervalInSeconds
3470	}
3471	if c.Notes != nil {
3472		objectMap["notes"] = c.Notes
3473	}
3474	if c.Outputs != nil {
3475		objectMap["outputs"] = c.Outputs
3476	}
3477	if c.Source != nil {
3478		objectMap["source"] = c.Source
3479	}
3480	if c.TestConfigurations != nil {
3481		objectMap["testConfigurations"] = c.TestConfigurations
3482	}
3483	if c.TestGroups != nil {
3484		objectMap["testGroups"] = c.TestGroups
3485	}
3486	return objectMap
3487}
3488
3489func (c *ConnectionMonitorParameters) unmarshalInternal(rawMsg map[string]*json.RawMessage) error {
3490	for key, val := range rawMsg {
3491		var err error
3492		switch key {
3493		case "autoStart":
3494			if val != nil {
3495				err = json.Unmarshal(*val, &c.AutoStart)
3496			}
3497			delete(rawMsg, key)
3498		case "destination":
3499			if val != nil {
3500				err = json.Unmarshal(*val, &c.Destination)
3501			}
3502			delete(rawMsg, key)
3503		case "endpoints":
3504			if val != nil {
3505				err = json.Unmarshal(*val, &c.Endpoints)
3506			}
3507			delete(rawMsg, key)
3508		case "monitoringIntervalInSeconds":
3509			if val != nil {
3510				err = json.Unmarshal(*val, &c.MonitoringIntervalInSeconds)
3511			}
3512			delete(rawMsg, key)
3513		case "notes":
3514			if val != nil {
3515				err = json.Unmarshal(*val, &c.Notes)
3516			}
3517			delete(rawMsg, key)
3518		case "outputs":
3519			if val != nil {
3520				err = json.Unmarshal(*val, &c.Outputs)
3521			}
3522			delete(rawMsg, key)
3523		case "source":
3524			if val != nil {
3525				err = json.Unmarshal(*val, &c.Source)
3526			}
3527			delete(rawMsg, key)
3528		case "testConfigurations":
3529			if val != nil {
3530				err = json.Unmarshal(*val, &c.TestConfigurations)
3531			}
3532			delete(rawMsg, key)
3533		case "testGroups":
3534			if val != nil {
3535				err = json.Unmarshal(*val, &c.TestGroups)
3536			}
3537			delete(rawMsg, key)
3538		}
3539		if err != nil {
3540			return err
3541		}
3542	}
3543	return nil
3544}
3545
3546// List of connection states snapshots.
3547type ConnectionMonitorQueryResult struct {
3548	// Status of connection monitor source.
3549	SourceStatus *ConnectionMonitorSourceStatus `json:"sourceStatus,omitempty"`
3550
3551	// Information about connection states.
3552	States *[]ConnectionStateSnapshot `json:"states,omitempty"`
3553}
3554
3555// ConnectionMonitorQueryResultPollerResponse is the response envelope for operations that asynchronously return a ConnectionMonitorQueryResult type.
3556type ConnectionMonitorQueryResultPollerResponse struct {
3557	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
3558	PollUntilDone func(ctx context.Context, frequency time.Duration) (ConnectionMonitorQueryResultResponse, error)
3559
3560	// Poller contains an initialized poller.
3561	Poller ConnectionMonitorQueryResultPoller
3562
3563	// RawResponse contains the underlying HTTP response.
3564	RawResponse *http.Response
3565}
3566
3567// ConnectionMonitorQueryResultResponse is the response envelope for operations that return a ConnectionMonitorQueryResult type.
3568type ConnectionMonitorQueryResultResponse struct {
3569	// List of connection states snapshots.
3570	ConnectionMonitorQueryResult *ConnectionMonitorQueryResult
3571
3572	// RawResponse contains the underlying HTTP response.
3573	RawResponse *http.Response
3574}
3575
3576// Information about the connection monitor.
3577type ConnectionMonitorResult struct {
3578	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
3579	Etag *string `json:"etag,omitempty" azure:"ro"`
3580
3581	// READ-ONLY; ID of the connection monitor.
3582	ID *string `json:"id,omitempty" azure:"ro"`
3583
3584	// Connection monitor location.
3585	Location *string `json:"location,omitempty"`
3586
3587	// READ-ONLY; Name of the connection monitor.
3588	Name *string `json:"name,omitempty" azure:"ro"`
3589
3590	// Properties of the connection monitor result.
3591	Properties *ConnectionMonitorResultProperties `json:"properties,omitempty"`
3592
3593	// Connection monitor tags.
3594	Tags *map[string]string `json:"tags,omitempty"`
3595
3596	// READ-ONLY; Connection monitor type.
3597	Type *string `json:"type,omitempty" azure:"ro"`
3598}
3599
3600// ConnectionMonitorResultPollerResponse is the response envelope for operations that asynchronously return a ConnectionMonitorResult type.
3601type ConnectionMonitorResultPollerResponse struct {
3602	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
3603	PollUntilDone func(ctx context.Context, frequency time.Duration) (ConnectionMonitorResultResponse, error)
3604
3605	// Poller contains an initialized poller.
3606	Poller ConnectionMonitorResultPoller
3607
3608	// RawResponse contains the underlying HTTP response.
3609	RawResponse *http.Response
3610}
3611
3612// Describes the properties of a connection monitor.
3613type ConnectionMonitorResultProperties struct {
3614	ConnectionMonitorParameters
3615	// READ-ONLY; Type of connection monitor.
3616	ConnectionMonitorType *ConnectionMonitorType `json:"connectionMonitorType,omitempty" azure:"ro"`
3617
3618	// READ-ONLY; The monitoring status of the connection monitor.
3619	MonitoringStatus *string `json:"monitoringStatus,omitempty" azure:"ro"`
3620
3621	// READ-ONLY; The provisioning state of the connection monitor.
3622	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
3623
3624	// READ-ONLY; The date and time when the connection monitor was started.
3625	StartTime *time.Time `json:"startTime,omitempty" azure:"ro"`
3626}
3627
3628// MarshalJSON implements the json.Marshaller interface for type ConnectionMonitorResultProperties.
3629func (c ConnectionMonitorResultProperties) MarshalJSON() ([]byte, error) {
3630	objectMap := c.ConnectionMonitorParameters.marshalInternal()
3631	if c.ConnectionMonitorType != nil {
3632		objectMap["connectionMonitorType"] = c.ConnectionMonitorType
3633	}
3634	if c.MonitoringStatus != nil {
3635		objectMap["monitoringStatus"] = c.MonitoringStatus
3636	}
3637	if c.ProvisioningState != nil {
3638		objectMap["provisioningState"] = c.ProvisioningState
3639	}
3640	if c.StartTime != nil {
3641		objectMap["startTime"] = (*timeRFC3339)(c.StartTime)
3642	}
3643	return json.Marshal(objectMap)
3644}
3645
3646// UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionMonitorResultProperties.
3647func (c *ConnectionMonitorResultProperties) UnmarshalJSON(data []byte) error {
3648	var rawMsg map[string]*json.RawMessage
3649	if err := json.Unmarshal(data, &rawMsg); err != nil {
3650		return err
3651	}
3652	for key, val := range rawMsg {
3653		var err error
3654		switch key {
3655		case "connectionMonitorType":
3656			if val != nil {
3657				err = json.Unmarshal(*val, &c.ConnectionMonitorType)
3658			}
3659			delete(rawMsg, key)
3660		case "monitoringStatus":
3661			if val != nil {
3662				err = json.Unmarshal(*val, &c.MonitoringStatus)
3663			}
3664			delete(rawMsg, key)
3665		case "provisioningState":
3666			if val != nil {
3667				err = json.Unmarshal(*val, &c.ProvisioningState)
3668			}
3669			delete(rawMsg, key)
3670		case "startTime":
3671			if val != nil {
3672				var aux timeRFC3339
3673				err = json.Unmarshal(*val, &aux)
3674				c.StartTime = (*time.Time)(&aux)
3675			}
3676			delete(rawMsg, key)
3677		}
3678		if err != nil {
3679			return err
3680		}
3681	}
3682	return c.ConnectionMonitorParameters.unmarshalInternal(rawMsg)
3683}
3684
3685// ConnectionMonitorResultResponse is the response envelope for operations that return a ConnectionMonitorResult type.
3686type ConnectionMonitorResultResponse struct {
3687	// Information about the connection monitor.
3688	ConnectionMonitorResult *ConnectionMonitorResult
3689
3690	// RawResponse contains the underlying HTTP response.
3691	RawResponse *http.Response
3692}
3693
3694// Describes the source of connection monitor.
3695type ConnectionMonitorSource struct {
3696	// The source port used by connection monitor.
3697	Port *int32 `json:"port,omitempty"`
3698
3699	// The ID of the resource used as the source by connection monitor.
3700	ResourceID *string `json:"resourceId,omitempty"`
3701}
3702
3703// Describes the threshold for declaring a test successful.
3704type ConnectionMonitorSuccessThreshold struct {
3705	// The maximum percentage of failed checks permitted for a test to evaluate as successful.
3706	ChecksFailedPercent *int32 `json:"checksFailedPercent,omitempty"`
3707
3708	// The maximum round-trip time in milliseconds permitted for a test to evaluate as successful.
3709	RoundTripTimeMS *float32 `json:"roundTripTimeMs,omitempty"`
3710}
3711
3712// Describes the TCP configuration.
3713type ConnectionMonitorTCPConfiguration struct {
3714	// Destination port behavior.
3715	DestinationPortBehavior *DestinationPortBehavior `json:"destinationPortBehavior,omitempty"`
3716
3717	// Value indicating whether path evaluation with trace route should be disabled.
3718	DisableTraceRoute *bool `json:"disableTraceRoute,omitempty"`
3719
3720	// The port to connect to.
3721	Port *int32 `json:"port,omitempty"`
3722}
3723
3724// Describes a connection monitor test configuration.
3725type ConnectionMonitorTestConfiguration struct {
3726	// The parameters used to perform test evaluation over HTTP.
3727	HTTPConfiguration *ConnectionMonitorHTTPConfiguration `json:"httpConfiguration,omitempty"`
3728
3729	// The parameters used to perform test evaluation over ICMP.
3730	IcmpConfiguration *ConnectionMonitorIcmpConfiguration `json:"icmpConfiguration,omitempty"`
3731
3732	// The name of the connection monitor test configuration.
3733	Name *string `json:"name,omitempty"`
3734
3735	// The preferred IP version to use in test evaluation. The connection monitor may choose to use a different version depending on other parameters.
3736	PreferredIPVersion *PreferredIPVersion `json:"preferredIPVersion,omitempty"`
3737
3738	// The protocol to use in test evaluation.
3739	Protocol *ConnectionMonitorTestConfigurationProtocol `json:"protocol,omitempty"`
3740
3741	// The threshold for declaring a test successful.
3742	SuccessThreshold *ConnectionMonitorSuccessThreshold `json:"successThreshold,omitempty"`
3743
3744	// The parameters used to perform test evaluation over TCP.
3745	TCPConfiguration *ConnectionMonitorTCPConfiguration `json:"tcpConfiguration,omitempty"`
3746
3747	// The frequency of test evaluation, in seconds.
3748	TestFrequencySec *int32 `json:"testFrequencySec,omitempty"`
3749}
3750
3751// Describes the connection monitor test group.
3752type ConnectionMonitorTestGroup struct {
3753	// List of destination endpoint names.
3754	Destinations *[]string `json:"destinations,omitempty"`
3755
3756	// Value indicating whether test group is disabled.
3757	Disable *bool `json:"disable,omitempty"`
3758
3759	// The name of the connection monitor test group.
3760	Name *string `json:"name,omitempty"`
3761
3762	// List of source endpoint names.
3763	Sources *[]string `json:"sources,omitempty"`
3764
3765	// List of test configuration names.
3766	TestConfigurations *[]string `json:"testConfigurations,omitempty"`
3767}
3768
3769// Describes the settings for producing output into a log analytics workspace.
3770type ConnectionMonitorWorkspaceSettings struct {
3771	// Log analytics workspace resource ID.
3772	WorkspaceResourceID *string `json:"workspaceResourceId,omitempty"`
3773}
3774
3775// ConnectionMonitorsBeginCreateOrUpdateOptions contains the optional parameters for the ConnectionMonitors.BeginCreateOrUpdate method.
3776type ConnectionMonitorsBeginCreateOrUpdateOptions struct {
3777	// Value indicating whether connection monitor V1 should be migrated to V2 format.
3778	Migrate *string
3779}
3780
3781// ConnectionMonitorsBeginDeleteOptions contains the optional parameters for the ConnectionMonitors.BeginDelete method.
3782type ConnectionMonitorsBeginDeleteOptions struct {
3783	// placeholder for future optional parameters
3784}
3785
3786// ConnectionMonitorsBeginQueryOptions contains the optional parameters for the ConnectionMonitors.BeginQuery method.
3787type ConnectionMonitorsBeginQueryOptions struct {
3788	// placeholder for future optional parameters
3789}
3790
3791// ConnectionMonitorsBeginStartOptions contains the optional parameters for the ConnectionMonitors.BeginStart method.
3792type ConnectionMonitorsBeginStartOptions struct {
3793	// placeholder for future optional parameters
3794}
3795
3796// ConnectionMonitorsBeginStopOptions contains the optional parameters for the ConnectionMonitors.BeginStop method.
3797type ConnectionMonitorsBeginStopOptions struct {
3798	// placeholder for future optional parameters
3799}
3800
3801// ConnectionMonitorsGetOptions contains the optional parameters for the ConnectionMonitors.Get method.
3802type ConnectionMonitorsGetOptions struct {
3803	// placeholder for future optional parameters
3804}
3805
3806// ConnectionMonitorsListOptions contains the optional parameters for the ConnectionMonitors.List method.
3807type ConnectionMonitorsListOptions struct {
3808	// placeholder for future optional parameters
3809}
3810
3811// ConnectionMonitorsUpdateTagsOptions contains the optional parameters for the ConnectionMonitors.UpdateTags method.
3812type ConnectionMonitorsUpdateTagsOptions struct {
3813	// placeholder for future optional parameters
3814}
3815
3816// The virtual network connection reset shared key.
3817type ConnectionResetSharedKey struct {
3818	// The virtual network connection reset shared key length, should between 1 and 128.
3819	KeyLength *int32 `json:"keyLength,omitempty"`
3820}
3821
3822// ConnectionResetSharedKeyPollerResponse is the response envelope for operations that asynchronously return a ConnectionResetSharedKey type.
3823type ConnectionResetSharedKeyPollerResponse struct {
3824	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
3825	PollUntilDone func(ctx context.Context, frequency time.Duration) (ConnectionResetSharedKeyResponse, error)
3826
3827	// Poller contains an initialized poller.
3828	Poller ConnectionResetSharedKeyPoller
3829
3830	// RawResponse contains the underlying HTTP response.
3831	RawResponse *http.Response
3832}
3833
3834// ConnectionResetSharedKeyResponse is the response envelope for operations that return a ConnectionResetSharedKey type.
3835type ConnectionResetSharedKeyResponse struct {
3836	// The virtual network connection reset shared key.
3837	ConnectionResetSharedKey *ConnectionResetSharedKey
3838
3839	// RawResponse contains the underlying HTTP response.
3840	RawResponse *http.Response
3841}
3842
3843// Response for GetConnectionSharedKey API service call.
3844type ConnectionSharedKey struct {
3845	SubResource
3846	// The virtual network connection shared key value.
3847	Value *string `json:"value,omitempty"`
3848}
3849
3850// ConnectionSharedKeyPollerResponse is the response envelope for operations that asynchronously return a ConnectionSharedKey type.
3851type ConnectionSharedKeyPollerResponse struct {
3852	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
3853	PollUntilDone func(ctx context.Context, frequency time.Duration) (ConnectionSharedKeyResponse, error)
3854
3855	// Poller contains an initialized poller.
3856	Poller ConnectionSharedKeyPoller
3857
3858	// RawResponse contains the underlying HTTP response.
3859	RawResponse *http.Response
3860}
3861
3862// ConnectionSharedKeyResponse is the response envelope for operations that return a ConnectionSharedKey type.
3863type ConnectionSharedKeyResponse struct {
3864	// Response for GetConnectionSharedKey API service call.
3865	ConnectionSharedKey *ConnectionSharedKey
3866
3867	// RawResponse contains the underlying HTTP response.
3868	RawResponse *http.Response
3869}
3870
3871// Connection state snapshot.
3872type ConnectionStateSnapshot struct {
3873	// Average latency in ms.
3874	AvgLatencyInMS *int64 `json:"avgLatencyInMs,omitempty"`
3875
3876	// The connection state.
3877	ConnectionState *ConnectionState `json:"connectionState,omitempty"`
3878
3879	// The end time of the connection snapshot.
3880	EndTime *time.Time `json:"endTime,omitempty"`
3881
3882	// Connectivity analysis evaluation state.
3883	EvaluationState *EvaluationState `json:"evaluationState,omitempty"`
3884
3885	// READ-ONLY; List of hops between the source and the destination.
3886	Hops *[]ConnectivityHop `json:"hops,omitempty" azure:"ro"`
3887
3888	// Maximum latency in ms.
3889	MaxLatencyInMS *int64 `json:"maxLatencyInMs,omitempty"`
3890
3891	// Minimum latency in ms.
3892	MinLatencyInMS *int64 `json:"minLatencyInMs,omitempty"`
3893
3894	// The number of failed probes.
3895	ProbesFailed *int64 `json:"probesFailed,omitempty"`
3896
3897	// The number of sent probes.
3898	ProbesSent *int64 `json:"probesSent,omitempty"`
3899
3900	// The start time of the connection snapshot.
3901	StartTime *time.Time `json:"startTime,omitempty"`
3902}
3903
3904// MarshalJSON implements the json.Marshaller interface for type ConnectionStateSnapshot.
3905func (c ConnectionStateSnapshot) MarshalJSON() ([]byte, error) {
3906	objectMap := make(map[string]interface{})
3907	if c.AvgLatencyInMS != nil {
3908		objectMap["avgLatencyInMs"] = c.AvgLatencyInMS
3909	}
3910	if c.ConnectionState != nil {
3911		objectMap["connectionState"] = c.ConnectionState
3912	}
3913	if c.EndTime != nil {
3914		objectMap["endTime"] = (*timeRFC3339)(c.EndTime)
3915	}
3916	if c.EvaluationState != nil {
3917		objectMap["evaluationState"] = c.EvaluationState
3918	}
3919	if c.Hops != nil {
3920		objectMap["hops"] = c.Hops
3921	}
3922	if c.MaxLatencyInMS != nil {
3923		objectMap["maxLatencyInMs"] = c.MaxLatencyInMS
3924	}
3925	if c.MinLatencyInMS != nil {
3926		objectMap["minLatencyInMs"] = c.MinLatencyInMS
3927	}
3928	if c.ProbesFailed != nil {
3929		objectMap["probesFailed"] = c.ProbesFailed
3930	}
3931	if c.ProbesSent != nil {
3932		objectMap["probesSent"] = c.ProbesSent
3933	}
3934	if c.StartTime != nil {
3935		objectMap["startTime"] = (*timeRFC3339)(c.StartTime)
3936	}
3937	return json.Marshal(objectMap)
3938}
3939
3940// UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionStateSnapshot.
3941func (c *ConnectionStateSnapshot) UnmarshalJSON(data []byte) error {
3942	var rawMsg map[string]*json.RawMessage
3943	if err := json.Unmarshal(data, &rawMsg); err != nil {
3944		return err
3945	}
3946	for key, val := range rawMsg {
3947		var err error
3948		switch key {
3949		case "avgLatencyInMs":
3950			if val != nil {
3951				err = json.Unmarshal(*val, &c.AvgLatencyInMS)
3952			}
3953			delete(rawMsg, key)
3954		case "connectionState":
3955			if val != nil {
3956				err = json.Unmarshal(*val, &c.ConnectionState)
3957			}
3958			delete(rawMsg, key)
3959		case "endTime":
3960			if val != nil {
3961				var aux timeRFC3339
3962				err = json.Unmarshal(*val, &aux)
3963				c.EndTime = (*time.Time)(&aux)
3964			}
3965			delete(rawMsg, key)
3966		case "evaluationState":
3967			if val != nil {
3968				err = json.Unmarshal(*val, &c.EvaluationState)
3969			}
3970			delete(rawMsg, key)
3971		case "hops":
3972			if val != nil {
3973				err = json.Unmarshal(*val, &c.Hops)
3974			}
3975			delete(rawMsg, key)
3976		case "maxLatencyInMs":
3977			if val != nil {
3978				err = json.Unmarshal(*val, &c.MaxLatencyInMS)
3979			}
3980			delete(rawMsg, key)
3981		case "minLatencyInMs":
3982			if val != nil {
3983				err = json.Unmarshal(*val, &c.MinLatencyInMS)
3984			}
3985			delete(rawMsg, key)
3986		case "probesFailed":
3987			if val != nil {
3988				err = json.Unmarshal(*val, &c.ProbesFailed)
3989			}
3990			delete(rawMsg, key)
3991		case "probesSent":
3992			if val != nil {
3993				err = json.Unmarshal(*val, &c.ProbesSent)
3994			}
3995			delete(rawMsg, key)
3996		case "startTime":
3997			if val != nil {
3998				var aux timeRFC3339
3999				err = json.Unmarshal(*val, &aux)
4000				c.StartTime = (*time.Time)(&aux)
4001			}
4002			delete(rawMsg, key)
4003		}
4004		if err != nil {
4005			return err
4006		}
4007	}
4008	return nil
4009}
4010
4011// Parameters that define destination of connection.
4012type ConnectivityDestination struct {
4013	// The IP address or URI the resource to which a connection attempt will be made.
4014	Address *string `json:"address,omitempty"`
4015
4016	// Port on which check connectivity will be performed.
4017	Port *int32 `json:"port,omitempty"`
4018
4019	// The ID of the resource to which a connection attempt will be made.
4020	ResourceID *string `json:"resourceId,omitempty"`
4021}
4022
4023// Information about a hop between the source and the destination.
4024type ConnectivityHop struct {
4025	// READ-ONLY; The IP address of the hop.
4026	Address *string `json:"address,omitempty" azure:"ro"`
4027
4028	// READ-ONLY; The ID of the hop.
4029	ID *string `json:"id,omitempty" azure:"ro"`
4030
4031	// READ-ONLY; List of issues.
4032	Issues *[]ConnectivityIssue `json:"issues,omitempty" azure:"ro"`
4033
4034	// READ-ONLY; List of hop links.
4035	Links *[]HopLink `json:"links,omitempty" azure:"ro"`
4036
4037	// READ-ONLY; List of next hop identifiers.
4038	NextHopIDs *[]string `json:"nextHopIds,omitempty" azure:"ro"`
4039
4040	// READ-ONLY; List of previous hop identifiers.
4041	PreviousHopIDs *[]string `json:"previousHopIds,omitempty" azure:"ro"`
4042
4043	// READ-ONLY; List of previous hop links.
4044	PreviousLinks *[]HopLink `json:"previousLinks,omitempty" azure:"ro"`
4045
4046	// READ-ONLY; The ID of the resource corresponding to this hop.
4047	ResourceID *string `json:"resourceId,omitempty" azure:"ro"`
4048
4049	// READ-ONLY; The type of the hop.
4050	Type *string `json:"type,omitempty" azure:"ro"`
4051}
4052
4053// Information on the connectivity status.
4054type ConnectivityInformation struct {
4055	// READ-ONLY; Average latency in milliseconds.
4056	AvgLatencyInMS *int32 `json:"avgLatencyInMs,omitempty" azure:"ro"`
4057
4058	// READ-ONLY; The connection status.
4059	ConnectionStatus *ConnectionStatus `json:"connectionStatus,omitempty" azure:"ro"`
4060
4061	// READ-ONLY; List of hops between the source and the destination.
4062	Hops *[]ConnectivityHop `json:"hops,omitempty" azure:"ro"`
4063
4064	// READ-ONLY; Maximum latency in milliseconds.
4065	MaxLatencyInMS *int32 `json:"maxLatencyInMs,omitempty" azure:"ro"`
4066
4067	// READ-ONLY; Minimum latency in milliseconds.
4068	MinLatencyInMS *int32 `json:"minLatencyInMs,omitempty" azure:"ro"`
4069
4070	// READ-ONLY; Number of failed probes.
4071	ProbesFailed *int32 `json:"probesFailed,omitempty" azure:"ro"`
4072
4073	// READ-ONLY; Total number of probes sent.
4074	ProbesSent *int32 `json:"probesSent,omitempty" azure:"ro"`
4075}
4076
4077// ConnectivityInformationPollerResponse is the response envelope for operations that asynchronously return a ConnectivityInformation type.
4078type ConnectivityInformationPollerResponse struct {
4079	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
4080	PollUntilDone func(ctx context.Context, frequency time.Duration) (ConnectivityInformationResponse, error)
4081
4082	// Poller contains an initialized poller.
4083	Poller ConnectivityInformationPoller
4084
4085	// RawResponse contains the underlying HTTP response.
4086	RawResponse *http.Response
4087}
4088
4089// ConnectivityInformationResponse is the response envelope for operations that return a ConnectivityInformation type.
4090type ConnectivityInformationResponse struct {
4091	// Information on the connectivity status.
4092	ConnectivityInformation *ConnectivityInformation
4093
4094	// RawResponse contains the underlying HTTP response.
4095	RawResponse *http.Response
4096}
4097
4098// Information about an issue encountered in the process of checking for connectivity.
4099type ConnectivityIssue struct {
4100	// READ-ONLY; Provides additional context on the issue.
4101	Context *[]map[string]string `json:"context,omitempty" azure:"ro"`
4102
4103	// READ-ONLY; The origin of the issue.
4104	Origin *Origin `json:"origin,omitempty" azure:"ro"`
4105
4106	// READ-ONLY; The severity of the issue.
4107	Severity *Severity `json:"severity,omitempty" azure:"ro"`
4108
4109	// READ-ONLY; The type of issue.
4110	Type *IssueType `json:"type,omitempty" azure:"ro"`
4111}
4112
4113// Parameters that determine how the connectivity check will be performed.
4114type ConnectivityParameters struct {
4115	// The destination of connection.
4116	Destination *ConnectivityDestination `json:"destination,omitempty"`
4117
4118	// Preferred IP version of the connection.
4119	PreferredIPVersion *IPVersion `json:"preferredIPVersion,omitempty"`
4120
4121	// Network protocol.
4122	Protocol *Protocol `json:"protocol,omitempty"`
4123
4124	// Configuration of the protocol.
4125	ProtocolConfiguration *ProtocolConfiguration `json:"protocolConfiguration,omitempty"`
4126
4127	// The source of the connection.
4128	Source *ConnectivitySource `json:"source,omitempty"`
4129}
4130
4131// Parameters that define the source of the connection.
4132type ConnectivitySource struct {
4133	// The source port from which a connectivity check will be performed.
4134	Port *int32 `json:"port,omitempty"`
4135
4136	// The ID of the resource from which a connectivity check will be initiated.
4137	ResourceID *string `json:"resourceId,omitempty"`
4138}
4139
4140// Reference to container resource in remote resource provider.
4141type Container struct {
4142	SubResource
4143}
4144
4145// Container network interface child resource.
4146type ContainerNetworkInterface struct {
4147	SubResource
4148	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4149	Etag *string `json:"etag,omitempty" azure:"ro"`
4150
4151	// The name of the resource. This name can be used to access the resource.
4152	Name *string `json:"name,omitempty"`
4153
4154	// Container network interface properties.
4155	Properties *ContainerNetworkInterfacePropertiesFormat `json:"properties,omitempty"`
4156
4157	// READ-ONLY; Sub Resource type.
4158	Type *string `json:"type,omitempty" azure:"ro"`
4159}
4160
4161// Container network interface configuration child resource.
4162type ContainerNetworkInterfaceConfiguration struct {
4163	SubResource
4164	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4165	Etag *string `json:"etag,omitempty" azure:"ro"`
4166
4167	// The name of the resource. This name can be used to access the resource.
4168	Name *string `json:"name,omitempty"`
4169
4170	// Container network interface configuration properties.
4171	Properties *ContainerNetworkInterfaceConfigurationPropertiesFormat `json:"properties,omitempty"`
4172
4173	// READ-ONLY; Sub Resource type.
4174	Type *string `json:"type,omitempty" azure:"ro"`
4175}
4176
4177// Container network interface configuration properties.
4178type ContainerNetworkInterfaceConfigurationPropertiesFormat struct {
4179	// A list of container network interfaces created from this container network interface configuration.
4180	ContainerNetworkInterfaces *[]SubResource `json:"containerNetworkInterfaces,omitempty"`
4181
4182	// A list of ip configurations of the container network interface configuration.
4183	IPConfigurations *[]IPConfigurationProfile `json:"ipConfigurations,omitempty"`
4184
4185	// READ-ONLY; The provisioning state of the container network interface configuration resource.
4186	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
4187}
4188
4189// The ip configuration for a container network interface.
4190type ContainerNetworkInterfaceIPConfiguration struct {
4191	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4192	Etag *string `json:"etag,omitempty" azure:"ro"`
4193
4194	// The name of the resource. This name can be used to access the resource.
4195	Name *string `json:"name,omitempty"`
4196
4197	// Properties of the container network interface IP configuration.
4198	Properties *ContainerNetworkInterfaceIPConfigurationPropertiesFormat `json:"properties,omitempty"`
4199
4200	// READ-ONLY; Sub Resource type.
4201	Type *string `json:"type,omitempty" azure:"ro"`
4202}
4203
4204// Properties of the container network interface IP configuration.
4205type ContainerNetworkInterfaceIPConfigurationPropertiesFormat struct {
4206	// READ-ONLY; The provisioning state of the container network interface IP configuration resource.
4207	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
4208}
4209
4210// Properties of container network interface.
4211type ContainerNetworkInterfacePropertiesFormat struct {
4212	// Reference to the container to which this container network interface is attached.
4213	Container *SubResource `json:"container,omitempty"`
4214
4215	// READ-ONLY; Container network interface configuration from which this container network interface is created.
4216	ContainerNetworkInterfaceConfiguration *ContainerNetworkInterfaceConfiguration `json:"containerNetworkInterfaceConfiguration,omitempty" azure:"ro"`
4217
4218	// READ-ONLY; Reference to the ip configuration on this container nic.
4219	IPConfigurations *[]ContainerNetworkInterfaceIPConfiguration `json:"ipConfigurations,omitempty" azure:"ro"`
4220
4221	// READ-ONLY; The provisioning state of the container network interface resource.
4222	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
4223}
4224
4225// Contains custom Dns resolution configuration from customer.
4226type CustomDNSConfigPropertiesFormat struct {
4227	// Fqdn that resolves to private endpoint ip address.
4228	Fqdn *string `json:"fqdn,omitempty"`
4229
4230	// A list of private ip addresses of the private endpoint.
4231	IPAddresses *[]string `json:"ipAddresses,omitempty"`
4232}
4233
4234// Custom IP prefix resource.
4235type CustomIPPrefix struct {
4236	Resource
4237	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4238	Etag *string `json:"etag,omitempty" azure:"ro"`
4239
4240	// Custom IP prefix properties.
4241	Properties *CustomIPPrefixPropertiesFormat `json:"properties,omitempty"`
4242
4243	// A list of availability zones denoting the IP allocated for the resource needs to come from.
4244	Zones *[]string `json:"zones,omitempty"`
4245}
4246
4247// Response for ListCustomIpPrefixes API service call.
4248type CustomIPPrefixListResult struct {
4249	// The URL to get the next set of results.
4250	NextLink *string `json:"nextLink,omitempty"`
4251
4252	// A list of Custom IP prefixes that exists in a resource group.
4253	Value *[]CustomIPPrefix `json:"value,omitempty"`
4254}
4255
4256// CustomIPPrefixListResultResponse is the response envelope for operations that return a CustomIPPrefixListResult type.
4257type CustomIPPrefixListResultResponse struct {
4258	// Response for ListCustomIpPrefixes API service call.
4259	CustomIPPrefixListResult *CustomIPPrefixListResult
4260
4261	// RawResponse contains the underlying HTTP response.
4262	RawResponse *http.Response
4263}
4264
4265// CustomIPPrefixPollerResponse is the response envelope for operations that asynchronously return a CustomIPPrefix type.
4266type CustomIPPrefixPollerResponse struct {
4267	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
4268	PollUntilDone func(ctx context.Context, frequency time.Duration) (CustomIPPrefixResponse, error)
4269
4270	// Poller contains an initialized poller.
4271	Poller CustomIPPrefixPoller
4272
4273	// RawResponse contains the underlying HTTP response.
4274	RawResponse *http.Response
4275}
4276
4277// Custom IP prefix properties.
4278type CustomIPPrefixPropertiesFormat struct {
4279	// The prefix range in CIDR notation. Should include the start address and the prefix length.
4280	Cidr *string `json:"cidr,omitempty"`
4281
4282	// The commissioned state of the Custom IP Prefix.
4283	CommissionedState *CommissionedState `json:"commissionedState,omitempty"`
4284
4285	// READ-ONLY; The provisioning state of the custom IP prefix resource.
4286	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
4287
4288	// READ-ONLY; The list of all referenced PublicIpPrefixes.
4289	PublicIPPrefixes *[]SubResource `json:"publicIpPrefixes,omitempty" azure:"ro"`
4290
4291	// READ-ONLY; The resource GUID property of the custom IP prefix resource.
4292	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
4293}
4294
4295// CustomIPPrefixResponse is the response envelope for operations that return a CustomIPPrefix type.
4296type CustomIPPrefixResponse struct {
4297	// Custom IP prefix resource.
4298	CustomIPPrefix *CustomIPPrefix
4299
4300	// RawResponse contains the underlying HTTP response.
4301	RawResponse *http.Response
4302}
4303
4304// CustomIPPrefixesBeginCreateOrUpdateOptions contains the optional parameters for the CustomIPPrefixes.BeginCreateOrUpdate method.
4305type CustomIPPrefixesBeginCreateOrUpdateOptions struct {
4306	// placeholder for future optional parameters
4307}
4308
4309// CustomIPPrefixesBeginDeleteOptions contains the optional parameters for the CustomIPPrefixes.BeginDelete method.
4310type CustomIPPrefixesBeginDeleteOptions struct {
4311	// placeholder for future optional parameters
4312}
4313
4314// CustomIPPrefixesGetOptions contains the optional parameters for the CustomIPPrefixes.Get method.
4315type CustomIPPrefixesGetOptions struct {
4316	// Expands referenced resources.
4317	Expand *string
4318}
4319
4320// CustomIPPrefixesListAllOptions contains the optional parameters for the CustomIPPrefixes.ListAll method.
4321type CustomIPPrefixesListAllOptions struct {
4322	// placeholder for future optional parameters
4323}
4324
4325// CustomIPPrefixesListOptions contains the optional parameters for the CustomIPPrefixes.List method.
4326type CustomIPPrefixesListOptions struct {
4327	// placeholder for future optional parameters
4328}
4329
4330// CustomIPPrefixesUpdateTagsOptions contains the optional parameters for the CustomIPPrefixes.UpdateTags method.
4331type CustomIPPrefixesUpdateTagsOptions struct {
4332	// placeholder for future optional parameters
4333}
4334
4335// Response for the CheckDnsNameAvailability API service call.
4336type DNSNameAvailabilityResult struct {
4337	// Domain availability (True/False).
4338	Available *bool `json:"available,omitempty"`
4339}
4340
4341// DNSNameAvailabilityResultResponse is the response envelope for operations that return a DNSNameAvailabilityResult type.
4342type DNSNameAvailabilityResultResponse struct {
4343	// Response for the CheckDnsNameAvailability API service call.
4344	DNSNameAvailabilityResult *DNSNameAvailabilityResult
4345
4346	// RawResponse contains the underlying HTTP response.
4347	RawResponse *http.Response
4348}
4349
4350// DNS Proxy Settings in Firewall Policy.
4351type DNSSettings struct {
4352	// Enable DNS Proxy on Firewalls attached to the Firewall Policy.
4353	EnableProxy *bool `json:"enableProxy,omitempty"`
4354
4355	// FQDNs in Network Rules are supported when set to true.
4356	RequireProxyForNetworkRules *bool `json:"requireProxyForNetworkRules,omitempty"`
4357
4358	// List of Custom DNS Servers.
4359	Servers *[]string `json:"servers,omitempty"`
4360}
4361
4362// DdosCustomPoliciesBeginCreateOrUpdateOptions contains the optional parameters for the DdosCustomPolicies.BeginCreateOrUpdate method.
4363type DdosCustomPoliciesBeginCreateOrUpdateOptions struct {
4364	// placeholder for future optional parameters
4365}
4366
4367// DdosCustomPoliciesBeginDeleteOptions contains the optional parameters for the DdosCustomPolicies.BeginDelete method.
4368type DdosCustomPoliciesBeginDeleteOptions struct {
4369	// placeholder for future optional parameters
4370}
4371
4372// DdosCustomPoliciesGetOptions contains the optional parameters for the DdosCustomPolicies.Get method.
4373type DdosCustomPoliciesGetOptions struct {
4374	// placeholder for future optional parameters
4375}
4376
4377// DdosCustomPoliciesUpdateTagsOptions contains the optional parameters for the DdosCustomPolicies.UpdateTags method.
4378type DdosCustomPoliciesUpdateTagsOptions struct {
4379	// placeholder for future optional parameters
4380}
4381
4382// A DDoS custom policy in a resource group.
4383type DdosCustomPolicy struct {
4384	Resource
4385	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4386	Etag *string `json:"etag,omitempty" azure:"ro"`
4387
4388	// Properties of the DDoS custom policy.
4389	Properties *DdosCustomPolicyPropertiesFormat `json:"properties,omitempty"`
4390}
4391
4392// DdosCustomPolicyPollerResponse is the response envelope for operations that asynchronously return a DdosCustomPolicy type.
4393type DdosCustomPolicyPollerResponse struct {
4394	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
4395	PollUntilDone func(ctx context.Context, frequency time.Duration) (DdosCustomPolicyResponse, error)
4396
4397	// Poller contains an initialized poller.
4398	Poller DdosCustomPolicyPoller
4399
4400	// RawResponse contains the underlying HTTP response.
4401	RawResponse *http.Response
4402}
4403
4404// DDoS custom policy properties.
4405type DdosCustomPolicyPropertiesFormat struct {
4406	// The protocol-specific DDoS policy customization parameters.
4407	ProtocolCustomSettings *[]ProtocolCustomSettingsFormat `json:"protocolCustomSettings,omitempty"`
4408
4409	// READ-ONLY; The provisioning state of the DDoS custom policy resource.
4410	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
4411
4412	// READ-ONLY; The list of public IPs associated with the DDoS custom policy resource. This list is read-only.
4413	PublicIPAddresses *[]SubResource `json:"publicIPAddresses,omitempty" azure:"ro"`
4414
4415	// READ-ONLY; The resource GUID property of the DDoS custom policy resource. It uniquely identifies the resource, even if the user changes its name or migrate
4416	// the resource across subscriptions or resource groups.
4417	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
4418}
4419
4420// DdosCustomPolicyResponse is the response envelope for operations that return a DdosCustomPolicy type.
4421type DdosCustomPolicyResponse struct {
4422	// A DDoS custom policy in a resource group.
4423	DdosCustomPolicy *DdosCustomPolicy
4424
4425	// RawResponse contains the underlying HTTP response.
4426	RawResponse *http.Response
4427}
4428
4429// A DDoS protection plan in a resource group.
4430type DdosProtectionPlan struct {
4431	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4432	Etag *string `json:"etag,omitempty" azure:"ro"`
4433
4434	// READ-ONLY; Resource ID.
4435	ID *string `json:"id,omitempty" azure:"ro"`
4436
4437	// Resource location.
4438	Location *string `json:"location,omitempty"`
4439
4440	// READ-ONLY; Resource name.
4441	Name *string `json:"name,omitempty" azure:"ro"`
4442
4443	// Properties of the DDoS protection plan.
4444	Properties *DdosProtectionPlanPropertiesFormat `json:"properties,omitempty"`
4445
4446	// Resource tags.
4447	Tags *map[string]string `json:"tags,omitempty"`
4448
4449	// READ-ONLY; Resource type.
4450	Type *string `json:"type,omitempty" azure:"ro"`
4451}
4452
4453// A list of DDoS protection plans.
4454type DdosProtectionPlanListResult struct {
4455	// READ-ONLY; The URL to get the next set of results.
4456	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
4457
4458	// A list of DDoS protection plans.
4459	Value *[]DdosProtectionPlan `json:"value,omitempty"`
4460}
4461
4462// DdosProtectionPlanListResultResponse is the response envelope for operations that return a DdosProtectionPlanListResult type.
4463type DdosProtectionPlanListResultResponse struct {
4464	// A list of DDoS protection plans.
4465	DdosProtectionPlanListResult *DdosProtectionPlanListResult
4466
4467	// RawResponse contains the underlying HTTP response.
4468	RawResponse *http.Response
4469}
4470
4471// DdosProtectionPlanPollerResponse is the response envelope for operations that asynchronously return a DdosProtectionPlan type.
4472type DdosProtectionPlanPollerResponse struct {
4473	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
4474	PollUntilDone func(ctx context.Context, frequency time.Duration) (DdosProtectionPlanResponse, error)
4475
4476	// Poller contains an initialized poller.
4477	Poller DdosProtectionPlanPoller
4478
4479	// RawResponse contains the underlying HTTP response.
4480	RawResponse *http.Response
4481}
4482
4483// DDoS protection plan properties.
4484type DdosProtectionPlanPropertiesFormat struct {
4485	// READ-ONLY; The provisioning state of the DDoS protection plan resource.
4486	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
4487
4488	// READ-ONLY; The resource GUID property of the DDoS protection plan resource. It uniquely identifies the resource, even if the user changes its name or
4489	// migrate the resource across subscriptions or resource groups.
4490	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
4491
4492	// READ-ONLY; The list of virtual networks associated with the DDoS protection plan resource. This list is read-only.
4493	VirtualNetworks *[]SubResource `json:"virtualNetworks,omitempty" azure:"ro"`
4494}
4495
4496// DdosProtectionPlanResponse is the response envelope for operations that return a DdosProtectionPlan type.
4497type DdosProtectionPlanResponse struct {
4498	// A DDoS protection plan in a resource group.
4499	DdosProtectionPlan *DdosProtectionPlan
4500
4501	// RawResponse contains the underlying HTTP response.
4502	RawResponse *http.Response
4503}
4504
4505// DdosProtectionPlansBeginCreateOrUpdateOptions contains the optional parameters for the DdosProtectionPlans.BeginCreateOrUpdate method.
4506type DdosProtectionPlansBeginCreateOrUpdateOptions struct {
4507	// placeholder for future optional parameters
4508}
4509
4510// DdosProtectionPlansBeginDeleteOptions contains the optional parameters for the DdosProtectionPlans.BeginDelete method.
4511type DdosProtectionPlansBeginDeleteOptions struct {
4512	// placeholder for future optional parameters
4513}
4514
4515// DdosProtectionPlansGetOptions contains the optional parameters for the DdosProtectionPlans.Get method.
4516type DdosProtectionPlansGetOptions struct {
4517	// placeholder for future optional parameters
4518}
4519
4520// DdosProtectionPlansListByResourceGroupOptions contains the optional parameters for the DdosProtectionPlans.ListByResourceGroup method.
4521type DdosProtectionPlansListByResourceGroupOptions struct {
4522	// placeholder for future optional parameters
4523}
4524
4525// DdosProtectionPlansListOptions contains the optional parameters for the DdosProtectionPlans.List method.
4526type DdosProtectionPlansListOptions struct {
4527	// placeholder for future optional parameters
4528}
4529
4530// DdosProtectionPlansUpdateTagsOptions contains the optional parameters for the DdosProtectionPlans.UpdateTags method.
4531type DdosProtectionPlansUpdateTagsOptions struct {
4532	// placeholder for future optional parameters
4533}
4534
4535// Contains the DDoS protection settings of the public IP.
4536type DdosSettings struct {
4537	// The DDoS custom policy associated with the public IP.
4538	DdosCustomPolicy *SubResource `json:"ddosCustomPolicy,omitempty"`
4539
4540	// Enables DDoS protection on the public IP.
4541	ProtectedIP *bool `json:"protectedIP,omitempty"`
4542
4543	// The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized.
4544	ProtectionCoverage *DdosSettingsProtectionCoverage `json:"protectionCoverage,omitempty"`
4545}
4546
4547// DefaultSecurityRulesGetOptions contains the optional parameters for the DefaultSecurityRules.Get method.
4548type DefaultSecurityRulesGetOptions struct {
4549	// placeholder for future optional parameters
4550}
4551
4552// DefaultSecurityRulesListOptions contains the optional parameters for the DefaultSecurityRules.List method.
4553type DefaultSecurityRulesListOptions struct {
4554	// placeholder for future optional parameters
4555}
4556
4557// Details the service to which the subnet is delegated.
4558type Delegation struct {
4559	SubResource
4560	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4561	Etag *string `json:"etag,omitempty" azure:"ro"`
4562
4563	// The name of the resource that is unique within a subnet. This name can be used to access the resource.
4564	Name *string `json:"name,omitempty"`
4565
4566	// Properties of the subnet.
4567	Properties *ServiceDelegationPropertiesFormat `json:"properties,omitempty"`
4568}
4569
4570// List of properties of the device.
4571type DeviceProperties struct {
4572	// Model of the device.
4573	DeviceModel *string `json:"deviceModel,omitempty"`
4574
4575	// Name of the device Vendor.
4576	DeviceVendor *string `json:"deviceVendor,omitempty"`
4577
4578	// Link speed.
4579	LinkSpeedInMbps *int32 `json:"linkSpeedInMbps,omitempty"`
4580}
4581
4582// DhcpOptions contains an array of DNS servers available to VMs deployed in the virtual network. Standard DHCP option for a subnet overrides VNET DHCP
4583// options.
4584type DhcpOptions struct {
4585	// The list of DNS servers IP addresses.
4586	DNSServers *[]string `json:"dnsServers,omitempty"`
4587}
4588
4589// Dimension of the metric.
4590type Dimension struct {
4591	// The display name of the dimension.
4592	DisplayName *string `json:"displayName,omitempty"`
4593
4594	// The internal name of the dimension.
4595	InternalName *string `json:"internalName,omitempty"`
4596
4597	// The name of the dimension.
4598	Name *string `json:"name,omitempty"`
4599}
4600
4601// DSCP Configuration in a resource group.
4602type DscpConfiguration struct {
4603	Resource
4604	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
4605	Etag *string `json:"etag,omitempty" azure:"ro"`
4606
4607	// Properties of the network interface.
4608	Properties *DscpConfigurationPropertiesFormat `json:"properties,omitempty"`
4609}
4610
4611// DscpConfigurationBeginCreateOrUpdateOptions contains the optional parameters for the DscpConfiguration.BeginCreateOrUpdate method.
4612type DscpConfigurationBeginCreateOrUpdateOptions struct {
4613	// placeholder for future optional parameters
4614}
4615
4616// DscpConfigurationBeginDeleteOptions contains the optional parameters for the DscpConfiguration.BeginDelete method.
4617type DscpConfigurationBeginDeleteOptions struct {
4618	// placeholder for future optional parameters
4619}
4620
4621// DscpConfigurationGetOptions contains the optional parameters for the DscpConfiguration.Get method.
4622type DscpConfigurationGetOptions struct {
4623	// placeholder for future optional parameters
4624}
4625
4626// DscpConfigurationListAllOptions contains the optional parameters for the DscpConfiguration.ListAll method.
4627type DscpConfigurationListAllOptions struct {
4628	// placeholder for future optional parameters
4629}
4630
4631// DscpConfigurationListOptions contains the optional parameters for the DscpConfiguration.List method.
4632type DscpConfigurationListOptions struct {
4633	// placeholder for future optional parameters
4634}
4635
4636// Response for the DscpConfigurationList API service call.
4637type DscpConfigurationListResult struct {
4638	// READ-ONLY; The URL to get the next set of results.
4639	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
4640
4641	// A list of dscp configurations in a resource group.
4642	Value *[]DscpConfiguration `json:"value,omitempty"`
4643}
4644
4645// DscpConfigurationListResultResponse is the response envelope for operations that return a DscpConfigurationListResult type.
4646type DscpConfigurationListResultResponse struct {
4647	// Response for the DscpConfigurationList API service call.
4648	DscpConfigurationListResult *DscpConfigurationListResult
4649
4650	// RawResponse contains the underlying HTTP response.
4651	RawResponse *http.Response
4652}
4653
4654// DscpConfigurationPollerResponse is the response envelope for operations that asynchronously return a DscpConfiguration type.
4655type DscpConfigurationPollerResponse struct {
4656	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
4657	PollUntilDone func(ctx context.Context, frequency time.Duration) (DscpConfigurationResponse, error)
4658
4659	// Poller contains an initialized poller.
4660	Poller DscpConfigurationPoller
4661
4662	// RawResponse contains the underlying HTTP response.
4663	RawResponse *http.Response
4664}
4665
4666// DSCP Configuration properties.
4667type DscpConfigurationPropertiesFormat struct {
4668	// READ-ONLY; Associated Network Interfaces to the DSCP Configuration.
4669	AssociatedNetworkInterfaces *[]NetworkInterface `json:"associatedNetworkInterfaces,omitempty" azure:"ro"`
4670
4671	// Destination IP ranges.
4672	DestinationIPRanges *[]QosIPRange `json:"destinationIpRanges,omitempty"`
4673
4674	// Destination port ranges.
4675	DestinationPortRanges *[]QosPortRange `json:"destinationPortRanges,omitempty"`
4676
4677	// List of markings to be used in the configuration.
4678	Markings *[]int32 `json:"markings,omitempty"`
4679
4680	// RNM supported protocol types.
4681	Protocol *ProtocolType `json:"protocol,omitempty"`
4682
4683	// READ-ONLY; The provisioning state of the DSCP Configuration resource.
4684	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
4685
4686	// READ-ONLY; Qos Collection ID generated by RNM.
4687	QosCollectionID *string `json:"qosCollectionId,omitempty" azure:"ro"`
4688
4689	// READ-ONLY; The resource GUID property of the DSCP Configuration resource.
4690	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
4691
4692	// Source IP ranges.
4693	SourceIPRanges *[]QosIPRange `json:"sourceIpRanges,omitempty"`
4694
4695	// Sources port ranges.
4696	SourcePortRanges *[]QosPortRange `json:"sourcePortRanges,omitempty"`
4697}
4698
4699// DscpConfigurationResponse is the response envelope for operations that return a DscpConfiguration type.
4700type DscpConfigurationResponse struct {
4701	// DSCP Configuration in a resource group.
4702	DscpConfiguration *DscpConfiguration
4703
4704	// RawResponse contains the underlying HTTP response.
4705	RawResponse *http.Response
4706}
4707
4708// Effective network security group.
4709type EffectiveNetworkSecurityGroup struct {
4710	// Associated resources.
4711	Association *EffectiveNetworkSecurityGroupAssociation `json:"association,omitempty"`
4712
4713	// A collection of effective security rules.
4714	EffectiveSecurityRules *[]EffectiveNetworkSecurityRule `json:"effectiveSecurityRules,omitempty"`
4715
4716	// The ID of network security group that is applied.
4717	NetworkSecurityGroup *SubResource `json:"networkSecurityGroup,omitempty"`
4718
4719	// Mapping of tags to list of IP Addresses included within the tag.
4720	TagMap *string `json:"tagMap,omitempty"`
4721}
4722
4723// The effective network security group association.
4724type EffectiveNetworkSecurityGroupAssociation struct {
4725	// The ID of the network interface if assigned.
4726	NetworkInterface *SubResource `json:"networkInterface,omitempty"`
4727
4728	// The ID of the subnet if assigned.
4729	Subnet *SubResource `json:"subnet,omitempty"`
4730}
4731
4732// Response for list effective network security groups API service call.
4733type EffectiveNetworkSecurityGroupListResult struct {
4734	// READ-ONLY; The URL to get the next set of results.
4735	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
4736
4737	// A list of effective network security groups.
4738	Value *[]EffectiveNetworkSecurityGroup `json:"value,omitempty"`
4739}
4740
4741// EffectiveNetworkSecurityGroupListResultPollerResponse is the response envelope for operations that asynchronously return a EffectiveNetworkSecurityGroupListResult
4742// type.
4743type EffectiveNetworkSecurityGroupListResultPollerResponse struct {
4744	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
4745	PollUntilDone func(ctx context.Context, frequency time.Duration) (EffectiveNetworkSecurityGroupListResultResponse, error)
4746
4747	// Poller contains an initialized poller.
4748	Poller EffectiveNetworkSecurityGroupListResultPoller
4749
4750	// RawResponse contains the underlying HTTP response.
4751	RawResponse *http.Response
4752}
4753
4754// EffectiveNetworkSecurityGroupListResultResponse is the response envelope for operations that return a EffectiveNetworkSecurityGroupListResult type.
4755type EffectiveNetworkSecurityGroupListResultResponse struct {
4756	// Response for list effective network security groups API service call.
4757	EffectiveNetworkSecurityGroupListResult *EffectiveNetworkSecurityGroupListResult
4758
4759	// RawResponse contains the underlying HTTP response.
4760	RawResponse *http.Response
4761}
4762
4763// Effective network security rules.
4764type EffectiveNetworkSecurityRule struct {
4765	// Whether network traffic is allowed or denied.
4766	Access *SecurityRuleAccess `json:"access,omitempty"`
4767
4768	// The destination address prefix.
4769	DestinationAddressPrefix *string `json:"destinationAddressPrefix,omitempty"`
4770
4771	// The destination address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and
4772	// the asterisk (*).
4773	DestinationAddressPrefixes *[]string `json:"destinationAddressPrefixes,omitempty"`
4774
4775	// The destination port or range.
4776	DestinationPortRange *string `json:"destinationPortRange,omitempty"`
4777
4778	// The destination port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as separator (e.g. 100-400), or an asterisk
4779	// (*).
4780	DestinationPortRanges *[]string `json:"destinationPortRanges,omitempty"`
4781
4782	// The direction of the rule.
4783	Direction *SecurityRuleDirection `json:"direction,omitempty"`
4784
4785	// Expanded destination address prefix.
4786	ExpandedDestinationAddressPrefix *[]string `json:"expandedDestinationAddressPrefix,omitempty"`
4787
4788	// The expanded source address prefix.
4789	ExpandedSourceAddressPrefix *[]string `json:"expandedSourceAddressPrefix,omitempty"`
4790
4791	// The name of the security rule specified by the user (if created by the user).
4792	Name *string `json:"name,omitempty"`
4793
4794	// The priority of the rule.
4795	Priority *int32 `json:"priority,omitempty"`
4796
4797	// The network protocol this rule applies to.
4798	Protocol *EffectiveSecurityRuleProtocol `json:"protocol,omitempty"`
4799
4800	// The source address prefix.
4801	SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"`
4802
4803	// The source address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the
4804	// asterisk (*).
4805	SourceAddressPrefixes *[]string `json:"sourceAddressPrefixes,omitempty"`
4806
4807	// The source port or range.
4808	SourcePortRange *string `json:"sourcePortRange,omitempty"`
4809
4810	// The source port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as separator (e.g. 100-400), or an asterisk (*).
4811	SourcePortRanges *[]string `json:"sourcePortRanges,omitempty"`
4812}
4813
4814// Effective Route.
4815type EffectiveRoute struct {
4816	// The address prefixes of the effective routes in CIDR notation.
4817	AddressPrefix *[]string `json:"addressPrefix,omitempty"`
4818
4819	// If true, on-premises routes are not propagated to the network interfaces in the subnet.
4820	DisableBgpRoutePropagation *bool `json:"disableBgpRoutePropagation,omitempty"`
4821
4822	// The name of the user defined route. This is optional.
4823	Name *string `json:"name,omitempty"`
4824
4825	// The IP address of the next hop of the effective route.
4826	NextHopIPAddress *[]string `json:"nextHopIpAddress,omitempty"`
4827
4828	// The type of Azure hop the packet should be sent to.
4829	NextHopType *RouteNextHopType `json:"nextHopType,omitempty"`
4830
4831	// Who created the route.
4832	Source *EffectiveRouteSource `json:"source,omitempty"`
4833
4834	// The value of effective route.
4835	State *EffectiveRouteState `json:"state,omitempty"`
4836}
4837
4838// Response for list effective route API service call.
4839type EffectiveRouteListResult struct {
4840	// READ-ONLY; The URL to get the next set of results.
4841	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
4842
4843	// A list of effective routes.
4844	Value *[]EffectiveRoute `json:"value,omitempty"`
4845}
4846
4847// EffectiveRouteListResultPollerResponse is the response envelope for operations that asynchronously return a EffectiveRouteListResult type.
4848type EffectiveRouteListResultPollerResponse struct {
4849	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
4850	PollUntilDone func(ctx context.Context, frequency time.Duration) (EffectiveRouteListResultResponse, error)
4851
4852	// Poller contains an initialized poller.
4853	Poller EffectiveRouteListResultPoller
4854
4855	// RawResponse contains the underlying HTTP response.
4856	RawResponse *http.Response
4857}
4858
4859// EffectiveRouteListResultResponse is the response envelope for operations that return a EffectiveRouteListResult type.
4860type EffectiveRouteListResultResponse struct {
4861	// Response for list effective route API service call.
4862	EffectiveRouteListResult *EffectiveRouteListResult
4863
4864	// RawResponse contains the underlying HTTP response.
4865	RawResponse *http.Response
4866}
4867
4868// The parameters specifying the resource whose effective routes are being requested.
4869type EffectiveRoutesParameters struct {
4870	// The resource whose effective routes are being requested.
4871	ResourceID *string `json:"resourceId,omitempty"`
4872
4873	// The type of the specified resource like RouteTable, ExpressRouteConnection, HubVirtualNetworkConnection, VpnConnection and P2SConnection.
4874	VirtualWanResourceType *string `json:"virtualWanResourceType,omitempty"`
4875}
4876
4877// Endpoint service.
4878type EndpointServiceResult struct {
4879	SubResource
4880	// READ-ONLY; Name of the endpoint service.
4881	Name *string `json:"name,omitempty" azure:"ro"`
4882
4883	// READ-ONLY; Type of the endpoint service.
4884	Type *string `json:"type,omitempty" azure:"ro"`
4885}
4886
4887// Response for the ListAvailableEndpointServices API service call.
4888type EndpointServicesListResult struct {
4889	// The URL to get the next set of results.
4890	NextLink *string `json:"nextLink,omitempty"`
4891
4892	// List of available endpoint services in a region.
4893	Value *[]EndpointServiceResult `json:"value,omitempty"`
4894}
4895
4896// EndpointServicesListResultResponse is the response envelope for operations that return a EndpointServicesListResult type.
4897type EndpointServicesListResultResponse struct {
4898	// Response for the ListAvailableEndpointServices API service call.
4899	EndpointServicesListResult *EndpointServicesListResult
4900
4901	// RawResponse contains the underlying HTTP response.
4902	RawResponse *http.Response
4903}
4904
4905// Common error representation.
4906type Error struct {
4907	// Error code.
4908	Code *string `json:"code,omitempty"`
4909
4910	// Error details.
4911	Details *[]ErrorDetails `json:"details,omitempty"`
4912
4913	// Inner error message.
4914	InnerError *string `json:"innerError,omitempty"`
4915
4916	// Error message.
4917	Message *string `json:"message,omitempty"`
4918
4919	// Error target.
4920	Target *string `json:"target,omitempty"`
4921}
4922
4923// Error implements the error interface for type Error.
4924func (e Error) Error() string {
4925	msg := ""
4926	if e.Code != nil {
4927		msg += fmt.Sprintf("Code: %v\n", *e.Code)
4928	}
4929	if e.Details != nil {
4930		msg += fmt.Sprintf("Details: %v\n", *e.Details)
4931	}
4932	if e.InnerError != nil {
4933		msg += fmt.Sprintf("InnerError: %v\n", *e.InnerError)
4934	}
4935	if e.Message != nil {
4936		msg += fmt.Sprintf("Message: %v\n", *e.Message)
4937	}
4938	if e.Target != nil {
4939		msg += fmt.Sprintf("Target: %v\n", *e.Target)
4940	}
4941	if msg == "" {
4942		msg = "missing error info"
4943	}
4944	return msg
4945}
4946
4947// Common error details representation.
4948type ErrorDetails struct {
4949	// Error code.
4950	Code *string `json:"code,omitempty"`
4951
4952	// Error message.
4953	Message *string `json:"message,omitempty"`
4954
4955	// Error target.
4956	Target *string `json:"target,omitempty"`
4957}
4958
4959// The error object.
4960type ErrorResponse struct {
4961	// The error details object.
4962	InnerError *ErrorDetails `json:"error,omitempty"`
4963}
4964
4965// Error implements the error interface for type ErrorResponse.
4966func (e ErrorResponse) Error() string {
4967	msg := ""
4968	if e.InnerError != nil {
4969		msg += "InnerError: \n"
4970		if e.InnerError.Code != nil {
4971			msg += fmt.Sprintf("\tCode: %v\n", *e.InnerError.Code)
4972		}
4973		if e.InnerError.Target != nil {
4974			msg += fmt.Sprintf("\tTarget: %v\n", *e.InnerError.Target)
4975		}
4976		if e.InnerError.Message != nil {
4977			msg += fmt.Sprintf("\tMessage: %v\n", *e.InnerError.Message)
4978		}
4979	}
4980	if msg == "" {
4981		msg = "missing error info"
4982	}
4983	return msg
4984}
4985
4986// Results of network security group evaluation.
4987type EvaluatedNetworkSecurityGroup struct {
4988	// Resource ID of nic or subnet to which network security group is applied.
4989	AppliedTo *string `json:"appliedTo,omitempty"`
4990
4991	// Matched network security rule.
4992	MatchedRule *MatchedRule `json:"matchedRule,omitempty"`
4993
4994	// Network security group ID.
4995	NetworkSecurityGroupID *string `json:"networkSecurityGroupId,omitempty"`
4996
4997	// READ-ONLY; List of network security rules evaluation results.
4998	RulesEvaluationResult *[]NetworkSecurityRulesEvaluationResult `json:"rulesEvaluationResult,omitempty" azure:"ro"`
4999}
5000
5001// ExpressRouteCircuit resource.
5002type ExpressRouteCircuit struct {
5003	Resource
5004	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
5005	Etag *string `json:"etag,omitempty" azure:"ro"`
5006
5007	// Properties of the express route circuit.
5008	Properties *ExpressRouteCircuitPropertiesFormat `json:"properties,omitempty"`
5009
5010	// The SKU.
5011	SKU *ExpressRouteCircuitSKU `json:"sku,omitempty"`
5012}
5013
5014// The ARP table associated with the ExpressRouteCircuit.
5015type ExpressRouteCircuitArpTable struct {
5016	// Entry age in minutes.
5017	Age *int32 `json:"age,omitempty"`
5018
5019	// The IP address.
5020	IPAddress *string `json:"ipAddress,omitempty"`
5021
5022	// Interface address.
5023	Interface *string `json:"interface,omitempty"`
5024
5025	// The MAC address.
5026	MacAddress *string `json:"macAddress,omitempty"`
5027}
5028
5029// Authorization in an ExpressRouteCircuit resource.
5030type ExpressRouteCircuitAuthorization struct {
5031	SubResource
5032	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
5033	Etag *string `json:"etag,omitempty" azure:"ro"`
5034
5035	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
5036	Name *string `json:"name,omitempty"`
5037
5038	// Properties of the express route circuit authorization.
5039	Properties *AuthorizationPropertiesFormat `json:"properties,omitempty"`
5040
5041	// READ-ONLY; Type of the resource.
5042	Type *string `json:"type,omitempty" azure:"ro"`
5043}
5044
5045// ExpressRouteCircuitAuthorizationPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCircuitAuthorization
5046// type.
5047type ExpressRouteCircuitAuthorizationPollerResponse struct {
5048	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5049	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCircuitAuthorizationResponse, error)
5050
5051	// Poller contains an initialized poller.
5052	Poller ExpressRouteCircuitAuthorizationPoller
5053
5054	// RawResponse contains the underlying HTTP response.
5055	RawResponse *http.Response
5056}
5057
5058// ExpressRouteCircuitAuthorizationResponse is the response envelope for operations that return a ExpressRouteCircuitAuthorization type.
5059type ExpressRouteCircuitAuthorizationResponse struct {
5060	// Authorization in an ExpressRouteCircuit resource.
5061	ExpressRouteCircuitAuthorization *ExpressRouteCircuitAuthorization
5062
5063	// RawResponse contains the underlying HTTP response.
5064	RawResponse *http.Response
5065}
5066
5067// ExpressRouteCircuitAuthorizationsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteCircuitAuthorizations.BeginCreateOrUpdate
5068// method.
5069type ExpressRouteCircuitAuthorizationsBeginCreateOrUpdateOptions struct {
5070	// placeholder for future optional parameters
5071}
5072
5073// ExpressRouteCircuitAuthorizationsBeginDeleteOptions contains the optional parameters for the ExpressRouteCircuitAuthorizations.BeginDelete method.
5074type ExpressRouteCircuitAuthorizationsBeginDeleteOptions struct {
5075	// placeholder for future optional parameters
5076}
5077
5078// ExpressRouteCircuitAuthorizationsGetOptions contains the optional parameters for the ExpressRouteCircuitAuthorizations.Get method.
5079type ExpressRouteCircuitAuthorizationsGetOptions struct {
5080	// placeholder for future optional parameters
5081}
5082
5083// ExpressRouteCircuitAuthorizationsListOptions contains the optional parameters for the ExpressRouteCircuitAuthorizations.List method.
5084type ExpressRouteCircuitAuthorizationsListOptions struct {
5085	// placeholder for future optional parameters
5086}
5087
5088// Express Route Circuit Connection in an ExpressRouteCircuitPeering resource.
5089type ExpressRouteCircuitConnection struct {
5090	SubResource
5091	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
5092	Etag *string `json:"etag,omitempty" azure:"ro"`
5093
5094	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
5095	Name *string `json:"name,omitempty"`
5096
5097	// Properties of the express route circuit connection.
5098	Properties *ExpressRouteCircuitConnectionPropertiesFormat `json:"properties,omitempty"`
5099
5100	// READ-ONLY; Type of the resource.
5101	Type *string `json:"type,omitempty" azure:"ro"`
5102}
5103
5104// Response for ListConnections API service call retrieves all global reach connections that belongs to a Private Peering for an ExpressRouteCircuit.
5105type ExpressRouteCircuitConnectionListResult struct {
5106	// The URL to get the next set of results.
5107	NextLink *string `json:"nextLink,omitempty"`
5108
5109	// The global reach connection associated with Private Peering in an ExpressRoute Circuit.
5110	Value *[]ExpressRouteCircuitConnection `json:"value,omitempty"`
5111}
5112
5113// ExpressRouteCircuitConnectionListResultResponse is the response envelope for operations that return a ExpressRouteCircuitConnectionListResult type.
5114type ExpressRouteCircuitConnectionListResultResponse struct {
5115	// Response for ListConnections API service call retrieves all global reach connections that belongs to a Private Peering for an ExpressRouteCircuit.
5116	ExpressRouteCircuitConnectionListResult *ExpressRouteCircuitConnectionListResult
5117
5118	// RawResponse contains the underlying HTTP response.
5119	RawResponse *http.Response
5120}
5121
5122// ExpressRouteCircuitConnectionPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCircuitConnection type.
5123type ExpressRouteCircuitConnectionPollerResponse struct {
5124	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5125	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCircuitConnectionResponse, error)
5126
5127	// Poller contains an initialized poller.
5128	Poller ExpressRouteCircuitConnectionPoller
5129
5130	// RawResponse contains the underlying HTTP response.
5131	RawResponse *http.Response
5132}
5133
5134// Properties of the express route circuit connection.
5135type ExpressRouteCircuitConnectionPropertiesFormat struct {
5136	// /29 IP address space to carve out Customer addresses for tunnels.
5137	AddressPrefix *string `json:"addressPrefix,omitempty"`
5138
5139	// The authorization key.
5140	AuthorizationKey *string `json:"authorizationKey,omitempty"`
5141
5142	// READ-ONLY; Express Route Circuit connection state.
5143	CircuitConnectionStatus *CircuitConnectionStatus `json:"circuitConnectionStatus,omitempty" azure:"ro"`
5144
5145	// Reference to Express Route Circuit Private Peering Resource of the circuit initiating connection.
5146	ExpressRouteCircuitPeering *SubResource `json:"expressRouteCircuitPeering,omitempty"`
5147
5148	// IPv6 Address PrefixProperties of the express route circuit connection.
5149	IPv6CircuitConnectionConfig *IPv6CircuitConnectionConfig `json:"ipv6CircuitConnectionConfig,omitempty"`
5150
5151	// Reference to Express Route Circuit Private Peering Resource of the peered circuit.
5152	PeerExpressRouteCircuitPeering *SubResource `json:"peerExpressRouteCircuitPeering,omitempty"`
5153
5154	// READ-ONLY; The provisioning state of the express route circuit connection resource.
5155	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
5156}
5157
5158// ExpressRouteCircuitConnectionResponse is the response envelope for operations that return a ExpressRouteCircuitConnection type.
5159type ExpressRouteCircuitConnectionResponse struct {
5160	// Express Route Circuit Connection in an ExpressRouteCircuitPeering resource.
5161	ExpressRouteCircuitConnection *ExpressRouteCircuitConnection
5162
5163	// RawResponse contains the underlying HTTP response.
5164	RawResponse *http.Response
5165}
5166
5167// ExpressRouteCircuitConnectionsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteCircuitConnections.BeginCreateOrUpdate
5168// method.
5169type ExpressRouteCircuitConnectionsBeginCreateOrUpdateOptions struct {
5170	// placeholder for future optional parameters
5171}
5172
5173// ExpressRouteCircuitConnectionsBeginDeleteOptions contains the optional parameters for the ExpressRouteCircuitConnections.BeginDelete method.
5174type ExpressRouteCircuitConnectionsBeginDeleteOptions struct {
5175	// placeholder for future optional parameters
5176}
5177
5178// ExpressRouteCircuitConnectionsGetOptions contains the optional parameters for the ExpressRouteCircuitConnections.Get method.
5179type ExpressRouteCircuitConnectionsGetOptions struct {
5180	// placeholder for future optional parameters
5181}
5182
5183// ExpressRouteCircuitConnectionsListOptions contains the optional parameters for the ExpressRouteCircuitConnections.List method.
5184type ExpressRouteCircuitConnectionsListOptions struct {
5185	// placeholder for future optional parameters
5186}
5187
5188// Response for ListExpressRouteCircuit API service call.
5189type ExpressRouteCircuitListResult struct {
5190	// The URL to get the next set of results.
5191	NextLink *string `json:"nextLink,omitempty"`
5192
5193	// A list of ExpressRouteCircuits in a resource group.
5194	Value *[]ExpressRouteCircuit `json:"value,omitempty"`
5195}
5196
5197// ExpressRouteCircuitListResultResponse is the response envelope for operations that return a ExpressRouteCircuitListResult type.
5198type ExpressRouteCircuitListResultResponse struct {
5199	// Response for ListExpressRouteCircuit API service call.
5200	ExpressRouteCircuitListResult *ExpressRouteCircuitListResult
5201
5202	// RawResponse contains the underlying HTTP response.
5203	RawResponse *http.Response
5204}
5205
5206// Peering in an ExpressRouteCircuit resource.
5207type ExpressRouteCircuitPeering struct {
5208	SubResource
5209	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
5210	Etag *string `json:"etag,omitempty" azure:"ro"`
5211
5212	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
5213	Name *string `json:"name,omitempty"`
5214
5215	// Properties of the express route circuit peering.
5216	Properties *ExpressRouteCircuitPeeringPropertiesFormat `json:"properties,omitempty"`
5217
5218	// READ-ONLY; Type of the resource.
5219	Type *string `json:"type,omitempty" azure:"ro"`
5220}
5221
5222// Specifies the peering configuration.
5223type ExpressRouteCircuitPeeringConfig struct {
5224	// The communities of bgp peering. Specified for microsoft peering.
5225	AdvertisedCommunities *[]string `json:"advertisedCommunities,omitempty"`
5226
5227	// The reference to AdvertisedPublicPrefixes.
5228	AdvertisedPublicPrefixes *[]string `json:"advertisedPublicPrefixes,omitempty"`
5229
5230	// READ-ONLY; The advertised public prefix state of the Peering resource.
5231	AdvertisedPublicPrefixesState *ExpressRouteCircuitPeeringAdvertisedPublicPrefixState `json:"advertisedPublicPrefixesState,omitempty" azure:"ro"`
5232
5233	// The CustomerASN of the peering.
5234	CustomerAsn *int32 `json:"customerASN,omitempty"`
5235
5236	// The legacy mode of the peering.
5237	LegacyMode *int32 `json:"legacyMode,omitempty"`
5238
5239	// The RoutingRegistryName of the configuration.
5240	RoutingRegistryName *string `json:"routingRegistryName,omitempty"`
5241}
5242
5243// ExpressRoute circuit peering identifier.
5244type ExpressRouteCircuitPeeringID struct {
5245	// The ID of the ExpressRoute circuit peering.
5246	ID *string `json:"id,omitempty"`
5247}
5248
5249// Response for ListPeering API service call retrieves all peerings that belong to an ExpressRouteCircuit.
5250type ExpressRouteCircuitPeeringListResult struct {
5251	// The URL to get the next set of results.
5252	NextLink *string `json:"nextLink,omitempty"`
5253
5254	// The peerings in an express route circuit.
5255	Value *[]ExpressRouteCircuitPeering `json:"value,omitempty"`
5256}
5257
5258// ExpressRouteCircuitPeeringListResultResponse is the response envelope for operations that return a ExpressRouteCircuitPeeringListResult type.
5259type ExpressRouteCircuitPeeringListResultResponse struct {
5260	// Response for ListPeering API service call retrieves all peerings that belong to an ExpressRouteCircuit.
5261	ExpressRouteCircuitPeeringListResult *ExpressRouteCircuitPeeringListResult
5262
5263	// RawResponse contains the underlying HTTP response.
5264	RawResponse *http.Response
5265}
5266
5267// ExpressRouteCircuitPeeringPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCircuitPeering type.
5268type ExpressRouteCircuitPeeringPollerResponse struct {
5269	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5270	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCircuitPeeringResponse, error)
5271
5272	// Poller contains an initialized poller.
5273	Poller ExpressRouteCircuitPeeringPoller
5274
5275	// RawResponse contains the underlying HTTP response.
5276	RawResponse *http.Response
5277}
5278
5279// Properties of the express route circuit peering.
5280type ExpressRouteCircuitPeeringPropertiesFormat struct {
5281	// The Azure ASN.
5282	AzureAsn *int32 `json:"azureASN,omitempty"`
5283
5284	// The list of circuit connections associated with Azure Private Peering for this circuit.
5285	Connections *[]ExpressRouteCircuitConnection `json:"connections,omitempty"`
5286
5287	// The ExpressRoute connection.
5288	ExpressRouteConnection *ExpressRouteConnectionID `json:"expressRouteConnection,omitempty"`
5289
5290	// The GatewayManager Etag.
5291	GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"`
5292
5293	// The IPv6 peering configuration.
5294	IPv6PeeringConfig *IPv6ExpressRouteCircuitPeeringConfig `json:"ipv6PeeringConfig,omitempty"`
5295
5296	// READ-ONLY; Who was the last to modify the peering.
5297	LastModifiedBy *string `json:"lastModifiedBy,omitempty" azure:"ro"`
5298
5299	// The Microsoft peering configuration.
5300	MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"`
5301
5302	// The peer ASN.
5303	PeerAsn *int64 `json:"peerASN,omitempty"`
5304
5305	// READ-ONLY; The list of peered circuit connections associated with Azure Private Peering for this circuit.
5306	PeeredConnections *[]PeerExpressRouteCircuitConnection `json:"peeredConnections,omitempty" azure:"ro"`
5307
5308	// The peering type.
5309	PeeringType *ExpressRoutePeeringType `json:"peeringType,omitempty"`
5310
5311	// The primary port.
5312	PrimaryAzurePort *string `json:"primaryAzurePort,omitempty"`
5313
5314	// The primary address prefix.
5315	PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"`
5316
5317	// READ-ONLY; The provisioning state of the express route circuit peering resource.
5318	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
5319
5320	// The reference to the RouteFilter resource.
5321	RouteFilter *SubResource `json:"routeFilter,omitempty"`
5322
5323	// The secondary port.
5324	SecondaryAzurePort *string `json:"secondaryAzurePort,omitempty"`
5325
5326	// The secondary address prefix.
5327	SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"`
5328
5329	// The shared key.
5330	SharedKey *string `json:"sharedKey,omitempty"`
5331
5332	// The peering state.
5333	State *ExpressRoutePeeringState `json:"state,omitempty"`
5334
5335	// The peering stats of express route circuit.
5336	Stats *ExpressRouteCircuitStats `json:"stats,omitempty"`
5337
5338	// The VLAN ID.
5339	VlanID *int32 `json:"vlanId,omitempty"`
5340}
5341
5342// ExpressRouteCircuitPeeringResponse is the response envelope for operations that return a ExpressRouteCircuitPeering type.
5343type ExpressRouteCircuitPeeringResponse struct {
5344	// Peering in an ExpressRouteCircuit resource.
5345	ExpressRouteCircuitPeering *ExpressRouteCircuitPeering
5346
5347	// RawResponse contains the underlying HTTP response.
5348	RawResponse *http.Response
5349}
5350
5351// ExpressRouteCircuitPeeringsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteCircuitPeerings.BeginCreateOrUpdate method.
5352type ExpressRouteCircuitPeeringsBeginCreateOrUpdateOptions struct {
5353	// placeholder for future optional parameters
5354}
5355
5356// ExpressRouteCircuitPeeringsBeginDeleteOptions contains the optional parameters for the ExpressRouteCircuitPeerings.BeginDelete method.
5357type ExpressRouteCircuitPeeringsBeginDeleteOptions struct {
5358	// placeholder for future optional parameters
5359}
5360
5361// ExpressRouteCircuitPeeringsGetOptions contains the optional parameters for the ExpressRouteCircuitPeerings.Get method.
5362type ExpressRouteCircuitPeeringsGetOptions struct {
5363	// placeholder for future optional parameters
5364}
5365
5366// ExpressRouteCircuitPeeringsListOptions contains the optional parameters for the ExpressRouteCircuitPeerings.List method.
5367type ExpressRouteCircuitPeeringsListOptions struct {
5368	// placeholder for future optional parameters
5369}
5370
5371// ExpressRouteCircuitPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCircuit type.
5372type ExpressRouteCircuitPollerResponse struct {
5373	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5374	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCircuitResponse, error)
5375
5376	// Poller contains an initialized poller.
5377	Poller ExpressRouteCircuitPoller
5378
5379	// RawResponse contains the underlying HTTP response.
5380	RawResponse *http.Response
5381}
5382
5383// Properties of ExpressRouteCircuit.
5384type ExpressRouteCircuitPropertiesFormat struct {
5385	// Allow classic operations.
5386	AllowClassicOperations *bool `json:"allowClassicOperations,omitempty"`
5387
5388	// The list of authorizations.
5389	Authorizations *[]ExpressRouteCircuitAuthorization `json:"authorizations,omitempty"`
5390
5391	// The bandwidth of the circuit when the circuit is provisioned on an ExpressRoutePort resource.
5392	BandwidthInGbps *float32 `json:"bandwidthInGbps,omitempty"`
5393
5394	// The CircuitProvisioningState state of the resource.
5395	CircuitProvisioningState *string `json:"circuitProvisioningState,omitempty"`
5396
5397	// The reference to the ExpressRoutePort resource when the circuit is provisioned on an ExpressRoutePort resource.
5398	ExpressRoutePort *SubResource `json:"expressRoutePort,omitempty"`
5399
5400	// The GatewayManager Etag.
5401	GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"`
5402
5403	// Flag denoting global reach status.
5404	GlobalReachEnabled *bool `json:"globalReachEnabled,omitempty"`
5405
5406	// The list of peerings.
5407	Peerings *[]ExpressRouteCircuitPeering `json:"peerings,omitempty"`
5408
5409	// READ-ONLY; The provisioning state of the express route circuit resource.
5410	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
5411
5412	// The ServiceKey.
5413	ServiceKey *string `json:"serviceKey,omitempty"`
5414
5415	// The ServiceProviderNotes.
5416	ServiceProviderNotes *string `json:"serviceProviderNotes,omitempty"`
5417
5418	// The ServiceProviderProperties.
5419	ServiceProviderProperties *ExpressRouteCircuitServiceProviderProperties `json:"serviceProviderProperties,omitempty"`
5420
5421	// The ServiceProviderProvisioningState state of the resource.
5422	ServiceProviderProvisioningState *ServiceProviderProvisioningState `json:"serviceProviderProvisioningState,omitempty"`
5423
5424	// READ-ONLY; The identifier of the circuit traffic. Outer tag for QinQ encapsulation.
5425	Stag *int32 `json:"stag,omitempty" azure:"ro"`
5426}
5427
5428// Reference to an express route circuit.
5429type ExpressRouteCircuitReference struct {
5430	// Corresponding Express Route Circuit Id.
5431	ID *string `json:"id,omitempty"`
5432}
5433
5434// ExpressRouteCircuitResponse is the response envelope for operations that return a ExpressRouteCircuit type.
5435type ExpressRouteCircuitResponse struct {
5436	// ExpressRouteCircuit resource.
5437	ExpressRouteCircuit *ExpressRouteCircuit
5438
5439	// RawResponse contains the underlying HTTP response.
5440	RawResponse *http.Response
5441}
5442
5443// The routes table associated with the ExpressRouteCircuit.
5444type ExpressRouteCircuitRoutesTable struct {
5445	// Local preference value as set with the set local-preference route-map configuration command.
5446	LocPrf *string `json:"locPrf,omitempty"`
5447
5448	// IP address of a network entity.
5449	Network *string `json:"network,omitempty"`
5450
5451	// NextHop address.
5452	NextHop *string `json:"nextHop,omitempty"`
5453
5454	// Autonomous system paths to the destination network.
5455	Path *string `json:"path,omitempty"`
5456
5457	// Route Weight.
5458	Weight *int32 `json:"weight,omitempty"`
5459}
5460
5461// The routes table associated with the ExpressRouteCircuit.
5462type ExpressRouteCircuitRoutesTableSummary struct {
5463	// Autonomous system number.
5464	As *int32 `json:"as,omitempty"`
5465
5466	// IP address of the neighbor.
5467	Neighbor *string `json:"neighbor,omitempty"`
5468
5469	// Current state of the BGP session, and the number of prefixes that have been received from a neighbor or peer group.
5470	StatePfxRcd *string `json:"statePfxRcd,omitempty"`
5471
5472	// The length of time that the BGP session has been in the Established state, or the current status if not in the Established state.
5473	UpDown *string `json:"upDown,omitempty"`
5474
5475	// BGP version number spoken to the neighbor.
5476	V *int32 `json:"v,omitempty"`
5477}
5478
5479// Contains SKU in an ExpressRouteCircuit.
5480type ExpressRouteCircuitSKU struct {
5481	// The family of the SKU.
5482	Family *ExpressRouteCircuitSKUFamily `json:"family,omitempty"`
5483
5484	// The name of the SKU.
5485	Name *string `json:"name,omitempty"`
5486
5487	// The tier of the SKU.
5488	Tier *ExpressRouteCircuitSKUTier `json:"tier,omitempty"`
5489}
5490
5491// Contains ServiceProviderProperties in an ExpressRouteCircuit.
5492type ExpressRouteCircuitServiceProviderProperties struct {
5493	// The BandwidthInMbps.
5494	BandwidthInMbps *int32 `json:"bandwidthInMbps,omitempty"`
5495
5496	// The peering location.
5497	PeeringLocation *string `json:"peeringLocation,omitempty"`
5498
5499	// The serviceProviderName.
5500	ServiceProviderName *string `json:"serviceProviderName,omitempty"`
5501}
5502
5503// Contains stats associated with the peering.
5504type ExpressRouteCircuitStats struct {
5505	// The Primary BytesIn of the peering.
5506	PrimarybytesIn *int64 `json:"primarybytesIn,omitempty"`
5507
5508	// The primary BytesOut of the peering.
5509	PrimarybytesOut *int64 `json:"primarybytesOut,omitempty"`
5510
5511	// The secondary BytesIn of the peering.
5512	SecondarybytesIn *int64 `json:"secondarybytesIn,omitempty"`
5513
5514	// The secondary BytesOut of the peering.
5515	SecondarybytesOut *int64 `json:"secondarybytesOut,omitempty"`
5516}
5517
5518// ExpressRouteCircuitStatsResponse is the response envelope for operations that return a ExpressRouteCircuitStats type.
5519type ExpressRouteCircuitStatsResponse struct {
5520	// Contains stats associated with the peering.
5521	ExpressRouteCircuitStats *ExpressRouteCircuitStats
5522
5523	// RawResponse contains the underlying HTTP response.
5524	RawResponse *http.Response
5525}
5526
5527// Response for ListArpTable associated with the Express Route Circuits API.
5528type ExpressRouteCircuitsArpTableListResult struct {
5529	// The URL to get the next set of results.
5530	NextLink *string `json:"nextLink,omitempty"`
5531
5532	// A list of the ARP tables.
5533	Value *[]ExpressRouteCircuitArpTable `json:"value,omitempty"`
5534}
5535
5536// ExpressRouteCircuitsArpTableListResultPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCircuitsArpTableListResult
5537// type.
5538type ExpressRouteCircuitsArpTableListResultPollerResponse struct {
5539	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5540	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCircuitsArpTableListResultResponse, error)
5541
5542	// Poller contains an initialized poller.
5543	Poller ExpressRouteCircuitsArpTableListResultPoller
5544
5545	// RawResponse contains the underlying HTTP response.
5546	RawResponse *http.Response
5547}
5548
5549// ExpressRouteCircuitsArpTableListResultResponse is the response envelope for operations that return a ExpressRouteCircuitsArpTableListResult type.
5550type ExpressRouteCircuitsArpTableListResultResponse struct {
5551	// Response for ListArpTable associated with the Express Route Circuits API.
5552	ExpressRouteCircuitsArpTableListResult *ExpressRouteCircuitsArpTableListResult
5553
5554	// RawResponse contains the underlying HTTP response.
5555	RawResponse *http.Response
5556}
5557
5558// ExpressRouteCircuitsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteCircuits.BeginCreateOrUpdate method.
5559type ExpressRouteCircuitsBeginCreateOrUpdateOptions struct {
5560	// placeholder for future optional parameters
5561}
5562
5563// ExpressRouteCircuitsBeginDeleteOptions contains the optional parameters for the ExpressRouteCircuits.BeginDelete method.
5564type ExpressRouteCircuitsBeginDeleteOptions struct {
5565	// placeholder for future optional parameters
5566}
5567
5568// ExpressRouteCircuitsBeginListArpTableOptions contains the optional parameters for the ExpressRouteCircuits.BeginListArpTable method.
5569type ExpressRouteCircuitsBeginListArpTableOptions struct {
5570	// placeholder for future optional parameters
5571}
5572
5573// ExpressRouteCircuitsBeginListRoutesTableOptions contains the optional parameters for the ExpressRouteCircuits.BeginListRoutesTable method.
5574type ExpressRouteCircuitsBeginListRoutesTableOptions struct {
5575	// placeholder for future optional parameters
5576}
5577
5578// ExpressRouteCircuitsBeginListRoutesTableSummaryOptions contains the optional parameters for the ExpressRouteCircuits.BeginListRoutesTableSummary method.
5579type ExpressRouteCircuitsBeginListRoutesTableSummaryOptions struct {
5580	// placeholder for future optional parameters
5581}
5582
5583// ExpressRouteCircuitsGetOptions contains the optional parameters for the ExpressRouteCircuits.Get method.
5584type ExpressRouteCircuitsGetOptions struct {
5585	// placeholder for future optional parameters
5586}
5587
5588// ExpressRouteCircuitsGetPeeringStatsOptions contains the optional parameters for the ExpressRouteCircuits.GetPeeringStats method.
5589type ExpressRouteCircuitsGetPeeringStatsOptions struct {
5590	// placeholder for future optional parameters
5591}
5592
5593// ExpressRouteCircuitsGetStatsOptions contains the optional parameters for the ExpressRouteCircuits.GetStats method.
5594type ExpressRouteCircuitsGetStatsOptions struct {
5595	// placeholder for future optional parameters
5596}
5597
5598// ExpressRouteCircuitsListAllOptions contains the optional parameters for the ExpressRouteCircuits.ListAll method.
5599type ExpressRouteCircuitsListAllOptions struct {
5600	// placeholder for future optional parameters
5601}
5602
5603// ExpressRouteCircuitsListOptions contains the optional parameters for the ExpressRouteCircuits.List method.
5604type ExpressRouteCircuitsListOptions struct {
5605	// placeholder for future optional parameters
5606}
5607
5608// Response for ListRoutesTable associated with the Express Route Circuits API.
5609type ExpressRouteCircuitsRoutesTableListResult struct {
5610	// The URL to get the next set of results.
5611	NextLink *string `json:"nextLink,omitempty"`
5612
5613	// The list of routes table.
5614	Value *[]ExpressRouteCircuitRoutesTable `json:"value,omitempty"`
5615}
5616
5617// ExpressRouteCircuitsRoutesTableListResultPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCircuitsRoutesTableListResult
5618// type.
5619type ExpressRouteCircuitsRoutesTableListResultPollerResponse struct {
5620	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5621	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCircuitsRoutesTableListResultResponse, error)
5622
5623	// Poller contains an initialized poller.
5624	Poller ExpressRouteCircuitsRoutesTableListResultPoller
5625
5626	// RawResponse contains the underlying HTTP response.
5627	RawResponse *http.Response
5628}
5629
5630// ExpressRouteCircuitsRoutesTableListResultResponse is the response envelope for operations that return a ExpressRouteCircuitsRoutesTableListResult type.
5631type ExpressRouteCircuitsRoutesTableListResultResponse struct {
5632	// Response for ListRoutesTable associated with the Express Route Circuits API.
5633	ExpressRouteCircuitsRoutesTableListResult *ExpressRouteCircuitsRoutesTableListResult
5634
5635	// RawResponse contains the underlying HTTP response.
5636	RawResponse *http.Response
5637}
5638
5639// Response for ListRoutesTable associated with the Express Route Circuits API.
5640type ExpressRouteCircuitsRoutesTableSummaryListResult struct {
5641	// The URL to get the next set of results.
5642	NextLink *string `json:"nextLink,omitempty"`
5643
5644	// A list of the routes table.
5645	Value *[]ExpressRouteCircuitRoutesTableSummary `json:"value,omitempty"`
5646}
5647
5648// ExpressRouteCircuitsRoutesTableSummaryListResultPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCircuitsRoutesTableSummaryListResult
5649// type.
5650type ExpressRouteCircuitsRoutesTableSummaryListResultPollerResponse struct {
5651	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5652	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCircuitsRoutesTableSummaryListResultResponse, error)
5653
5654	// Poller contains an initialized poller.
5655	Poller ExpressRouteCircuitsRoutesTableSummaryListResultPoller
5656
5657	// RawResponse contains the underlying HTTP response.
5658	RawResponse *http.Response
5659}
5660
5661// ExpressRouteCircuitsRoutesTableSummaryListResultResponse is the response envelope for operations that return a ExpressRouteCircuitsRoutesTableSummaryListResult
5662// type.
5663type ExpressRouteCircuitsRoutesTableSummaryListResultResponse struct {
5664	// Response for ListRoutesTable associated with the Express Route Circuits API.
5665	ExpressRouteCircuitsRoutesTableSummaryListResult *ExpressRouteCircuitsRoutesTableSummaryListResult
5666
5667	// RawResponse contains the underlying HTTP response.
5668	RawResponse *http.Response
5669}
5670
5671// ExpressRouteCircuitsUpdateTagsOptions contains the optional parameters for the ExpressRouteCircuits.UpdateTags method.
5672type ExpressRouteCircuitsUpdateTagsOptions struct {
5673	// placeholder for future optional parameters
5674}
5675
5676// ExpressRouteConnection resource.
5677type ExpressRouteConnection struct {
5678	SubResource
5679	// The name of the resource.
5680	Name *string `json:"name,omitempty"`
5681
5682	// Properties of the express route connection.
5683	Properties *ExpressRouteConnectionProperties `json:"properties,omitempty"`
5684}
5685
5686// The ID of the ExpressRouteConnection.
5687type ExpressRouteConnectionID struct {
5688	// READ-ONLY; The ID of the ExpressRouteConnection.
5689	ID *string `json:"id,omitempty" azure:"ro"`
5690}
5691
5692// ExpressRouteConnection list.
5693type ExpressRouteConnectionList struct {
5694	// The list of ExpressRoute connections.
5695	Value *[]ExpressRouteConnection `json:"value,omitempty"`
5696}
5697
5698// ExpressRouteConnectionListResponse is the response envelope for operations that return a ExpressRouteConnectionList type.
5699type ExpressRouteConnectionListResponse struct {
5700	// ExpressRouteConnection list.
5701	ExpressRouteConnectionList *ExpressRouteConnectionList
5702
5703	// RawResponse contains the underlying HTTP response.
5704	RawResponse *http.Response
5705}
5706
5707// ExpressRouteConnectionPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteConnection type.
5708type ExpressRouteConnectionPollerResponse struct {
5709	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5710	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteConnectionResponse, error)
5711
5712	// Poller contains an initialized poller.
5713	Poller ExpressRouteConnectionPoller
5714
5715	// RawResponse contains the underlying HTTP response.
5716	RawResponse *http.Response
5717}
5718
5719// Properties of the ExpressRouteConnection subresource.
5720type ExpressRouteConnectionProperties struct {
5721	// Authorization key to establish the connection.
5722	AuthorizationKey *string `json:"authorizationKey,omitempty"`
5723
5724	// Enable internet security.
5725	EnableInternetSecurity *bool `json:"enableInternetSecurity,omitempty"`
5726
5727	// The ExpressRoute circuit peering.
5728	ExpressRouteCircuitPeering *ExpressRouteCircuitPeeringID `json:"expressRouteCircuitPeering,omitempty"`
5729
5730	// READ-ONLY; The provisioning state of the express route connection resource.
5731	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
5732
5733	// The Routing Configuration indicating the associated and propagated route tables on this connection.
5734	RoutingConfiguration *RoutingConfiguration `json:"routingConfiguration,omitempty"`
5735
5736	// The routing weight associated to the connection.
5737	RoutingWeight *int32 `json:"routingWeight,omitempty"`
5738}
5739
5740// ExpressRouteConnectionResponse is the response envelope for operations that return a ExpressRouteConnection type.
5741type ExpressRouteConnectionResponse struct {
5742	// ExpressRouteConnection resource.
5743	ExpressRouteConnection *ExpressRouteConnection
5744
5745	// RawResponse contains the underlying HTTP response.
5746	RawResponse *http.Response
5747}
5748
5749// ExpressRouteConnectionsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteConnections.BeginCreateOrUpdate method.
5750type ExpressRouteConnectionsBeginCreateOrUpdateOptions struct {
5751	// placeholder for future optional parameters
5752}
5753
5754// ExpressRouteConnectionsBeginDeleteOptions contains the optional parameters for the ExpressRouteConnections.BeginDelete method.
5755type ExpressRouteConnectionsBeginDeleteOptions struct {
5756	// placeholder for future optional parameters
5757}
5758
5759// ExpressRouteConnectionsGetOptions contains the optional parameters for the ExpressRouteConnections.Get method.
5760type ExpressRouteConnectionsGetOptions struct {
5761	// placeholder for future optional parameters
5762}
5763
5764// ExpressRouteConnectionsListOptions contains the optional parameters for the ExpressRouteConnections.List method.
5765type ExpressRouteConnectionsListOptions struct {
5766	// placeholder for future optional parameters
5767}
5768
5769// ExpressRouteCrossConnection resource.
5770type ExpressRouteCrossConnection struct {
5771	Resource
5772	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
5773	Etag *string `json:"etag,omitempty" azure:"ro"`
5774
5775	// Properties of the express route cross connection.
5776	Properties *ExpressRouteCrossConnectionProperties `json:"properties,omitempty"`
5777}
5778
5779// Response for ListExpressRouteCrossConnection API service call.
5780type ExpressRouteCrossConnectionListResult struct {
5781	// READ-ONLY; The URL to get the next set of results.
5782	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
5783
5784	// A list of ExpressRouteCrossConnection resources.
5785	Value *[]ExpressRouteCrossConnection `json:"value,omitempty"`
5786}
5787
5788// ExpressRouteCrossConnectionListResultResponse is the response envelope for operations that return a ExpressRouteCrossConnectionListResult type.
5789type ExpressRouteCrossConnectionListResultResponse struct {
5790	// Response for ListExpressRouteCrossConnection API service call.
5791	ExpressRouteCrossConnectionListResult *ExpressRouteCrossConnectionListResult
5792
5793	// RawResponse contains the underlying HTTP response.
5794	RawResponse *http.Response
5795}
5796
5797// Peering in an ExpressRoute Cross Connection resource.
5798type ExpressRouteCrossConnectionPeering struct {
5799	SubResource
5800	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
5801	Etag *string `json:"etag,omitempty" azure:"ro"`
5802
5803	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
5804	Name *string `json:"name,omitempty"`
5805
5806	// Properties of the express route cross connection peering.
5807	Properties *ExpressRouteCrossConnectionPeeringProperties `json:"properties,omitempty"`
5808}
5809
5810// Response for ListPeering API service call retrieves all peerings that belong to an ExpressRouteCrossConnection.
5811type ExpressRouteCrossConnectionPeeringList struct {
5812	// READ-ONLY; The URL to get the next set of results.
5813	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
5814
5815	// The peerings in an express route cross connection.
5816	Value *[]ExpressRouteCrossConnectionPeering `json:"value,omitempty"`
5817}
5818
5819// ExpressRouteCrossConnectionPeeringListResponse is the response envelope for operations that return a ExpressRouteCrossConnectionPeeringList type.
5820type ExpressRouteCrossConnectionPeeringListResponse struct {
5821	// Response for ListPeering API service call retrieves all peerings that belong to an ExpressRouteCrossConnection.
5822	ExpressRouteCrossConnectionPeeringList *ExpressRouteCrossConnectionPeeringList
5823
5824	// RawResponse contains the underlying HTTP response.
5825	RawResponse *http.Response
5826}
5827
5828// ExpressRouteCrossConnectionPeeringPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCrossConnectionPeering
5829// type.
5830type ExpressRouteCrossConnectionPeeringPollerResponse struct {
5831	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5832	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCrossConnectionPeeringResponse, error)
5833
5834	// Poller contains an initialized poller.
5835	Poller ExpressRouteCrossConnectionPeeringPoller
5836
5837	// RawResponse contains the underlying HTTP response.
5838	RawResponse *http.Response
5839}
5840
5841// Properties of express route cross connection peering.
5842type ExpressRouteCrossConnectionPeeringProperties struct {
5843	// READ-ONLY; The Azure ASN.
5844	AzureAsn *int32 `json:"azureASN,omitempty" azure:"ro"`
5845
5846	// The GatewayManager Etag.
5847	GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"`
5848
5849	// The IPv6 peering configuration.
5850	IPv6PeeringConfig *IPv6ExpressRouteCircuitPeeringConfig `json:"ipv6PeeringConfig,omitempty"`
5851
5852	// READ-ONLY; Who was the last to modify the peering.
5853	LastModifiedBy *string `json:"lastModifiedBy,omitempty" azure:"ro"`
5854
5855	// The Microsoft peering configuration.
5856	MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"`
5857
5858	// The peer ASN.
5859	PeerAsn *int64 `json:"peerASN,omitempty"`
5860
5861	// The peering type.
5862	PeeringType *ExpressRoutePeeringType `json:"peeringType,omitempty"`
5863
5864	// READ-ONLY; The primary port.
5865	PrimaryAzurePort *string `json:"primaryAzurePort,omitempty" azure:"ro"`
5866
5867	// The primary address prefix.
5868	PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"`
5869
5870	// READ-ONLY; The provisioning state of the express route cross connection peering resource.
5871	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
5872
5873	// READ-ONLY; The secondary port.
5874	SecondaryAzurePort *string `json:"secondaryAzurePort,omitempty" azure:"ro"`
5875
5876	// The secondary address prefix.
5877	SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"`
5878
5879	// The shared key.
5880	SharedKey *string `json:"sharedKey,omitempty"`
5881
5882	// The peering state.
5883	State *ExpressRoutePeeringState `json:"state,omitempty"`
5884
5885	// The VLAN ID.
5886	VlanID *int32 `json:"vlanId,omitempty"`
5887}
5888
5889// ExpressRouteCrossConnectionPeeringResponse is the response envelope for operations that return a ExpressRouteCrossConnectionPeering type.
5890type ExpressRouteCrossConnectionPeeringResponse struct {
5891	// Peering in an ExpressRoute Cross Connection resource.
5892	ExpressRouteCrossConnectionPeering *ExpressRouteCrossConnectionPeering
5893
5894	// RawResponse contains the underlying HTTP response.
5895	RawResponse *http.Response
5896}
5897
5898// ExpressRouteCrossConnectionPeeringsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteCrossConnectionPeerings.BeginCreateOrUpdate
5899// method.
5900type ExpressRouteCrossConnectionPeeringsBeginCreateOrUpdateOptions struct {
5901	// placeholder for future optional parameters
5902}
5903
5904// ExpressRouteCrossConnectionPeeringsBeginDeleteOptions contains the optional parameters for the ExpressRouteCrossConnectionPeerings.BeginDelete method.
5905type ExpressRouteCrossConnectionPeeringsBeginDeleteOptions struct {
5906	// placeholder for future optional parameters
5907}
5908
5909// ExpressRouteCrossConnectionPeeringsGetOptions contains the optional parameters for the ExpressRouteCrossConnectionPeerings.Get method.
5910type ExpressRouteCrossConnectionPeeringsGetOptions struct {
5911	// placeholder for future optional parameters
5912}
5913
5914// ExpressRouteCrossConnectionPeeringsListOptions contains the optional parameters for the ExpressRouteCrossConnectionPeerings.List method.
5915type ExpressRouteCrossConnectionPeeringsListOptions struct {
5916	// placeholder for future optional parameters
5917}
5918
5919// ExpressRouteCrossConnectionPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCrossConnection type.
5920type ExpressRouteCrossConnectionPollerResponse struct {
5921	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
5922	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCrossConnectionResponse, error)
5923
5924	// Poller contains an initialized poller.
5925	Poller ExpressRouteCrossConnectionPoller
5926
5927	// RawResponse contains the underlying HTTP response.
5928	RawResponse *http.Response
5929}
5930
5931// Properties of ExpressRouteCrossConnection.
5932type ExpressRouteCrossConnectionProperties struct {
5933	// READ-ONLY; The circuit bandwidth In Mbps.
5934	BandwidthInMbps *int32 `json:"bandwidthInMbps,omitempty" azure:"ro"`
5935
5936	// The ExpressRouteCircuit.
5937	ExpressRouteCircuit *ExpressRouteCircuitReference `json:"expressRouteCircuit,omitempty"`
5938
5939	// READ-ONLY; The peering location of the ExpressRoute circuit.
5940	PeeringLocation *string `json:"peeringLocation,omitempty" azure:"ro"`
5941
5942	// The list of peerings.
5943	Peerings *[]ExpressRouteCrossConnectionPeering `json:"peerings,omitempty"`
5944
5945	// READ-ONLY; The name of the primary port.
5946	PrimaryAzurePort *string `json:"primaryAzurePort,omitempty" azure:"ro"`
5947
5948	// READ-ONLY; The provisioning state of the express route cross connection resource.
5949	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
5950
5951	// READ-ONLY; The identifier of the circuit traffic.
5952	STag *int32 `json:"sTag,omitempty" azure:"ro"`
5953
5954	// READ-ONLY; The name of the secondary port.
5955	SecondaryAzurePort *string `json:"secondaryAzurePort,omitempty" azure:"ro"`
5956
5957	// Additional read only notes set by the connectivity provider.
5958	ServiceProviderNotes *string `json:"serviceProviderNotes,omitempty"`
5959
5960	// The provisioning state of the circuit in the connectivity provider system.
5961	ServiceProviderProvisioningState *ServiceProviderProvisioningState `json:"serviceProviderProvisioningState,omitempty"`
5962}
5963
5964// ExpressRouteCrossConnectionResponse is the response envelope for operations that return a ExpressRouteCrossConnection type.
5965type ExpressRouteCrossConnectionResponse struct {
5966	// ExpressRouteCrossConnection resource.
5967	ExpressRouteCrossConnection *ExpressRouteCrossConnection
5968
5969	// RawResponse contains the underlying HTTP response.
5970	RawResponse *http.Response
5971}
5972
5973// The routes table associated with the ExpressRouteCircuit.
5974type ExpressRouteCrossConnectionRoutesTableSummary struct {
5975	// Autonomous system number.
5976	Asn *int32 `json:"asn,omitempty"`
5977
5978	// IP address of Neighbor router.
5979	Neighbor *string `json:"neighbor,omitempty"`
5980
5981	// Current state of the BGP session, and the number of prefixes that have been received from a neighbor or peer group.
5982	StateOrPrefixesReceived *string `json:"stateOrPrefixesReceived,omitempty"`
5983
5984	// The length of time that the BGP session has been in the Established state, or the current status if not in the Established state.
5985	UpDown *string `json:"upDown,omitempty"`
5986}
5987
5988// ExpressRouteCrossConnectionsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteCrossConnections.BeginCreateOrUpdate method.
5989type ExpressRouteCrossConnectionsBeginCreateOrUpdateOptions struct {
5990	// placeholder for future optional parameters
5991}
5992
5993// ExpressRouteCrossConnectionsBeginListArpTableOptions contains the optional parameters for the ExpressRouteCrossConnections.BeginListArpTable method.
5994type ExpressRouteCrossConnectionsBeginListArpTableOptions struct {
5995	// placeholder for future optional parameters
5996}
5997
5998// ExpressRouteCrossConnectionsBeginListRoutesTableOptions contains the optional parameters for the ExpressRouteCrossConnections.BeginListRoutesTable method.
5999type ExpressRouteCrossConnectionsBeginListRoutesTableOptions struct {
6000	// placeholder for future optional parameters
6001}
6002
6003// ExpressRouteCrossConnectionsBeginListRoutesTableSummaryOptions contains the optional parameters for the ExpressRouteCrossConnections.BeginListRoutesTableSummary
6004// method.
6005type ExpressRouteCrossConnectionsBeginListRoutesTableSummaryOptions struct {
6006	// placeholder for future optional parameters
6007}
6008
6009// ExpressRouteCrossConnectionsGetOptions contains the optional parameters for the ExpressRouteCrossConnections.Get method.
6010type ExpressRouteCrossConnectionsGetOptions struct {
6011	// placeholder for future optional parameters
6012}
6013
6014// ExpressRouteCrossConnectionsListByResourceGroupOptions contains the optional parameters for the ExpressRouteCrossConnections.ListByResourceGroup method.
6015type ExpressRouteCrossConnectionsListByResourceGroupOptions struct {
6016	// placeholder for future optional parameters
6017}
6018
6019// ExpressRouteCrossConnectionsListOptions contains the optional parameters for the ExpressRouteCrossConnections.List method.
6020type ExpressRouteCrossConnectionsListOptions struct {
6021	// placeholder for future optional parameters
6022}
6023
6024// Response for ListRoutesTable associated with the Express Route Cross Connections.
6025type ExpressRouteCrossConnectionsRoutesTableSummaryListResult struct {
6026	// READ-ONLY; The URL to get the next set of results.
6027	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
6028
6029	// A list of the routes table.
6030	Value *[]ExpressRouteCrossConnectionRoutesTableSummary `json:"value,omitempty"`
6031}
6032
6033// ExpressRouteCrossConnectionsRoutesTableSummaryListResultPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteCrossConnectionsRoutesTableSummaryListResult
6034// type.
6035type ExpressRouteCrossConnectionsRoutesTableSummaryListResultPollerResponse struct {
6036	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
6037	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteCrossConnectionsRoutesTableSummaryListResultResponse, error)
6038
6039	// Poller contains an initialized poller.
6040	Poller ExpressRouteCrossConnectionsRoutesTableSummaryListResultPoller
6041
6042	// RawResponse contains the underlying HTTP response.
6043	RawResponse *http.Response
6044}
6045
6046// ExpressRouteCrossConnectionsRoutesTableSummaryListResultResponse is the response envelope for operations that return a ExpressRouteCrossConnectionsRoutesTableSummaryListResult
6047// type.
6048type ExpressRouteCrossConnectionsRoutesTableSummaryListResultResponse struct {
6049	// Response for ListRoutesTable associated with the Express Route Cross Connections.
6050	ExpressRouteCrossConnectionsRoutesTableSummaryListResult *ExpressRouteCrossConnectionsRoutesTableSummaryListResult
6051
6052	// RawResponse contains the underlying HTTP response.
6053	RawResponse *http.Response
6054}
6055
6056// ExpressRouteCrossConnectionsUpdateTagsOptions contains the optional parameters for the ExpressRouteCrossConnections.UpdateTags method.
6057type ExpressRouteCrossConnectionsUpdateTagsOptions struct {
6058	// placeholder for future optional parameters
6059}
6060
6061// ExpressRoute gateway resource.
6062type ExpressRouteGateway struct {
6063	Resource
6064	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
6065	Etag *string `json:"etag,omitempty" azure:"ro"`
6066
6067	// Properties of the express route gateway.
6068	Properties *ExpressRouteGatewayProperties `json:"properties,omitempty"`
6069}
6070
6071// List of ExpressRoute gateways.
6072type ExpressRouteGatewayList struct {
6073	// List of ExpressRoute gateways.
6074	Value *[]ExpressRouteGateway `json:"value,omitempty"`
6075}
6076
6077// ExpressRouteGatewayListResponse is the response envelope for operations that return a ExpressRouteGatewayList type.
6078type ExpressRouteGatewayListResponse struct {
6079	// List of ExpressRoute gateways.
6080	ExpressRouteGatewayList *ExpressRouteGatewayList
6081
6082	// RawResponse contains the underlying HTTP response.
6083	RawResponse *http.Response
6084}
6085
6086// ExpressRouteGatewayPollerResponse is the response envelope for operations that asynchronously return a ExpressRouteGateway type.
6087type ExpressRouteGatewayPollerResponse struct {
6088	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
6089	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRouteGatewayResponse, error)
6090
6091	// Poller contains an initialized poller.
6092	Poller ExpressRouteGatewayPoller
6093
6094	// RawResponse contains the underlying HTTP response.
6095	RawResponse *http.Response
6096}
6097
6098// ExpressRoute gateway resource properties.
6099type ExpressRouteGatewayProperties struct {
6100	// Configuration for auto scaling.
6101	AutoScaleConfiguration *ExpressRouteGatewayPropertiesAutoScaleConfiguration `json:"autoScaleConfiguration,omitempty"`
6102
6103	// READ-ONLY; List of ExpressRoute connections to the ExpressRoute gateway.
6104	ExpressRouteConnections *[]ExpressRouteConnection `json:"expressRouteConnections,omitempty" azure:"ro"`
6105
6106	// READ-ONLY; The provisioning state of the express route gateway resource.
6107	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
6108
6109	// The Virtual Hub where the ExpressRoute gateway is or will be deployed.
6110	VirtualHub *VirtualHubID `json:"virtualHub,omitempty"`
6111}
6112
6113// Configuration for auto scaling.
6114type ExpressRouteGatewayPropertiesAutoScaleConfiguration struct {
6115	// Minimum and maximum number of scale units to deploy.
6116	Bounds *ExpressRouteGatewayPropertiesAutoScaleConfigurationBounds `json:"bounds,omitempty"`
6117}
6118
6119// Minimum and maximum number of scale units to deploy.
6120type ExpressRouteGatewayPropertiesAutoScaleConfigurationBounds struct {
6121	// Maximum number of scale units deployed for ExpressRoute gateway.
6122	Max *int32 `json:"max,omitempty"`
6123
6124	// Minimum number of scale units deployed for ExpressRoute gateway.
6125	Min *int32 `json:"min,omitempty"`
6126}
6127
6128// ExpressRouteGatewayResponse is the response envelope for operations that return a ExpressRouteGateway type.
6129type ExpressRouteGatewayResponse struct {
6130	// ExpressRoute gateway resource.
6131	ExpressRouteGateway *ExpressRouteGateway
6132
6133	// RawResponse contains the underlying HTTP response.
6134	RawResponse *http.Response
6135}
6136
6137// ExpressRouteGatewaysBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRouteGateways.BeginCreateOrUpdate method.
6138type ExpressRouteGatewaysBeginCreateOrUpdateOptions struct {
6139	// placeholder for future optional parameters
6140}
6141
6142// ExpressRouteGatewaysBeginDeleteOptions contains the optional parameters for the ExpressRouteGateways.BeginDelete method.
6143type ExpressRouteGatewaysBeginDeleteOptions struct {
6144	// placeholder for future optional parameters
6145}
6146
6147// ExpressRouteGatewaysGetOptions contains the optional parameters for the ExpressRouteGateways.Get method.
6148type ExpressRouteGatewaysGetOptions struct {
6149	// placeholder for future optional parameters
6150}
6151
6152// ExpressRouteGatewaysListByResourceGroupOptions contains the optional parameters for the ExpressRouteGateways.ListByResourceGroup method.
6153type ExpressRouteGatewaysListByResourceGroupOptions struct {
6154	// placeholder for future optional parameters
6155}
6156
6157// ExpressRouteGatewaysListBySubscriptionOptions contains the optional parameters for the ExpressRouteGateways.ListBySubscription method.
6158type ExpressRouteGatewaysListBySubscriptionOptions struct {
6159	// placeholder for future optional parameters
6160}
6161
6162// ExpressRouteLink child resource definition.
6163type ExpressRouteLink struct {
6164	SubResource
6165	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
6166	Etag *string `json:"etag,omitempty" azure:"ro"`
6167
6168	// Name of child port resource that is unique among child port resources of the parent.
6169	Name *string `json:"name,omitempty"`
6170
6171	// ExpressRouteLink properties.
6172	Properties *ExpressRouteLinkPropertiesFormat `json:"properties,omitempty"`
6173}
6174
6175// Response for ListExpressRouteLinks API service call.
6176type ExpressRouteLinkListResult struct {
6177	// The URL to get the next set of results.
6178	NextLink *string `json:"nextLink,omitempty"`
6179
6180	// The list of ExpressRouteLink sub-resources.
6181	Value *[]ExpressRouteLink `json:"value,omitempty"`
6182}
6183
6184// ExpressRouteLinkListResultResponse is the response envelope for operations that return a ExpressRouteLinkListResult type.
6185type ExpressRouteLinkListResultResponse struct {
6186	// Response for ListExpressRouteLinks API service call.
6187	ExpressRouteLinkListResult *ExpressRouteLinkListResult
6188
6189	// RawResponse contains the underlying HTTP response.
6190	RawResponse *http.Response
6191}
6192
6193// ExpressRouteLink Mac Security Configuration.
6194type ExpressRouteLinkMacSecConfig struct {
6195	// Keyvault Secret Identifier URL containing Mac security CAK key.
6196	CakSecretIDentifier *string `json:"cakSecretIdentifier,omitempty"`
6197
6198	// Mac security cipher.
6199	Cipher *ExpressRouteLinkMacSecCipher `json:"cipher,omitempty"`
6200
6201	// Keyvault Secret Identifier URL containing Mac security CKN key.
6202	CknSecretIDentifier *string `json:"cknSecretIdentifier,omitempty"`
6203
6204	// Sci mode enabled/disabled.
6205	SciState *ExpressRouteLinkMacSecSciState `json:"sciState,omitempty"`
6206}
6207
6208// Properties specific to ExpressRouteLink resources.
6209type ExpressRouteLinkPropertiesFormat struct {
6210	// Administrative state of the physical port.
6211	AdminState *ExpressRouteLinkAdminState `json:"adminState,omitempty"`
6212
6213	// READ-ONLY; Physical fiber port type.
6214	ConnectorType *ExpressRouteLinkConnectorType `json:"connectorType,omitempty" azure:"ro"`
6215
6216	// READ-ONLY; Name of Azure router interface.
6217	InterfaceName *string `json:"interfaceName,omitempty" azure:"ro"`
6218
6219	// MacSec configuration.
6220	MacSecConfig *ExpressRouteLinkMacSecConfig `json:"macSecConfig,omitempty"`
6221
6222	// READ-ONLY; Mapping between physical port to patch panel port.
6223	PatchPanelID *string `json:"patchPanelId,omitempty" azure:"ro"`
6224
6225	// READ-ONLY; The provisioning state of the express route link resource.
6226	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
6227
6228	// READ-ONLY; Mapping of physical patch panel to rack.
6229	RackID *string `json:"rackId,omitempty" azure:"ro"`
6230
6231	// READ-ONLY; Name of Azure router associated with physical port.
6232	RouterName *string `json:"routerName,omitempty" azure:"ro"`
6233}
6234
6235// ExpressRouteLinkResponse is the response envelope for operations that return a ExpressRouteLink type.
6236type ExpressRouteLinkResponse struct {
6237	// ExpressRouteLink child resource definition.
6238	ExpressRouteLink *ExpressRouteLink
6239
6240	// RawResponse contains the underlying HTTP response.
6241	RawResponse *http.Response
6242}
6243
6244// ExpressRouteLinksGetOptions contains the optional parameters for the ExpressRouteLinks.Get method.
6245type ExpressRouteLinksGetOptions struct {
6246	// placeholder for future optional parameters
6247}
6248
6249// ExpressRouteLinksListOptions contains the optional parameters for the ExpressRouteLinks.List method.
6250type ExpressRouteLinksListOptions struct {
6251	// placeholder for future optional parameters
6252}
6253
6254// ExpressRoutePort resource definition.
6255type ExpressRoutePort struct {
6256	Resource
6257	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
6258	Etag *string `json:"etag,omitempty" azure:"ro"`
6259
6260	// The identity of ExpressRoutePort, if configured.
6261	IDentity *ManagedServiceIDentity `json:"identity,omitempty"`
6262
6263	// ExpressRoutePort properties.
6264	Properties *ExpressRoutePortPropertiesFormat `json:"properties,omitempty"`
6265}
6266
6267// Response for ListExpressRoutePorts API service call.
6268type ExpressRoutePortListResult struct {
6269	// The URL to get the next set of results.
6270	NextLink *string `json:"nextLink,omitempty"`
6271
6272	// A list of ExpressRoutePort resources.
6273	Value *[]ExpressRoutePort `json:"value,omitempty"`
6274}
6275
6276// ExpressRoutePortListResultResponse is the response envelope for operations that return a ExpressRoutePortListResult type.
6277type ExpressRoutePortListResultResponse struct {
6278	// Response for ListExpressRoutePorts API service call.
6279	ExpressRoutePortListResult *ExpressRoutePortListResult
6280
6281	// RawResponse contains the underlying HTTP response.
6282	RawResponse *http.Response
6283}
6284
6285// ExpressRoutePortPollerResponse is the response envelope for operations that asynchronously return a ExpressRoutePort type.
6286type ExpressRoutePortPollerResponse struct {
6287	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
6288	PollUntilDone func(ctx context.Context, frequency time.Duration) (ExpressRoutePortResponse, error)
6289
6290	// Poller contains an initialized poller.
6291	Poller ExpressRoutePortPoller
6292
6293	// RawResponse contains the underlying HTTP response.
6294	RawResponse *http.Response
6295}
6296
6297// Properties specific to ExpressRoutePort resources.
6298type ExpressRoutePortPropertiesFormat struct {
6299	// READ-ONLY; Date of the physical port allocation to be used in Letter of Authorization.
6300	AllocationDate *string `json:"allocationDate,omitempty" azure:"ro"`
6301
6302	// Bandwidth of procured ports in Gbps.
6303	BandwidthInGbps *int32 `json:"bandwidthInGbps,omitempty"`
6304
6305	// READ-ONLY; Reference the ExpressRoute circuit(s) that are provisioned on this ExpressRoutePort resource.
6306	Circuits *[]SubResource `json:"circuits,omitempty" azure:"ro"`
6307
6308	// Encapsulation method on physical ports.
6309	Encapsulation *ExpressRoutePortsEncapsulation `json:"encapsulation,omitempty"`
6310
6311	// READ-ONLY; Ether type of the physical port.
6312	EtherType *string `json:"etherType,omitempty" azure:"ro"`
6313
6314	// The set of physical links of the ExpressRoutePort resource.
6315	Links *[]ExpressRouteLink `json:"links,omitempty"`
6316
6317	// READ-ONLY; Maximum transmission unit of the physical port pair(s).
6318	Mtu *string `json:"mtu,omitempty" azure:"ro"`
6319
6320	// The name of the peering location that the ExpressRoutePort is mapped to physically.
6321	PeeringLocation *string `json:"peeringLocation,omitempty"`
6322
6323	// READ-ONLY; Aggregate Gbps of associated circuit bandwidths.
6324	ProvisionedBandwidthInGbps *float32 `json:"provisionedBandwidthInGbps,omitempty" azure:"ro"`
6325
6326	// READ-ONLY; The provisioning state of the express route port resource.
6327	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
6328
6329	// READ-ONLY; The resource GUID property of the express route port resource.
6330	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
6331}
6332
6333// ExpressRoutePortResponse is the response envelope for operations that return a ExpressRoutePort type.
6334type ExpressRoutePortResponse struct {
6335	// ExpressRoutePort resource definition.
6336	ExpressRoutePort *ExpressRoutePort
6337
6338	// RawResponse contains the underlying HTTP response.
6339	RawResponse *http.Response
6340}
6341
6342// ExpressRoutePortsBeginCreateOrUpdateOptions contains the optional parameters for the ExpressRoutePorts.BeginCreateOrUpdate method.
6343type ExpressRoutePortsBeginCreateOrUpdateOptions struct {
6344	// placeholder for future optional parameters
6345}
6346
6347// ExpressRoutePortsBeginDeleteOptions contains the optional parameters for the ExpressRoutePorts.BeginDelete method.
6348type ExpressRoutePortsBeginDeleteOptions struct {
6349	// placeholder for future optional parameters
6350}
6351
6352// ExpressRoutePortsGenerateLoaOptions contains the optional parameters for the ExpressRoutePorts.GenerateLoa method.
6353type ExpressRoutePortsGenerateLoaOptions struct {
6354	// placeholder for future optional parameters
6355}
6356
6357// ExpressRoutePortsGetOptions contains the optional parameters for the ExpressRoutePorts.Get method.
6358type ExpressRoutePortsGetOptions struct {
6359	// placeholder for future optional parameters
6360}
6361
6362// ExpressRoutePortsListByResourceGroupOptions contains the optional parameters for the ExpressRoutePorts.ListByResourceGroup method.
6363type ExpressRoutePortsListByResourceGroupOptions struct {
6364	// placeholder for future optional parameters
6365}
6366
6367// ExpressRoutePortsListOptions contains the optional parameters for the ExpressRoutePorts.List method.
6368type ExpressRoutePortsListOptions struct {
6369	// placeholder for future optional parameters
6370}
6371
6372// Definition of the ExpressRoutePorts peering location resource.
6373type ExpressRoutePortsLocation struct {
6374	Resource
6375	// ExpressRoutePort peering location properties.
6376	Properties *ExpressRoutePortsLocationPropertiesFormat `json:"properties,omitempty"`
6377}
6378
6379// Real-time inventory of available ExpressRoute port bandwidths.
6380type ExpressRoutePortsLocationBandwidths struct {
6381	// READ-ONLY; Bandwidth descriptive name.
6382	OfferName *string `json:"offerName,omitempty" azure:"ro"`
6383
6384	// READ-ONLY; Bandwidth value in Gbps.
6385	ValueInGbps *int32 `json:"valueInGbps,omitempty" azure:"ro"`
6386}
6387
6388// Response for ListExpressRoutePortsLocations API service call.
6389type ExpressRoutePortsLocationListResult struct {
6390	// The URL to get the next set of results.
6391	NextLink *string `json:"nextLink,omitempty"`
6392
6393	// The list of all ExpressRoutePort peering locations.
6394	Value *[]ExpressRoutePortsLocation `json:"value,omitempty"`
6395}
6396
6397// ExpressRoutePortsLocationListResultResponse is the response envelope for operations that return a ExpressRoutePortsLocationListResult type.
6398type ExpressRoutePortsLocationListResultResponse struct {
6399	// Response for ListExpressRoutePortsLocations API service call.
6400	ExpressRoutePortsLocationListResult *ExpressRoutePortsLocationListResult
6401
6402	// RawResponse contains the underlying HTTP response.
6403	RawResponse *http.Response
6404}
6405
6406// Properties specific to ExpressRoutePorts peering location resources.
6407type ExpressRoutePortsLocationPropertiesFormat struct {
6408	// READ-ONLY; Address of peering location.
6409	Address *string `json:"address,omitempty" azure:"ro"`
6410
6411	// The inventory of available ExpressRoutePort bandwidths.
6412	AvailableBandwidths *[]ExpressRoutePortsLocationBandwidths `json:"availableBandwidths,omitempty"`
6413
6414	// READ-ONLY; Contact details of peering locations.
6415	Contact *string `json:"contact,omitempty" azure:"ro"`
6416
6417	// READ-ONLY; The provisioning state of the express route port location resource.
6418	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
6419}
6420
6421// ExpressRoutePortsLocationResponse is the response envelope for operations that return a ExpressRoutePortsLocation type.
6422type ExpressRoutePortsLocationResponse struct {
6423	// Definition of the ExpressRoutePorts peering location resource.
6424	ExpressRoutePortsLocation *ExpressRoutePortsLocation
6425
6426	// RawResponse contains the underlying HTTP response.
6427	RawResponse *http.Response
6428}
6429
6430// ExpressRoutePortsLocationsGetOptions contains the optional parameters for the ExpressRoutePortsLocations.Get method.
6431type ExpressRoutePortsLocationsGetOptions struct {
6432	// placeholder for future optional parameters
6433}
6434
6435// ExpressRoutePortsLocationsListOptions contains the optional parameters for the ExpressRoutePortsLocations.List method.
6436type ExpressRoutePortsLocationsListOptions struct {
6437	// placeholder for future optional parameters
6438}
6439
6440// ExpressRoutePortsUpdateTagsOptions contains the optional parameters for the ExpressRoutePorts.UpdateTags method.
6441type ExpressRoutePortsUpdateTagsOptions struct {
6442	// placeholder for future optional parameters
6443}
6444
6445// A ExpressRouteResourceProvider object.
6446type ExpressRouteServiceProvider struct {
6447	Resource
6448	// Properties of the express route service provider.
6449	Properties *ExpressRouteServiceProviderPropertiesFormat `json:"properties,omitempty"`
6450}
6451
6452// Contains bandwidths offered in ExpressRouteServiceProvider resources.
6453type ExpressRouteServiceProviderBandwidthsOffered struct {
6454	// The OfferName.
6455	OfferName *string `json:"offerName,omitempty"`
6456
6457	// The ValueInMbps.
6458	ValueInMbps *int32 `json:"valueInMbps,omitempty"`
6459}
6460
6461// Response for the ListExpressRouteServiceProvider API service call.
6462type ExpressRouteServiceProviderListResult struct {
6463	// The URL to get the next set of results.
6464	NextLink *string `json:"nextLink,omitempty"`
6465
6466	// A list of ExpressRouteResourceProvider resources.
6467	Value *[]ExpressRouteServiceProvider `json:"value,omitempty"`
6468}
6469
6470// ExpressRouteServiceProviderListResultResponse is the response envelope for operations that return a ExpressRouteServiceProviderListResult type.
6471type ExpressRouteServiceProviderListResultResponse struct {
6472	// Response for the ListExpressRouteServiceProvider API service call.
6473	ExpressRouteServiceProviderListResult *ExpressRouteServiceProviderListResult
6474
6475	// RawResponse contains the underlying HTTP response.
6476	RawResponse *http.Response
6477}
6478
6479// Properties of ExpressRouteServiceProvider.
6480type ExpressRouteServiceProviderPropertiesFormat struct {
6481	// A list of bandwidths offered.
6482	BandwidthsOffered *[]ExpressRouteServiceProviderBandwidthsOffered `json:"bandwidthsOffered,omitempty"`
6483
6484	// A list of peering locations.
6485	PeeringLocations *[]string `json:"peeringLocations,omitempty"`
6486
6487	// READ-ONLY; The provisioning state of the express route service provider resource.
6488	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
6489}
6490
6491// ExpressRouteServiceProvidersListOptions contains the optional parameters for the ExpressRouteServiceProviders.List method.
6492type ExpressRouteServiceProvidersListOptions struct {
6493	// placeholder for future optional parameters
6494}
6495
6496// ExtendedLocation complex type.
6497type ExtendedLocation struct {
6498	// The name of the extended location.
6499	Name *string `json:"name,omitempty"`
6500
6501	// The type of the extended location.
6502	Type *ExtendedLocationTypes `json:"type,omitempty"`
6503}
6504
6505// FirewallPoliciesBeginCreateOrUpdateOptions contains the optional parameters for the FirewallPolicies.BeginCreateOrUpdate method.
6506type FirewallPoliciesBeginCreateOrUpdateOptions struct {
6507	// placeholder for future optional parameters
6508}
6509
6510// FirewallPoliciesBeginDeleteOptions contains the optional parameters for the FirewallPolicies.BeginDelete method.
6511type FirewallPoliciesBeginDeleteOptions struct {
6512	// placeholder for future optional parameters
6513}
6514
6515// FirewallPoliciesGetOptions contains the optional parameters for the FirewallPolicies.Get method.
6516type FirewallPoliciesGetOptions struct {
6517	// Expands referenced resources.
6518	Expand *string
6519}
6520
6521// FirewallPoliciesListAllOptions contains the optional parameters for the FirewallPolicies.ListAll method.
6522type FirewallPoliciesListAllOptions struct {
6523	// placeholder for future optional parameters
6524}
6525
6526// FirewallPoliciesListOptions contains the optional parameters for the FirewallPolicies.List method.
6527type FirewallPoliciesListOptions struct {
6528	// placeholder for future optional parameters
6529}
6530
6531// FirewallPolicy Resource.
6532type FirewallPolicy struct {
6533	Resource
6534	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
6535	Etag *string `json:"etag,omitempty" azure:"ro"`
6536
6537	// The identity of the firewall policy.
6538	IDentity *ManagedServiceIDentity `json:"identity,omitempty"`
6539
6540	// Properties of the firewall policy.
6541	Properties *FirewallPolicyPropertiesFormat `json:"properties,omitempty"`
6542}
6543
6544// Trusted Root certificates properties for tls.
6545type FirewallPolicyCertificateAuthority struct {
6546	// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault.
6547	KeyVaultSecretID *string `json:"keyVaultSecretId,omitempty"`
6548
6549	// Name of the CA certificate.
6550	Name *string `json:"name,omitempty"`
6551}
6552
6553// Firewall Policy Filter Rule Collection.
6554type FirewallPolicyFilterRuleCollection struct {
6555	FirewallPolicyRuleCollection
6556	// The action type of a Filter rule collection.
6557	Action *FirewallPolicyFilterRuleCollectionAction `json:"action,omitempty"`
6558
6559	// List of rules included in a rule collection.
6560	Rules *[]FirewallPolicyRuleClassification `json:"rules,omitempty"`
6561}
6562
6563// MarshalJSON implements the json.Marshaller interface for type FirewallPolicyFilterRuleCollection.
6564func (f FirewallPolicyFilterRuleCollection) MarshalJSON() ([]byte, error) {
6565	objectMap := f.FirewallPolicyRuleCollection.marshalInternal(FirewallPolicyRuleCollectionTypeFirewallPolicyFilterRuleCollection)
6566	if f.Action != nil {
6567		objectMap["action"] = f.Action
6568	}
6569	if f.Rules != nil {
6570		objectMap["rules"] = f.Rules
6571	}
6572	return json.Marshal(objectMap)
6573}
6574
6575// UnmarshalJSON implements the json.Unmarshaller interface for type FirewallPolicyFilterRuleCollection.
6576func (f *FirewallPolicyFilterRuleCollection) UnmarshalJSON(data []byte) error {
6577	var rawMsg map[string]*json.RawMessage
6578	if err := json.Unmarshal(data, &rawMsg); err != nil {
6579		return err
6580	}
6581	for key, val := range rawMsg {
6582		var err error
6583		switch key {
6584		case "action":
6585			if val != nil {
6586				err = json.Unmarshal(*val, &f.Action)
6587			}
6588			delete(rawMsg, key)
6589		case "rules":
6590			if val != nil {
6591				f.Rules, err = unmarshalFirewallPolicyRuleClassificationArray(*val)
6592			}
6593			delete(rawMsg, key)
6594		}
6595		if err != nil {
6596			return err
6597		}
6598	}
6599	return f.FirewallPolicyRuleCollection.unmarshalInternal(rawMsg)
6600}
6601
6602// Properties of the FirewallPolicyFilterRuleCollectionAction.
6603type FirewallPolicyFilterRuleCollectionAction struct {
6604	// The type of action.
6605	Type *FirewallPolicyFilterRuleCollectionActionType `json:"type,omitempty"`
6606}
6607
6608// Configuration for intrusion detection mode and rules.
6609type FirewallPolicyIntrusionDetection struct {
6610	// Intrusion detection configuration properties.
6611	Configuration *FirewallPolicyIntrusionDetectionConfiguration `json:"configuration,omitempty"`
6612
6613	// Intrusion detection general state.
6614	Mode *FirewallPolicyIntrusionDetectionStateType `json:"mode,omitempty"`
6615}
6616
6617// Intrusion detection bypass traffic specification.
6618type FirewallPolicyIntrusionDetectionBypassTrafficSpecifications struct {
6619	// Description of the bypass traffic rule.
6620	Description *string `json:"description,omitempty"`
6621
6622	// List of destination IP addresses or ranges for this rule.
6623	DestinationAddresses *[]string `json:"destinationAddresses,omitempty"`
6624
6625	// List of destination IpGroups for this rule.
6626	DestinationIPGroups *[]string `json:"destinationIpGroups,omitempty"`
6627
6628	// List of destination ports or ranges.
6629	DestinationPorts *[]string `json:"destinationPorts,omitempty"`
6630
6631	// Name of the bypass traffic rule.
6632	Name *string `json:"name,omitempty"`
6633
6634	// The rule bypass protocol.
6635	Protocol *FirewallPolicyIntrusionDetectionProtocol `json:"protocol,omitempty"`
6636
6637	// List of source IP addresses or ranges for this rule.
6638	SourceAddresses *[]string `json:"sourceAddresses,omitempty"`
6639
6640	// List of source IpGroups for this rule.
6641	SourceIPGroups *[]string `json:"sourceIpGroups,omitempty"`
6642}
6643
6644// The operation for configuring intrusion detection.
6645type FirewallPolicyIntrusionDetectionConfiguration struct {
6646	// List of rules for traffic to bypass.
6647	BypassTrafficSettings *[]FirewallPolicyIntrusionDetectionBypassTrafficSpecifications `json:"bypassTrafficSettings,omitempty"`
6648
6649	// List of specific signatures states.
6650	SignatureOverrides *[]FirewallPolicyIntrusionDetectionSignatureSpecification `json:"signatureOverrides,omitempty"`
6651}
6652
6653// Intrusion detection signatures specification states.
6654type FirewallPolicyIntrusionDetectionSignatureSpecification struct {
6655	// Signature id.
6656	ID *string `json:"id,omitempty"`
6657
6658	// The signature state.
6659	Mode *FirewallPolicyIntrusionDetectionStateType `json:"mode,omitempty"`
6660}
6661
6662// Response for ListFirewallPolicies API service call.
6663type FirewallPolicyListResult struct {
6664	// URL to get the next set of results.
6665	NextLink *string `json:"nextLink,omitempty"`
6666
6667	// List of Firewall Policies in a resource group.
6668	Value *[]FirewallPolicy `json:"value,omitempty"`
6669}
6670
6671// FirewallPolicyListResultResponse is the response envelope for operations that return a FirewallPolicyListResult type.
6672type FirewallPolicyListResultResponse struct {
6673	// Response for ListFirewallPolicies API service call.
6674	FirewallPolicyListResult *FirewallPolicyListResult
6675
6676	// RawResponse contains the underlying HTTP response.
6677	RawResponse *http.Response
6678}
6679
6680// Firewall Policy NAT Rule Collection.
6681type FirewallPolicyNatRuleCollection struct {
6682	FirewallPolicyRuleCollection
6683	// The action type of a Nat rule collection.
6684	Action *FirewallPolicyNatRuleCollectionAction `json:"action,omitempty"`
6685
6686	// List of rules included in a rule collection.
6687	Rules *[]FirewallPolicyRuleClassification `json:"rules,omitempty"`
6688}
6689
6690// MarshalJSON implements the json.Marshaller interface for type FirewallPolicyNatRuleCollection.
6691func (f FirewallPolicyNatRuleCollection) MarshalJSON() ([]byte, error) {
6692	objectMap := f.FirewallPolicyRuleCollection.marshalInternal(FirewallPolicyRuleCollectionTypeFirewallPolicyNatRuleCollection)
6693	if f.Action != nil {
6694		objectMap["action"] = f.Action
6695	}
6696	if f.Rules != nil {
6697		objectMap["rules"] = f.Rules
6698	}
6699	return json.Marshal(objectMap)
6700}
6701
6702// UnmarshalJSON implements the json.Unmarshaller interface for type FirewallPolicyNatRuleCollection.
6703func (f *FirewallPolicyNatRuleCollection) UnmarshalJSON(data []byte) error {
6704	var rawMsg map[string]*json.RawMessage
6705	if err := json.Unmarshal(data, &rawMsg); err != nil {
6706		return err
6707	}
6708	for key, val := range rawMsg {
6709		var err error
6710		switch key {
6711		case "action":
6712			if val != nil {
6713				err = json.Unmarshal(*val, &f.Action)
6714			}
6715			delete(rawMsg, key)
6716		case "rules":
6717			if val != nil {
6718				f.Rules, err = unmarshalFirewallPolicyRuleClassificationArray(*val)
6719			}
6720			delete(rawMsg, key)
6721		}
6722		if err != nil {
6723			return err
6724		}
6725	}
6726	return f.FirewallPolicyRuleCollection.unmarshalInternal(rawMsg)
6727}
6728
6729// Properties of the FirewallPolicyNatRuleCollectionAction.
6730type FirewallPolicyNatRuleCollectionAction struct {
6731	// The type of action.
6732	Type *FirewallPolicyNatRuleCollectionActionType `json:"type,omitempty"`
6733}
6734
6735// FirewallPolicyPollerResponse is the response envelope for operations that asynchronously return a FirewallPolicy type.
6736type FirewallPolicyPollerResponse struct {
6737	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
6738	PollUntilDone func(ctx context.Context, frequency time.Duration) (FirewallPolicyResponse, error)
6739
6740	// Poller contains an initialized poller.
6741	Poller FirewallPolicyPoller
6742
6743	// RawResponse contains the underlying HTTP response.
6744	RawResponse *http.Response
6745}
6746
6747// Firewall Policy definition.
6748type FirewallPolicyPropertiesFormat struct {
6749	// The parent firewall policy from which rules are inherited.
6750	BasePolicy *SubResource `json:"basePolicy,omitempty"`
6751
6752	// READ-ONLY; List of references to Child Firewall Policies.
6753	ChildPolicies *[]SubResource `json:"childPolicies,omitempty" azure:"ro"`
6754
6755	// DNS Proxy Settings definition.
6756	DNSSettings *DNSSettings `json:"dnsSettings,omitempty"`
6757
6758	// READ-ONLY; List of references to Azure Firewalls that this Firewall Policy is associated with.
6759	Firewalls *[]SubResource `json:"firewalls,omitempty" azure:"ro"`
6760
6761	// The configuration for Intrusion detection.
6762	IntrusionDetection *FirewallPolicyIntrusionDetection `json:"intrusionDetection,omitempty"`
6763
6764	// READ-ONLY; The provisioning state of the firewall policy resource.
6765	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
6766
6767	// READ-ONLY; List of references to FirewallPolicyRuleCollectionGroups.
6768	RuleCollectionGroups *[]SubResource `json:"ruleCollectionGroups,omitempty" azure:"ro"`
6769
6770	// The Firewall Policy SKU.
6771	SKU *FirewallPolicySKU `json:"sku,omitempty"`
6772
6773	// The operation mode for Threat Intelligence.
6774	ThreatIntelMode *AzureFirewallThreatIntelMode `json:"threatIntelMode,omitempty"`
6775
6776	// ThreatIntel Whitelist for Firewall Policy.
6777	ThreatIntelWhitelist *FirewallPolicyThreatIntelWhitelist `json:"threatIntelWhitelist,omitempty"`
6778
6779	// TLS Configuration definition.
6780	TransportSecurity *FirewallPolicyTransportSecurity `json:"transportSecurity,omitempty"`
6781}
6782
6783// FirewallPolicyResponse is the response envelope for operations that return a FirewallPolicy type.
6784type FirewallPolicyResponse struct {
6785	// FirewallPolicy Resource.
6786	FirewallPolicy *FirewallPolicy
6787
6788	// RawResponse contains the underlying HTTP response.
6789	RawResponse *http.Response
6790}
6791
6792// FirewallPolicyRuleClassification provides polymorphic access to related types.
6793// Call the interface's GetFirewallPolicyRule() method to access the common type.
6794// Use a type switch to determine the concrete type.  The possible types are:
6795// - *FirewallPolicyRule, *ApplicationRule, *NatRule, *NetworkRule
6796type FirewallPolicyRuleClassification interface {
6797	// GetFirewallPolicyRule() returns the FirewallPolicyRule content of the underlying type.
6798	GetFirewallPolicyRule() *FirewallPolicyRule
6799}
6800
6801// Properties of a rule.
6802type FirewallPolicyRule struct {
6803	// Description of the rule.
6804	Description *string `json:"description,omitempty"`
6805
6806	// Name of the rule.
6807	Name *string `json:"name,omitempty"`
6808
6809	// Rule Type.
6810	RuleType *FirewallPolicyRuleType `json:"ruleType,omitempty"`
6811}
6812
6813// GetFirewallPolicyRule implements the FirewallPolicyRuleClassification interface for type FirewallPolicyRule.
6814func (f *FirewallPolicyRule) GetFirewallPolicyRule() *FirewallPolicyRule { return f }
6815
6816// UnmarshalJSON implements the json.Unmarshaller interface for type FirewallPolicyRule.
6817func (f *FirewallPolicyRule) UnmarshalJSON(data []byte) error {
6818	var rawMsg map[string]*json.RawMessage
6819	if err := json.Unmarshal(data, &rawMsg); err != nil {
6820		return err
6821	}
6822	return f.unmarshalInternal(rawMsg)
6823}
6824
6825func (f FirewallPolicyRule) marshalInternal(discValue FirewallPolicyRuleType) map[string]interface{} {
6826	objectMap := make(map[string]interface{})
6827	if f.Description != nil {
6828		objectMap["description"] = f.Description
6829	}
6830	if f.Name != nil {
6831		objectMap["name"] = f.Name
6832	}
6833	f.RuleType = &discValue
6834	objectMap["ruleType"] = f.RuleType
6835	return objectMap
6836}
6837
6838func (f *FirewallPolicyRule) unmarshalInternal(rawMsg map[string]*json.RawMessage) error {
6839	for key, val := range rawMsg {
6840		var err error
6841		switch key {
6842		case "description":
6843			if val != nil {
6844				err = json.Unmarshal(*val, &f.Description)
6845			}
6846			delete(rawMsg, key)
6847		case "name":
6848			if val != nil {
6849				err = json.Unmarshal(*val, &f.Name)
6850			}
6851			delete(rawMsg, key)
6852		case "ruleType":
6853			if val != nil {
6854				err = json.Unmarshal(*val, &f.RuleType)
6855			}
6856			delete(rawMsg, key)
6857		}
6858		if err != nil {
6859			return err
6860		}
6861	}
6862	return nil
6863}
6864
6865// Properties of the application rule protocol.
6866type FirewallPolicyRuleApplicationProtocol struct {
6867	// Port number for the protocol, cannot be greater than 64000.
6868	Port *int32 `json:"port,omitempty"`
6869
6870	// Protocol type.
6871	ProtocolType *FirewallPolicyRuleApplicationProtocolType `json:"protocolType,omitempty"`
6872}
6873
6874// FirewallPolicyRuleCollectionClassification provides polymorphic access to related types.
6875// Call the interface's GetFirewallPolicyRuleCollection() method to access the common type.
6876// Use a type switch to determine the concrete type.  The possible types are:
6877// - *FirewallPolicyRuleCollection, *FirewallPolicyFilterRuleCollection, *FirewallPolicyNatRuleCollection
6878type FirewallPolicyRuleCollectionClassification interface {
6879	// GetFirewallPolicyRuleCollection() returns the FirewallPolicyRuleCollection content of the underlying type.
6880	GetFirewallPolicyRuleCollection() *FirewallPolicyRuleCollection
6881}
6882
6883// Properties of the rule collection.
6884type FirewallPolicyRuleCollection struct {
6885	// The name of the rule collection.
6886	Name *string `json:"name,omitempty"`
6887
6888	// Priority of the Firewall Policy Rule Collection resource.
6889	Priority *int32 `json:"priority,omitempty"`
6890
6891	// The type of the rule collection.
6892	RuleCollectionType *FirewallPolicyRuleCollectionType `json:"ruleCollectionType,omitempty"`
6893}
6894
6895// GetFirewallPolicyRuleCollection implements the FirewallPolicyRuleCollectionClassification interface for type FirewallPolicyRuleCollection.
6896func (f *FirewallPolicyRuleCollection) GetFirewallPolicyRuleCollection() *FirewallPolicyRuleCollection {
6897	return f
6898}
6899
6900// UnmarshalJSON implements the json.Unmarshaller interface for type FirewallPolicyRuleCollection.
6901func (f *FirewallPolicyRuleCollection) UnmarshalJSON(data []byte) error {
6902	var rawMsg map[string]*json.RawMessage
6903	if err := json.Unmarshal(data, &rawMsg); err != nil {
6904		return err
6905	}
6906	return f.unmarshalInternal(rawMsg)
6907}
6908
6909func (f FirewallPolicyRuleCollection) marshalInternal(discValue FirewallPolicyRuleCollectionType) map[string]interface{} {
6910	objectMap := make(map[string]interface{})
6911	if f.Name != nil {
6912		objectMap["name"] = f.Name
6913	}
6914	if f.Priority != nil {
6915		objectMap["priority"] = f.Priority
6916	}
6917	f.RuleCollectionType = &discValue
6918	objectMap["ruleCollectionType"] = f.RuleCollectionType
6919	return objectMap
6920}
6921
6922func (f *FirewallPolicyRuleCollection) unmarshalInternal(rawMsg map[string]*json.RawMessage) error {
6923	for key, val := range rawMsg {
6924		var err error
6925		switch key {
6926		case "name":
6927			if val != nil {
6928				err = json.Unmarshal(*val, &f.Name)
6929			}
6930			delete(rawMsg, key)
6931		case "priority":
6932			if val != nil {
6933				err = json.Unmarshal(*val, &f.Priority)
6934			}
6935			delete(rawMsg, key)
6936		case "ruleCollectionType":
6937			if val != nil {
6938				err = json.Unmarshal(*val, &f.RuleCollectionType)
6939			}
6940			delete(rawMsg, key)
6941		}
6942		if err != nil {
6943			return err
6944		}
6945	}
6946	return nil
6947}
6948
6949// Rule Collection Group resource.
6950type FirewallPolicyRuleCollectionGroup struct {
6951	SubResource
6952	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
6953	Etag *string `json:"etag,omitempty" azure:"ro"`
6954
6955	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
6956	Name *string `json:"name,omitempty"`
6957
6958	// The properties of the firewall policy rule collection group.
6959	Properties *FirewallPolicyRuleCollectionGroupProperties `json:"properties,omitempty"`
6960
6961	// READ-ONLY; Rule Group type.
6962	Type *string `json:"type,omitempty" azure:"ro"`
6963}
6964
6965// Response for ListFirewallPolicyRuleCollectionGroups API service call.
6966type FirewallPolicyRuleCollectionGroupListResult struct {
6967	// URL to get the next set of results.
6968	NextLink *string `json:"nextLink,omitempty"`
6969
6970	// List of FirewallPolicyRuleCollectionGroups in a FirewallPolicy.
6971	Value *[]FirewallPolicyRuleCollectionGroup `json:"value,omitempty"`
6972}
6973
6974// FirewallPolicyRuleCollectionGroupListResultResponse is the response envelope for operations that return a FirewallPolicyRuleCollectionGroupListResult
6975// type.
6976type FirewallPolicyRuleCollectionGroupListResultResponse struct {
6977	// Response for ListFirewallPolicyRuleCollectionGroups API service call.
6978	FirewallPolicyRuleCollectionGroupListResult *FirewallPolicyRuleCollectionGroupListResult
6979
6980	// RawResponse contains the underlying HTTP response.
6981	RawResponse *http.Response
6982}
6983
6984// FirewallPolicyRuleCollectionGroupPollerResponse is the response envelope for operations that asynchronously return a FirewallPolicyRuleCollectionGroup
6985// type.
6986type FirewallPolicyRuleCollectionGroupPollerResponse struct {
6987	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
6988	PollUntilDone func(ctx context.Context, frequency time.Duration) (FirewallPolicyRuleCollectionGroupResponse, error)
6989
6990	// Poller contains an initialized poller.
6991	Poller FirewallPolicyRuleCollectionGroupPoller
6992
6993	// RawResponse contains the underlying HTTP response.
6994	RawResponse *http.Response
6995}
6996
6997// Properties of the rule collection group.
6998type FirewallPolicyRuleCollectionGroupProperties struct {
6999	// Priority of the Firewall Policy Rule Collection Group resource.
7000	Priority *int32 `json:"priority,omitempty"`
7001
7002	// READ-ONLY; The provisioning state of the firewall policy rule collection group resource.
7003	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7004
7005	// Group of Firewall Policy rule collections.
7006	RuleCollections *[]FirewallPolicyRuleCollectionClassification `json:"ruleCollections,omitempty"`
7007}
7008
7009// UnmarshalJSON implements the json.Unmarshaller interface for type FirewallPolicyRuleCollectionGroupProperties.
7010func (f *FirewallPolicyRuleCollectionGroupProperties) UnmarshalJSON(data []byte) error {
7011	var rawMsg map[string]*json.RawMessage
7012	if err := json.Unmarshal(data, &rawMsg); err != nil {
7013		return err
7014	}
7015	for key, val := range rawMsg {
7016		var err error
7017		switch key {
7018		case "priority":
7019			if val != nil {
7020				err = json.Unmarshal(*val, &f.Priority)
7021			}
7022			delete(rawMsg, key)
7023		case "provisioningState":
7024			if val != nil {
7025				err = json.Unmarshal(*val, &f.ProvisioningState)
7026			}
7027			delete(rawMsg, key)
7028		case "ruleCollections":
7029			if val != nil {
7030				f.RuleCollections, err = unmarshalFirewallPolicyRuleCollectionClassificationArray(*val)
7031			}
7032			delete(rawMsg, key)
7033		}
7034		if err != nil {
7035			return err
7036		}
7037	}
7038	return nil
7039}
7040
7041// FirewallPolicyRuleCollectionGroupResponse is the response envelope for operations that return a FirewallPolicyRuleCollectionGroup type.
7042type FirewallPolicyRuleCollectionGroupResponse struct {
7043	// Rule Collection Group resource.
7044	FirewallPolicyRuleCollectionGroup *FirewallPolicyRuleCollectionGroup
7045
7046	// RawResponse contains the underlying HTTP response.
7047	RawResponse *http.Response
7048}
7049
7050// FirewallPolicyRuleCollectionGroupsBeginCreateOrUpdateOptions contains the optional parameters for the FirewallPolicyRuleCollectionGroups.BeginCreateOrUpdate
7051// method.
7052type FirewallPolicyRuleCollectionGroupsBeginCreateOrUpdateOptions struct {
7053	// placeholder for future optional parameters
7054}
7055
7056// FirewallPolicyRuleCollectionGroupsBeginDeleteOptions contains the optional parameters for the FirewallPolicyRuleCollectionGroups.BeginDelete method.
7057type FirewallPolicyRuleCollectionGroupsBeginDeleteOptions struct {
7058	// placeholder for future optional parameters
7059}
7060
7061// FirewallPolicyRuleCollectionGroupsGetOptions contains the optional parameters for the FirewallPolicyRuleCollectionGroups.Get method.
7062type FirewallPolicyRuleCollectionGroupsGetOptions struct {
7063	// placeholder for future optional parameters
7064}
7065
7066// FirewallPolicyRuleCollectionGroupsListOptions contains the optional parameters for the FirewallPolicyRuleCollectionGroups.List method.
7067type FirewallPolicyRuleCollectionGroupsListOptions struct {
7068	// placeholder for future optional parameters
7069}
7070
7071// SKU of Firewall policy.
7072type FirewallPolicySKU struct {
7073	// Tier of Firewall Policy.
7074	Tier *FirewallPolicySKUTier `json:"tier,omitempty"`
7075}
7076
7077// ThreatIntel Whitelist for Firewall Policy.
7078type FirewallPolicyThreatIntelWhitelist struct {
7079	// List of FQDNs for the ThreatIntel Whitelist.
7080	Fqdns *[]string `json:"fqdns,omitempty"`
7081
7082	// List of IP addresses for the ThreatIntel Whitelist.
7083	IPAddresses *[]string `json:"ipAddresses,omitempty"`
7084}
7085
7086// Configuration needed to perform TLS termination & initiation.
7087type FirewallPolicyTransportSecurity struct {
7088	// The CA used for intermediate CA generation.
7089	CertificateAuthority *FirewallPolicyCertificateAuthority `json:"certificateAuthority,omitempty"`
7090}
7091
7092// A flow log resource.
7093type FlowLog struct {
7094	Resource
7095	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7096	Etag *string `json:"etag,omitempty" azure:"ro"`
7097
7098	// Properties of the flow log.
7099	Properties *FlowLogPropertiesFormat `json:"properties,omitempty"`
7100}
7101
7102// Parameters that define the flow log format.
7103type FlowLogFormatParameters struct {
7104	// The file type of flow log.
7105	Type *FlowLogFormatType `json:"type,omitempty"`
7106
7107	// The version (revision) of the flow log.
7108	Version *int32 `json:"version,omitempty"`
7109}
7110
7111// Information on the configuration of flow log and traffic analytics (optional) .
7112type FlowLogInformation struct {
7113	// Parameters that define the configuration of traffic analytics.
7114	FlowAnalyticsConfiguration *TrafficAnalyticsProperties `json:"flowAnalyticsConfiguration,omitempty"`
7115
7116	// Properties of the flow log.
7117	Properties *FlowLogProperties `json:"properties,omitempty"`
7118
7119	// The ID of the resource to configure for flow log and traffic analytics (optional) .
7120	TargetResourceID *string `json:"targetResourceId,omitempty"`
7121}
7122
7123// FlowLogInformationPollerResponse is the response envelope for operations that asynchronously return a FlowLogInformation type.
7124type FlowLogInformationPollerResponse struct {
7125	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7126	PollUntilDone func(ctx context.Context, frequency time.Duration) (FlowLogInformationResponse, error)
7127
7128	// Poller contains an initialized poller.
7129	Poller FlowLogInformationPoller
7130
7131	// RawResponse contains the underlying HTTP response.
7132	RawResponse *http.Response
7133}
7134
7135// FlowLogInformationResponse is the response envelope for operations that return a FlowLogInformation type.
7136type FlowLogInformationResponse struct {
7137	// Information on the configuration of flow log and traffic analytics (optional) .
7138	FlowLogInformation *FlowLogInformation
7139
7140	// RawResponse contains the underlying HTTP response.
7141	RawResponse *http.Response
7142}
7143
7144// List of flow logs.
7145type FlowLogListResult struct {
7146	// READ-ONLY; The URL to get the next set of results.
7147	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
7148
7149	// Information about flow log resource.
7150	Value *[]FlowLog `json:"value,omitempty"`
7151}
7152
7153// FlowLogListResultResponse is the response envelope for operations that return a FlowLogListResult type.
7154type FlowLogListResultResponse struct {
7155	// List of flow logs.
7156	FlowLogListResult *FlowLogListResult
7157
7158	// RawResponse contains the underlying HTTP response.
7159	RawResponse *http.Response
7160}
7161
7162// FlowLogPollerResponse is the response envelope for operations that asynchronously return a FlowLog type.
7163type FlowLogPollerResponse struct {
7164	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7165	PollUntilDone func(ctx context.Context, frequency time.Duration) (FlowLogResponse, error)
7166
7167	// Poller contains an initialized poller.
7168	Poller FlowLogPoller
7169
7170	// RawResponse contains the underlying HTTP response.
7171	RawResponse *http.Response
7172}
7173
7174// Parameters that define the configuration of flow log.
7175type FlowLogProperties struct {
7176	// Flag to enable/disable flow logging.
7177	Enabled *bool `json:"enabled,omitempty"`
7178
7179	// Parameters that define the flow log format.
7180	Format *FlowLogFormatParameters `json:"format,omitempty"`
7181
7182	// Parameters that define the retention policy for flow log.
7183	RetentionPolicy *RetentionPolicyParameters `json:"retentionPolicy,omitempty"`
7184
7185	// ID of the storage account which is used to store the flow log.
7186	StorageID *string `json:"storageId,omitempty"`
7187}
7188
7189// Parameters that define the configuration of flow log.
7190type FlowLogPropertiesFormat struct {
7191	// Flag to enable/disable flow logging.
7192	Enabled *bool `json:"enabled,omitempty"`
7193
7194	// Parameters that define the configuration of traffic analytics.
7195	FlowAnalyticsConfiguration *TrafficAnalyticsProperties `json:"flowAnalyticsConfiguration,omitempty"`
7196
7197	// Parameters that define the flow log format.
7198	Format *FlowLogFormatParameters `json:"format,omitempty"`
7199
7200	// READ-ONLY; The provisioning state of the flow log.
7201	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7202
7203	// Parameters that define the retention policy for flow log.
7204	RetentionPolicy *RetentionPolicyParameters `json:"retentionPolicy,omitempty"`
7205
7206	// ID of the storage account which is used to store the flow log.
7207	StorageID *string `json:"storageId,omitempty"`
7208
7209	// READ-ONLY; Guid of network security group to which flow log will be applied.
7210	TargetResourceGUID *string `json:"targetResourceGuid,omitempty" azure:"ro"`
7211
7212	// ID of network security group to which flow log will be applied.
7213	TargetResourceID *string `json:"targetResourceId,omitempty"`
7214}
7215
7216// FlowLogResponse is the response envelope for operations that return a FlowLog type.
7217type FlowLogResponse struct {
7218	// A flow log resource.
7219	FlowLog *FlowLog
7220
7221	// RawResponse contains the underlying HTTP response.
7222	RawResponse *http.Response
7223}
7224
7225// Parameters that define a resource to query flow log and traffic analytics (optional) status.
7226type FlowLogStatusParameters struct {
7227	// The target resource where getting the flow log and traffic analytics (optional) status.
7228	TargetResourceID *string `json:"targetResourceId,omitempty"`
7229}
7230
7231// FlowLogsBeginCreateOrUpdateOptions contains the optional parameters for the FlowLogs.BeginCreateOrUpdate method.
7232type FlowLogsBeginCreateOrUpdateOptions struct {
7233	// placeholder for future optional parameters
7234}
7235
7236// FlowLogsBeginDeleteOptions contains the optional parameters for the FlowLogs.BeginDelete method.
7237type FlowLogsBeginDeleteOptions struct {
7238	// placeholder for future optional parameters
7239}
7240
7241// FlowLogsGetOptions contains the optional parameters for the FlowLogs.Get method.
7242type FlowLogsGetOptions struct {
7243	// placeholder for future optional parameters
7244}
7245
7246// FlowLogsListOptions contains the optional parameters for the FlowLogs.List method.
7247type FlowLogsListOptions struct {
7248	// placeholder for future optional parameters
7249}
7250
7251// FlowLogsUpdateTagsOptions contains the optional parameters for the FlowLogs.UpdateTags method.
7252type FlowLogsUpdateTagsOptions struct {
7253	// placeholder for future optional parameters
7254}
7255
7256// Frontend IP address of the load balancer.
7257type FrontendIPConfiguration struct {
7258	SubResource
7259	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7260	Etag *string `json:"etag,omitempty" azure:"ro"`
7261
7262	// The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource.
7263	Name *string `json:"name,omitempty"`
7264
7265	// Properties of the load balancer probe.
7266	Properties *FrontendIPConfigurationPropertiesFormat `json:"properties,omitempty"`
7267
7268	// READ-ONLY; Type of the resource.
7269	Type *string `json:"type,omitempty" azure:"ro"`
7270
7271	// A list of availability zones denoting the IP allocated for the resource needs to come from.
7272	Zones *[]string `json:"zones,omitempty"`
7273}
7274
7275// Properties of Frontend IP Configuration of the load balancer.
7276type FrontendIPConfigurationPropertiesFormat struct {
7277	// READ-ONLY; An array of references to inbound pools that use this frontend IP.
7278	InboundNatPools *[]SubResource `json:"inboundNatPools,omitempty" azure:"ro"`
7279
7280	// READ-ONLY; An array of references to inbound rules that use this frontend IP.
7281	InboundNatRules *[]SubResource `json:"inboundNatRules,omitempty" azure:"ro"`
7282
7283	// READ-ONLY; An array of references to load balancing rules that use this frontend IP.
7284	LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty" azure:"ro"`
7285
7286	// READ-ONLY; An array of references to outbound rules that use this frontend IP.
7287	OutboundRules *[]SubResource `json:"outboundRules,omitempty" azure:"ro"`
7288
7289	// The private IP address of the IP configuration.
7290	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
7291
7292	// Whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.
7293	PrivateIPAddressVersion *IPVersion `json:"privateIPAddressVersion,omitempty"`
7294
7295	// The Private IP allocation method.
7296	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
7297
7298	// READ-ONLY; The provisioning state of the frontend IP configuration resource.
7299	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7300
7301	// The reference to the Public IP resource.
7302	PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"`
7303
7304	// The reference to the Public IP Prefix resource.
7305	PublicIPPrefix *SubResource `json:"publicIPPrefix,omitempty"`
7306
7307	// The reference to the subnet resource.
7308	Subnet *Subnet `json:"subnet,omitempty"`
7309}
7310
7311// FrontendIPConfigurationResponse is the response envelope for operations that return a FrontendIPConfiguration type.
7312type FrontendIPConfigurationResponse struct {
7313	// Frontend IP address of the load balancer.
7314	FrontendIPConfiguration *FrontendIPConfiguration
7315
7316	// RawResponse contains the underlying HTTP response.
7317	RawResponse *http.Response
7318}
7319
7320// Gateway routing details.
7321type GatewayRoute struct {
7322	// READ-ONLY; The route's AS path sequence.
7323	AsPath *string `json:"asPath,omitempty" azure:"ro"`
7324
7325	// READ-ONLY; The gateway's local address.
7326	LocalAddress *string `json:"localAddress,omitempty" azure:"ro"`
7327
7328	// READ-ONLY; The route's network prefix.
7329	Network *string `json:"network,omitempty" azure:"ro"`
7330
7331	// READ-ONLY; The route's next hop.
7332	NextHop *string `json:"nextHop,omitempty" azure:"ro"`
7333
7334	// READ-ONLY; The source this route was learned from.
7335	Origin *string `json:"origin,omitempty" azure:"ro"`
7336
7337	// READ-ONLY; The peer this route was learned from.
7338	SourcePeer *string `json:"sourcePeer,omitempty" azure:"ro"`
7339
7340	// READ-ONLY; The route's weight.
7341	Weight *int32 `json:"weight,omitempty" azure:"ro"`
7342}
7343
7344// List of virtual network gateway routes.
7345type GatewayRouteListResult struct {
7346	// List of gateway routes.
7347	Value *[]GatewayRoute `json:"value,omitempty"`
7348}
7349
7350// GatewayRouteListResultPollerResponse is the response envelope for operations that asynchronously return a GatewayRouteListResult type.
7351type GatewayRouteListResultPollerResponse struct {
7352	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7353	PollUntilDone func(ctx context.Context, frequency time.Duration) (GatewayRouteListResultResponse, error)
7354
7355	// Poller contains an initialized poller.
7356	Poller GatewayRouteListResultPoller
7357
7358	// RawResponse contains the underlying HTTP response.
7359	RawResponse *http.Response
7360}
7361
7362// GatewayRouteListResultResponse is the response envelope for operations that return a GatewayRouteListResult type.
7363type GatewayRouteListResultResponse struct {
7364	// List of virtual network gateway routes.
7365	GatewayRouteListResult *GatewayRouteListResult
7366
7367	// RawResponse contains the underlying HTTP response.
7368	RawResponse *http.Response
7369}
7370
7371// The customer name to be printed on a letter of authorization.
7372type GenerateExpressRoutePortsLoaRequest struct {
7373	// The customer name.
7374	CustomerName *string `json:"customerName,omitempty"`
7375}
7376
7377// Response for GenerateExpressRoutePortsLOA API service call.
7378type GenerateExpressRoutePortsLoaResult struct {
7379	// The content as a base64 encoded string.
7380	EncodedContent *string `json:"encodedContent,omitempty"`
7381}
7382
7383// GenerateExpressRoutePortsLoaResultResponse is the response envelope for operations that return a GenerateExpressRoutePortsLoaResult type.
7384type GenerateExpressRoutePortsLoaResultResponse struct {
7385	// Response for GenerateExpressRoutePortsLOA API service call.
7386	GenerateExpressRoutePortsLoaResult *GenerateExpressRoutePortsLoaResult
7387
7388	// RawResponse contains the underlying HTTP response.
7389	RawResponse *http.Response
7390}
7391
7392// List of Vpn-Sites.
7393type GetVpnSitesConfigurationRequest struct {
7394	// The sas-url to download the configurations for vpn-sites.
7395	OutputBlobSasURL *string `json:"outputBlobSasUrl,omitempty"`
7396
7397	// List of resource-ids of the vpn-sites for which config is to be downloaded.
7398	VpnSites *[]string `json:"vpnSites,omitempty"`
7399}
7400
7401// HTTP configuration of the connectivity check.
7402type HTTPConfiguration struct {
7403	// List of HTTP headers.
7404	Headers *[]HTTPHeader `json:"headers,omitempty"`
7405
7406	// HTTP method.
7407	Method *HTTPMethod `json:"method,omitempty"`
7408
7409	// Valid status codes.
7410	ValidStatusCodes *[]int32 `json:"validStatusCodes,omitempty"`
7411}
7412
7413// The HTTP header.
7414type HTTPHeader struct {
7415	// The name in HTTP header.
7416	Name *string `json:"name,omitempty"`
7417
7418	// The value in HTTP header.
7419	Value *string `json:"value,omitempty"`
7420}
7421
7422// HTTPPollerResponse contains the asynchronous HTTP response from the call to the service endpoint.
7423type HTTPPollerResponse struct {
7424	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7425	PollUntilDone func(ctx context.Context, frequency time.Duration) (*http.Response, error)
7426
7427	// Poller contains an initialized poller.
7428	Poller HTTPPoller
7429
7430	// RawResponse contains the underlying HTTP response.
7431	RawResponse *http.Response
7432}
7433
7434// Hop link.
7435type HopLink struct {
7436	// READ-ONLY; Provides additional context on links.
7437	Context *map[string]string `json:"context,omitempty" azure:"ro"`
7438
7439	// READ-ONLY; List of issues.
7440	Issues *[]ConnectivityIssue `json:"issues,omitempty" azure:"ro"`
7441
7442	// READ-ONLY; Link type.
7443	LinkType *string `json:"linkType,omitempty" azure:"ro"`
7444
7445	// READ-ONLY; The ID of the next hop.
7446	NextHopID *string `json:"nextHopId,omitempty" azure:"ro"`
7447
7448	// Hop link properties.
7449	Properties *HopLinkProperties `json:"properties,omitempty"`
7450
7451	// READ-ONLY; Resource ID.
7452	ResourceID *string `json:"resourceId,omitempty" azure:"ro"`
7453}
7454
7455// Hop link properties.
7456type HopLinkProperties struct {
7457	// READ-ONLY; Average roundtrip time in milliseconds.
7458	RoundTripTimeAvg *int64 `json:"roundTripTimeAvg,omitempty" azure:"ro"`
7459
7460	// READ-ONLY; Maximum roundtrip time in milliseconds.
7461	RoundTripTimeMax *int64 `json:"roundTripTimeMax,omitempty" azure:"ro"`
7462
7463	// READ-ONLY; Minimum roundtrip time in milliseconds.
7464	RoundTripTimeMin *int64 `json:"roundTripTimeMin,omitempty" azure:"ro"`
7465}
7466
7467// IP addresses associated with azure firewall.
7468type HubIPAddresses struct {
7469	// Private IP Address associated with azure firewall.
7470	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
7471
7472	// Public IP addresses associated with azure firewall.
7473	PublicIPs *HubPublicIPAddresses `json:"publicIPs,omitempty"`
7474}
7475
7476// IpConfigurations.
7477type HubIPConfiguration struct {
7478	SubResource
7479	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7480	Etag *string `json:"etag,omitempty" azure:"ro"`
7481
7482	// Name of the Ip Configuration.
7483	Name *string `json:"name,omitempty"`
7484
7485	// The properties of the Virtual Hub IPConfigurations.
7486	Properties *HubIPConfigurationPropertiesFormat `json:"properties,omitempty"`
7487
7488	// READ-ONLY; Ipconfiguration type.
7489	Type *string `json:"type,omitempty" azure:"ro"`
7490}
7491
7492// HubIPConfigurationPollerResponse is the response envelope for operations that asynchronously return a HubIPConfiguration type.
7493type HubIPConfigurationPollerResponse struct {
7494	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7495	PollUntilDone func(ctx context.Context, frequency time.Duration) (HubIPConfigurationResponse, error)
7496
7497	// Poller contains an initialized poller.
7498	Poller HubIPConfigurationPoller
7499
7500	// RawResponse contains the underlying HTTP response.
7501	RawResponse *http.Response
7502}
7503
7504// Properties of IP configuration.
7505type HubIPConfigurationPropertiesFormat struct {
7506	// The private IP address of the IP configuration.
7507	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
7508
7509	// The private IP address allocation method.
7510	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
7511
7512	// READ-ONLY; The provisioning state of the IP configuration resource.
7513	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7514
7515	// The reference to the public IP resource.
7516	PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"`
7517
7518	// The reference to the subnet resource.
7519	Subnet *Subnet `json:"subnet,omitempty"`
7520}
7521
7522// HubIPConfigurationResponse is the response envelope for operations that return a HubIPConfiguration type.
7523type HubIPConfigurationResponse struct {
7524	// IpConfigurations.
7525	HubIPConfiguration *HubIPConfiguration
7526
7527	// RawResponse contains the underlying HTTP response.
7528	RawResponse *http.Response
7529}
7530
7531// Public IP addresses associated with azure firewall.
7532type HubPublicIPAddresses struct {
7533	// The list of Public IP addresses associated with azure firewall or IP addresses to be retained.
7534	Addresses *[]AzureFirewallPublicIPAddress `json:"addresses,omitempty"`
7535
7536	// The number of Public IP addresses associated with azure firewall.
7537	Count *int32 `json:"count,omitempty"`
7538}
7539
7540// RouteTable route.
7541type HubRoute struct {
7542	// The type of destinations (eg: CIDR, ResourceId, Service).
7543	DestinationType *string `json:"destinationType,omitempty"`
7544
7545	// List of all destinations.
7546	Destinations *[]string `json:"destinations,omitempty"`
7547
7548	// The name of the Route that is unique within a RouteTable. This name can be used to access this route.
7549	Name *string `json:"name,omitempty"`
7550
7551	// NextHop resource ID.
7552	NextHop *string `json:"nextHop,omitempty"`
7553
7554	// The type of next hop (eg: ResourceId).
7555	NextHopType *string `json:"nextHopType,omitempty"`
7556}
7557
7558// RouteTable resource in a virtual hub.
7559type HubRouteTable struct {
7560	SubResource
7561	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7562	Etag *string `json:"etag,omitempty" azure:"ro"`
7563
7564	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
7565	Name *string `json:"name,omitempty"`
7566
7567	// Properties of the RouteTable resource.
7568	Properties *HubRouteTableProperties `json:"properties,omitempty"`
7569
7570	// READ-ONLY; Resource type.
7571	Type *string `json:"type,omitempty" azure:"ro"`
7572}
7573
7574// HubRouteTablePollerResponse is the response envelope for operations that asynchronously return a HubRouteTable type.
7575type HubRouteTablePollerResponse struct {
7576	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7577	PollUntilDone func(ctx context.Context, frequency time.Duration) (HubRouteTableResponse, error)
7578
7579	// Poller contains an initialized poller.
7580	Poller HubRouteTablePoller
7581
7582	// RawResponse contains the underlying HTTP response.
7583	RawResponse *http.Response
7584}
7585
7586// Parameters for RouteTable.
7587type HubRouteTableProperties struct {
7588	// READ-ONLY; List of all connections associated with this route table.
7589	AssociatedConnections *[]string `json:"associatedConnections,omitempty" azure:"ro"`
7590
7591	// List of labels associated with this route table.
7592	Labels *[]string `json:"labels,omitempty"`
7593
7594	// READ-ONLY; List of all connections that advertise to this route table.
7595	PropagatingConnections *[]string `json:"propagatingConnections,omitempty" azure:"ro"`
7596
7597	// READ-ONLY; The provisioning state of the RouteTable resource.
7598	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7599
7600	// List of all routes.
7601	Routes *[]HubRoute `json:"routes,omitempty"`
7602}
7603
7604// HubRouteTableResponse is the response envelope for operations that return a HubRouteTable type.
7605type HubRouteTableResponse struct {
7606	// RouteTable resource in a virtual hub.
7607	HubRouteTable *HubRouteTable
7608
7609	// RawResponse contains the underlying HTTP response.
7610	RawResponse *http.Response
7611}
7612
7613// HubRouteTablesBeginCreateOrUpdateOptions contains the optional parameters for the HubRouteTables.BeginCreateOrUpdate method.
7614type HubRouteTablesBeginCreateOrUpdateOptions struct {
7615	// placeholder for future optional parameters
7616}
7617
7618// HubRouteTablesBeginDeleteOptions contains the optional parameters for the HubRouteTables.BeginDelete method.
7619type HubRouteTablesBeginDeleteOptions struct {
7620	// placeholder for future optional parameters
7621}
7622
7623// HubRouteTablesGetOptions contains the optional parameters for the HubRouteTables.Get method.
7624type HubRouteTablesGetOptions struct {
7625	// placeholder for future optional parameters
7626}
7627
7628// HubRouteTablesListOptions contains the optional parameters for the HubRouteTables.List method.
7629type HubRouteTablesListOptions struct {
7630	// placeholder for future optional parameters
7631}
7632
7633// HubVirtualNetworkConnection Resource.
7634type HubVirtualNetworkConnection struct {
7635	SubResource
7636	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7637	Etag *string `json:"etag,omitempty" azure:"ro"`
7638
7639	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
7640	Name *string `json:"name,omitempty"`
7641
7642	// Properties of the hub virtual network connection.
7643	Properties *HubVirtualNetworkConnectionProperties `json:"properties,omitempty"`
7644}
7645
7646// HubVirtualNetworkConnectionPollerResponse is the response envelope for operations that asynchronously return a HubVirtualNetworkConnection type.
7647type HubVirtualNetworkConnectionPollerResponse struct {
7648	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7649	PollUntilDone func(ctx context.Context, frequency time.Duration) (HubVirtualNetworkConnectionResponse, error)
7650
7651	// Poller contains an initialized poller.
7652	Poller HubVirtualNetworkConnectionPoller
7653
7654	// RawResponse contains the underlying HTTP response.
7655	RawResponse *http.Response
7656}
7657
7658// Parameters for HubVirtualNetworkConnection.
7659type HubVirtualNetworkConnectionProperties struct {
7660	// Deprecated: VirtualHub to RemoteVnet transit to enabled or not.
7661	AllowHubToRemoteVnetTransit *bool `json:"allowHubToRemoteVnetTransit,omitempty"`
7662
7663	// Deprecated: Allow RemoteVnet to use Virtual Hub's gateways.
7664	AllowRemoteVnetToUseHubVnetGateways *bool `json:"allowRemoteVnetToUseHubVnetGateways,omitempty"`
7665
7666	// Enable internet security.
7667	EnableInternetSecurity *bool `json:"enableInternetSecurity,omitempty"`
7668
7669	// READ-ONLY; The provisioning state of the hub virtual network connection resource.
7670	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7671
7672	// Reference to the remote virtual network.
7673	RemoteVirtualNetwork *SubResource `json:"remoteVirtualNetwork,omitempty"`
7674
7675	// The Routing Configuration indicating the associated and propagated route tables on this connection.
7676	RoutingConfiguration *RoutingConfiguration `json:"routingConfiguration,omitempty"`
7677}
7678
7679// HubVirtualNetworkConnectionResponse is the response envelope for operations that return a HubVirtualNetworkConnection type.
7680type HubVirtualNetworkConnectionResponse struct {
7681	// HubVirtualNetworkConnection Resource.
7682	HubVirtualNetworkConnection *HubVirtualNetworkConnection
7683
7684	// RawResponse contains the underlying HTTP response.
7685	RawResponse *http.Response
7686}
7687
7688// HubVirtualNetworkConnectionsBeginCreateOrUpdateOptions contains the optional parameters for the HubVirtualNetworkConnections.BeginCreateOrUpdate method.
7689type HubVirtualNetworkConnectionsBeginCreateOrUpdateOptions struct {
7690	// placeholder for future optional parameters
7691}
7692
7693// HubVirtualNetworkConnectionsBeginDeleteOptions contains the optional parameters for the HubVirtualNetworkConnections.BeginDelete method.
7694type HubVirtualNetworkConnectionsBeginDeleteOptions struct {
7695	// placeholder for future optional parameters
7696}
7697
7698// HubVirtualNetworkConnectionsGetOptions contains the optional parameters for the HubVirtualNetworkConnections.Get method.
7699type HubVirtualNetworkConnectionsGetOptions struct {
7700	// placeholder for future optional parameters
7701}
7702
7703// HubVirtualNetworkConnectionsListOptions contains the optional parameters for the HubVirtualNetworkConnections.List method.
7704type HubVirtualNetworkConnectionsListOptions struct {
7705	// placeholder for future optional parameters
7706}
7707
7708// Response for CheckIPAddressAvailability API service call.
7709type IPAddressAvailabilityResult struct {
7710	// Private IP address availability.
7711	Available *bool `json:"available,omitempty"`
7712
7713	// Contains other available private IP addresses if the asked for address is taken.
7714	AvailableIPAddresses *[]string `json:"availableIPAddresses,omitempty"`
7715}
7716
7717// IPAddressAvailabilityResultResponse is the response envelope for operations that return a IPAddressAvailabilityResult type.
7718type IPAddressAvailabilityResultResponse struct {
7719	// Response for CheckIPAddressAvailability API service call.
7720	IPAddressAvailabilityResult *IPAddressAvailabilityResult
7721
7722	// RawResponse contains the underlying HTTP response.
7723	RawResponse *http.Response
7724}
7725
7726// IpAllocation resource.
7727type IPAllocation struct {
7728	Resource
7729	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7730	Etag *string `json:"etag,omitempty" azure:"ro"`
7731
7732	// Properties of the IpAllocation.
7733	Properties *IPAllocationPropertiesFormat `json:"properties,omitempty"`
7734}
7735
7736// Response for the ListIpAllocations API service call.
7737type IPAllocationListResult struct {
7738	// The URL to get the next set of results.
7739	NextLink *string `json:"nextLink,omitempty"`
7740
7741	// A list of IpAllocation resources.
7742	Value *[]IPAllocation `json:"value,omitempty"`
7743}
7744
7745// IPAllocationListResultResponse is the response envelope for operations that return a IPAllocationListResult type.
7746type IPAllocationListResultResponse struct {
7747	// Response for the ListIpAllocations API service call.
7748	IPAllocationListResult *IPAllocationListResult
7749
7750	// RawResponse contains the underlying HTTP response.
7751	RawResponse *http.Response
7752}
7753
7754// IPAllocationPollerResponse is the response envelope for operations that asynchronously return a IPAllocation type.
7755type IPAllocationPollerResponse struct {
7756	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7757	PollUntilDone func(ctx context.Context, frequency time.Duration) (IPAllocationResponse, error)
7758
7759	// Poller contains an initialized poller.
7760	Poller IPAllocationPoller
7761
7762	// RawResponse contains the underlying HTTP response.
7763	RawResponse *http.Response
7764}
7765
7766// Properties of the IpAllocation.
7767type IPAllocationPropertiesFormat struct {
7768	// IpAllocation tags.
7769	AllocationTags *map[string]string `json:"allocationTags,omitempty"`
7770
7771	// The IPAM allocation ID.
7772	IPamAllocationID *string `json:"ipamAllocationId,omitempty"`
7773
7774	// The address prefix for the IpAllocation.
7775	Prefix *string `json:"prefix,omitempty"`
7776
7777	// The address prefix length for the IpAllocation.
7778	PrefixLength *int32 `json:"prefixLength,omitempty"`
7779
7780	// The address prefix Type for the IpAllocation.
7781	PrefixType *IPVersion `json:"prefixType,omitempty"`
7782
7783	// READ-ONLY; The Subnet that using the prefix of this IpAllocation resource.
7784	Subnet *SubResource `json:"subnet,omitempty" azure:"ro"`
7785
7786	// The type for the IpAllocation.
7787	Type *IPAllocationType `json:"type,omitempty"`
7788
7789	// READ-ONLY; The VirtualNetwork that using the prefix of this IpAllocation resource.
7790	VirtualNetwork *SubResource `json:"virtualNetwork,omitempty" azure:"ro"`
7791}
7792
7793// IPAllocationResponse is the response envelope for operations that return a IPAllocation type.
7794type IPAllocationResponse struct {
7795	// IpAllocation resource.
7796	IPAllocation *IPAllocation
7797
7798	// RawResponse contains the underlying HTTP response.
7799	RawResponse *http.Response
7800}
7801
7802// IPAllocationsBeginCreateOrUpdateOptions contains the optional parameters for the IPAllocations.BeginCreateOrUpdate method.
7803type IPAllocationsBeginCreateOrUpdateOptions struct {
7804	// placeholder for future optional parameters
7805}
7806
7807// IPAllocationsBeginDeleteOptions contains the optional parameters for the IPAllocations.BeginDelete method.
7808type IPAllocationsBeginDeleteOptions struct {
7809	// placeholder for future optional parameters
7810}
7811
7812// IPAllocationsGetOptions contains the optional parameters for the IPAllocations.Get method.
7813type IPAllocationsGetOptions struct {
7814	// Expands referenced resources.
7815	Expand *string
7816}
7817
7818// IPAllocationsListByResourceGroupOptions contains the optional parameters for the IPAllocations.ListByResourceGroup method.
7819type IPAllocationsListByResourceGroupOptions struct {
7820	// placeholder for future optional parameters
7821}
7822
7823// IPAllocationsListOptions contains the optional parameters for the IPAllocations.List method.
7824type IPAllocationsListOptions struct {
7825	// placeholder for future optional parameters
7826}
7827
7828// IPAllocationsUpdateTagsOptions contains the optional parameters for the IPAllocations.UpdateTags method.
7829type IPAllocationsUpdateTagsOptions struct {
7830	// placeholder for future optional parameters
7831}
7832
7833// IP configuration.
7834type IPConfiguration struct {
7835	SubResource
7836	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7837	Etag *string `json:"etag,omitempty" azure:"ro"`
7838
7839	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
7840	Name *string `json:"name,omitempty"`
7841
7842	// Properties of the IP configuration.
7843	Properties *IPConfigurationPropertiesFormat `json:"properties,omitempty"`
7844}
7845
7846// Properties of IPConfigurationBgpPeeringAddress.
7847type IPConfigurationBgpPeeringAddress struct {
7848	// The list of custom BGP peering addresses which belong to IP configuration.
7849	CustomBgpIPAddresses *[]string `json:"customBgpIpAddresses,omitempty"`
7850
7851	// READ-ONLY; The list of default BGP peering addresses which belong to IP configuration.
7852	DefaultBgpIPAddresses *[]string `json:"defaultBgpIpAddresses,omitempty" azure:"ro"`
7853
7854	// The ID of IP configuration which belongs to gateway.
7855	IPconfigurationID *string `json:"ipconfigurationId,omitempty"`
7856
7857	// READ-ONLY; The list of tunnel public IP addresses which belong to IP configuration.
7858	TunnelIPAddresses *[]string `json:"tunnelIpAddresses,omitempty" azure:"ro"`
7859}
7860
7861// IP configuration profile child resource.
7862type IPConfigurationProfile struct {
7863	SubResource
7864	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7865	Etag *string `json:"etag,omitempty" azure:"ro"`
7866
7867	// The name of the resource. This name can be used to access the resource.
7868	Name *string `json:"name,omitempty"`
7869
7870	// Properties of the IP configuration profile.
7871	Properties *IPConfigurationProfilePropertiesFormat `json:"properties,omitempty"`
7872
7873	// READ-ONLY; Sub Resource type.
7874	Type *string `json:"type,omitempty" azure:"ro"`
7875}
7876
7877// IP configuration profile properties.
7878type IPConfigurationProfilePropertiesFormat struct {
7879	// READ-ONLY; The provisioning state of the IP configuration profile resource.
7880	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7881
7882	// The reference to the subnet resource to create a container network interface ip configuration.
7883	Subnet *Subnet `json:"subnet,omitempty"`
7884}
7885
7886// Properties of IP configuration.
7887type IPConfigurationPropertiesFormat struct {
7888	// The private IP address of the IP configuration.
7889	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
7890
7891	// The private IP address allocation method.
7892	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
7893
7894	// READ-ONLY; The provisioning state of the IP configuration resource.
7895	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7896
7897	// The reference to the public IP resource.
7898	PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"`
7899
7900	// The reference to the subnet resource.
7901	Subnet *Subnet `json:"subnet,omitempty"`
7902}
7903
7904// The IpGroups resource information.
7905type IPGroup struct {
7906	Resource
7907	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
7908	Etag *string `json:"etag,omitempty" azure:"ro"`
7909
7910	// Properties of the IpGroups.
7911	Properties *IPGroupPropertiesFormat `json:"properties,omitempty"`
7912}
7913
7914// Response for the ListIpGroups API service call.
7915type IPGroupListResult struct {
7916	// URL to get the next set of results.
7917	NextLink *string `json:"nextLink,omitempty"`
7918
7919	// The list of IpGroups information resources.
7920	Value *[]IPGroup `json:"value,omitempty"`
7921}
7922
7923// IPGroupListResultResponse is the response envelope for operations that return a IPGroupListResult type.
7924type IPGroupListResultResponse struct {
7925	// Response for the ListIpGroups API service call.
7926	IPGroupListResult *IPGroupListResult
7927
7928	// RawResponse contains the underlying HTTP response.
7929	RawResponse *http.Response
7930}
7931
7932// IPGroupPollerResponse is the response envelope for operations that asynchronously return a IPGroup type.
7933type IPGroupPollerResponse struct {
7934	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
7935	PollUntilDone func(ctx context.Context, frequency time.Duration) (IPGroupResponse, error)
7936
7937	// Poller contains an initialized poller.
7938	Poller IPGroupPoller
7939
7940	// RawResponse contains the underlying HTTP response.
7941	RawResponse *http.Response
7942}
7943
7944// The IpGroups property information.
7945type IPGroupPropertiesFormat struct {
7946	// READ-ONLY; List of references to Firewall Policies resources that this IpGroups is associated with.
7947	FirewallPolicies *[]SubResource `json:"firewallPolicies,omitempty" azure:"ro"`
7948
7949	// READ-ONLY; List of references to Firewall resources that this IpGroups is associated with.
7950	Firewalls *[]SubResource `json:"firewalls,omitempty" azure:"ro"`
7951
7952	// IpAddresses/IpAddressPrefixes in the IpGroups resource.
7953	IPAddresses *[]string `json:"ipAddresses,omitempty"`
7954
7955	// READ-ONLY; The provisioning state of the IpGroups resource.
7956	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
7957}
7958
7959// IPGroupResponse is the response envelope for operations that return a IPGroup type.
7960type IPGroupResponse struct {
7961	// The IpGroups resource information.
7962	IPGroup *IPGroup
7963
7964	// RawResponse contains the underlying HTTP response.
7965	RawResponse *http.Response
7966}
7967
7968// IPGroupsBeginCreateOrUpdateOptions contains the optional parameters for the IPGroups.BeginCreateOrUpdate method.
7969type IPGroupsBeginCreateOrUpdateOptions struct {
7970	// placeholder for future optional parameters
7971}
7972
7973// IPGroupsBeginDeleteOptions contains the optional parameters for the IPGroups.BeginDelete method.
7974type IPGroupsBeginDeleteOptions struct {
7975	// placeholder for future optional parameters
7976}
7977
7978// IPGroupsGetOptions contains the optional parameters for the IPGroups.Get method.
7979type IPGroupsGetOptions struct {
7980	// Expands resourceIds (of Firewalls/Network Security Groups etc.) back referenced by the IpGroups resource.
7981	Expand *string
7982}
7983
7984// IPGroupsListByResourceGroupOptions contains the optional parameters for the IPGroups.ListByResourceGroup method.
7985type IPGroupsListByResourceGroupOptions struct {
7986	// placeholder for future optional parameters
7987}
7988
7989// IPGroupsListOptions contains the optional parameters for the IPGroups.List method.
7990type IPGroupsListOptions struct {
7991	// placeholder for future optional parameters
7992}
7993
7994// IPGroupsUpdateGroupsOptions contains the optional parameters for the IPGroups.UpdateGroups method.
7995type IPGroupsUpdateGroupsOptions struct {
7996	// placeholder for future optional parameters
7997}
7998
7999// Contains the IpTag associated with the object.
8000type IPTag struct {
8001	// The IP tag type. Example: FirstPartyUsage.
8002	IPTagType *string `json:"ipTagType,omitempty"`
8003
8004	// The value of the IP tag associated with the public IP. Example: SQL.
8005	Tag *string `json:"tag,omitempty"`
8006}
8007
8008// An IPSec Policy configuration for a virtual network gateway connection.
8009type IPsecPolicy struct {
8010	// The DH Group used in IKE Phase 1 for initial SA.
8011	DhGroup *DhGroup `json:"dhGroup,omitempty"`
8012
8013	// The IPSec encryption algorithm (IKE phase 1).
8014	IPsecEncryption *IPsecEncryption `json:"ipsecEncryption,omitempty"`
8015
8016	// The IPSec integrity algorithm (IKE phase 1).
8017	IPsecIntegrity *IPsecIntegrity `json:"ipsecIntegrity,omitempty"`
8018
8019	// The IKE encryption algorithm (IKE phase 2).
8020	IkeEncryption *IkeEncryption `json:"ikeEncryption,omitempty"`
8021
8022	// The IKE integrity algorithm (IKE phase 2).
8023	IkeIntegrity *IkeIntegrity `json:"ikeIntegrity,omitempty"`
8024
8025	// The Pfs Group used in IKE Phase 2 for new child SA.
8026	PfsGroup *PfsGroup `json:"pfsGroup,omitempty"`
8027
8028	// The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel.
8029	SaDataSizeKilobytes *int32 `json:"saDataSizeKilobytes,omitempty"`
8030
8031	// The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel.
8032	SaLifeTimeSeconds *int32 `json:"saLifeTimeSeconds,omitempty"`
8033}
8034
8035// IPv6 Circuit Connection properties for global reach.
8036type IPv6CircuitConnectionConfig struct {
8037	// /125 IP address space to carve out customer addresses for global reach.
8038	AddressPrefix *string `json:"addressPrefix,omitempty"`
8039
8040	// READ-ONLY; Express Route Circuit connection state.
8041	CircuitConnectionStatus *CircuitConnectionStatus `json:"circuitConnectionStatus,omitempty" azure:"ro"`
8042}
8043
8044// Contains IPv6 peering config.
8045type IPv6ExpressRouteCircuitPeeringConfig struct {
8046	// The Microsoft peering configuration.
8047	MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"`
8048
8049	// The primary address prefix.
8050	PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"`
8051
8052	// The reference to the RouteFilter resource.
8053	RouteFilter *SubResource `json:"routeFilter,omitempty"`
8054
8055	// The secondary address prefix.
8056	SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"`
8057
8058	// The state of peering.
8059	State *ExpressRouteCircuitPeeringState `json:"state,omitempty"`
8060}
8061
8062// Inbound NAT pool of the load balancer.
8063type InboundNatPool struct {
8064	SubResource
8065	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
8066	Etag *string `json:"etag,omitempty" azure:"ro"`
8067
8068	// The name of the resource that is unique within the set of inbound NAT pools used by the load balancer. This name can be used to access the resource.
8069	Name *string `json:"name,omitempty"`
8070
8071	// Properties of load balancer inbound nat pool.
8072	Properties *InboundNatPoolPropertiesFormat `json:"properties,omitempty"`
8073
8074	// READ-ONLY; Type of the resource.
8075	Type *string `json:"type,omitempty" azure:"ro"`
8076}
8077
8078// Properties of Inbound NAT pool.
8079type InboundNatPoolPropertiesFormat struct {
8080	// The port used for internal connections on the endpoint. Acceptable values are between 1 and 65535.
8081	BackendPort *int32 `json:"backendPort,omitempty"`
8082
8083	// Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required
8084	// when using the SQL AlwaysOn Availability Groups
8085	// in SQL server. This setting can't be changed after you create the endpoint.
8086	EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"`
8087
8088	// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to
8089	// TCP.
8090	EnableTCPReset *bool `json:"enableTcpReset,omitempty"`
8091
8092	// A reference to frontend IP addresses.
8093	FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"`
8094
8095	// The last port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with a load balancer. Acceptable values
8096	// range between 1 and 65535.
8097	FrontendPortRangeEnd *int32 `json:"frontendPortRangeEnd,omitempty"`
8098
8099	// The first port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with a load balancer. Acceptable values
8100	// range between 1 and 65534.
8101	FrontendPortRangeStart *int32 `json:"frontendPortRangeStart,omitempty"`
8102
8103	// The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when
8104	// the protocol is set to TCP.
8105	IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"`
8106
8107	// The reference to the transport protocol used by the inbound NAT pool.
8108	Protocol *TransportProtocol `json:"protocol,omitempty"`
8109
8110	// READ-ONLY; The provisioning state of the inbound NAT pool resource.
8111	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
8112}
8113
8114// Inbound NAT rule of the load balancer.
8115type InboundNatRule struct {
8116	SubResource
8117	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
8118	Etag *string `json:"etag,omitempty" azure:"ro"`
8119
8120	// The name of the resource that is unique within the set of inbound NAT rules used by the load balancer. This name can be used to access the resource.
8121	Name *string `json:"name,omitempty"`
8122
8123	// Properties of load balancer inbound nat rule.
8124	Properties *InboundNatRulePropertiesFormat `json:"properties,omitempty"`
8125
8126	// READ-ONLY; Type of the resource.
8127	Type *string `json:"type,omitempty" azure:"ro"`
8128}
8129
8130// Response for ListInboundNatRule API service call.
8131type InboundNatRuleListResult struct {
8132	// READ-ONLY; The URL to get the next set of results.
8133	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8134
8135	// A list of inbound nat rules in a load balancer.
8136	Value *[]InboundNatRule `json:"value,omitempty"`
8137}
8138
8139// InboundNatRuleListResultResponse is the response envelope for operations that return a InboundNatRuleListResult type.
8140type InboundNatRuleListResultResponse struct {
8141	// Response for ListInboundNatRule API service call.
8142	InboundNatRuleListResult *InboundNatRuleListResult
8143
8144	// RawResponse contains the underlying HTTP response.
8145	RawResponse *http.Response
8146}
8147
8148// InboundNatRulePollerResponse is the response envelope for operations that asynchronously return a InboundNatRule type.
8149type InboundNatRulePollerResponse struct {
8150	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
8151	PollUntilDone func(ctx context.Context, frequency time.Duration) (InboundNatRuleResponse, error)
8152
8153	// Poller contains an initialized poller.
8154	Poller InboundNatRulePoller
8155
8156	// RawResponse contains the underlying HTTP response.
8157	RawResponse *http.Response
8158}
8159
8160// Properties of the inbound NAT rule.
8161type InboundNatRulePropertiesFormat struct {
8162	// READ-ONLY; A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations
8163	// is forwarded to the backend IP.
8164	BackendIPConfiguration *NetworkInterfaceIPConfiguration `json:"backendIPConfiguration,omitempty" azure:"ro"`
8165
8166	// The port used for the internal endpoint. Acceptable values range from 1 to 65535.
8167	BackendPort *int32 `json:"backendPort,omitempty"`
8168
8169	// Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required
8170	// when using the SQL AlwaysOn Availability Groups
8171	// in SQL server. This setting can't be changed after you create the endpoint.
8172	EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"`
8173
8174	// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to
8175	// TCP.
8176	EnableTCPReset *bool `json:"enableTcpReset,omitempty"`
8177
8178	// A reference to frontend IP addresses.
8179	FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"`
8180
8181	// The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534.
8182	FrontendPort *int32 `json:"frontendPort,omitempty"`
8183
8184	// The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when
8185	// the protocol is set to TCP.
8186	IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"`
8187
8188	// The reference to the transport protocol used by the load balancing rule.
8189	Protocol *TransportProtocol `json:"protocol,omitempty"`
8190
8191	// READ-ONLY; The provisioning state of the inbound NAT rule resource.
8192	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
8193}
8194
8195// InboundNatRuleResponse is the response envelope for operations that return a InboundNatRule type.
8196type InboundNatRuleResponse struct {
8197	// Inbound NAT rule of the load balancer.
8198	InboundNatRule *InboundNatRule
8199
8200	// RawResponse contains the underlying HTTP response.
8201	RawResponse *http.Response
8202}
8203
8204// InboundNatRulesBeginCreateOrUpdateOptions contains the optional parameters for the InboundNatRules.BeginCreateOrUpdate method.
8205type InboundNatRulesBeginCreateOrUpdateOptions struct {
8206	// placeholder for future optional parameters
8207}
8208
8209// InboundNatRulesBeginDeleteOptions contains the optional parameters for the InboundNatRules.BeginDelete method.
8210type InboundNatRulesBeginDeleteOptions struct {
8211	// placeholder for future optional parameters
8212}
8213
8214// InboundNatRulesGetOptions contains the optional parameters for the InboundNatRules.Get method.
8215type InboundNatRulesGetOptions struct {
8216	// Expands referenced resources.
8217	Expand *string
8218}
8219
8220// InboundNatRulesListOptions contains the optional parameters for the InboundNatRules.List method.
8221type InboundNatRulesListOptions struct {
8222	// placeholder for future optional parameters
8223}
8224
8225// NVA Inbound Security Rule resource.
8226type InboundSecurityRule struct {
8227	SubResource
8228	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
8229	Etag *string `json:"etag,omitempty" azure:"ro"`
8230
8231	// Name of security rule collection.
8232	Name *string `json:"name,omitempty"`
8233
8234	// The properties of the Inbound Security Rules.
8235	Properties *InboundSecurityRuleProperties `json:"properties,omitempty"`
8236
8237	// READ-ONLY; NVA inbound security rule type.
8238	Type *string `json:"type,omitempty" azure:"ro"`
8239}
8240
8241// InboundSecurityRuleBeginCreateOrUpdateOptions contains the optional parameters for the InboundSecurityRule.BeginCreateOrUpdate method.
8242type InboundSecurityRuleBeginCreateOrUpdateOptions struct {
8243	// placeholder for future optional parameters
8244}
8245
8246// InboundSecurityRulePollerResponse is the response envelope for operations that asynchronously return a InboundSecurityRule type.
8247type InboundSecurityRulePollerResponse struct {
8248	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
8249	PollUntilDone func(ctx context.Context, frequency time.Duration) (InboundSecurityRuleResponse, error)
8250
8251	// Poller contains an initialized poller.
8252	Poller InboundSecurityRulePoller
8253
8254	// RawResponse contains the underlying HTTP response.
8255	RawResponse *http.Response
8256}
8257
8258// Properties of the Inbound Security Rules resource.
8259type InboundSecurityRuleProperties struct {
8260	// READ-ONLY; The provisioning state of the resource.
8261	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
8262
8263	// List of allowed rules.
8264	Rules *[]InboundSecurityRules `json:"rules,omitempty"`
8265}
8266
8267// InboundSecurityRuleResponse is the response envelope for operations that return a InboundSecurityRule type.
8268type InboundSecurityRuleResponse struct {
8269	// NVA Inbound Security Rule resource.
8270	InboundSecurityRule *InboundSecurityRule
8271
8272	// RawResponse contains the underlying HTTP response.
8273	RawResponse *http.Response
8274}
8275
8276// Properties of the Inbound Security Rules resource.
8277type InboundSecurityRules struct {
8278	// NVA port ranges to be opened up. One needs to provide specific ports.
8279	DestinationPortRange *int32 `json:"destinationPortRange,omitempty"`
8280
8281	// Protocol. This should be either TCP or UDP.
8282	Protocol *InboundSecurityRulesProtocol `json:"protocol,omitempty"`
8283
8284	// The CIDR or source IP range. Only /30, /31 and /32 Ip ranges are allowed.
8285	SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"`
8286}
8287
8288// List of RouteTables and a URL nextLink to get the next set of results.
8289type ListHubRouteTablesResult struct {
8290	// URL to get the next set of operation list results if there are any.
8291	NextLink *string `json:"nextLink,omitempty"`
8292
8293	// List of RouteTables.
8294	Value *[]HubRouteTable `json:"value,omitempty"`
8295}
8296
8297// ListHubRouteTablesResultResponse is the response envelope for operations that return a ListHubRouteTablesResult type.
8298type ListHubRouteTablesResultResponse struct {
8299	// List of RouteTables and a URL nextLink to get the next set of results.
8300	ListHubRouteTablesResult *ListHubRouteTablesResult
8301
8302	// RawResponse contains the underlying HTTP response.
8303	RawResponse *http.Response
8304}
8305
8306// List of HubVirtualNetworkConnections and a URL nextLink to get the next set of results.
8307type ListHubVirtualNetworkConnectionsResult struct {
8308	// URL to get the next set of operation list results if there are any.
8309	NextLink *string `json:"nextLink,omitempty"`
8310
8311	// List of HubVirtualNetworkConnections.
8312	Value *[]HubVirtualNetworkConnection `json:"value,omitempty"`
8313}
8314
8315// ListHubVirtualNetworkConnectionsResultResponse is the response envelope for operations that return a ListHubVirtualNetworkConnectionsResult type.
8316type ListHubVirtualNetworkConnectionsResultResponse struct {
8317	// List of HubVirtualNetworkConnections and a URL nextLink to get the next set of results.
8318	ListHubVirtualNetworkConnectionsResult *ListHubVirtualNetworkConnectionsResult
8319
8320	// RawResponse contains the underlying HTTP response.
8321	RawResponse *http.Response
8322}
8323
8324// Result of the request to list P2SVpnGateways. It contains a list of P2SVpnGateways and a URL nextLink to get the next set of results.
8325type ListP2SVpnGatewaysResult struct {
8326	// URL to get the next set of operation list results if there are any.
8327	NextLink *string `json:"nextLink,omitempty"`
8328
8329	// List of P2SVpnGateways.
8330	Value *[]P2SVpnGateway `json:"value,omitempty"`
8331}
8332
8333// ListP2SVpnGatewaysResultResponse is the response envelope for operations that return a ListP2SVpnGatewaysResult type.
8334type ListP2SVpnGatewaysResultResponse struct {
8335	// Result of the request to list P2SVpnGateways. It contains a list of P2SVpnGateways and a URL nextLink to get the next set of results.
8336	ListP2SVpnGatewaysResult *ListP2SVpnGatewaysResult
8337
8338	// RawResponse contains the underlying HTTP response.
8339	RawResponse *http.Response
8340}
8341
8342// VirtualHubBgpConnections list.
8343type ListVirtualHubBgpConnectionResults struct {
8344	// URL to get the next set of results.
8345	NextLink *string `json:"nextLink,omitempty"`
8346
8347	// The list of VirtualHubBgpConnections.
8348	Value *[]BgpConnection `json:"value,omitempty"`
8349}
8350
8351// ListVirtualHubBgpConnectionResultsResponse is the response envelope for operations that return a ListVirtualHubBgpConnectionResults type.
8352type ListVirtualHubBgpConnectionResultsResponse struct {
8353	// VirtualHubBgpConnections list.
8354	ListVirtualHubBgpConnectionResults *ListVirtualHubBgpConnectionResults
8355
8356	// RawResponse contains the underlying HTTP response.
8357	RawResponse *http.Response
8358}
8359
8360// VirtualHubIpConfigurations list.
8361type ListVirtualHubIPConfigurationResults struct {
8362	// URL to get the next set of results.
8363	NextLink *string `json:"nextLink,omitempty"`
8364
8365	// The list of VirtualHubIpConfigurations.
8366	Value *[]HubIPConfiguration `json:"value,omitempty"`
8367}
8368
8369// ListVirtualHubIPConfigurationResultsResponse is the response envelope for operations that return a ListVirtualHubIPConfigurationResults type.
8370type ListVirtualHubIPConfigurationResultsResponse struct {
8371	// VirtualHubIpConfigurations list.
8372	ListVirtualHubIPConfigurationResults *ListVirtualHubIPConfigurationResults
8373
8374	// RawResponse contains the underlying HTTP response.
8375	RawResponse *http.Response
8376}
8377
8378// List of VirtualHubRouteTableV2s and a URL nextLink to get the next set of results.
8379type ListVirtualHubRouteTableV2SResult struct {
8380	// URL to get the next set of operation list results if there are any.
8381	NextLink *string `json:"nextLink,omitempty"`
8382
8383	// List of VirtualHubRouteTableV2s.
8384	Value *[]VirtualHubRouteTableV2 `json:"value,omitempty"`
8385}
8386
8387// ListVirtualHubRouteTableV2SResultResponse is the response envelope for operations that return a ListVirtualHubRouteTableV2SResult type.
8388type ListVirtualHubRouteTableV2SResultResponse struct {
8389	// List of VirtualHubRouteTableV2s and a URL nextLink to get the next set of results.
8390	ListVirtualHubRouteTableV2SResult *ListVirtualHubRouteTableV2SResult
8391
8392	// RawResponse contains the underlying HTTP response.
8393	RawResponse *http.Response
8394}
8395
8396// Result of the request to list VirtualHubs. It contains a list of VirtualHubs and a URL nextLink to get the next set of results.
8397type ListVirtualHubsResult struct {
8398	// URL to get the next set of operation list results if there are any.
8399	NextLink *string `json:"nextLink,omitempty"`
8400
8401	// List of VirtualHubs.
8402	Value *[]VirtualHub `json:"value,omitempty"`
8403}
8404
8405// ListVirtualHubsResultResponse is the response envelope for operations that return a ListVirtualHubsResult type.
8406type ListVirtualHubsResultResponse struct {
8407	// Result of the request to list VirtualHubs. It contains a list of VirtualHubs and a URL nextLink to get the next set of results.
8408	ListVirtualHubsResult *ListVirtualHubsResult
8409
8410	// RawResponse contains the underlying HTTP response.
8411	RawResponse *http.Response
8412}
8413
8414// Result of the request to list VirtualWANs. It contains a list of VirtualWANs and a URL nextLink to get the next set of results.
8415type ListVirtualWaNsResult struct {
8416	// URL to get the next set of operation list results if there are any.
8417	NextLink *string `json:"nextLink,omitempty"`
8418
8419	// List of VirtualWANs.
8420	Value *[]VirtualWan `json:"value,omitempty"`
8421}
8422
8423// ListVirtualWaNsResultResponse is the response envelope for operations that return a ListVirtualWaNsResult type.
8424type ListVirtualWaNsResultResponse struct {
8425	// Result of the request to list VirtualWANs. It contains a list of VirtualWANs and a URL nextLink to get the next set of results.
8426	ListVirtualWaNsResult *ListVirtualWaNsResult
8427
8428	// RawResponse contains the underlying HTTP response.
8429	RawResponse *http.Response
8430}
8431
8432// Result of the request to list all vpn connections to a virtual wan vpn gateway. It contains a list of Vpn Connections and a URL nextLink to get the next
8433// set of results.
8434type ListVpnConnectionsResult struct {
8435	// URL to get the next set of operation list results if there are any.
8436	NextLink *string `json:"nextLink,omitempty"`
8437
8438	// List of Vpn Connections.
8439	Value *[]VpnConnection `json:"value,omitempty"`
8440}
8441
8442// ListVpnConnectionsResultResponse is the response envelope for operations that return a ListVpnConnectionsResult type.
8443type ListVpnConnectionsResultResponse struct {
8444	// Result of the request to list all vpn connections to a virtual wan vpn gateway. It contains a list of Vpn Connections and a URL nextLink to get the next
8445	// set of results.
8446	ListVpnConnectionsResult *ListVpnConnectionsResult
8447
8448	// RawResponse contains the underlying HTTP response.
8449	RawResponse *http.Response
8450}
8451
8452// Result of the request to list VpnGateways. It contains a list of VpnGateways and a URL nextLink to get the next set of results.
8453type ListVpnGatewaysResult struct {
8454	// URL to get the next set of operation list results if there are any.
8455	NextLink *string `json:"nextLink,omitempty"`
8456
8457	// List of VpnGateways.
8458	Value *[]VpnGateway `json:"value,omitempty"`
8459}
8460
8461// ListVpnGatewaysResultResponse is the response envelope for operations that return a ListVpnGatewaysResult type.
8462type ListVpnGatewaysResultResponse struct {
8463	// Result of the request to list VpnGateways. It contains a list of VpnGateways and a URL nextLink to get the next set of results.
8464	ListVpnGatewaysResult *ListVpnGatewaysResult
8465
8466	// RawResponse contains the underlying HTTP response.
8467	RawResponse *http.Response
8468}
8469
8470// Result of the request to list all VpnServerConfigurations. It contains a list of VpnServerConfigurations and a URL nextLink to get the next set of results.
8471type ListVpnServerConfigurationsResult struct {
8472	// URL to get the next set of operation list results if there are any.
8473	NextLink *string `json:"nextLink,omitempty"`
8474
8475	// List of VpnServerConfigurations.
8476	Value *[]VpnServerConfiguration `json:"value,omitempty"`
8477}
8478
8479// ListVpnServerConfigurationsResultResponse is the response envelope for operations that return a ListVpnServerConfigurationsResult type.
8480type ListVpnServerConfigurationsResultResponse struct {
8481	// Result of the request to list all VpnServerConfigurations. It contains a list of VpnServerConfigurations and a URL nextLink to get the next set of results.
8482	ListVpnServerConfigurationsResult *ListVpnServerConfigurationsResult
8483
8484	// RawResponse contains the underlying HTTP response.
8485	RawResponse *http.Response
8486}
8487
8488// Result of the request to list all vpn connections to a virtual wan vpn gateway. It contains a list of Vpn Connections and a URL nextLink to get the next
8489// set of results.
8490type ListVpnSiteLinkConnectionsResult struct {
8491	// URL to get the next set of operation list results if there are any.
8492	NextLink *string `json:"nextLink,omitempty"`
8493
8494	// List of VpnSiteLinkConnections.
8495	Value *[]VpnSiteLinkConnection `json:"value,omitempty"`
8496}
8497
8498// ListVpnSiteLinkConnectionsResultResponse is the response envelope for operations that return a ListVpnSiteLinkConnectionsResult type.
8499type ListVpnSiteLinkConnectionsResultResponse struct {
8500	// Result of the request to list all vpn connections to a virtual wan vpn gateway. It contains a list of Vpn Connections and a URL nextLink to get the next
8501	// set of results.
8502	ListVpnSiteLinkConnectionsResult *ListVpnSiteLinkConnectionsResult
8503
8504	// RawResponse contains the underlying HTTP response.
8505	RawResponse *http.Response
8506}
8507
8508// Result of the request to list VpnSiteLinks. It contains a list of VpnSiteLinks and a URL nextLink to get the next set of results.
8509type ListVpnSiteLinksResult struct {
8510	// URL to get the next set of operation list results if there are any.
8511	NextLink *string `json:"nextLink,omitempty"`
8512
8513	// List of VpnSitesLinks.
8514	Value *[]VpnSiteLink `json:"value,omitempty"`
8515}
8516
8517// ListVpnSiteLinksResultResponse is the response envelope for operations that return a ListVpnSiteLinksResult type.
8518type ListVpnSiteLinksResultResponse struct {
8519	// Result of the request to list VpnSiteLinks. It contains a list of VpnSiteLinks and a URL nextLink to get the next set of results.
8520	ListVpnSiteLinksResult *ListVpnSiteLinksResult
8521
8522	// RawResponse contains the underlying HTTP response.
8523	RawResponse *http.Response
8524}
8525
8526// Result of the request to list VpnSites. It contains a list of VpnSites and a URL nextLink to get the next set of results.
8527type ListVpnSitesResult struct {
8528	// URL to get the next set of operation list results if there are any.
8529	NextLink *string `json:"nextLink,omitempty"`
8530
8531	// List of VpnSites.
8532	Value *[]VpnSite `json:"value,omitempty"`
8533}
8534
8535// ListVpnSitesResultResponse is the response envelope for operations that return a ListVpnSitesResult type.
8536type ListVpnSitesResultResponse struct {
8537	// Result of the request to list VpnSites. It contains a list of VpnSites and a URL nextLink to get the next set of results.
8538	ListVpnSitesResult *ListVpnSitesResult
8539
8540	// RawResponse contains the underlying HTTP response.
8541	RawResponse *http.Response
8542}
8543
8544// LoadBalancer resource.
8545type LoadBalancer struct {
8546	Resource
8547	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
8548	Etag *string `json:"etag,omitempty" azure:"ro"`
8549
8550	// The extended location of the load balancer.
8551	ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"`
8552
8553	// Properties of load balancer.
8554	Properties *LoadBalancerPropertiesFormat `json:"properties,omitempty"`
8555
8556	// The load balancer SKU.
8557	SKU *LoadBalancerSKU `json:"sku,omitempty"`
8558}
8559
8560// Load balancer backend addresses.
8561type LoadBalancerBackendAddress struct {
8562	// Name of the backend address.
8563	Name *string `json:"name,omitempty"`
8564
8565	// Properties of load balancer backend address pool.
8566	Properties *LoadBalancerBackendAddressPropertiesFormat `json:"properties,omitempty"`
8567}
8568
8569// Response for ListBackendAddressPool API service call.
8570type LoadBalancerBackendAddressPoolListResult struct {
8571	// READ-ONLY; The URL to get the next set of results.
8572	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8573
8574	// A list of backend address pools in a load balancer.
8575	Value *[]BackendAddressPool `json:"value,omitempty"`
8576}
8577
8578// LoadBalancerBackendAddressPoolListResultResponse is the response envelope for operations that return a LoadBalancerBackendAddressPoolListResult type.
8579type LoadBalancerBackendAddressPoolListResultResponse struct {
8580	// Response for ListBackendAddressPool API service call.
8581	LoadBalancerBackendAddressPoolListResult *LoadBalancerBackendAddressPoolListResult
8582
8583	// RawResponse contains the underlying HTTP response.
8584	RawResponse *http.Response
8585}
8586
8587// LoadBalancerBackendAddressPoolsBeginCreateOrUpdateOptions contains the optional parameters for the LoadBalancerBackendAddressPools.BeginCreateOrUpdate
8588// method.
8589type LoadBalancerBackendAddressPoolsBeginCreateOrUpdateOptions struct {
8590	// placeholder for future optional parameters
8591}
8592
8593// LoadBalancerBackendAddressPoolsBeginDeleteOptions contains the optional parameters for the LoadBalancerBackendAddressPools.BeginDelete method.
8594type LoadBalancerBackendAddressPoolsBeginDeleteOptions struct {
8595	// placeholder for future optional parameters
8596}
8597
8598// LoadBalancerBackendAddressPoolsGetOptions contains the optional parameters for the LoadBalancerBackendAddressPools.Get method.
8599type LoadBalancerBackendAddressPoolsGetOptions struct {
8600	// placeholder for future optional parameters
8601}
8602
8603// LoadBalancerBackendAddressPoolsListOptions contains the optional parameters for the LoadBalancerBackendAddressPools.List method.
8604type LoadBalancerBackendAddressPoolsListOptions struct {
8605	// placeholder for future optional parameters
8606}
8607
8608// Properties of the load balancer backend addresses.
8609type LoadBalancerBackendAddressPropertiesFormat struct {
8610	// IP Address belonging to the referenced virtual network.
8611	IPAddress *string `json:"ipAddress,omitempty"`
8612
8613	// Reference to the frontend ip address configuration defined in regional loadbalancer.
8614	LoadBalancerFrontendIPConfiguration *SubResource `json:"loadBalancerFrontendIPConfiguration,omitempty"`
8615
8616	// READ-ONLY; Reference to IP address defined in network interfaces.
8617	NetworkInterfaceIPConfiguration *SubResource `json:"networkInterfaceIPConfiguration,omitempty" azure:"ro"`
8618
8619	// Reference to an existing virtual network.
8620	VirtualNetwork *SubResource `json:"virtualNetwork,omitempty"`
8621}
8622
8623// Response for ListFrontendIPConfiguration API service call.
8624type LoadBalancerFrontendIPConfigurationListResult struct {
8625	// READ-ONLY; The URL to get the next set of results.
8626	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8627
8628	// A list of frontend IP configurations in a load balancer.
8629	Value *[]FrontendIPConfiguration `json:"value,omitempty"`
8630}
8631
8632// LoadBalancerFrontendIPConfigurationListResultResponse is the response envelope for operations that return a LoadBalancerFrontendIPConfigurationListResult
8633// type.
8634type LoadBalancerFrontendIPConfigurationListResultResponse struct {
8635	// Response for ListFrontendIPConfiguration API service call.
8636	LoadBalancerFrontendIPConfigurationListResult *LoadBalancerFrontendIPConfigurationListResult
8637
8638	// RawResponse contains the underlying HTTP response.
8639	RawResponse *http.Response
8640}
8641
8642// LoadBalancerFrontendIPConfigurationsGetOptions contains the optional parameters for the LoadBalancerFrontendIPConfigurations.Get method.
8643type LoadBalancerFrontendIPConfigurationsGetOptions struct {
8644	// placeholder for future optional parameters
8645}
8646
8647// LoadBalancerFrontendIPConfigurationsListOptions contains the optional parameters for the LoadBalancerFrontendIPConfigurations.List method.
8648type LoadBalancerFrontendIPConfigurationsListOptions struct {
8649	// placeholder for future optional parameters
8650}
8651
8652// Response for ListLoadBalancers API service call.
8653type LoadBalancerListResult struct {
8654	// READ-ONLY; The URL to get the next set of results.
8655	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8656
8657	// A list of load balancers in a resource group.
8658	Value *[]LoadBalancer `json:"value,omitempty"`
8659}
8660
8661// LoadBalancerListResultResponse is the response envelope for operations that return a LoadBalancerListResult type.
8662type LoadBalancerListResultResponse struct {
8663	// Response for ListLoadBalancers API service call.
8664	LoadBalancerListResult *LoadBalancerListResult
8665
8666	// RawResponse contains the underlying HTTP response.
8667	RawResponse *http.Response
8668}
8669
8670// Response for ListLoadBalancingRule API service call.
8671type LoadBalancerLoadBalancingRuleListResult struct {
8672	// READ-ONLY; The URL to get the next set of results.
8673	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8674
8675	// A list of load balancing rules in a load balancer.
8676	Value *[]LoadBalancingRule `json:"value,omitempty"`
8677}
8678
8679// LoadBalancerLoadBalancingRuleListResultResponse is the response envelope for operations that return a LoadBalancerLoadBalancingRuleListResult type.
8680type LoadBalancerLoadBalancingRuleListResultResponse struct {
8681	// Response for ListLoadBalancingRule API service call.
8682	LoadBalancerLoadBalancingRuleListResult *LoadBalancerLoadBalancingRuleListResult
8683
8684	// RawResponse contains the underlying HTTP response.
8685	RawResponse *http.Response
8686}
8687
8688// LoadBalancerLoadBalancingRulesGetOptions contains the optional parameters for the LoadBalancerLoadBalancingRules.Get method.
8689type LoadBalancerLoadBalancingRulesGetOptions struct {
8690	// placeholder for future optional parameters
8691}
8692
8693// LoadBalancerLoadBalancingRulesListOptions contains the optional parameters for the LoadBalancerLoadBalancingRules.List method.
8694type LoadBalancerLoadBalancingRulesListOptions struct {
8695	// placeholder for future optional parameters
8696}
8697
8698// LoadBalancerNetworkInterfacesListOptions contains the optional parameters for the LoadBalancerNetworkInterfaces.List method.
8699type LoadBalancerNetworkInterfacesListOptions struct {
8700	// placeholder for future optional parameters
8701}
8702
8703// Response for ListOutboundRule API service call.
8704type LoadBalancerOutboundRuleListResult struct {
8705	// READ-ONLY; The URL to get the next set of results.
8706	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8707
8708	// A list of outbound rules in a load balancer.
8709	Value *[]OutboundRule `json:"value,omitempty"`
8710}
8711
8712// LoadBalancerOutboundRuleListResultResponse is the response envelope for operations that return a LoadBalancerOutboundRuleListResult type.
8713type LoadBalancerOutboundRuleListResultResponse struct {
8714	// Response for ListOutboundRule API service call.
8715	LoadBalancerOutboundRuleListResult *LoadBalancerOutboundRuleListResult
8716
8717	// RawResponse contains the underlying HTTP response.
8718	RawResponse *http.Response
8719}
8720
8721// LoadBalancerOutboundRulesGetOptions contains the optional parameters for the LoadBalancerOutboundRules.Get method.
8722type LoadBalancerOutboundRulesGetOptions struct {
8723	// placeholder for future optional parameters
8724}
8725
8726// LoadBalancerOutboundRulesListOptions contains the optional parameters for the LoadBalancerOutboundRules.List method.
8727type LoadBalancerOutboundRulesListOptions struct {
8728	// placeholder for future optional parameters
8729}
8730
8731// LoadBalancerPollerResponse is the response envelope for operations that asynchronously return a LoadBalancer type.
8732type LoadBalancerPollerResponse struct {
8733	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
8734	PollUntilDone func(ctx context.Context, frequency time.Duration) (LoadBalancerResponse, error)
8735
8736	// Poller contains an initialized poller.
8737	Poller LoadBalancerPoller
8738
8739	// RawResponse contains the underlying HTTP response.
8740	RawResponse *http.Response
8741}
8742
8743// Response for ListProbe API service call.
8744type LoadBalancerProbeListResult struct {
8745	// READ-ONLY; The URL to get the next set of results.
8746	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8747
8748	// A list of probes in a load balancer.
8749	Value *[]Probe `json:"value,omitempty"`
8750}
8751
8752// LoadBalancerProbeListResultResponse is the response envelope for operations that return a LoadBalancerProbeListResult type.
8753type LoadBalancerProbeListResultResponse struct {
8754	// Response for ListProbe API service call.
8755	LoadBalancerProbeListResult *LoadBalancerProbeListResult
8756
8757	// RawResponse contains the underlying HTTP response.
8758	RawResponse *http.Response
8759}
8760
8761// LoadBalancerProbesGetOptions contains the optional parameters for the LoadBalancerProbes.Get method.
8762type LoadBalancerProbesGetOptions struct {
8763	// placeholder for future optional parameters
8764}
8765
8766// LoadBalancerProbesListOptions contains the optional parameters for the LoadBalancerProbes.List method.
8767type LoadBalancerProbesListOptions struct {
8768	// placeholder for future optional parameters
8769}
8770
8771// Properties of the load balancer.
8772type LoadBalancerPropertiesFormat struct {
8773	// Collection of backend address pools used by a load balancer.
8774	BackendAddressPools *[]BackendAddressPool `json:"backendAddressPools,omitempty"`
8775
8776	// Object representing the frontend IPs to be used for the load balancer.
8777	FrontendIPConfigurations *[]FrontendIPConfiguration `json:"frontendIPConfigurations,omitempty"`
8778
8779	// Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically
8780	// for each NIC associated with the Load
8781	// Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules.
8782	// Inbound NAT pools are referenced from virtual
8783	// machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual
8784	// inbound NAT rules.
8785	InboundNatPools *[]InboundNatPool `json:"inboundNatPools,omitempty"`
8786
8787	// Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound
8788	// NAT pool. Inbound NAT pools are referenced from
8789	// virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual
8790	// inbound NAT rules.
8791	InboundNatRules *[]InboundNatRule `json:"inboundNatRules,omitempty"`
8792
8793	// Object collection representing the load balancing rules Gets the provisioning.
8794	LoadBalancingRules *[]LoadBalancingRule `json:"loadBalancingRules,omitempty"`
8795
8796	// The outbound rules.
8797	OutboundRules *[]OutboundRule `json:"outboundRules,omitempty"`
8798
8799	// Collection of probe objects used in the load balancer.
8800	Probes *[]Probe `json:"probes,omitempty"`
8801
8802	// READ-ONLY; The provisioning state of the load balancer resource.
8803	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
8804
8805	// READ-ONLY; The resource GUID property of the load balancer resource.
8806	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
8807}
8808
8809// LoadBalancerResponse is the response envelope for operations that return a LoadBalancer type.
8810type LoadBalancerResponse struct {
8811	// LoadBalancer resource.
8812	LoadBalancer *LoadBalancer
8813
8814	// RawResponse contains the underlying HTTP response.
8815	RawResponse *http.Response
8816}
8817
8818// SKU of a load balancer.
8819type LoadBalancerSKU struct {
8820	// Name of a load balancer SKU.
8821	Name *LoadBalancerSKUName `json:"name,omitempty"`
8822
8823	// Tier of a load balancer SKU.
8824	Tier *LoadBalancerSKUTier `json:"tier,omitempty"`
8825}
8826
8827// LoadBalancersBeginCreateOrUpdateOptions contains the optional parameters for the LoadBalancers.BeginCreateOrUpdate method.
8828type LoadBalancersBeginCreateOrUpdateOptions struct {
8829	// placeholder for future optional parameters
8830}
8831
8832// LoadBalancersBeginDeleteOptions contains the optional parameters for the LoadBalancers.BeginDelete method.
8833type LoadBalancersBeginDeleteOptions struct {
8834	// placeholder for future optional parameters
8835}
8836
8837// LoadBalancersGetOptions contains the optional parameters for the LoadBalancers.Get method.
8838type LoadBalancersGetOptions struct {
8839	// Expands referenced resources.
8840	Expand *string
8841}
8842
8843// LoadBalancersListAllOptions contains the optional parameters for the LoadBalancers.ListAll method.
8844type LoadBalancersListAllOptions struct {
8845	// placeholder for future optional parameters
8846}
8847
8848// LoadBalancersListOptions contains the optional parameters for the LoadBalancers.List method.
8849type LoadBalancersListOptions struct {
8850	// placeholder for future optional parameters
8851}
8852
8853// LoadBalancersUpdateTagsOptions contains the optional parameters for the LoadBalancers.UpdateTags method.
8854type LoadBalancersUpdateTagsOptions struct {
8855	// placeholder for future optional parameters
8856}
8857
8858// A load balancing rule for a load balancer.
8859type LoadBalancingRule struct {
8860	SubResource
8861	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
8862	Etag *string `json:"etag,omitempty" azure:"ro"`
8863
8864	// The name of the resource that is unique within the set of load balancing rules used by the load balancer. This name can be used to access the resource.
8865	Name *string `json:"name,omitempty"`
8866
8867	// Properties of load balancer load balancing rule.
8868	Properties *LoadBalancingRulePropertiesFormat `json:"properties,omitempty"`
8869
8870	// READ-ONLY; Type of the resource.
8871	Type *string `json:"type,omitempty" azure:"ro"`
8872}
8873
8874// Properties of the load balancer.
8875type LoadBalancingRulePropertiesFormat struct {
8876	// A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs.
8877	BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"`
8878
8879	// The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port".
8880	BackendPort *int32 `json:"backendPort,omitempty"`
8881
8882	// Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the frontend of the load balancing rule.
8883	DisableOutboundSnat *bool `json:"disableOutboundSnat,omitempty"`
8884
8885	// Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required
8886	// when using the SQL AlwaysOn Availability Groups
8887	// in SQL server. This setting can't be changed after you create the endpoint.
8888	EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"`
8889
8890	// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to
8891	// TCP.
8892	EnableTCPReset *bool `json:"enableTcpReset,omitempty"`
8893
8894	// A reference to frontend IP addresses.
8895	FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"`
8896
8897	// The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values are between 0 and 65534. Note
8898	// that value 0 enables "Any Port".
8899	FrontendPort *int32 `json:"frontendPort,omitempty"`
8900
8901	// The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when
8902	// the protocol is set to TCP.
8903	IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"`
8904
8905	// The load distribution policy for this rule.
8906	LoadDistribution *LoadDistribution `json:"loadDistribution,omitempty"`
8907
8908	// The reference to the load balancer probe used by the load balancing rule.
8909	Probe *SubResource `json:"probe,omitempty"`
8910
8911	// The reference to the transport protocol used by the load balancing rule.
8912	Protocol *TransportProtocol `json:"protocol,omitempty"`
8913
8914	// READ-ONLY; The provisioning state of the load balancing rule resource.
8915	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
8916}
8917
8918// LoadBalancingRuleResponse is the response envelope for operations that return a LoadBalancingRule type.
8919type LoadBalancingRuleResponse struct {
8920	// A load balancing rule for a load balancer.
8921	LoadBalancingRule *LoadBalancingRule
8922
8923	// RawResponse contains the underlying HTTP response.
8924	RawResponse *http.Response
8925}
8926
8927// A common class for general resource information.
8928type LocalNetworkGateway struct {
8929	Resource
8930	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
8931	Etag *string `json:"etag,omitempty" azure:"ro"`
8932
8933	// Properties of the local network gateway.
8934	Properties *LocalNetworkGatewayPropertiesFormat `json:"properties,omitempty"`
8935}
8936
8937// Response for ListLocalNetworkGateways API service call.
8938type LocalNetworkGatewayListResult struct {
8939	// READ-ONLY; The URL to get the next set of results.
8940	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
8941
8942	// A list of local network gateways that exists in a resource group.
8943	Value *[]LocalNetworkGateway `json:"value,omitempty"`
8944}
8945
8946// LocalNetworkGatewayListResultResponse is the response envelope for operations that return a LocalNetworkGatewayListResult type.
8947type LocalNetworkGatewayListResultResponse struct {
8948	// Response for ListLocalNetworkGateways API service call.
8949	LocalNetworkGatewayListResult *LocalNetworkGatewayListResult
8950
8951	// RawResponse contains the underlying HTTP response.
8952	RawResponse *http.Response
8953}
8954
8955// LocalNetworkGatewayPollerResponse is the response envelope for operations that asynchronously return a LocalNetworkGateway type.
8956type LocalNetworkGatewayPollerResponse struct {
8957	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
8958	PollUntilDone func(ctx context.Context, frequency time.Duration) (LocalNetworkGatewayResponse, error)
8959
8960	// Poller contains an initialized poller.
8961	Poller LocalNetworkGatewayPoller
8962
8963	// RawResponse contains the underlying HTTP response.
8964	RawResponse *http.Response
8965}
8966
8967// LocalNetworkGateway properties.
8968type LocalNetworkGatewayPropertiesFormat struct {
8969	// Local network gateway's BGP speaker settings.
8970	BgpSettings *BgpSettings `json:"bgpSettings,omitempty"`
8971
8972	// FQDN of local network gateway.
8973	Fqdn *string `json:"fqdn,omitempty"`
8974
8975	// IP address of local network gateway.
8976	GatewayIPAddress *string `json:"gatewayIpAddress,omitempty"`
8977
8978	// Local network site address space.
8979	LocalNetworkAddressSpace *AddressSpace `json:"localNetworkAddressSpace,omitempty"`
8980
8981	// READ-ONLY; The provisioning state of the local network gateway resource.
8982	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
8983
8984	// READ-ONLY; The resource GUID property of the local network gateway resource.
8985	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
8986}
8987
8988// LocalNetworkGatewayResponse is the response envelope for operations that return a LocalNetworkGateway type.
8989type LocalNetworkGatewayResponse struct {
8990	// A common class for general resource information.
8991	LocalNetworkGateway *LocalNetworkGateway
8992
8993	// RawResponse contains the underlying HTTP response.
8994	RawResponse *http.Response
8995}
8996
8997// LocalNetworkGatewaysBeginCreateOrUpdateOptions contains the optional parameters for the LocalNetworkGateways.BeginCreateOrUpdate method.
8998type LocalNetworkGatewaysBeginCreateOrUpdateOptions struct {
8999	// placeholder for future optional parameters
9000}
9001
9002// LocalNetworkGatewaysBeginDeleteOptions contains the optional parameters for the LocalNetworkGateways.BeginDelete method.
9003type LocalNetworkGatewaysBeginDeleteOptions struct {
9004	// placeholder for future optional parameters
9005}
9006
9007// LocalNetworkGatewaysGetOptions contains the optional parameters for the LocalNetworkGateways.Get method.
9008type LocalNetworkGatewaysGetOptions struct {
9009	// placeholder for future optional parameters
9010}
9011
9012// LocalNetworkGatewaysListOptions contains the optional parameters for the LocalNetworkGateways.List method.
9013type LocalNetworkGatewaysListOptions struct {
9014	// placeholder for future optional parameters
9015}
9016
9017// LocalNetworkGatewaysUpdateTagsOptions contains the optional parameters for the LocalNetworkGateways.UpdateTags method.
9018type LocalNetworkGatewaysUpdateTagsOptions struct {
9019	// placeholder for future optional parameters
9020}
9021
9022// Description of logging specification.
9023type LogSpecification struct {
9024	// Duration of the blob.
9025	BlobDuration *string `json:"blobDuration,omitempty"`
9026
9027	// The display name of the specification.
9028	DisplayName *string `json:"displayName,omitempty"`
9029
9030	// The name of the specification.
9031	Name *string `json:"name,omitempty"`
9032}
9033
9034// Defines a managed rule group override setting.
9035type ManagedRuleGroupOverride struct {
9036	// The managed rule group to override.
9037	RuleGroupName *string `json:"ruleGroupName,omitempty"`
9038
9039	// List of rules that will be disabled. If none specified, all rules in the group will be disabled.
9040	Rules *[]ManagedRuleOverride `json:"rules,omitempty"`
9041}
9042
9043// Defines a managed rule group override setting.
9044type ManagedRuleOverride struct {
9045	// Identifier for the managed rule.
9046	RuleID *string `json:"ruleId,omitempty"`
9047
9048	// The state of the managed rule. Defaults to Disabled if not specified.
9049	State *ManagedRuleEnabledState `json:"state,omitempty"`
9050}
9051
9052// Defines a managed rule set.
9053type ManagedRuleSet struct {
9054	// Defines the rule group overrides to apply to the rule set.
9055	RuleGroupOverrides *[]ManagedRuleGroupOverride `json:"ruleGroupOverrides,omitempty"`
9056
9057	// Defines the rule set type to use.
9058	RuleSetType *string `json:"ruleSetType,omitempty"`
9059
9060	// Defines the version of the rule set to use.
9061	RuleSetVersion *string `json:"ruleSetVersion,omitempty"`
9062}
9063
9064// Allow to exclude some variable satisfy the condition for the WAF check.
9065type ManagedRulesDefinition struct {
9066	// The Exclusions that are applied on the policy.
9067	Exclusions *[]OwaspCrsExclusionEntry `json:"exclusions,omitempty"`
9068
9069	// The managed rule sets that are associated with the policy.
9070	ManagedRuleSets *[]ManagedRuleSet `json:"managedRuleSets,omitempty"`
9071}
9072
9073// Identity for the resource.
9074type ManagedServiceIDentity struct {
9075	// READ-ONLY; The principal id of the system assigned identity. This property will only be provided for a system assigned identity.
9076	PrincipalID *string `json:"principalId,omitempty" azure:"ro"`
9077
9078	// READ-ONLY; The tenant id of the system assigned identity. This property will only be provided for a system assigned identity.
9079	TenantID *string `json:"tenantId,omitempty" azure:"ro"`
9080
9081	// The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned
9082	// identities. The type 'None' will remove any
9083	// identities from the virtual machine.
9084	Type *ResourceIDentityType `json:"type,omitempty"`
9085
9086	// The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form:
9087	// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
9088	UserAssignedIDentities *map[string]Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties `json:"userAssignedIdentities,omitempty"`
9089}
9090
9091// Define match conditions.
9092type MatchCondition struct {
9093	// Match value.
9094	MatchValues *[]string `json:"matchValues,omitempty"`
9095
9096	// List of match variables.
9097	MatchVariables *[]MatchVariable `json:"matchVariables,omitempty"`
9098
9099	// Whether this is negate condition or not.
9100	NegationConditon *bool `json:"negationConditon,omitempty"`
9101
9102	// The operator to be matched.
9103	Operator *WebApplicationFirewallOperator `json:"operator,omitempty"`
9104
9105	// List of transforms.
9106	Transforms *[]WebApplicationFirewallTransform `json:"transforms,omitempty"`
9107}
9108
9109// Define match variables.
9110type MatchVariable struct {
9111	// The selector of match variable.
9112	Selector *string `json:"selector,omitempty"`
9113
9114	// Match Variable.
9115	VariableName *WebApplicationFirewallMatchVariable `json:"variableName,omitempty"`
9116}
9117
9118// Matched rule.
9119type MatchedRule struct {
9120	// The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'.
9121	Action *string `json:"action,omitempty"`
9122
9123	// Name of the matched network security rule.
9124	RuleName *string `json:"ruleName,omitempty"`
9125}
9126
9127// Description of metrics specification.
9128type MetricSpecification struct {
9129	// The aggregation type.
9130	AggregationType *string `json:"aggregationType,omitempty"`
9131
9132	// List of availability.
9133	Availabilities *[]Availability `json:"availabilities,omitempty"`
9134
9135	// List of dimensions.
9136	Dimensions *[]Dimension `json:"dimensions,omitempty"`
9137
9138	// The description of the metric.
9139	DisplayDescription *string `json:"displayDescription,omitempty"`
9140
9141	// The display name of the metric.
9142	DisplayName *string `json:"displayName,omitempty"`
9143
9144	// Whether regional MDM account enabled.
9145	EnableRegionalMdmAccount *bool `json:"enableRegionalMdmAccount,omitempty"`
9146
9147	// Whether gaps would be filled with zeros.
9148	FillGapWithZero *bool `json:"fillGapWithZero,omitempty"`
9149
9150	// Whether the metric is internal.
9151	IsInternal *bool `json:"isInternal,omitempty"`
9152
9153	// Pattern for the filter of the metric.
9154	MetricFilterPattern *string `json:"metricFilterPattern,omitempty"`
9155
9156	// The name of the metric.
9157	Name *string `json:"name,omitempty"`
9158
9159	// The resource Id dimension name override.
9160	ResourceIDDimensionNameOverride *string `json:"resourceIdDimensionNameOverride,omitempty"`
9161
9162	// The source MDM account.
9163	SourceMdmAccount *string `json:"sourceMdmAccount,omitempty"`
9164
9165	// The source MDM namespace.
9166	SourceMdmNamespace *string `json:"sourceMdmNamespace,omitempty"`
9167
9168	// Units the metric to be displayed in.
9169	Unit *string `json:"unit,omitempty"`
9170}
9171
9172// Nat Gateway resource.
9173type NatGateway struct {
9174	Resource
9175	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
9176	Etag *string `json:"etag,omitempty" azure:"ro"`
9177
9178	// Nat Gateway properties.
9179	Properties *NatGatewayPropertiesFormat `json:"properties,omitempty"`
9180
9181	// The nat gateway SKU.
9182	SKU *NatGatewaySKU `json:"sku,omitempty"`
9183
9184	// A list of availability zones denoting the zone in which Nat Gateway should be deployed.
9185	Zones *[]string `json:"zones,omitempty"`
9186}
9187
9188// Response for ListNatGateways API service call.
9189type NatGatewayListResult struct {
9190	// The URL to get the next set of results.
9191	NextLink *string `json:"nextLink,omitempty"`
9192
9193	// A list of Nat Gateways that exists in a resource group.
9194	Value *[]NatGateway `json:"value,omitempty"`
9195}
9196
9197// NatGatewayListResultResponse is the response envelope for operations that return a NatGatewayListResult type.
9198type NatGatewayListResultResponse struct {
9199	// Response for ListNatGateways API service call.
9200	NatGatewayListResult *NatGatewayListResult
9201
9202	// RawResponse contains the underlying HTTP response.
9203	RawResponse *http.Response
9204}
9205
9206// NatGatewayPollerResponse is the response envelope for operations that asynchronously return a NatGateway type.
9207type NatGatewayPollerResponse struct {
9208	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
9209	PollUntilDone func(ctx context.Context, frequency time.Duration) (NatGatewayResponse, error)
9210
9211	// Poller contains an initialized poller.
9212	Poller NatGatewayPoller
9213
9214	// RawResponse contains the underlying HTTP response.
9215	RawResponse *http.Response
9216}
9217
9218// Nat Gateway properties.
9219type NatGatewayPropertiesFormat struct {
9220	// The idle timeout of the nat gateway.
9221	IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"`
9222
9223	// READ-ONLY; The provisioning state of the NAT gateway resource.
9224	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
9225
9226	// An array of public ip addresses associated with the nat gateway resource.
9227	PublicIPAddresses *[]SubResource `json:"publicIpAddresses,omitempty"`
9228
9229	// An array of public ip prefixes associated with the nat gateway resource.
9230	PublicIPPrefixes *[]SubResource `json:"publicIpPrefixes,omitempty"`
9231
9232	// READ-ONLY; The resource GUID property of the NAT gateway resource.
9233	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
9234
9235	// READ-ONLY; An array of references to the subnets using this nat gateway resource.
9236	Subnets *[]SubResource `json:"subnets,omitempty" azure:"ro"`
9237}
9238
9239// NatGatewayResponse is the response envelope for operations that return a NatGateway type.
9240type NatGatewayResponse struct {
9241	// Nat Gateway resource.
9242	NatGateway *NatGateway
9243
9244	// RawResponse contains the underlying HTTP response.
9245	RawResponse *http.Response
9246}
9247
9248// SKU of nat gateway.
9249type NatGatewaySKU struct {
9250	// Name of Nat Gateway SKU.
9251	Name *NatGatewaySKUName `json:"name,omitempty"`
9252}
9253
9254// NatGatewaysBeginCreateOrUpdateOptions contains the optional parameters for the NatGateways.BeginCreateOrUpdate method.
9255type NatGatewaysBeginCreateOrUpdateOptions struct {
9256	// placeholder for future optional parameters
9257}
9258
9259// NatGatewaysBeginDeleteOptions contains the optional parameters for the NatGateways.BeginDelete method.
9260type NatGatewaysBeginDeleteOptions struct {
9261	// placeholder for future optional parameters
9262}
9263
9264// NatGatewaysGetOptions contains the optional parameters for the NatGateways.Get method.
9265type NatGatewaysGetOptions struct {
9266	// Expands referenced resources.
9267	Expand *string
9268}
9269
9270// NatGatewaysListAllOptions contains the optional parameters for the NatGateways.ListAll method.
9271type NatGatewaysListAllOptions struct {
9272	// placeholder for future optional parameters
9273}
9274
9275// NatGatewaysListOptions contains the optional parameters for the NatGateways.List method.
9276type NatGatewaysListOptions struct {
9277	// placeholder for future optional parameters
9278}
9279
9280// NatGatewaysUpdateTagsOptions contains the optional parameters for the NatGateways.UpdateTags method.
9281type NatGatewaysUpdateTagsOptions struct {
9282	// placeholder for future optional parameters
9283}
9284
9285// Rule of type nat.
9286type NatRule struct {
9287	FirewallPolicyRule
9288	// List of destination IP addresses or Service Tags.
9289	DestinationAddresses *[]string `json:"destinationAddresses,omitempty"`
9290
9291	// List of destination ports.
9292	DestinationPorts *[]string `json:"destinationPorts,omitempty"`
9293
9294	// Array of FirewallPolicyRuleNetworkProtocols.
9295	IPProtocols *[]FirewallPolicyRuleNetworkProtocol `json:"ipProtocols,omitempty"`
9296
9297	// List of source IP addresses for this rule.
9298	SourceAddresses *[]string `json:"sourceAddresses,omitempty"`
9299
9300	// List of source IpGroups for this rule.
9301	SourceIPGroups *[]string `json:"sourceIpGroups,omitempty"`
9302
9303	// The translated address for this NAT rule.
9304	TranslatedAddress *string `json:"translatedAddress,omitempty"`
9305
9306	// The translated FQDN for this NAT rule.
9307	TranslatedFqdn *string `json:"translatedFqdn,omitempty"`
9308
9309	// The translated port for this NAT rule.
9310	TranslatedPort *string `json:"translatedPort,omitempty"`
9311}
9312
9313// MarshalJSON implements the json.Marshaller interface for type NatRule.
9314func (n NatRule) MarshalJSON() ([]byte, error) {
9315	objectMap := n.FirewallPolicyRule.marshalInternal(FirewallPolicyRuleTypeNatRule)
9316	if n.DestinationAddresses != nil {
9317		objectMap["destinationAddresses"] = n.DestinationAddresses
9318	}
9319	if n.DestinationPorts != nil {
9320		objectMap["destinationPorts"] = n.DestinationPorts
9321	}
9322	if n.IPProtocols != nil {
9323		objectMap["ipProtocols"] = n.IPProtocols
9324	}
9325	if n.SourceAddresses != nil {
9326		objectMap["sourceAddresses"] = n.SourceAddresses
9327	}
9328	if n.SourceIPGroups != nil {
9329		objectMap["sourceIpGroups"] = n.SourceIPGroups
9330	}
9331	if n.TranslatedAddress != nil {
9332		objectMap["translatedAddress"] = n.TranslatedAddress
9333	}
9334	if n.TranslatedFqdn != nil {
9335		objectMap["translatedFqdn"] = n.TranslatedFqdn
9336	}
9337	if n.TranslatedPort != nil {
9338		objectMap["translatedPort"] = n.TranslatedPort
9339	}
9340	return json.Marshal(objectMap)
9341}
9342
9343// UnmarshalJSON implements the json.Unmarshaller interface for type NatRule.
9344func (n *NatRule) UnmarshalJSON(data []byte) error {
9345	var rawMsg map[string]*json.RawMessage
9346	if err := json.Unmarshal(data, &rawMsg); err != nil {
9347		return err
9348	}
9349	for key, val := range rawMsg {
9350		var err error
9351		switch key {
9352		case "destinationAddresses":
9353			if val != nil {
9354				err = json.Unmarshal(*val, &n.DestinationAddresses)
9355			}
9356			delete(rawMsg, key)
9357		case "destinationPorts":
9358			if val != nil {
9359				err = json.Unmarshal(*val, &n.DestinationPorts)
9360			}
9361			delete(rawMsg, key)
9362		case "ipProtocols":
9363			if val != nil {
9364				err = json.Unmarshal(*val, &n.IPProtocols)
9365			}
9366			delete(rawMsg, key)
9367		case "sourceAddresses":
9368			if val != nil {
9369				err = json.Unmarshal(*val, &n.SourceAddresses)
9370			}
9371			delete(rawMsg, key)
9372		case "sourceIpGroups":
9373			if val != nil {
9374				err = json.Unmarshal(*val, &n.SourceIPGroups)
9375			}
9376			delete(rawMsg, key)
9377		case "translatedAddress":
9378			if val != nil {
9379				err = json.Unmarshal(*val, &n.TranslatedAddress)
9380			}
9381			delete(rawMsg, key)
9382		case "translatedFqdn":
9383			if val != nil {
9384				err = json.Unmarshal(*val, &n.TranslatedFqdn)
9385			}
9386			delete(rawMsg, key)
9387		case "translatedPort":
9388			if val != nil {
9389				err = json.Unmarshal(*val, &n.TranslatedPort)
9390			}
9391			delete(rawMsg, key)
9392		}
9393		if err != nil {
9394			return err
9395		}
9396	}
9397	return n.FirewallPolicyRule.unmarshalInternal(rawMsg)
9398}
9399
9400// Parameters to get network configuration diagnostic.
9401type NetworkConfigurationDiagnosticParameters struct {
9402	// List of network configuration diagnostic profiles.
9403	Profiles *[]NetworkConfigurationDiagnosticProfile `json:"profiles,omitempty"`
9404
9405	// The ID of the target resource to perform network configuration diagnostic. Valid options are VM, NetworkInterface, VMSS/NetworkInterface and Application
9406	// Gateway.
9407	TargetResourceID *string `json:"targetResourceId,omitempty"`
9408
9409	// Verbosity level.
9410	VerbosityLevel *VerbosityLevel `json:"verbosityLevel,omitempty"`
9411}
9412
9413// Parameters to compare with network configuration.
9414type NetworkConfigurationDiagnosticProfile struct {
9415	// Traffic destination. Accepted values are: '*', IP Address/CIDR, Service Tag.
9416	Destination *string `json:"destination,omitempty"`
9417
9418	// Traffic destination port. Accepted values are '*' and a single port in the range (0 - 65535).
9419	DestinationPort *string `json:"destinationPort,omitempty"`
9420
9421	// The direction of the traffic.
9422	Direction *Direction `json:"direction,omitempty"`
9423
9424	// Protocol to be verified on. Accepted values are '*', TCP, UDP.
9425	Protocol *string `json:"protocol,omitempty"`
9426
9427	// Traffic source. Accepted values are '*', IP Address/CIDR, Service Tag.
9428	Source *string `json:"source,omitempty"`
9429}
9430
9431// Results of network configuration diagnostic on the target resource.
9432type NetworkConfigurationDiagnosticResponse struct {
9433	// READ-ONLY; List of network configuration diagnostic results.
9434	Results *[]NetworkConfigurationDiagnosticResult `json:"results,omitempty" azure:"ro"`
9435}
9436
9437// NetworkConfigurationDiagnosticResponsePollerResponse is the response envelope for operations that asynchronously return a NetworkConfigurationDiagnosticResponse
9438// type.
9439type NetworkConfigurationDiagnosticResponsePollerResponse struct {
9440	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
9441	PollUntilDone func(ctx context.Context, frequency time.Duration) (NetworkConfigurationDiagnosticResponseResponse, error)
9442
9443	// Poller contains an initialized poller.
9444	Poller NetworkConfigurationDiagnosticResponsePoller
9445
9446	// RawResponse contains the underlying HTTP response.
9447	RawResponse *http.Response
9448}
9449
9450// NetworkConfigurationDiagnosticResponseResponse is the response envelope for operations that return a NetworkConfigurationDiagnosticResponse type.
9451type NetworkConfigurationDiagnosticResponseResponse struct {
9452	// Results of network configuration diagnostic on the target resource.
9453	NetworkConfigurationDiagnosticResponse *NetworkConfigurationDiagnosticResponse
9454
9455	// RawResponse contains the underlying HTTP response.
9456	RawResponse *http.Response
9457}
9458
9459// Network configuration diagnostic result corresponded to provided traffic query.
9460type NetworkConfigurationDiagnosticResult struct {
9461	// Network security group result.
9462	NetworkSecurityGroupResult *NetworkSecurityGroupResult `json:"networkSecurityGroupResult,omitempty"`
9463
9464	// Network configuration diagnostic profile.
9465	Profile *NetworkConfigurationDiagnosticProfile `json:"profile,omitempty"`
9466}
9467
9468// Network Intent Policy resource.
9469type NetworkIntentPolicy struct {
9470	Resource
9471	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
9472	Etag *string `json:"etag,omitempty" azure:"ro"`
9473}
9474
9475// Details of NetworkIntentPolicyConfiguration for PrepareNetworkPoliciesRequest.
9476type NetworkIntentPolicyConfiguration struct {
9477	// The name of the Network Intent Policy for storing in target subscription.
9478	NetworkIntentPolicyName *string `json:"networkIntentPolicyName,omitempty"`
9479
9480	// Source network intent policy.
9481	SourceNetworkIntentPolicy *NetworkIntentPolicy `json:"sourceNetworkIntentPolicy,omitempty"`
9482}
9483
9484// A network interface in a resource group.
9485type NetworkInterface struct {
9486	Resource
9487	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
9488	Etag *string `json:"etag,omitempty" azure:"ro"`
9489
9490	// The extended location of the network interface.
9491	ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"`
9492
9493	// Properties of the network interface.
9494	Properties *NetworkInterfacePropertiesFormat `json:"properties,omitempty"`
9495}
9496
9497// Network interface and its custom security rules.
9498type NetworkInterfaceAssociation struct {
9499	// READ-ONLY; Network interface ID.
9500	ID *string `json:"id,omitempty" azure:"ro"`
9501
9502	// Collection of custom security rules.
9503	SecurityRules *[]SecurityRule `json:"securityRules,omitempty"`
9504}
9505
9506// DNS settings of a network interface.
9507type NetworkInterfaceDNSSettings struct {
9508	// READ-ONLY; If the VM that uses this NIC is part of an Availability Set, then this list will have the union of all DNS servers from all NICs that are
9509	// part of the Availability Set. This property is what is
9510	// configured on each of those VMs.
9511	AppliedDNSServers *[]string `json:"appliedDnsServers,omitempty" azure:"ro"`
9512
9513	// List of DNS servers IP addresses. Use 'AzureProvidedDNS' to switch to azure provided DNS resolution. 'AzureProvidedDNS' value cannot be combined with
9514	// other IPs, it must be the only value in dnsServers
9515	// collection.
9516	DNSServers *[]string `json:"dnsServers,omitempty"`
9517
9518	// Relative DNS name for this NIC used for internal communications between VMs in the same virtual network.
9519	InternalDNSNameLabel *string `json:"internalDnsNameLabel,omitempty"`
9520
9521	// READ-ONLY; Even if internalDnsNameLabel is not specified, a DNS entry is created for the primary NIC of the VM. This DNS name can be constructed by concatenating
9522	// the VM name with the value of
9523	// internalDomainNameSuffix.
9524	InternalDomainNameSuffix *string `json:"internalDomainNameSuffix,omitempty" azure:"ro"`
9525
9526	// READ-ONLY; Fully qualified DNS name supporting internal communications between VMs in the same virtual network.
9527	InternalFqdn *string `json:"internalFqdn,omitempty" azure:"ro"`
9528}
9529
9530// IPConfiguration in a network interface.
9531type NetworkInterfaceIPConfiguration struct {
9532	SubResource
9533	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
9534	Etag *string `json:"etag,omitempty" azure:"ro"`
9535
9536	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
9537	Name *string `json:"name,omitempty"`
9538
9539	// Network interface IP configuration properties.
9540	Properties *NetworkInterfaceIPConfigurationPropertiesFormat `json:"properties,omitempty"`
9541}
9542
9543// Response for list ip configurations API service call.
9544type NetworkInterfaceIPConfigurationListResult struct {
9545	// READ-ONLY; The URL to get the next set of results.
9546	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
9547
9548	// A list of ip configurations.
9549	Value *[]NetworkInterfaceIPConfiguration `json:"value,omitempty"`
9550}
9551
9552// NetworkInterfaceIPConfigurationListResultResponse is the response envelope for operations that return a NetworkInterfaceIPConfigurationListResult type.
9553type NetworkInterfaceIPConfigurationListResultResponse struct {
9554	// Response for list ip configurations API service call.
9555	NetworkInterfaceIPConfigurationListResult *NetworkInterfaceIPConfigurationListResult
9556
9557	// RawResponse contains the underlying HTTP response.
9558	RawResponse *http.Response
9559}
9560
9561// PrivateLinkConnection properties for the network interface.
9562type NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties struct {
9563	// READ-ONLY; List of FQDNs for current private link connection.
9564	Fqdns *[]string `json:"fqdns,omitempty" azure:"ro"`
9565
9566	// READ-ONLY; The group ID for current private link connection.
9567	GroupID *string `json:"groupId,omitempty" azure:"ro"`
9568
9569	// READ-ONLY; The required member name for current private link connection.
9570	RequiredMemberName *string `json:"requiredMemberName,omitempty" azure:"ro"`
9571}
9572
9573// Properties of IP configuration.
9574type NetworkInterfaceIPConfigurationPropertiesFormat struct {
9575	// The reference to ApplicationGatewayBackendAddressPool resource.
9576	ApplicationGatewayBackendAddressPools *[]ApplicationGatewayBackendAddressPool `json:"applicationGatewayBackendAddressPools,omitempty"`
9577
9578	// Application security groups in which the IP configuration is included.
9579	ApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"applicationSecurityGroups,omitempty"`
9580
9581	// The reference to LoadBalancerBackendAddressPool resource.
9582	LoadBalancerBackendAddressPools *[]BackendAddressPool `json:"loadBalancerBackendAddressPools,omitempty"`
9583
9584	// A list of references of LoadBalancerInboundNatRules.
9585	LoadBalancerInboundNatRules *[]InboundNatRule `json:"loadBalancerInboundNatRules,omitempty"`
9586
9587	// Whether this is a primary customer address on the network interface.
9588	Primary *bool `json:"primary,omitempty"`
9589
9590	// Private IP address of the IP configuration.
9591	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
9592
9593	// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4.
9594	PrivateIPAddressVersion *IPVersion `json:"privateIPAddressVersion,omitempty"`
9595
9596	// The private IP address allocation method.
9597	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
9598
9599	// READ-ONLY; PrivateLinkConnection properties for the network interface.
9600	PrivateLinkConnectionProperties *NetworkInterfaceIPConfigurationPrivateLinkConnectionProperties `json:"privateLinkConnectionProperties,omitempty" azure:"ro"`
9601
9602	// READ-ONLY; The provisioning state of the network interface IP configuration.
9603	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
9604
9605	// Public IP address bound to the IP configuration.
9606	PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"`
9607
9608	// Subnet bound to the IP configuration.
9609	Subnet *Subnet `json:"subnet,omitempty"`
9610
9611	// The reference to Virtual Network Taps.
9612	VirtualNetworkTaps *[]VirtualNetworkTap `json:"virtualNetworkTaps,omitempty"`
9613}
9614
9615// NetworkInterfaceIPConfigurationResponse is the response envelope for operations that return a NetworkInterfaceIPConfiguration type.
9616type NetworkInterfaceIPConfigurationResponse struct {
9617	// IPConfiguration in a network interface.
9618	NetworkInterfaceIPConfiguration *NetworkInterfaceIPConfiguration
9619
9620	// RawResponse contains the underlying HTTP response.
9621	RawResponse *http.Response
9622}
9623
9624// NetworkInterfaceIPConfigurationsGetOptions contains the optional parameters for the NetworkInterfaceIPConfigurations.Get method.
9625type NetworkInterfaceIPConfigurationsGetOptions struct {
9626	// placeholder for future optional parameters
9627}
9628
9629// NetworkInterfaceIPConfigurationsListOptions contains the optional parameters for the NetworkInterfaceIPConfigurations.List method.
9630type NetworkInterfaceIPConfigurationsListOptions struct {
9631	// placeholder for future optional parameters
9632}
9633
9634// Response for the ListNetworkInterface API service call.
9635type NetworkInterfaceListResult struct {
9636	// READ-ONLY; The URL to get the next set of results.
9637	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
9638
9639	// A list of network interfaces in a resource group.
9640	Value *[]NetworkInterface `json:"value,omitempty"`
9641}
9642
9643// NetworkInterfaceListResultResponse is the response envelope for operations that return a NetworkInterfaceListResult type.
9644type NetworkInterfaceListResultResponse struct {
9645	// Response for the ListNetworkInterface API service call.
9646	NetworkInterfaceListResult *NetworkInterfaceListResult
9647
9648	// RawResponse contains the underlying HTTP response.
9649	RawResponse *http.Response
9650}
9651
9652// Response for list ip configurations API service call.
9653type NetworkInterfaceLoadBalancerListResult struct {
9654	// READ-ONLY; The URL to get the next set of results.
9655	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
9656
9657	// A list of load balancers.
9658	Value *[]LoadBalancer `json:"value,omitempty"`
9659}
9660
9661// NetworkInterfaceLoadBalancerListResultResponse is the response envelope for operations that return a NetworkInterfaceLoadBalancerListResult type.
9662type NetworkInterfaceLoadBalancerListResultResponse struct {
9663	// Response for list ip configurations API service call.
9664	NetworkInterfaceLoadBalancerListResult *NetworkInterfaceLoadBalancerListResult
9665
9666	// RawResponse contains the underlying HTTP response.
9667	RawResponse *http.Response
9668}
9669
9670// NetworkInterfaceLoadBalancersListOptions contains the optional parameters for the NetworkInterfaceLoadBalancers.List method.
9671type NetworkInterfaceLoadBalancersListOptions struct {
9672	// placeholder for future optional parameters
9673}
9674
9675// NetworkInterfacePollerResponse is the response envelope for operations that asynchronously return a NetworkInterface type.
9676type NetworkInterfacePollerResponse struct {
9677	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
9678	PollUntilDone func(ctx context.Context, frequency time.Duration) (NetworkInterfaceResponse, error)
9679
9680	// Poller contains an initialized poller.
9681	Poller NetworkInterfacePoller
9682
9683	// RawResponse contains the underlying HTTP response.
9684	RawResponse *http.Response
9685}
9686
9687// NetworkInterface properties.
9688type NetworkInterfacePropertiesFormat struct {
9689	// The DNS settings in network interface.
9690	DNSSettings *NetworkInterfaceDNSSettings `json:"dnsSettings,omitempty"`
9691
9692	// READ-ONLY; A reference to the dscp configuration to which the network interface is linked.
9693	DscpConfiguration *SubResource `json:"dscpConfiguration,omitempty" azure:"ro"`
9694
9695	// If the network interface is accelerated networking enabled.
9696	EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"`
9697
9698	// Indicates whether IP forwarding is enabled on this network interface.
9699	EnableIPForwarding *bool `json:"enableIPForwarding,omitempty"`
9700
9701	// READ-ONLY; A list of references to linked BareMetal resources.
9702	HostedWorkloads *[]string `json:"hostedWorkloads,omitempty" azure:"ro"`
9703
9704	// A list of IPConfigurations of the network interface.
9705	IPConfigurations *[]NetworkInterfaceIPConfiguration `json:"ipConfigurations,omitempty"`
9706
9707	// READ-ONLY; The MAC address of the network interface.
9708	MacAddress *string `json:"macAddress,omitempty" azure:"ro"`
9709
9710	// The reference to the NetworkSecurityGroup resource.
9711	NetworkSecurityGroup *NetworkSecurityGroup `json:"networkSecurityGroup,omitempty"`
9712
9713	// READ-ONLY; Whether this is a primary network interface on a virtual machine.
9714	Primary *bool `json:"primary,omitempty" azure:"ro"`
9715
9716	// READ-ONLY; A reference to the private endpoint to which the network interface is linked.
9717	PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty" azure:"ro"`
9718
9719	// READ-ONLY; The provisioning state of the network interface resource.
9720	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
9721
9722	// READ-ONLY; The resource GUID property of the network interface resource.
9723	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
9724
9725	// READ-ONLY; A list of TapConfigurations of the network interface.
9726	TapConfigurations *[]NetworkInterfaceTapConfiguration `json:"tapConfigurations,omitempty" azure:"ro"`
9727
9728	// READ-ONLY; The reference to a virtual machine.
9729	VirtualMachine *SubResource `json:"virtualMachine,omitempty" azure:"ro"`
9730}
9731
9732// NetworkInterfaceResponse is the response envelope for operations that return a NetworkInterface type.
9733type NetworkInterfaceResponse struct {
9734	// A network interface in a resource group.
9735	NetworkInterface *NetworkInterface
9736
9737	// RawResponse contains the underlying HTTP response.
9738	RawResponse *http.Response
9739}
9740
9741// Tap configuration in a Network Interface.
9742type NetworkInterfaceTapConfiguration struct {
9743	SubResource
9744	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
9745	Etag *string `json:"etag,omitempty" azure:"ro"`
9746
9747	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
9748	Name *string `json:"name,omitempty"`
9749
9750	// Properties of the Virtual Network Tap configuration.
9751	Properties *NetworkInterfaceTapConfigurationPropertiesFormat `json:"properties,omitempty"`
9752
9753	// READ-ONLY; Sub Resource type.
9754	Type *string `json:"type,omitempty" azure:"ro"`
9755}
9756
9757// Response for list tap configurations API service call.
9758type NetworkInterfaceTapConfigurationListResult struct {
9759	// READ-ONLY; The URL to get the next set of results.
9760	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
9761
9762	// A list of tap configurations.
9763	Value *[]NetworkInterfaceTapConfiguration `json:"value,omitempty"`
9764}
9765
9766// NetworkInterfaceTapConfigurationListResultResponse is the response envelope for operations that return a NetworkInterfaceTapConfigurationListResult type.
9767type NetworkInterfaceTapConfigurationListResultResponse struct {
9768	// Response for list tap configurations API service call.
9769	NetworkInterfaceTapConfigurationListResult *NetworkInterfaceTapConfigurationListResult
9770
9771	// RawResponse contains the underlying HTTP response.
9772	RawResponse *http.Response
9773}
9774
9775// NetworkInterfaceTapConfigurationPollerResponse is the response envelope for operations that asynchronously return a NetworkInterfaceTapConfiguration
9776// type.
9777type NetworkInterfaceTapConfigurationPollerResponse struct {
9778	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
9779	PollUntilDone func(ctx context.Context, frequency time.Duration) (NetworkInterfaceTapConfigurationResponse, error)
9780
9781	// Poller contains an initialized poller.
9782	Poller NetworkInterfaceTapConfigurationPoller
9783
9784	// RawResponse contains the underlying HTTP response.
9785	RawResponse *http.Response
9786}
9787
9788// Properties of Virtual Network Tap configuration.
9789type NetworkInterfaceTapConfigurationPropertiesFormat struct {
9790	// READ-ONLY; The provisioning state of the network interface tap configuration resource.
9791	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
9792
9793	// The reference to the Virtual Network Tap resource.
9794	VirtualNetworkTap *VirtualNetworkTap `json:"virtualNetworkTap,omitempty"`
9795}
9796
9797// NetworkInterfaceTapConfigurationResponse is the response envelope for operations that return a NetworkInterfaceTapConfiguration type.
9798type NetworkInterfaceTapConfigurationResponse struct {
9799	// Tap configuration in a Network Interface.
9800	NetworkInterfaceTapConfiguration *NetworkInterfaceTapConfiguration
9801
9802	// RawResponse contains the underlying HTTP response.
9803	RawResponse *http.Response
9804}
9805
9806// NetworkInterfaceTapConfigurationsBeginCreateOrUpdateOptions contains the optional parameters for the NetworkInterfaceTapConfigurations.BeginCreateOrUpdate
9807// method.
9808type NetworkInterfaceTapConfigurationsBeginCreateOrUpdateOptions struct {
9809	// placeholder for future optional parameters
9810}
9811
9812// NetworkInterfaceTapConfigurationsBeginDeleteOptions contains the optional parameters for the NetworkInterfaceTapConfigurations.BeginDelete method.
9813type NetworkInterfaceTapConfigurationsBeginDeleteOptions struct {
9814	// placeholder for future optional parameters
9815}
9816
9817// NetworkInterfaceTapConfigurationsGetOptions contains the optional parameters for the NetworkInterfaceTapConfigurations.Get method.
9818type NetworkInterfaceTapConfigurationsGetOptions struct {
9819	// placeholder for future optional parameters
9820}
9821
9822// NetworkInterfaceTapConfigurationsListOptions contains the optional parameters for the NetworkInterfaceTapConfigurations.List method.
9823type NetworkInterfaceTapConfigurationsListOptions struct {
9824	// placeholder for future optional parameters
9825}
9826
9827// NetworkInterfacesBeginCreateOrUpdateOptions contains the optional parameters for the NetworkInterfaces.BeginCreateOrUpdate method.
9828type NetworkInterfacesBeginCreateOrUpdateOptions struct {
9829	// placeholder for future optional parameters
9830}
9831
9832// NetworkInterfacesBeginDeleteOptions contains the optional parameters for the NetworkInterfaces.BeginDelete method.
9833type NetworkInterfacesBeginDeleteOptions struct {
9834	// placeholder for future optional parameters
9835}
9836
9837// NetworkInterfacesBeginGetEffectiveRouteTableOptions contains the optional parameters for the NetworkInterfaces.BeginGetEffectiveRouteTable method.
9838type NetworkInterfacesBeginGetEffectiveRouteTableOptions struct {
9839	// placeholder for future optional parameters
9840}
9841
9842// NetworkInterfacesBeginListEffectiveNetworkSecurityGroupsOptions contains the optional parameters for the NetworkInterfaces.BeginListEffectiveNetworkSecurityGroups
9843// method.
9844type NetworkInterfacesBeginListEffectiveNetworkSecurityGroupsOptions struct {
9845	// placeholder for future optional parameters
9846}
9847
9848// NetworkInterfacesGetCloudServiceNetworkInterfaceOptions contains the optional parameters for the NetworkInterfaces.GetCloudServiceNetworkInterface method.
9849type NetworkInterfacesGetCloudServiceNetworkInterfaceOptions struct {
9850	// Expands referenced resources.
9851	Expand *string
9852}
9853
9854// NetworkInterfacesGetOptions contains the optional parameters for the NetworkInterfaces.Get method.
9855type NetworkInterfacesGetOptions struct {
9856	// Expands referenced resources.
9857	Expand *string
9858}
9859
9860// NetworkInterfacesGetVirtualMachineScaleSetIPConfigurationOptions contains the optional parameters for the NetworkInterfaces.GetVirtualMachineScaleSetIPConfiguration
9861// method.
9862type NetworkInterfacesGetVirtualMachineScaleSetIPConfigurationOptions struct {
9863	// Expands referenced resources.
9864	Expand *string
9865}
9866
9867// NetworkInterfacesGetVirtualMachineScaleSetNetworkInterfaceOptions contains the optional parameters for the NetworkInterfaces.GetVirtualMachineScaleSetNetworkInterface
9868// method.
9869type NetworkInterfacesGetVirtualMachineScaleSetNetworkInterfaceOptions struct {
9870	// Expands referenced resources.
9871	Expand *string
9872}
9873
9874// NetworkInterfacesListAllOptions contains the optional parameters for the NetworkInterfaces.ListAll method.
9875type NetworkInterfacesListAllOptions struct {
9876	// placeholder for future optional parameters
9877}
9878
9879// NetworkInterfacesListCloudServiceNetworkInterfacesOptions contains the optional parameters for the NetworkInterfaces.ListCloudServiceNetworkInterfaces
9880// method.
9881type NetworkInterfacesListCloudServiceNetworkInterfacesOptions struct {
9882	// placeholder for future optional parameters
9883}
9884
9885// NetworkInterfacesListCloudServiceRoleInstanceNetworkInterfacesOptions contains the optional parameters for the NetworkInterfaces.ListCloudServiceRoleInstanceNetworkInterfaces
9886// method.
9887type NetworkInterfacesListCloudServiceRoleInstanceNetworkInterfacesOptions struct {
9888	// placeholder for future optional parameters
9889}
9890
9891// NetworkInterfacesListOptions contains the optional parameters for the NetworkInterfaces.List method.
9892type NetworkInterfacesListOptions struct {
9893	// placeholder for future optional parameters
9894}
9895
9896// NetworkInterfacesListVirtualMachineScaleSetIPConfigurationsOptions contains the optional parameters for the NetworkInterfaces.ListVirtualMachineScaleSetIPConfigurations
9897// method.
9898type NetworkInterfacesListVirtualMachineScaleSetIPConfigurationsOptions struct {
9899	// Expands referenced resources.
9900	Expand *string
9901}
9902
9903// NetworkInterfacesListVirtualMachineScaleSetNetworkInterfacesOptions contains the optional parameters for the NetworkInterfaces.ListVirtualMachineScaleSetNetworkInterfaces
9904// method.
9905type NetworkInterfacesListVirtualMachineScaleSetNetworkInterfacesOptions struct {
9906	// placeholder for future optional parameters
9907}
9908
9909// NetworkInterfacesListVirtualMachineScaleSetVMNetworkInterfacesOptions contains the optional parameters for the NetworkInterfaces.ListVirtualMachineScaleSetVMNetworkInterfaces
9910// method.
9911type NetworkInterfacesListVirtualMachineScaleSetVMNetworkInterfacesOptions struct {
9912	// placeholder for future optional parameters
9913}
9914
9915// NetworkInterfacesUpdateTagsOptions contains the optional parameters for the NetworkInterfaces.UpdateTags method.
9916type NetworkInterfacesUpdateTagsOptions struct {
9917	// placeholder for future optional parameters
9918}
9919
9920// NetworkManagementClientBeginDeleteBastionShareableLinkOptions contains the optional parameters for the NetworkManagementClient.BeginDeleteBastionShareableLink
9921// method.
9922type NetworkManagementClientBeginDeleteBastionShareableLinkOptions struct {
9923	// placeholder for future optional parameters
9924}
9925
9926// NetworkManagementClientBeginGeneratevirtualwanvpnserverconfigurationvpnprofileOptions contains the optional parameters for the NetworkManagementClient.BeginGeneratevirtualwanvpnserverconfigurationvpnprofile
9927// method.
9928type NetworkManagementClientBeginGeneratevirtualwanvpnserverconfigurationvpnprofileOptions struct {
9929	// placeholder for future optional parameters
9930}
9931
9932// NetworkManagementClientBeginGetActiveSessionsOptions contains the optional parameters for the NetworkManagementClient.BeginGetActiveSessions method.
9933type NetworkManagementClientBeginGetActiveSessionsOptions struct {
9934	// placeholder for future optional parameters
9935}
9936
9937// NetworkManagementClientBeginPutBastionShareableLinkOptions contains the optional parameters for the NetworkManagementClient.BeginPutBastionShareableLink
9938// method.
9939type NetworkManagementClientBeginPutBastionShareableLinkOptions struct {
9940	// placeholder for future optional parameters
9941}
9942
9943// NetworkManagementClientCheckDNSNameAvailabilityOptions contains the optional parameters for the NetworkManagementClient.CheckDNSNameAvailability method.
9944type NetworkManagementClientCheckDNSNameAvailabilityOptions struct {
9945	// placeholder for future optional parameters
9946}
9947
9948// NetworkManagementClientDisconnectActiveSessionsOptions contains the optional parameters for the NetworkManagementClient.DisconnectActiveSessions method.
9949type NetworkManagementClientDisconnectActiveSessionsOptions struct {
9950	// placeholder for future optional parameters
9951}
9952
9953// NetworkManagementClientGetBastionShareableLinkOptions contains the optional parameters for the NetworkManagementClient.GetBastionShareableLink method.
9954type NetworkManagementClientGetBastionShareableLinkOptions struct {
9955	// placeholder for future optional parameters
9956}
9957
9958// NetworkManagementClientSupportedSecurityProvidersOptions contains the optional parameters for the NetworkManagementClient.SupportedSecurityProviders
9959// method.
9960type NetworkManagementClientSupportedSecurityProvidersOptions struct {
9961	// placeholder for future optional parameters
9962}
9963
9964// Network profile resource.
9965type NetworkProfile struct {
9966	Resource
9967	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
9968	Etag *string `json:"etag,omitempty" azure:"ro"`
9969
9970	// Network profile properties.
9971	Properties *NetworkProfilePropertiesFormat `json:"properties,omitempty"`
9972}
9973
9974// Response for ListNetworkProfiles API service call.
9975type NetworkProfileListResult struct {
9976	// The URL to get the next set of results.
9977	NextLink *string `json:"nextLink,omitempty"`
9978
9979	// A list of network profiles that exist in a resource group.
9980	Value *[]NetworkProfile `json:"value,omitempty"`
9981}
9982
9983// NetworkProfileListResultResponse is the response envelope for operations that return a NetworkProfileListResult type.
9984type NetworkProfileListResultResponse struct {
9985	// Response for ListNetworkProfiles API service call.
9986	NetworkProfileListResult *NetworkProfileListResult
9987
9988	// RawResponse contains the underlying HTTP response.
9989	RawResponse *http.Response
9990}
9991
9992// Network profile properties.
9993type NetworkProfilePropertiesFormat struct {
9994	// List of chid container network interface configurations.
9995	ContainerNetworkInterfaceConfigurations *[]ContainerNetworkInterfaceConfiguration `json:"containerNetworkInterfaceConfigurations,omitempty"`
9996
9997	// READ-ONLY; List of child container network interfaces.
9998	ContainerNetworkInterfaces *[]ContainerNetworkInterface `json:"containerNetworkInterfaces,omitempty" azure:"ro"`
9999
10000	// READ-ONLY; The provisioning state of the network profile resource.
10001	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
10002
10003	// READ-ONLY; The resource GUID property of the network profile resource.
10004	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
10005}
10006
10007// NetworkProfileResponse is the response envelope for operations that return a NetworkProfile type.
10008type NetworkProfileResponse struct {
10009	// Network profile resource.
10010	NetworkProfile *NetworkProfile
10011
10012	// RawResponse contains the underlying HTTP response.
10013	RawResponse *http.Response
10014}
10015
10016// NetworkProfilesBeginDeleteOptions contains the optional parameters for the NetworkProfiles.BeginDelete method.
10017type NetworkProfilesBeginDeleteOptions struct {
10018	// placeholder for future optional parameters
10019}
10020
10021// NetworkProfilesCreateOrUpdateOptions contains the optional parameters for the NetworkProfiles.CreateOrUpdate method.
10022type NetworkProfilesCreateOrUpdateOptions struct {
10023	// placeholder for future optional parameters
10024}
10025
10026// NetworkProfilesGetOptions contains the optional parameters for the NetworkProfiles.Get method.
10027type NetworkProfilesGetOptions struct {
10028	// Expands referenced resources.
10029	Expand *string
10030}
10031
10032// NetworkProfilesListAllOptions contains the optional parameters for the NetworkProfiles.ListAll method.
10033type NetworkProfilesListAllOptions struct {
10034	// placeholder for future optional parameters
10035}
10036
10037// NetworkProfilesListOptions contains the optional parameters for the NetworkProfiles.List method.
10038type NetworkProfilesListOptions struct {
10039	// placeholder for future optional parameters
10040}
10041
10042// NetworkProfilesUpdateTagsOptions contains the optional parameters for the NetworkProfiles.UpdateTags method.
10043type NetworkProfilesUpdateTagsOptions struct {
10044	// placeholder for future optional parameters
10045}
10046
10047// Rule of type network.
10048type NetworkRule struct {
10049	FirewallPolicyRule
10050	// List of destination IP addresses or Service Tags.
10051	DestinationAddresses *[]string `json:"destinationAddresses,omitempty"`
10052
10053	// List of destination FQDNs.
10054	DestinationFqdns *[]string `json:"destinationFqdns,omitempty"`
10055
10056	// List of destination IpGroups for this rule.
10057	DestinationIPGroups *[]string `json:"destinationIpGroups,omitempty"`
10058
10059	// List of destination ports.
10060	DestinationPorts *[]string `json:"destinationPorts,omitempty"`
10061
10062	// Array of FirewallPolicyRuleNetworkProtocols.
10063	IPProtocols *[]FirewallPolicyRuleNetworkProtocol `json:"ipProtocols,omitempty"`
10064
10065	// List of source IP addresses for this rule.
10066	SourceAddresses *[]string `json:"sourceAddresses,omitempty"`
10067
10068	// List of source IpGroups for this rule.
10069	SourceIPGroups *[]string `json:"sourceIpGroups,omitempty"`
10070}
10071
10072// MarshalJSON implements the json.Marshaller interface for type NetworkRule.
10073func (n NetworkRule) MarshalJSON() ([]byte, error) {
10074	objectMap := n.FirewallPolicyRule.marshalInternal(FirewallPolicyRuleTypeNetworkRule)
10075	if n.DestinationAddresses != nil {
10076		objectMap["destinationAddresses"] = n.DestinationAddresses
10077	}
10078	if n.DestinationFqdns != nil {
10079		objectMap["destinationFqdns"] = n.DestinationFqdns
10080	}
10081	if n.DestinationIPGroups != nil {
10082		objectMap["destinationIpGroups"] = n.DestinationIPGroups
10083	}
10084	if n.DestinationPorts != nil {
10085		objectMap["destinationPorts"] = n.DestinationPorts
10086	}
10087	if n.IPProtocols != nil {
10088		objectMap["ipProtocols"] = n.IPProtocols
10089	}
10090	if n.SourceAddresses != nil {
10091		objectMap["sourceAddresses"] = n.SourceAddresses
10092	}
10093	if n.SourceIPGroups != nil {
10094		objectMap["sourceIpGroups"] = n.SourceIPGroups
10095	}
10096	return json.Marshal(objectMap)
10097}
10098
10099// UnmarshalJSON implements the json.Unmarshaller interface for type NetworkRule.
10100func (n *NetworkRule) UnmarshalJSON(data []byte) error {
10101	var rawMsg map[string]*json.RawMessage
10102	if err := json.Unmarshal(data, &rawMsg); err != nil {
10103		return err
10104	}
10105	for key, val := range rawMsg {
10106		var err error
10107		switch key {
10108		case "destinationAddresses":
10109			if val != nil {
10110				err = json.Unmarshal(*val, &n.DestinationAddresses)
10111			}
10112			delete(rawMsg, key)
10113		case "destinationFqdns":
10114			if val != nil {
10115				err = json.Unmarshal(*val, &n.DestinationFqdns)
10116			}
10117			delete(rawMsg, key)
10118		case "destinationIpGroups":
10119			if val != nil {
10120				err = json.Unmarshal(*val, &n.DestinationIPGroups)
10121			}
10122			delete(rawMsg, key)
10123		case "destinationPorts":
10124			if val != nil {
10125				err = json.Unmarshal(*val, &n.DestinationPorts)
10126			}
10127			delete(rawMsg, key)
10128		case "ipProtocols":
10129			if val != nil {
10130				err = json.Unmarshal(*val, &n.IPProtocols)
10131			}
10132			delete(rawMsg, key)
10133		case "sourceAddresses":
10134			if val != nil {
10135				err = json.Unmarshal(*val, &n.SourceAddresses)
10136			}
10137			delete(rawMsg, key)
10138		case "sourceIpGroups":
10139			if val != nil {
10140				err = json.Unmarshal(*val, &n.SourceIPGroups)
10141			}
10142			delete(rawMsg, key)
10143		}
10144		if err != nil {
10145			return err
10146		}
10147	}
10148	return n.FirewallPolicyRule.unmarshalInternal(rawMsg)
10149}
10150
10151// NetworkSecurityGroup resource.
10152type NetworkSecurityGroup struct {
10153	Resource
10154	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
10155	Etag *string `json:"etag,omitempty" azure:"ro"`
10156
10157	// Properties of the network security group.
10158	Properties *NetworkSecurityGroupPropertiesFormat `json:"properties,omitempty"`
10159}
10160
10161// Response for ListNetworkSecurityGroups API service call.
10162type NetworkSecurityGroupListResult struct {
10163	// The URL to get the next set of results.
10164	NextLink *string `json:"nextLink,omitempty"`
10165
10166	// A list of NetworkSecurityGroup resources.
10167	Value *[]NetworkSecurityGroup `json:"value,omitempty"`
10168}
10169
10170// NetworkSecurityGroupListResultResponse is the response envelope for operations that return a NetworkSecurityGroupListResult type.
10171type NetworkSecurityGroupListResultResponse struct {
10172	// Response for ListNetworkSecurityGroups API service call.
10173	NetworkSecurityGroupListResult *NetworkSecurityGroupListResult
10174
10175	// RawResponse contains the underlying HTTP response.
10176	RawResponse *http.Response
10177}
10178
10179// NetworkSecurityGroupPollerResponse is the response envelope for operations that asynchronously return a NetworkSecurityGroup type.
10180type NetworkSecurityGroupPollerResponse struct {
10181	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
10182	PollUntilDone func(ctx context.Context, frequency time.Duration) (NetworkSecurityGroupResponse, error)
10183
10184	// Poller contains an initialized poller.
10185	Poller NetworkSecurityGroupPoller
10186
10187	// RawResponse contains the underlying HTTP response.
10188	RawResponse *http.Response
10189}
10190
10191// Network Security Group resource.
10192type NetworkSecurityGroupPropertiesFormat struct {
10193	// READ-ONLY; The default security rules of network security group.
10194	DefaultSecurityRules *[]SecurityRule `json:"defaultSecurityRules,omitempty" azure:"ro"`
10195
10196	// READ-ONLY; A collection of references to flow log resources.
10197	FlowLogs *[]FlowLog `json:"flowLogs,omitempty" azure:"ro"`
10198
10199	// READ-ONLY; A collection of references to network interfaces.
10200	NetworkInterfaces *[]NetworkInterface `json:"networkInterfaces,omitempty" azure:"ro"`
10201
10202	// READ-ONLY; The provisioning state of the network security group resource.
10203	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
10204
10205	// READ-ONLY; The resource GUID property of the network security group resource.
10206	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
10207
10208	// A collection of security rules of the network security group.
10209	SecurityRules *[]SecurityRule `json:"securityRules,omitempty"`
10210
10211	// READ-ONLY; A collection of references to subnets.
10212	Subnets *[]Subnet `json:"subnets,omitempty" azure:"ro"`
10213}
10214
10215// NetworkSecurityGroupResponse is the response envelope for operations that return a NetworkSecurityGroup type.
10216type NetworkSecurityGroupResponse struct {
10217	// NetworkSecurityGroup resource.
10218	NetworkSecurityGroup *NetworkSecurityGroup
10219
10220	// RawResponse contains the underlying HTTP response.
10221	RawResponse *http.Response
10222}
10223
10224// Network configuration diagnostic result corresponded provided traffic query.
10225type NetworkSecurityGroupResult struct {
10226	// READ-ONLY; List of results network security groups diagnostic.
10227	EvaluatedNetworkSecurityGroups *[]EvaluatedNetworkSecurityGroup `json:"evaluatedNetworkSecurityGroups,omitempty" azure:"ro"`
10228
10229	// The network traffic is allowed or denied.
10230	SecurityRuleAccessResult *SecurityRuleAccess `json:"securityRuleAccessResult,omitempty"`
10231}
10232
10233// NetworkSecurityGroupsBeginCreateOrUpdateOptions contains the optional parameters for the NetworkSecurityGroups.BeginCreateOrUpdate method.
10234type NetworkSecurityGroupsBeginCreateOrUpdateOptions struct {
10235	// placeholder for future optional parameters
10236}
10237
10238// NetworkSecurityGroupsBeginDeleteOptions contains the optional parameters for the NetworkSecurityGroups.BeginDelete method.
10239type NetworkSecurityGroupsBeginDeleteOptions struct {
10240	// placeholder for future optional parameters
10241}
10242
10243// NetworkSecurityGroupsGetOptions contains the optional parameters for the NetworkSecurityGroups.Get method.
10244type NetworkSecurityGroupsGetOptions struct {
10245	// Expands referenced resources.
10246	Expand *string
10247}
10248
10249// NetworkSecurityGroupsListAllOptions contains the optional parameters for the NetworkSecurityGroups.ListAll method.
10250type NetworkSecurityGroupsListAllOptions struct {
10251	// placeholder for future optional parameters
10252}
10253
10254// NetworkSecurityGroupsListOptions contains the optional parameters for the NetworkSecurityGroups.List method.
10255type NetworkSecurityGroupsListOptions struct {
10256	// placeholder for future optional parameters
10257}
10258
10259// NetworkSecurityGroupsUpdateTagsOptions contains the optional parameters for the NetworkSecurityGroups.UpdateTags method.
10260type NetworkSecurityGroupsUpdateTagsOptions struct {
10261	// placeholder for future optional parameters
10262}
10263
10264// Network security rules evaluation result.
10265type NetworkSecurityRulesEvaluationResult struct {
10266	// Value indicating whether destination is matched.
10267	DestinationMatched *bool `json:"destinationMatched,omitempty"`
10268
10269	// Value indicating whether destination port is matched.
10270	DestinationPortMatched *bool `json:"destinationPortMatched,omitempty"`
10271
10272	// Name of the network security rule.
10273	Name *string `json:"name,omitempty"`
10274
10275	// Value indicating whether protocol is matched.
10276	ProtocolMatched *bool `json:"protocolMatched,omitempty"`
10277
10278	// Value indicating whether source is matched.
10279	SourceMatched *bool `json:"sourceMatched,omitempty"`
10280
10281	// Value indicating whether source port is matched.
10282	SourcePortMatched *bool `json:"sourcePortMatched,omitempty"`
10283}
10284
10285// NetworkVirtualAppliance Resource.
10286type NetworkVirtualAppliance struct {
10287	Resource
10288	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
10289	Etag *string `json:"etag,omitempty" azure:"ro"`
10290
10291	// The service principal that has read access to cloud-init and config blob.
10292	IDentity *ManagedServiceIDentity `json:"identity,omitempty"`
10293
10294	// Properties of the Network Virtual Appliance.
10295	Properties *NetworkVirtualAppliancePropertiesFormat `json:"properties,omitempty"`
10296}
10297
10298// Response for ListNetworkVirtualAppliances API service call.
10299type NetworkVirtualApplianceListResult struct {
10300	// URL to get the next set of results.
10301	NextLink *string `json:"nextLink,omitempty"`
10302
10303	// List of Network Virtual Appliances.
10304	Value *[]NetworkVirtualAppliance `json:"value,omitempty"`
10305}
10306
10307// NetworkVirtualApplianceListResultResponse is the response envelope for operations that return a NetworkVirtualApplianceListResult type.
10308type NetworkVirtualApplianceListResultResponse struct {
10309	// Response for ListNetworkVirtualAppliances API service call.
10310	NetworkVirtualApplianceListResult *NetworkVirtualApplianceListResult
10311
10312	// RawResponse contains the underlying HTTP response.
10313	RawResponse *http.Response
10314}
10315
10316// NetworkVirtualAppliancePollerResponse is the response envelope for operations that asynchronously return a NetworkVirtualAppliance type.
10317type NetworkVirtualAppliancePollerResponse struct {
10318	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
10319	PollUntilDone func(ctx context.Context, frequency time.Duration) (NetworkVirtualApplianceResponse, error)
10320
10321	// Poller contains an initialized poller.
10322	Poller NetworkVirtualAppliancePoller
10323
10324	// RawResponse contains the underlying HTTP response.
10325	RawResponse *http.Response
10326}
10327
10328// Network Virtual Appliance definition.
10329type NetworkVirtualAppliancePropertiesFormat struct {
10330	// READ-ONLY; Address Prefix.
10331	AddressPrefix *string `json:"addressPrefix,omitempty" azure:"ro"`
10332
10333	// BootStrapConfigurationBlobs storage URLs.
10334	BootStrapConfigurationBlobs *[]string `json:"bootStrapConfigurationBlobs,omitempty"`
10335
10336	// CloudInitConfiguration string in plain text.
10337	CloudInitConfiguration *string `json:"cloudInitConfiguration,omitempty"`
10338
10339	// CloudInitConfigurationBlob storage URLs.
10340	CloudInitConfigurationBlobs *[]string `json:"cloudInitConfigurationBlobs,omitempty"`
10341
10342	// READ-ONLY; List of references to InboundSecurityRules.
10343	InboundSecurityRules *[]SubResource `json:"inboundSecurityRules,omitempty" azure:"ro"`
10344
10345	// Network Virtual Appliance SKU.
10346	NvaSKU *VirtualApplianceSKUProperties `json:"nvaSku,omitempty"`
10347
10348	// READ-ONLY; The provisioning state of the resource.
10349	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
10350
10351	// VirtualAppliance ASN.
10352	VirtualApplianceAsn *int64 `json:"virtualApplianceAsn,omitempty"`
10353
10354	// READ-ONLY; List of Virtual Appliance Network Interfaces.
10355	VirtualApplianceNics *[]VirtualApplianceNicProperties `json:"virtualApplianceNics,omitempty" azure:"ro"`
10356
10357	// READ-ONLY; List of references to VirtualApplianceSite.
10358	VirtualApplianceSites *[]SubResource `json:"virtualApplianceSites,omitempty" azure:"ro"`
10359
10360	// The Virtual Hub where Network Virtual Appliance is being deployed.
10361	VirtualHub *SubResource `json:"virtualHub,omitempty"`
10362}
10363
10364// NetworkVirtualApplianceResponse is the response envelope for operations that return a NetworkVirtualAppliance type.
10365type NetworkVirtualApplianceResponse struct {
10366	// NetworkVirtualAppliance Resource.
10367	NetworkVirtualAppliance *NetworkVirtualAppliance
10368
10369	// RawResponse contains the underlying HTTP response.
10370	RawResponse *http.Response
10371}
10372
10373// Definition of the NetworkVirtualApplianceSkus resource.
10374type NetworkVirtualApplianceSKU struct {
10375	Resource
10376	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
10377	Etag *string `json:"etag,omitempty" azure:"ro"`
10378
10379	// NetworkVirtualApplianceSku properties.
10380	Properties *NetworkVirtualApplianceSKUPropertiesFormat `json:"properties,omitempty"`
10381}
10382
10383// List of available Sku and instances.
10384type NetworkVirtualApplianceSKUInstances struct {
10385	// READ-ONLY; Instance Count.
10386	InstanceCount *int32 `json:"instanceCount,omitempty" azure:"ro"`
10387
10388	// READ-ONLY; Scale Unit.
10389	ScaleUnit *string `json:"scaleUnit,omitempty" azure:"ro"`
10390}
10391
10392// Response for ListNetworkVirtualApplianceSkus API service call.
10393type NetworkVirtualApplianceSKUListResult struct {
10394	// URL to get the next set of results.
10395	NextLink *string `json:"nextLink,omitempty"`
10396
10397	// List of Network Virtual Appliance Skus that are available.
10398	Value *[]NetworkVirtualApplianceSKU `json:"value,omitempty"`
10399}
10400
10401// NetworkVirtualApplianceSKUListResultResponse is the response envelope for operations that return a NetworkVirtualApplianceSKUListResult type.
10402type NetworkVirtualApplianceSKUListResultResponse struct {
10403	// Response for ListNetworkVirtualApplianceSkus API service call.
10404	NetworkVirtualApplianceSKUListResult *NetworkVirtualApplianceSKUListResult
10405
10406	// RawResponse contains the underlying HTTP response.
10407	RawResponse *http.Response
10408}
10409
10410// Properties specific to NetworkVirtualApplianceSkus.
10411type NetworkVirtualApplianceSKUPropertiesFormat struct {
10412	// The list of scale units available.
10413	AvailableScaleUnits *[]NetworkVirtualApplianceSKUInstances `json:"availableScaleUnits,omitempty"`
10414
10415	// READ-ONLY; Available Network Virtual Appliance versions.
10416	AvailableVersions *[]string `json:"availableVersions,omitempty" azure:"ro"`
10417
10418	// READ-ONLY; Network Virtual Appliance Sku vendor.
10419	Vendor *string `json:"vendor,omitempty" azure:"ro"`
10420}
10421
10422// NetworkVirtualApplianceSKUResponse is the response envelope for operations that return a NetworkVirtualApplianceSKU type.
10423type NetworkVirtualApplianceSKUResponse struct {
10424	// Definition of the NetworkVirtualApplianceSkus resource.
10425	NetworkVirtualApplianceSKU *NetworkVirtualApplianceSKU
10426
10427	// RawResponse contains the underlying HTTP response.
10428	RawResponse *http.Response
10429}
10430
10431// Response for ListNetworkVirtualApplianceSites API service call.
10432type NetworkVirtualApplianceSiteListResult struct {
10433	// URL to get the next set of results.
10434	NextLink *string `json:"nextLink,omitempty"`
10435
10436	// List of Network Virtual Appliance sites.
10437	Value *[]VirtualApplianceSite `json:"value,omitempty"`
10438}
10439
10440// NetworkVirtualApplianceSiteListResultResponse is the response envelope for operations that return a NetworkVirtualApplianceSiteListResult type.
10441type NetworkVirtualApplianceSiteListResultResponse struct {
10442	// Response for ListNetworkVirtualApplianceSites API service call.
10443	NetworkVirtualApplianceSiteListResult *NetworkVirtualApplianceSiteListResult
10444
10445	// RawResponse contains the underlying HTTP response.
10446	RawResponse *http.Response
10447}
10448
10449// NetworkVirtualAppliancesBeginCreateOrUpdateOptions contains the optional parameters for the NetworkVirtualAppliances.BeginCreateOrUpdate method.
10450type NetworkVirtualAppliancesBeginCreateOrUpdateOptions struct {
10451	// placeholder for future optional parameters
10452}
10453
10454// NetworkVirtualAppliancesBeginDeleteOptions contains the optional parameters for the NetworkVirtualAppliances.BeginDelete method.
10455type NetworkVirtualAppliancesBeginDeleteOptions struct {
10456	// placeholder for future optional parameters
10457}
10458
10459// NetworkVirtualAppliancesGetOptions contains the optional parameters for the NetworkVirtualAppliances.Get method.
10460type NetworkVirtualAppliancesGetOptions struct {
10461	// Expands referenced resources.
10462	Expand *string
10463}
10464
10465// NetworkVirtualAppliancesListByResourceGroupOptions contains the optional parameters for the NetworkVirtualAppliances.ListByResourceGroup method.
10466type NetworkVirtualAppliancesListByResourceGroupOptions struct {
10467	// placeholder for future optional parameters
10468}
10469
10470// NetworkVirtualAppliancesListOptions contains the optional parameters for the NetworkVirtualAppliances.List method.
10471type NetworkVirtualAppliancesListOptions struct {
10472	// placeholder for future optional parameters
10473}
10474
10475// NetworkVirtualAppliancesUpdateTagsOptions contains the optional parameters for the NetworkVirtualAppliances.UpdateTags method.
10476type NetworkVirtualAppliancesUpdateTagsOptions struct {
10477	// placeholder for future optional parameters
10478}
10479
10480// Network watcher in a resource group.
10481type NetworkWatcher struct {
10482	Resource
10483	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
10484	Etag *string `json:"etag,omitempty" azure:"ro"`
10485
10486	// Properties of the network watcher.
10487	Properties *NetworkWatcherPropertiesFormat `json:"properties,omitempty"`
10488}
10489
10490// Response for ListNetworkWatchers API service call.
10491type NetworkWatcherListResult struct {
10492	// List of network watcher resources.
10493	Value *[]NetworkWatcher `json:"value,omitempty"`
10494}
10495
10496// NetworkWatcherListResultResponse is the response envelope for operations that return a NetworkWatcherListResult type.
10497type NetworkWatcherListResultResponse struct {
10498	// Response for ListNetworkWatchers API service call.
10499	NetworkWatcherListResult *NetworkWatcherListResult
10500
10501	// RawResponse contains the underlying HTTP response.
10502	RawResponse *http.Response
10503}
10504
10505// The network watcher properties.
10506type NetworkWatcherPropertiesFormat struct {
10507	// READ-ONLY; The provisioning state of the network watcher resource.
10508	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
10509}
10510
10511// NetworkWatcherResponse is the response envelope for operations that return a NetworkWatcher type.
10512type NetworkWatcherResponse struct {
10513	// Network watcher in a resource group.
10514	NetworkWatcher *NetworkWatcher
10515
10516	// RawResponse contains the underlying HTTP response.
10517	RawResponse *http.Response
10518}
10519
10520// NetworkWatchersBeginCheckConnectivityOptions contains the optional parameters for the NetworkWatchers.BeginCheckConnectivity method.
10521type NetworkWatchersBeginCheckConnectivityOptions struct {
10522	// placeholder for future optional parameters
10523}
10524
10525// NetworkWatchersBeginDeleteOptions contains the optional parameters for the NetworkWatchers.BeginDelete method.
10526type NetworkWatchersBeginDeleteOptions struct {
10527	// placeholder for future optional parameters
10528}
10529
10530// NetworkWatchersBeginGetAzureReachabilityReportOptions contains the optional parameters for the NetworkWatchers.BeginGetAzureReachabilityReport method.
10531type NetworkWatchersBeginGetAzureReachabilityReportOptions struct {
10532	// placeholder for future optional parameters
10533}
10534
10535// NetworkWatchersBeginGetFlowLogStatusOptions contains the optional parameters for the NetworkWatchers.BeginGetFlowLogStatus method.
10536type NetworkWatchersBeginGetFlowLogStatusOptions struct {
10537	// placeholder for future optional parameters
10538}
10539
10540// NetworkWatchersBeginGetNetworkConfigurationDiagnosticOptions contains the optional parameters for the NetworkWatchers.BeginGetNetworkConfigurationDiagnostic
10541// method.
10542type NetworkWatchersBeginGetNetworkConfigurationDiagnosticOptions struct {
10543	// placeholder for future optional parameters
10544}
10545
10546// NetworkWatchersBeginGetNextHopOptions contains the optional parameters for the NetworkWatchers.BeginGetNextHop method.
10547type NetworkWatchersBeginGetNextHopOptions struct {
10548	// placeholder for future optional parameters
10549}
10550
10551// NetworkWatchersBeginGetTroubleshootingOptions contains the optional parameters for the NetworkWatchers.BeginGetTroubleshooting method.
10552type NetworkWatchersBeginGetTroubleshootingOptions struct {
10553	// placeholder for future optional parameters
10554}
10555
10556// NetworkWatchersBeginGetTroubleshootingResultOptions contains the optional parameters for the NetworkWatchers.BeginGetTroubleshootingResult method.
10557type NetworkWatchersBeginGetTroubleshootingResultOptions struct {
10558	// placeholder for future optional parameters
10559}
10560
10561// NetworkWatchersBeginGetVMSecurityRulesOptions contains the optional parameters for the NetworkWatchers.BeginGetVMSecurityRules method.
10562type NetworkWatchersBeginGetVMSecurityRulesOptions struct {
10563	// placeholder for future optional parameters
10564}
10565
10566// NetworkWatchersBeginListAvailableProvidersOptions contains the optional parameters for the NetworkWatchers.BeginListAvailableProviders method.
10567type NetworkWatchersBeginListAvailableProvidersOptions struct {
10568	// placeholder for future optional parameters
10569}
10570
10571// NetworkWatchersBeginSetFlowLogConfigurationOptions contains the optional parameters for the NetworkWatchers.BeginSetFlowLogConfiguration method.
10572type NetworkWatchersBeginSetFlowLogConfigurationOptions struct {
10573	// placeholder for future optional parameters
10574}
10575
10576// NetworkWatchersBeginVerifyIPFlowOptions contains the optional parameters for the NetworkWatchers.BeginVerifyIPFlow method.
10577type NetworkWatchersBeginVerifyIPFlowOptions struct {
10578	// placeholder for future optional parameters
10579}
10580
10581// NetworkWatchersCreateOrUpdateOptions contains the optional parameters for the NetworkWatchers.CreateOrUpdate method.
10582type NetworkWatchersCreateOrUpdateOptions struct {
10583	// placeholder for future optional parameters
10584}
10585
10586// NetworkWatchersGetOptions contains the optional parameters for the NetworkWatchers.Get method.
10587type NetworkWatchersGetOptions struct {
10588	// placeholder for future optional parameters
10589}
10590
10591// NetworkWatchersGetTopologyOptions contains the optional parameters for the NetworkWatchers.GetTopology method.
10592type NetworkWatchersGetTopologyOptions struct {
10593	// placeholder for future optional parameters
10594}
10595
10596// NetworkWatchersListAllOptions contains the optional parameters for the NetworkWatchers.ListAll method.
10597type NetworkWatchersListAllOptions struct {
10598	// placeholder for future optional parameters
10599}
10600
10601// NetworkWatchersListOptions contains the optional parameters for the NetworkWatchers.List method.
10602type NetworkWatchersListOptions struct {
10603	// placeholder for future optional parameters
10604}
10605
10606// NetworkWatchersUpdateTagsOptions contains the optional parameters for the NetworkWatchers.UpdateTags method.
10607type NetworkWatchersUpdateTagsOptions struct {
10608	// placeholder for future optional parameters
10609}
10610
10611// Parameters that define the source and destination endpoint.
10612type NextHopParameters struct {
10613	// The destination IP address.
10614	DestinationIPAddress *string `json:"destinationIPAddress,omitempty"`
10615
10616	// The source IP address.
10617	SourceIPAddress *string `json:"sourceIPAddress,omitempty"`
10618
10619	// The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of the nics, then this parameter must be specified. Otherwise optional).
10620	TargetNicResourceID *string `json:"targetNicResourceId,omitempty"`
10621
10622	// The resource identifier of the target resource against which the action is to be performed.
10623	TargetResourceID *string `json:"targetResourceId,omitempty"`
10624}
10625
10626// The information about next hop from the specified VM.
10627type NextHopResult struct {
10628	// Next hop IP Address.
10629	NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"`
10630
10631	// Next hop type.
10632	NextHopType *NextHopType `json:"nextHopType,omitempty"`
10633
10634	// The resource identifier for the route table associated with the route being returned. If the route being returned does not correspond to any user created
10635	// routes then this field will be the string
10636	// 'System Route'.
10637	RouteTableID *string `json:"routeTableId,omitempty"`
10638}
10639
10640// NextHopResultPollerResponse is the response envelope for operations that asynchronously return a NextHopResult type.
10641type NextHopResultPollerResponse struct {
10642	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
10643	PollUntilDone func(ctx context.Context, frequency time.Duration) (NextHopResultResponse, error)
10644
10645	// Poller contains an initialized poller.
10646	Poller NextHopResultPoller
10647
10648	// RawResponse contains the underlying HTTP response.
10649	RawResponse *http.Response
10650}
10651
10652// NextHopResultResponse is the response envelope for operations that return a NextHopResult type.
10653type NextHopResultResponse struct {
10654	// The information about next hop from the specified VM.
10655	NextHopResult *NextHopResult
10656
10657	// RawResponse contains the underlying HTTP response.
10658	RawResponse *http.Response
10659}
10660
10661// Office365 breakout categories.
10662type O365BreakOutCategoryPolicies struct {
10663	// Flag to control allow category.
10664	Allow *bool `json:"allow,omitempty"`
10665
10666	// Flag to control default category.
10667	Default *bool `json:"default,omitempty"`
10668
10669	// Flag to control optimize category.
10670	Optimize *bool `json:"optimize,omitempty"`
10671}
10672
10673// The Office365 breakout policy.
10674type O365PolicyProperties struct {
10675	// Office365 breakout categories.
10676	BreakOutCategories *O365BreakOutCategoryPolicies `json:"breakOutCategories,omitempty"`
10677}
10678
10679// Network Virtual Appliance Sku Properties.
10680type Office365PolicyProperties struct {
10681	// Office 365 breakout categories.
10682	BreakOutCategories *BreakOutCategoryPolicies `json:"breakOutCategories,omitempty"`
10683}
10684
10685// Network REST API operation definition.
10686type Operation struct {
10687	// Display metadata associated with the operation.
10688	Display *OperationDisplay `json:"display,omitempty"`
10689
10690	// Operation name: {provider}/{resource}/{operation}.
10691	Name *string `json:"name,omitempty"`
10692
10693	// Origin of the operation.
10694	Origin *string `json:"origin,omitempty"`
10695
10696	// Operation properties format.
10697	Properties *OperationPropertiesFormat `json:"properties,omitempty"`
10698}
10699
10700// Display metadata associated with the operation.
10701type OperationDisplay struct {
10702	// Description of the operation.
10703	Description *string `json:"description,omitempty"`
10704
10705	// Type of the operation: get, read, delete, etc.
10706	Operation *string `json:"operation,omitempty"`
10707
10708	// Service provider: Microsoft Network.
10709	Provider *string `json:"provider,omitempty"`
10710
10711	// Resource on which the operation is performed.
10712	Resource *string `json:"resource,omitempty"`
10713}
10714
10715// Result of the request to list Network operations. It contains a list of operations and a URL link to get the next set of results.
10716type OperationListResult struct {
10717	// URL to get the next set of operation list results if there are any.
10718	NextLink *string `json:"nextLink,omitempty"`
10719
10720	// List of Network operations supported by the Network resource provider.
10721	Value *[]Operation `json:"value,omitempty"`
10722}
10723
10724// OperationListResultResponse is the response envelope for operations that return a OperationListResult type.
10725type OperationListResultResponse struct {
10726	// Result of the request to list Network operations. It contains a list of operations and a URL link to get the next set of results.
10727	OperationListResult *OperationListResult
10728
10729	// RawResponse contains the underlying HTTP response.
10730	RawResponse *http.Response
10731}
10732
10733// Description of operation properties format.
10734type OperationPropertiesFormat struct {
10735	// Specification of the service.
10736	ServiceSpecification *OperationPropertiesFormatServiceSpecification `json:"serviceSpecification,omitempty"`
10737}
10738
10739// Specification of the service.
10740type OperationPropertiesFormatServiceSpecification struct {
10741	// Operation log specification.
10742	LogSpecifications *[]LogSpecification `json:"logSpecifications,omitempty"`
10743
10744	// Operation service specification.
10745	MetricSpecifications *[]MetricSpecification `json:"metricSpecifications,omitempty"`
10746}
10747
10748// OperationsListOptions contains the optional parameters for the Operations.List method.
10749type OperationsListOptions struct {
10750	// placeholder for future optional parameters
10751}
10752
10753// Outbound rule of the load balancer.
10754type OutboundRule struct {
10755	SubResource
10756	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
10757	Etag *string `json:"etag,omitempty" azure:"ro"`
10758
10759	// The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource.
10760	Name *string `json:"name,omitempty"`
10761
10762	// Properties of load balancer outbound rule.
10763	Properties *OutboundRulePropertiesFormat `json:"properties,omitempty"`
10764
10765	// READ-ONLY; Type of the resource.
10766	Type *string `json:"type,omitempty" azure:"ro"`
10767}
10768
10769// Outbound rule of the load balancer.
10770type OutboundRulePropertiesFormat struct {
10771	// The number of outbound ports to be used for NAT.
10772	AllocatedOutboundPorts *int32 `json:"allocatedOutboundPorts,omitempty"`
10773
10774	// A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs.
10775	BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"`
10776
10777	// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to
10778	// TCP.
10779	EnableTCPReset *bool `json:"enableTcpReset,omitempty"`
10780
10781	// The Frontend IP addresses of the load balancer.
10782	FrontendIPConfigurations *[]SubResource `json:"frontendIPConfigurations,omitempty"`
10783
10784	// The timeout for the TCP idle connection.
10785	IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"`
10786
10787	// The protocol for the outbound rule in load balancer.
10788	Protocol *LoadBalancerOutboundRuleProtocol `json:"protocol,omitempty"`
10789
10790	// READ-ONLY; The provisioning state of the outbound rule resource.
10791	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
10792}
10793
10794// OutboundRuleResponse is the response envelope for operations that return a OutboundRule type.
10795type OutboundRuleResponse struct {
10796	// Outbound rule of the load balancer.
10797	OutboundRule *OutboundRule
10798
10799	// RawResponse contains the underlying HTTP response.
10800	RawResponse *http.Response
10801}
10802
10803// Allow to exclude some variable satisfy the condition for the WAF check.
10804type OwaspCrsExclusionEntry struct {
10805	// The variable to be excluded.
10806	MatchVariable *OwaspCrsExclusionEntryMatchVariable `json:"matchVariable,omitempty"`
10807
10808	// When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to.
10809	Selector *string `json:"selector,omitempty"`
10810
10811	// When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to.
10812	SelectorMatchOperator *OwaspCrsExclusionEntrySelectorMatchOperator `json:"selectorMatchOperator,omitempty"`
10813}
10814
10815// P2SConnectionConfiguration Resource.
10816type P2SConnectionConfiguration struct {
10817	SubResource
10818	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
10819	Etag *string `json:"etag,omitempty" azure:"ro"`
10820
10821	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
10822	Name *string `json:"name,omitempty"`
10823
10824	// Properties of the P2S connection configuration.
10825	Properties *P2SConnectionConfigurationProperties `json:"properties,omitempty"`
10826}
10827
10828// Parameters for P2SConnectionConfiguration.
10829type P2SConnectionConfigurationProperties struct {
10830	// Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not.
10831	EnableInternetSecurity *bool `json:"enableInternetSecurity,omitempty"`
10832
10833	// READ-ONLY; The provisioning state of the P2SConnectionConfiguration resource.
10834	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
10835
10836	// The Routing Configuration indicating the associated and propagated route tables on this connection.
10837	RoutingConfiguration *RoutingConfiguration `json:"routingConfiguration,omitempty"`
10838
10839	// The reference to the address space resource which represents Address space for P2S VpnClient.
10840	VpnClientAddressPool *AddressSpace `json:"vpnClientAddressPool,omitempty"`
10841}
10842
10843// P2S Vpn connection detailed health written to sas url.
10844type P2SVpnConnectionHealth struct {
10845	// Returned sas url of the blob to which the p2s vpn connection detailed health will be written.
10846	SasURL *string `json:"sasUrl,omitempty"`
10847}
10848
10849// P2SVpnConnectionHealthPollerResponse is the response envelope for operations that asynchronously return a P2SVpnConnectionHealth type.
10850type P2SVpnConnectionHealthPollerResponse struct {
10851	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
10852	PollUntilDone func(ctx context.Context, frequency time.Duration) (P2SVpnConnectionHealthResponse, error)
10853
10854	// Poller contains an initialized poller.
10855	Poller P2SVpnConnectionHealthPoller
10856
10857	// RawResponse contains the underlying HTTP response.
10858	RawResponse *http.Response
10859}
10860
10861// List of P2S Vpn connection health request.
10862type P2SVpnConnectionHealthRequest struct {
10863	// The sas-url to download the P2S Vpn connection health detail.
10864	OutputBlobSasURL *string `json:"outputBlobSasUrl,omitempty"`
10865
10866	// The list of p2s vpn user names whose p2s vpn connection detailed health to retrieve for.
10867	VpnUserNamesFilter *[]string `json:"vpnUserNamesFilter,omitempty"`
10868}
10869
10870// P2SVpnConnectionHealthResponse is the response envelope for operations that return a P2SVpnConnectionHealth type.
10871type P2SVpnConnectionHealthResponse struct {
10872	// P2S Vpn connection detailed health written to sas url.
10873	P2SVpnConnectionHealth *P2SVpnConnectionHealth
10874
10875	// RawResponse contains the underlying HTTP response.
10876	RawResponse *http.Response
10877}
10878
10879// List of p2s vpn connections to be disconnected.
10880type P2SVpnConnectionRequest struct {
10881	// List of p2s vpn connection Ids.
10882	VpnConnectionIDs *[]string `json:"vpnConnectionIds,omitempty"`
10883}
10884
10885// P2SVpnGateway Resource.
10886type P2SVpnGateway struct {
10887	Resource
10888	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
10889	Etag *string `json:"etag,omitempty" azure:"ro"`
10890
10891	// Properties of the P2SVpnGateway.
10892	Properties *P2SVpnGatewayProperties `json:"properties,omitempty"`
10893}
10894
10895// P2SVpnGatewayPollerResponse is the response envelope for operations that asynchronously return a P2SVpnGateway type.
10896type P2SVpnGatewayPollerResponse struct {
10897	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
10898	PollUntilDone func(ctx context.Context, frequency time.Duration) (P2SVpnGatewayResponse, error)
10899
10900	// Poller contains an initialized poller.
10901	Poller P2SVpnGatewayPoller
10902
10903	// RawResponse contains the underlying HTTP response.
10904	RawResponse *http.Response
10905}
10906
10907// Parameters for P2SVpnGateway.
10908type P2SVpnGatewayProperties struct {
10909	// List of all customer specified DNS servers IP addresses.
10910	CustomDNSServers *[]string `json:"customDnsServers,omitempty"`
10911
10912	// Enable Routing Preference property for the Public IP Interface of the P2SVpnGateway.
10913	IsRoutingPreferenceInternet *bool `json:"isRoutingPreferenceInternet,omitempty"`
10914
10915	// List of all p2s connection configurations of the gateway.
10916	P2SConnectionConfigurations *[]P2SConnectionConfiguration `json:"p2SConnectionConfigurations,omitempty"`
10917
10918	// READ-ONLY; The provisioning state of the P2S VPN gateway resource.
10919	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
10920
10921	// The VirtualHub to which the gateway belongs.
10922	VirtualHub *SubResource `json:"virtualHub,omitempty"`
10923
10924	// READ-ONLY; All P2S VPN clients' connection health status.
10925	VpnClientConnectionHealth *VpnClientConnectionHealth `json:"vpnClientConnectionHealth,omitempty" azure:"ro"`
10926
10927	// The scale unit for this p2s vpn gateway.
10928	VpnGatewayScaleUnit *int32 `json:"vpnGatewayScaleUnit,omitempty"`
10929
10930	// The VpnServerConfiguration to which the p2sVpnGateway is attached to.
10931	VpnServerConfiguration *SubResource `json:"vpnServerConfiguration,omitempty"`
10932}
10933
10934// P2SVpnGatewayResponse is the response envelope for operations that return a P2SVpnGateway type.
10935type P2SVpnGatewayResponse struct {
10936	// P2SVpnGateway Resource.
10937	P2SVpnGateway *P2SVpnGateway
10938
10939	// RawResponse contains the underlying HTTP response.
10940	RawResponse *http.Response
10941}
10942
10943// P2SVpnGatewaysBeginCreateOrUpdateOptions contains the optional parameters for the P2SVpnGateways.BeginCreateOrUpdate method.
10944type P2SVpnGatewaysBeginCreateOrUpdateOptions struct {
10945	// placeholder for future optional parameters
10946}
10947
10948// P2SVpnGatewaysBeginDeleteOptions contains the optional parameters for the P2SVpnGateways.BeginDelete method.
10949type P2SVpnGatewaysBeginDeleteOptions struct {
10950	// placeholder for future optional parameters
10951}
10952
10953// P2SVpnGatewaysBeginDisconnectP2SVpnConnectionsOptions contains the optional parameters for the P2SVpnGateways.BeginDisconnectP2SVpnConnections method.
10954type P2SVpnGatewaysBeginDisconnectP2SVpnConnectionsOptions struct {
10955	// placeholder for future optional parameters
10956}
10957
10958// P2SVpnGatewaysBeginGenerateVpnProfileOptions contains the optional parameters for the P2SVpnGateways.BeginGenerateVpnProfile method.
10959type P2SVpnGatewaysBeginGenerateVpnProfileOptions struct {
10960	// placeholder for future optional parameters
10961}
10962
10963// P2SVpnGatewaysBeginGetP2SVpnConnectionHealthDetailedOptions contains the optional parameters for the P2SVpnGateways.BeginGetP2SVpnConnectionHealthDetailed
10964// method.
10965type P2SVpnGatewaysBeginGetP2SVpnConnectionHealthDetailedOptions struct {
10966	// placeholder for future optional parameters
10967}
10968
10969// P2SVpnGatewaysBeginGetP2SVpnConnectionHealthOptions contains the optional parameters for the P2SVpnGateways.BeginGetP2SVpnConnectionHealth method.
10970type P2SVpnGatewaysBeginGetP2SVpnConnectionHealthOptions struct {
10971	// placeholder for future optional parameters
10972}
10973
10974// P2SVpnGatewaysBeginResetOptions contains the optional parameters for the P2SVpnGateways.BeginReset method.
10975type P2SVpnGatewaysBeginResetOptions struct {
10976	// placeholder for future optional parameters
10977}
10978
10979// P2SVpnGatewaysBeginUpdateTagsOptions contains the optional parameters for the P2SVpnGateways.BeginUpdateTags method.
10980type P2SVpnGatewaysBeginUpdateTagsOptions struct {
10981	// placeholder for future optional parameters
10982}
10983
10984// P2SVpnGatewaysGetOptions contains the optional parameters for the P2SVpnGateways.Get method.
10985type P2SVpnGatewaysGetOptions struct {
10986	// placeholder for future optional parameters
10987}
10988
10989// P2SVpnGatewaysListByResourceGroupOptions contains the optional parameters for the P2SVpnGateways.ListByResourceGroup method.
10990type P2SVpnGatewaysListByResourceGroupOptions struct {
10991	// placeholder for future optional parameters
10992}
10993
10994// P2SVpnGatewaysListOptions contains the optional parameters for the P2SVpnGateways.List method.
10995type P2SVpnGatewaysListOptions struct {
10996	// placeholder for future optional parameters
10997}
10998
10999// Vpn Client Parameters for package generation.
11000type P2SVpnProfileParameters struct {
11001	// VPN client authentication method.
11002	AuthenticationMethod *AuthenticationMethod `json:"authenticationMethod,omitempty"`
11003}
11004
11005// Parameters that define the create packet capture operation.
11006type PacketCapture struct {
11007	// Properties of the packet capture.
11008	Properties *PacketCaptureParameters `json:"properties,omitempty"`
11009}
11010
11011// Filter that is applied to packet capture request. Multiple filters can be applied.
11012type PacketCaptureFilter struct {
11013	// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple
11014	// entries. Multiple ranges not currently
11015	// supported. Mixing ranges with multiple entries not currently supported. Default = null.
11016	LocalIPAddress *string `json:"localIPAddress,omitempty"`
11017
11018	// Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported.
11019	// Mixing ranges with multiple entries not
11020	// currently supported. Default = null.
11021	LocalPort *string `json:"localPort,omitempty"`
11022
11023	// Protocol to be filtered on.
11024	Protocol *PcProtocol `json:"protocol,omitempty"`
11025
11026	// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple
11027	// entries. Multiple ranges not currently
11028	// supported. Mixing ranges with multiple entries not currently supported. Default = null.
11029	RemoteIPAddress *string `json:"remoteIPAddress,omitempty"`
11030
11031	// Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently
11032	// supported. Mixing ranges with multiple entries not
11033	// currently supported. Default = null.
11034	RemotePort *string `json:"remotePort,omitempty"`
11035}
11036
11037// List of packet capture sessions.
11038type PacketCaptureListResult struct {
11039	// Information about packet capture sessions.
11040	Value *[]PacketCaptureResult `json:"value,omitempty"`
11041}
11042
11043// PacketCaptureListResultResponse is the response envelope for operations that return a PacketCaptureListResult type.
11044type PacketCaptureListResultResponse struct {
11045	// List of packet capture sessions.
11046	PacketCaptureListResult *PacketCaptureListResult
11047
11048	// RawResponse contains the underlying HTTP response.
11049	RawResponse *http.Response
11050}
11051
11052// Parameters that define the create packet capture operation.
11053type PacketCaptureParameters struct {
11054	// Number of bytes captured per packet, the remaining bytes are truncated.
11055	BytesToCapturePerPacket *int64 `json:"bytesToCapturePerPacket,omitempty"`
11056
11057	// A list of packet capture filters.
11058	Filters *[]PacketCaptureFilter `json:"filters,omitempty"`
11059
11060	// The storage location for a packet capture session.
11061	StorageLocation *PacketCaptureStorageLocation `json:"storageLocation,omitempty"`
11062
11063	// The ID of the targeted resource, only VM is currently supported.
11064	Target *string `json:"target,omitempty"`
11065
11066	// Maximum duration of the capture session in seconds.
11067	TimeLimitInSeconds *int32 `json:"timeLimitInSeconds,omitempty"`
11068
11069	// Maximum size of the capture output.
11070	TotalBytesPerSession *int64 `json:"totalBytesPerSession,omitempty"`
11071}
11072
11073// Status of packet capture session.
11074type PacketCaptureQueryStatusResult struct {
11075	// The start time of the packet capture session.
11076	CaptureStartTime *time.Time `json:"captureStartTime,omitempty"`
11077
11078	// The ID of the packet capture resource.
11079	ID *string `json:"id,omitempty"`
11080
11081	// The name of the packet capture resource.
11082	Name *string `json:"name,omitempty"`
11083
11084	// List of errors of packet capture session.
11085	PacketCaptureError *[]PcError `json:"packetCaptureError,omitempty"`
11086
11087	// The status of the packet capture session.
11088	PacketCaptureStatus *PcStatus `json:"packetCaptureStatus,omitempty"`
11089
11090	// The reason the current packet capture session was stopped.
11091	StopReason *string `json:"stopReason,omitempty"`
11092}
11093
11094// MarshalJSON implements the json.Marshaller interface for type PacketCaptureQueryStatusResult.
11095func (p PacketCaptureQueryStatusResult) MarshalJSON() ([]byte, error) {
11096	objectMap := make(map[string]interface{})
11097	if p.CaptureStartTime != nil {
11098		objectMap["captureStartTime"] = (*timeRFC3339)(p.CaptureStartTime)
11099	}
11100	if p.ID != nil {
11101		objectMap["id"] = p.ID
11102	}
11103	if p.Name != nil {
11104		objectMap["name"] = p.Name
11105	}
11106	if p.PacketCaptureError != nil {
11107		objectMap["packetCaptureError"] = p.PacketCaptureError
11108	}
11109	if p.PacketCaptureStatus != nil {
11110		objectMap["packetCaptureStatus"] = p.PacketCaptureStatus
11111	}
11112	if p.StopReason != nil {
11113		objectMap["stopReason"] = p.StopReason
11114	}
11115	return json.Marshal(objectMap)
11116}
11117
11118// UnmarshalJSON implements the json.Unmarshaller interface for type PacketCaptureQueryStatusResult.
11119func (p *PacketCaptureQueryStatusResult) UnmarshalJSON(data []byte) error {
11120	var rawMsg map[string]*json.RawMessage
11121	if err := json.Unmarshal(data, &rawMsg); err != nil {
11122		return err
11123	}
11124	for key, val := range rawMsg {
11125		var err error
11126		switch key {
11127		case "captureStartTime":
11128			if val != nil {
11129				var aux timeRFC3339
11130				err = json.Unmarshal(*val, &aux)
11131				p.CaptureStartTime = (*time.Time)(&aux)
11132			}
11133			delete(rawMsg, key)
11134		case "id":
11135			if val != nil {
11136				err = json.Unmarshal(*val, &p.ID)
11137			}
11138			delete(rawMsg, key)
11139		case "name":
11140			if val != nil {
11141				err = json.Unmarshal(*val, &p.Name)
11142			}
11143			delete(rawMsg, key)
11144		case "packetCaptureError":
11145			if val != nil {
11146				err = json.Unmarshal(*val, &p.PacketCaptureError)
11147			}
11148			delete(rawMsg, key)
11149		case "packetCaptureStatus":
11150			if val != nil {
11151				err = json.Unmarshal(*val, &p.PacketCaptureStatus)
11152			}
11153			delete(rawMsg, key)
11154		case "stopReason":
11155			if val != nil {
11156				err = json.Unmarshal(*val, &p.StopReason)
11157			}
11158			delete(rawMsg, key)
11159		}
11160		if err != nil {
11161			return err
11162		}
11163	}
11164	return nil
11165}
11166
11167// PacketCaptureQueryStatusResultPollerResponse is the response envelope for operations that asynchronously return a PacketCaptureQueryStatusResult type.
11168type PacketCaptureQueryStatusResultPollerResponse struct {
11169	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
11170	PollUntilDone func(ctx context.Context, frequency time.Duration) (PacketCaptureQueryStatusResultResponse, error)
11171
11172	// Poller contains an initialized poller.
11173	Poller PacketCaptureQueryStatusResultPoller
11174
11175	// RawResponse contains the underlying HTTP response.
11176	RawResponse *http.Response
11177}
11178
11179// PacketCaptureQueryStatusResultResponse is the response envelope for operations that return a PacketCaptureQueryStatusResult type.
11180type PacketCaptureQueryStatusResultResponse struct {
11181	// Status of packet capture session.
11182	PacketCaptureQueryStatusResult *PacketCaptureQueryStatusResult
11183
11184	// RawResponse contains the underlying HTTP response.
11185	RawResponse *http.Response
11186}
11187
11188// Information about packet capture session.
11189type PacketCaptureResult struct {
11190	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11191	Etag *string `json:"etag,omitempty" azure:"ro"`
11192
11193	// READ-ONLY; ID of the packet capture operation.
11194	ID *string `json:"id,omitempty" azure:"ro"`
11195
11196	// READ-ONLY; Name of the packet capture session.
11197	Name *string `json:"name,omitempty" azure:"ro"`
11198
11199	// Properties of the packet capture result.
11200	Properties *PacketCaptureResultProperties `json:"properties,omitempty"`
11201}
11202
11203// PacketCaptureResultPollerResponse is the response envelope for operations that asynchronously return a PacketCaptureResult type.
11204type PacketCaptureResultPollerResponse struct {
11205	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
11206	PollUntilDone func(ctx context.Context, frequency time.Duration) (PacketCaptureResultResponse, error)
11207
11208	// Poller contains an initialized poller.
11209	Poller PacketCaptureResultPoller
11210
11211	// RawResponse contains the underlying HTTP response.
11212	RawResponse *http.Response
11213}
11214
11215// The properties of a packet capture session.
11216type PacketCaptureResultProperties struct {
11217	PacketCaptureParameters
11218	// READ-ONLY; The provisioning state of the packet capture session.
11219	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11220}
11221
11222// PacketCaptureResultResponse is the response envelope for operations that return a PacketCaptureResult type.
11223type PacketCaptureResultResponse struct {
11224	// Information about packet capture session.
11225	PacketCaptureResult *PacketCaptureResult
11226
11227	// RawResponse contains the underlying HTTP response.
11228	RawResponse *http.Response
11229}
11230
11231// The storage location for a packet capture session.
11232type PacketCaptureStorageLocation struct {
11233	// A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures.
11234	// Required if no storage ID is provided, otherwise
11235	// optional.
11236	FilePath *string `json:"filePath,omitempty"`
11237
11238	// The ID of the storage account to save the packet capture session. Required if no local file path is provided.
11239	StorageID *string `json:"storageId,omitempty"`
11240
11241	// The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture.
11242	StoragePath *string `json:"storagePath,omitempty"`
11243}
11244
11245// PacketCapturesBeginCreateOptions contains the optional parameters for the PacketCaptures.BeginCreate method.
11246type PacketCapturesBeginCreateOptions struct {
11247	// placeholder for future optional parameters
11248}
11249
11250// PacketCapturesBeginDeleteOptions contains the optional parameters for the PacketCaptures.BeginDelete method.
11251type PacketCapturesBeginDeleteOptions struct {
11252	// placeholder for future optional parameters
11253}
11254
11255// PacketCapturesBeginGetStatusOptions contains the optional parameters for the PacketCaptures.BeginGetStatus method.
11256type PacketCapturesBeginGetStatusOptions struct {
11257	// placeholder for future optional parameters
11258}
11259
11260// PacketCapturesBeginStopOptions contains the optional parameters for the PacketCaptures.BeginStop method.
11261type PacketCapturesBeginStopOptions struct {
11262	// placeholder for future optional parameters
11263}
11264
11265// PacketCapturesGetOptions contains the optional parameters for the PacketCaptures.Get method.
11266type PacketCapturesGetOptions struct {
11267	// placeholder for future optional parameters
11268}
11269
11270// PacketCapturesListOptions contains the optional parameters for the PacketCaptures.List method.
11271type PacketCapturesListOptions struct {
11272	// placeholder for future optional parameters
11273}
11274
11275// Route Filter Resource.
11276type PatchRouteFilter struct {
11277	SubResource
11278	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11279	Etag *string `json:"etag,omitempty" azure:"ro"`
11280
11281	// READ-ONLY; The name of the resource that is unique within a resource group. This name can be used to access the resource.
11282	Name *string `json:"name,omitempty" azure:"ro"`
11283
11284	// Properties of the route filter.
11285	Properties *RouteFilterPropertiesFormat `json:"properties,omitempty"`
11286
11287	// Resource tags.
11288	Tags *map[string]string `json:"tags,omitempty"`
11289
11290	// READ-ONLY; Resource type.
11291	Type *string `json:"type,omitempty" azure:"ro"`
11292}
11293
11294// Route Filter Rule Resource.
11295type PatchRouteFilterRule struct {
11296	SubResource
11297	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11298	Etag *string `json:"etag,omitempty" azure:"ro"`
11299
11300	// READ-ONLY; The name of the resource that is unique within a resource group. This name can be used to access the resource.
11301	Name *string `json:"name,omitempty" azure:"ro"`
11302
11303	// Properties of the route filter rule.
11304	Properties *RouteFilterRulePropertiesFormat `json:"properties,omitempty"`
11305}
11306
11307// Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource.
11308type PeerExpressRouteCircuitConnection struct {
11309	SubResource
11310	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11311	Etag *string `json:"etag,omitempty" azure:"ro"`
11312
11313	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
11314	Name *string `json:"name,omitempty"`
11315
11316	// Properties of the peer express route circuit connection.
11317	Properties *PeerExpressRouteCircuitConnectionPropertiesFormat `json:"properties,omitempty"`
11318
11319	// READ-ONLY; Type of the resource.
11320	Type *string `json:"type,omitempty" azure:"ro"`
11321}
11322
11323// Response for ListPeeredConnections API service call retrieves all global reach peer circuit connections that belongs to a Private Peering for an ExpressRouteCircuit.
11324type PeerExpressRouteCircuitConnectionListResult struct {
11325	// The URL to get the next set of results.
11326	NextLink *string `json:"nextLink,omitempty"`
11327
11328	// The global reach peer circuit connection associated with Private Peering in an ExpressRoute Circuit.
11329	Value *[]PeerExpressRouteCircuitConnection `json:"value,omitempty"`
11330}
11331
11332// PeerExpressRouteCircuitConnectionListResultResponse is the response envelope for operations that return a PeerExpressRouteCircuitConnectionListResult
11333// type.
11334type PeerExpressRouteCircuitConnectionListResultResponse struct {
11335	// Response for ListPeeredConnections API service call retrieves all global reach peer circuit connections that belongs to a Private Peering for an ExpressRouteCircuit.
11336	PeerExpressRouteCircuitConnectionListResult *PeerExpressRouteCircuitConnectionListResult
11337
11338	// RawResponse contains the underlying HTTP response.
11339	RawResponse *http.Response
11340}
11341
11342// Properties of the peer express route circuit connection.
11343type PeerExpressRouteCircuitConnectionPropertiesFormat struct {
11344	// /29 IP address space to carve out Customer addresses for tunnels.
11345	AddressPrefix *string `json:"addressPrefix,omitempty"`
11346
11347	// The resource guid of the authorization used for the express route circuit connection.
11348	AuthResourceGUID *string `json:"authResourceGuid,omitempty"`
11349
11350	// READ-ONLY; Express Route Circuit connection state.
11351	CircuitConnectionStatus *CircuitConnectionStatus `json:"circuitConnectionStatus,omitempty" azure:"ro"`
11352
11353	// The name of the express route circuit connection resource.
11354	ConnectionName *string `json:"connectionName,omitempty"`
11355
11356	// Reference to Express Route Circuit Private Peering Resource of the circuit.
11357	ExpressRouteCircuitPeering *SubResource `json:"expressRouteCircuitPeering,omitempty"`
11358
11359	// Reference to Express Route Circuit Private Peering Resource of the peered circuit.
11360	PeerExpressRouteCircuitPeering *SubResource `json:"peerExpressRouteCircuitPeering,omitempty"`
11361
11362	// READ-ONLY; The provisioning state of the peer express route circuit connection resource.
11363	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11364}
11365
11366// PeerExpressRouteCircuitConnectionResponse is the response envelope for operations that return a PeerExpressRouteCircuitConnection type.
11367type PeerExpressRouteCircuitConnectionResponse struct {
11368	// Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource.
11369	PeerExpressRouteCircuitConnection *PeerExpressRouteCircuitConnection
11370
11371	// RawResponse contains the underlying HTTP response.
11372	RawResponse *http.Response
11373}
11374
11375// PeerExpressRouteCircuitConnectionsGetOptions contains the optional parameters for the PeerExpressRouteCircuitConnections.Get method.
11376type PeerExpressRouteCircuitConnectionsGetOptions struct {
11377	// placeholder for future optional parameters
11378}
11379
11380// PeerExpressRouteCircuitConnectionsListOptions contains the optional parameters for the PeerExpressRouteCircuitConnections.List method.
11381type PeerExpressRouteCircuitConnectionsListOptions struct {
11382	// placeholder for future optional parameters
11383}
11384
11385// Peer routing details.
11386type PeerRoute struct {
11387	// READ-ONLY; The route's AS path sequence.
11388	AsPath *string `json:"asPath,omitempty" azure:"ro"`
11389
11390	// READ-ONLY; The peer's local address.
11391	LocalAddress *string `json:"localAddress,omitempty" azure:"ro"`
11392
11393	// READ-ONLY; The route's network prefix.
11394	Network *string `json:"network,omitempty" azure:"ro"`
11395
11396	// READ-ONLY; The route's next hop.
11397	NextHop *string `json:"nextHop,omitempty" azure:"ro"`
11398
11399	// READ-ONLY; The source this route was learned from.
11400	Origin *string `json:"origin,omitempty" azure:"ro"`
11401
11402	// READ-ONLY; The peer this route was learned from.
11403	SourcePeer *string `json:"sourcePeer,omitempty" azure:"ro"`
11404
11405	// READ-ONLY; The route's weight.
11406	Weight *int32 `json:"weight,omitempty" azure:"ro"`
11407}
11408
11409// List of virtual router peer routes.
11410type PeerRouteList struct {
11411	// List of peer routes.
11412	Value *[]PeerRoute `json:"value,omitempty"`
11413}
11414
11415// PeerRouteListPollerResponse is the response envelope for operations that asynchronously return a PeerRouteList type.
11416type PeerRouteListPollerResponse struct {
11417	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
11418	PollUntilDone func(ctx context.Context, frequency time.Duration) (PeerRouteListResponse, error)
11419
11420	// Poller contains an initialized poller.
11421	Poller PeerRouteListPoller
11422
11423	// RawResponse contains the underlying HTTP response.
11424	RawResponse *http.Response
11425}
11426
11427// PeerRouteListResponse is the response envelope for operations that return a PeerRouteList type.
11428type PeerRouteListResponse struct {
11429	// List of virtual router peer routes.
11430	PeerRouteList *PeerRouteList
11431
11432	// RawResponse contains the underlying HTTP response.
11433	RawResponse *http.Response
11434}
11435
11436// Defines contents of a web application firewall global configuration.
11437type PolicySettings struct {
11438	// Maximum file upload size in Mb for WAF.
11439	FileUploadLimitInMb *int32 `json:"fileUploadLimitInMb,omitempty"`
11440
11441	// Maximum request body size in Kb for WAF.
11442	MaxRequestBodySizeInKb *int32 `json:"maxRequestBodySizeInKb,omitempty"`
11443
11444	// The mode of the policy.
11445	Mode *WebApplicationFirewallMode `json:"mode,omitempty"`
11446
11447	// Whether to allow WAF to check request Body.
11448	RequestBodyCheck *bool `json:"requestBodyCheck,omitempty"`
11449
11450	// The state of the policy.
11451	State *WebApplicationFirewallEnabledState `json:"state,omitempty"`
11452}
11453
11454// Details of PrepareNetworkPolicies for Subnet.
11455type PrepareNetworkPoliciesRequest struct {
11456	// A list of NetworkIntentPolicyConfiguration.
11457	NetworkIntentPolicyConfigurations *[]NetworkIntentPolicyConfiguration `json:"networkIntentPolicyConfigurations,omitempty"`
11458
11459	// The name of the service for which subnet is being prepared for.
11460	ServiceName *string `json:"serviceName,omitempty"`
11461}
11462
11463// PrivateDnsZoneConfig resource.
11464type PrivateDNSZoneConfig struct {
11465	// Name of the resource that is unique within a resource group. This name can be used to access the resource.
11466	Name *string `json:"name,omitempty"`
11467
11468	// Properties of the private dns zone configuration.
11469	Properties *PrivateDNSZonePropertiesFormat `json:"properties,omitempty"`
11470}
11471
11472// Private dns zone group resource.
11473type PrivateDNSZoneGroup struct {
11474	SubResource
11475	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11476	Etag *string `json:"etag,omitempty" azure:"ro"`
11477
11478	// Name of the resource that is unique within a resource group. This name can be used to access the resource.
11479	Name *string `json:"name,omitempty"`
11480
11481	// Properties of the private dns zone group.
11482	Properties *PrivateDNSZoneGroupPropertiesFormat `json:"properties,omitempty"`
11483}
11484
11485// Response for the ListPrivateDnsZoneGroups API service call.
11486type PrivateDNSZoneGroupListResult struct {
11487	// READ-ONLY; The URL to get the next set of results.
11488	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
11489
11490	// A list of private dns zone group resources in a private endpoint.
11491	Value *[]PrivateDNSZoneGroup `json:"value,omitempty"`
11492}
11493
11494// PrivateDNSZoneGroupListResultResponse is the response envelope for operations that return a PrivateDNSZoneGroupListResult type.
11495type PrivateDNSZoneGroupListResultResponse struct {
11496	// Response for the ListPrivateDnsZoneGroups API service call.
11497	PrivateDNSZoneGroupListResult *PrivateDNSZoneGroupListResult
11498
11499	// RawResponse contains the underlying HTTP response.
11500	RawResponse *http.Response
11501}
11502
11503// PrivateDNSZoneGroupPollerResponse is the response envelope for operations that asynchronously return a PrivateDNSZoneGroup type.
11504type PrivateDNSZoneGroupPollerResponse struct {
11505	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
11506	PollUntilDone func(ctx context.Context, frequency time.Duration) (PrivateDNSZoneGroupResponse, error)
11507
11508	// Poller contains an initialized poller.
11509	Poller PrivateDNSZoneGroupPoller
11510
11511	// RawResponse contains the underlying HTTP response.
11512	RawResponse *http.Response
11513}
11514
11515// Properties of the private dns zone group.
11516type PrivateDNSZoneGroupPropertiesFormat struct {
11517	// A collection of private dns zone configurations of the private dns zone group.
11518	PrivateDNSZoneConfigs *[]PrivateDNSZoneConfig `json:"privateDnsZoneConfigs,omitempty"`
11519
11520	// READ-ONLY; The provisioning state of the private dns zone group resource.
11521	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11522}
11523
11524// PrivateDNSZoneGroupResponse is the response envelope for operations that return a PrivateDNSZoneGroup type.
11525type PrivateDNSZoneGroupResponse struct {
11526	// Private dns zone group resource.
11527	PrivateDNSZoneGroup *PrivateDNSZoneGroup
11528
11529	// RawResponse contains the underlying HTTP response.
11530	RawResponse *http.Response
11531}
11532
11533// PrivateDNSZoneGroupsBeginCreateOrUpdateOptions contains the optional parameters for the PrivateDNSZoneGroups.BeginCreateOrUpdate method.
11534type PrivateDNSZoneGroupsBeginCreateOrUpdateOptions struct {
11535	// placeholder for future optional parameters
11536}
11537
11538// PrivateDNSZoneGroupsBeginDeleteOptions contains the optional parameters for the PrivateDNSZoneGroups.BeginDelete method.
11539type PrivateDNSZoneGroupsBeginDeleteOptions struct {
11540	// placeholder for future optional parameters
11541}
11542
11543// PrivateDNSZoneGroupsGetOptions contains the optional parameters for the PrivateDNSZoneGroups.Get method.
11544type PrivateDNSZoneGroupsGetOptions struct {
11545	// placeholder for future optional parameters
11546}
11547
11548// PrivateDNSZoneGroupsListOptions contains the optional parameters for the PrivateDNSZoneGroups.List method.
11549type PrivateDNSZoneGroupsListOptions struct {
11550	// placeholder for future optional parameters
11551}
11552
11553// Properties of the private dns zone configuration resource.
11554type PrivateDNSZonePropertiesFormat struct {
11555	// The resource id of the private dns zone.
11556	PrivateDNSZoneID *string `json:"privateDnsZoneId,omitempty"`
11557
11558	// READ-ONLY; A collection of information regarding a recordSet, holding information to identify private resources.
11559	RecordSets *[]RecordSet `json:"recordSets,omitempty" azure:"ro"`
11560}
11561
11562// Private endpoint resource.
11563type PrivateEndpoint struct {
11564	Resource
11565	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11566	Etag *string `json:"etag,omitempty" azure:"ro"`
11567
11568	// Properties of the private endpoint.
11569	Properties *PrivateEndpointProperties `json:"properties,omitempty"`
11570}
11571
11572// PrivateEndpointConnection resource.
11573type PrivateEndpointConnection struct {
11574	SubResource
11575	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11576	Etag *string `json:"etag,omitempty" azure:"ro"`
11577
11578	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
11579	Name *string `json:"name,omitempty"`
11580
11581	// Properties of the private end point connection.
11582	Properties *PrivateEndpointConnectionProperties `json:"properties,omitempty"`
11583
11584	// READ-ONLY; The resource type.
11585	Type *string `json:"type,omitempty" azure:"ro"`
11586}
11587
11588// Response for the ListPrivateEndpointConnection API service call.
11589type PrivateEndpointConnectionListResult struct {
11590	// READ-ONLY; The URL to get the next set of results.
11591	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
11592
11593	// A list of PrivateEndpointConnection resources for a specific private link service.
11594	Value *[]PrivateEndpointConnection `json:"value,omitempty"`
11595}
11596
11597// PrivateEndpointConnectionListResultResponse is the response envelope for operations that return a PrivateEndpointConnectionListResult type.
11598type PrivateEndpointConnectionListResultResponse struct {
11599	// Response for the ListPrivateEndpointConnection API service call.
11600	PrivateEndpointConnectionListResult *PrivateEndpointConnectionListResult
11601
11602	// RawResponse contains the underlying HTTP response.
11603	RawResponse *http.Response
11604}
11605
11606// Properties of the PrivateEndpointConnectProperties.
11607type PrivateEndpointConnectionProperties struct {
11608	// READ-ONLY; The consumer link id.
11609	LinkIDentifier *string `json:"linkIdentifier,omitempty" azure:"ro"`
11610
11611	// READ-ONLY; The resource of private end point.
11612	PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty" azure:"ro"`
11613
11614	// A collection of information about the state of the connection between service consumer and provider.
11615	PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"`
11616
11617	// READ-ONLY; The provisioning state of the private endpoint connection resource.
11618	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11619}
11620
11621// PrivateEndpointConnectionResponse is the response envelope for operations that return a PrivateEndpointConnection type.
11622type PrivateEndpointConnectionResponse struct {
11623	// PrivateEndpointConnection resource.
11624	PrivateEndpointConnection *PrivateEndpointConnection
11625
11626	// RawResponse contains the underlying HTTP response.
11627	RawResponse *http.Response
11628}
11629
11630// Response for the ListPrivateEndpoints API service call.
11631type PrivateEndpointListResult struct {
11632	// READ-ONLY; The URL to get the next set of results.
11633	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
11634
11635	// A list of private endpoint resources in a resource group.
11636	Value *[]PrivateEndpoint `json:"value,omitempty"`
11637}
11638
11639// PrivateEndpointListResultResponse is the response envelope for operations that return a PrivateEndpointListResult type.
11640type PrivateEndpointListResultResponse struct {
11641	// Response for the ListPrivateEndpoints API service call.
11642	PrivateEndpointListResult *PrivateEndpointListResult
11643
11644	// RawResponse contains the underlying HTTP response.
11645	RawResponse *http.Response
11646}
11647
11648// PrivateEndpointPollerResponse is the response envelope for operations that asynchronously return a PrivateEndpoint type.
11649type PrivateEndpointPollerResponse struct {
11650	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
11651	PollUntilDone func(ctx context.Context, frequency time.Duration) (PrivateEndpointResponse, error)
11652
11653	// Poller contains an initialized poller.
11654	Poller PrivateEndpointPoller
11655
11656	// RawResponse contains the underlying HTTP response.
11657	RawResponse *http.Response
11658}
11659
11660// Properties of the private endpoint.
11661type PrivateEndpointProperties struct {
11662	// An array of custom dns configurations.
11663	CustomDNSConfigs *[]CustomDNSConfigPropertiesFormat `json:"customDnsConfigs,omitempty"`
11664
11665	// A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the
11666	// remote resource.
11667	ManualPrivateLinkServiceConnections *[]PrivateLinkServiceConnection `json:"manualPrivateLinkServiceConnections,omitempty"`
11668
11669	// READ-ONLY; An array of references to the network interfaces created for this private endpoint.
11670	NetworkInterfaces *[]NetworkInterface `json:"networkInterfaces,omitempty" azure:"ro"`
11671
11672	// A grouping of information about the connection to the remote resource.
11673	PrivateLinkServiceConnections *[]PrivateLinkServiceConnection `json:"privateLinkServiceConnections,omitempty"`
11674
11675	// READ-ONLY; The provisioning state of the private endpoint resource.
11676	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11677
11678	// The ID of the subnet from which the private IP will be allocated.
11679	Subnet *Subnet `json:"subnet,omitempty"`
11680}
11681
11682// PrivateEndpointResponse is the response envelope for operations that return a PrivateEndpoint type.
11683type PrivateEndpointResponse struct {
11684	// Private endpoint resource.
11685	PrivateEndpoint *PrivateEndpoint
11686
11687	// RawResponse contains the underlying HTTP response.
11688	RawResponse *http.Response
11689}
11690
11691// PrivateEndpointsBeginCreateOrUpdateOptions contains the optional parameters for the PrivateEndpoints.BeginCreateOrUpdate method.
11692type PrivateEndpointsBeginCreateOrUpdateOptions struct {
11693	// placeholder for future optional parameters
11694}
11695
11696// PrivateEndpointsBeginDeleteOptions contains the optional parameters for the PrivateEndpoints.BeginDelete method.
11697type PrivateEndpointsBeginDeleteOptions struct {
11698	// placeholder for future optional parameters
11699}
11700
11701// PrivateEndpointsGetOptions contains the optional parameters for the PrivateEndpoints.Get method.
11702type PrivateEndpointsGetOptions struct {
11703	// Expands referenced resources.
11704	Expand *string
11705}
11706
11707// PrivateEndpointsListBySubscriptionOptions contains the optional parameters for the PrivateEndpoints.ListBySubscription method.
11708type PrivateEndpointsListBySubscriptionOptions struct {
11709	// placeholder for future optional parameters
11710}
11711
11712// PrivateEndpointsListOptions contains the optional parameters for the PrivateEndpoints.List method.
11713type PrivateEndpointsListOptions struct {
11714	// placeholder for future optional parameters
11715}
11716
11717// Private link service resource.
11718type PrivateLinkService struct {
11719	Resource
11720	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11721	Etag *string `json:"etag,omitempty" azure:"ro"`
11722
11723	// Properties of the private link service.
11724	Properties *PrivateLinkServiceProperties `json:"properties,omitempty"`
11725}
11726
11727// PrivateLinkServiceConnection resource.
11728type PrivateLinkServiceConnection struct {
11729	SubResource
11730	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11731	Etag *string `json:"etag,omitempty" azure:"ro"`
11732
11733	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
11734	Name *string `json:"name,omitempty"`
11735
11736	// Properties of the private link service connection.
11737	Properties *PrivateLinkServiceConnectionProperties `json:"properties,omitempty"`
11738
11739	// READ-ONLY; The resource type.
11740	Type *string `json:"type,omitempty" azure:"ro"`
11741}
11742
11743// Properties of the PrivateLinkServiceConnection.
11744type PrivateLinkServiceConnectionProperties struct {
11745	// The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to.
11746	GroupIDs *[]string `json:"groupIds,omitempty"`
11747
11748	// A collection of read-only information about the state of the connection to the remote resource.
11749	PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"`
11750
11751	// The resource id of private link service.
11752	PrivateLinkServiceID *string `json:"privateLinkServiceId,omitempty"`
11753
11754	// READ-ONLY; The provisioning state of the private link service connection resource.
11755	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11756
11757	// A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars.
11758	RequestMessage *string `json:"requestMessage,omitempty"`
11759}
11760
11761// A collection of information about the state of the connection between service consumer and provider.
11762type PrivateLinkServiceConnectionState struct {
11763	// A message indicating if changes on the service provider require any updates on the consumer.
11764	ActionsRequired *string `json:"actionsRequired,omitempty"`
11765
11766	// The reason for approval/rejection of the connection.
11767	Description *string `json:"description,omitempty"`
11768
11769	// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.
11770	Status *string `json:"status,omitempty"`
11771}
11772
11773// The private link service ip configuration.
11774type PrivateLinkServiceIPConfiguration struct {
11775	SubResource
11776	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11777	Etag *string `json:"etag,omitempty" azure:"ro"`
11778
11779	// The name of private link service ip configuration.
11780	Name *string `json:"name,omitempty"`
11781
11782	// Properties of the private link service ip configuration.
11783	Properties *PrivateLinkServiceIPConfigurationProperties `json:"properties,omitempty"`
11784
11785	// READ-ONLY; The resource type.
11786	Type *string `json:"type,omitempty" azure:"ro"`
11787}
11788
11789// Properties of private link service IP configuration.
11790type PrivateLinkServiceIPConfigurationProperties struct {
11791	// Whether the ip configuration is primary or not.
11792	Primary *bool `json:"primary,omitempty"`
11793
11794	// The private IP address of the IP configuration.
11795	PrivateIPAddress *string `json:"privateIPAddress,omitempty"`
11796
11797	// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4.
11798	PrivateIPAddressVersion *IPVersion `json:"privateIPAddressVersion,omitempty"`
11799
11800	// The private IP address allocation method.
11801	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
11802
11803	// READ-ONLY; The provisioning state of the private link service IP configuration resource.
11804	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11805
11806	// The reference to the subnet resource.
11807	Subnet *Subnet `json:"subnet,omitempty"`
11808}
11809
11810// Response for the ListPrivateLinkService API service call.
11811type PrivateLinkServiceListResult struct {
11812	// READ-ONLY; The URL to get the next set of results.
11813	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
11814
11815	// A list of PrivateLinkService resources in a resource group.
11816	Value *[]PrivateLinkService `json:"value,omitempty"`
11817}
11818
11819// PrivateLinkServiceListResultResponse is the response envelope for operations that return a PrivateLinkServiceListResult type.
11820type PrivateLinkServiceListResultResponse struct {
11821	// Response for the ListPrivateLinkService API service call.
11822	PrivateLinkServiceListResult *PrivateLinkServiceListResult
11823
11824	// RawResponse contains the underlying HTTP response.
11825	RawResponse *http.Response
11826}
11827
11828// PrivateLinkServicePollerResponse is the response envelope for operations that asynchronously return a PrivateLinkService type.
11829type PrivateLinkServicePollerResponse struct {
11830	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
11831	PollUntilDone func(ctx context.Context, frequency time.Duration) (PrivateLinkServiceResponse, error)
11832
11833	// Poller contains an initialized poller.
11834	Poller PrivateLinkServicePoller
11835
11836	// RawResponse contains the underlying HTTP response.
11837	RawResponse *http.Response
11838}
11839
11840// Properties of the private link service.
11841type PrivateLinkServiceProperties struct {
11842	// READ-ONLY; The alias of the private link service.
11843	Alias *string `json:"alias,omitempty" azure:"ro"`
11844
11845	// The auto-approval list of the private link service.
11846	AutoApproval *ResourceSet `json:"autoApproval,omitempty"`
11847
11848	// Whether the private link service is enabled for proxy protocol or not.
11849	EnableProxyProtocol *bool `json:"enableProxyProtocol,omitempty"`
11850
11851	// The list of Fqdn.
11852	Fqdns *[]string `json:"fqdns,omitempty"`
11853
11854	// An array of private link service IP configurations.
11855	IPConfigurations *[]PrivateLinkServiceIPConfiguration `json:"ipConfigurations,omitempty"`
11856
11857	// An array of references to the load balancer IP configurations.
11858	LoadBalancerFrontendIPConfigurations *[]FrontendIPConfiguration `json:"loadBalancerFrontendIpConfigurations,omitempty"`
11859
11860	// READ-ONLY; An array of references to the network interfaces created for this private link service.
11861	NetworkInterfaces *[]NetworkInterface `json:"networkInterfaces,omitempty" azure:"ro"`
11862
11863	// READ-ONLY; An array of list about connections to the private endpoint.
11864	PrivateEndpointConnections *[]PrivateEndpointConnection `json:"privateEndpointConnections,omitempty" azure:"ro"`
11865
11866	// READ-ONLY; The provisioning state of the private link service resource.
11867	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
11868
11869	// The visibility list of the private link service.
11870	Visibility *ResourceSet `json:"visibility,omitempty"`
11871}
11872
11873// The auto-approval list of the private link service.
11874type PrivateLinkServicePropertiesAutoApproval struct {
11875	ResourceSet
11876}
11877
11878// The visibility list of the private link service.
11879type PrivateLinkServicePropertiesVisibility struct {
11880	ResourceSet
11881}
11882
11883// PrivateLinkServiceResponse is the response envelope for operations that return a PrivateLinkService type.
11884type PrivateLinkServiceResponse struct {
11885	// Private link service resource.
11886	PrivateLinkService *PrivateLinkService
11887
11888	// RawResponse contains the underlying HTTP response.
11889	RawResponse *http.Response
11890}
11891
11892// Response for the CheckPrivateLinkServiceVisibility API service call.
11893type PrivateLinkServiceVisibility struct {
11894	// Private Link Service Visibility (True/False).
11895	Visible *bool `json:"visible,omitempty"`
11896}
11897
11898// PrivateLinkServiceVisibilityPollerResponse is the response envelope for operations that asynchronously return a PrivateLinkServiceVisibility type.
11899type PrivateLinkServiceVisibilityPollerResponse struct {
11900	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
11901	PollUntilDone func(ctx context.Context, frequency time.Duration) (PrivateLinkServiceVisibilityResponse, error)
11902
11903	// Poller contains an initialized poller.
11904	Poller PrivateLinkServiceVisibilityPoller
11905
11906	// RawResponse contains the underlying HTTP response.
11907	RawResponse *http.Response
11908}
11909
11910// PrivateLinkServiceVisibilityResponse is the response envelope for operations that return a PrivateLinkServiceVisibility type.
11911type PrivateLinkServiceVisibilityResponse struct {
11912	// Response for the CheckPrivateLinkServiceVisibility API service call.
11913	PrivateLinkServiceVisibility *PrivateLinkServiceVisibility
11914
11915	// RawResponse contains the underlying HTTP response.
11916	RawResponse *http.Response
11917}
11918
11919// PrivateLinkServicesBeginCheckPrivateLinkServiceVisibilityByResourceGroupOptions contains the optional parameters for the PrivateLinkServices.BeginCheckPrivateLinkServiceVisibilityByResourceGroup
11920// method.
11921type PrivateLinkServicesBeginCheckPrivateLinkServiceVisibilityByResourceGroupOptions struct {
11922	// placeholder for future optional parameters
11923}
11924
11925// PrivateLinkServicesBeginCheckPrivateLinkServiceVisibilityOptions contains the optional parameters for the PrivateLinkServices.BeginCheckPrivateLinkServiceVisibility
11926// method.
11927type PrivateLinkServicesBeginCheckPrivateLinkServiceVisibilityOptions struct {
11928	// placeholder for future optional parameters
11929}
11930
11931// PrivateLinkServicesBeginCreateOrUpdateOptions contains the optional parameters for the PrivateLinkServices.BeginCreateOrUpdate method.
11932type PrivateLinkServicesBeginCreateOrUpdateOptions struct {
11933	// placeholder for future optional parameters
11934}
11935
11936// PrivateLinkServicesBeginDeleteOptions contains the optional parameters for the PrivateLinkServices.BeginDelete method.
11937type PrivateLinkServicesBeginDeleteOptions struct {
11938	// placeholder for future optional parameters
11939}
11940
11941// PrivateLinkServicesBeginDeletePrivateEndpointConnectionOptions contains the optional parameters for the PrivateLinkServices.BeginDeletePrivateEndpointConnection
11942// method.
11943type PrivateLinkServicesBeginDeletePrivateEndpointConnectionOptions struct {
11944	// placeholder for future optional parameters
11945}
11946
11947// PrivateLinkServicesGetOptions contains the optional parameters for the PrivateLinkServices.Get method.
11948type PrivateLinkServicesGetOptions struct {
11949	// Expands referenced resources.
11950	Expand *string
11951}
11952
11953// PrivateLinkServicesGetPrivateEndpointConnectionOptions contains the optional parameters for the PrivateLinkServices.GetPrivateEndpointConnection method.
11954type PrivateLinkServicesGetPrivateEndpointConnectionOptions struct {
11955	// Expands referenced resources.
11956	Expand *string
11957}
11958
11959// PrivateLinkServicesListAutoApprovedPrivateLinkServicesByResourceGroupOptions contains the optional parameters for the PrivateLinkServices.ListAutoApprovedPrivateLinkServicesByResourceGroup
11960// method.
11961type PrivateLinkServicesListAutoApprovedPrivateLinkServicesByResourceGroupOptions struct {
11962	// placeholder for future optional parameters
11963}
11964
11965// PrivateLinkServicesListAutoApprovedPrivateLinkServicesOptions contains the optional parameters for the PrivateLinkServices.ListAutoApprovedPrivateLinkServices
11966// method.
11967type PrivateLinkServicesListAutoApprovedPrivateLinkServicesOptions struct {
11968	// placeholder for future optional parameters
11969}
11970
11971// PrivateLinkServicesListBySubscriptionOptions contains the optional parameters for the PrivateLinkServices.ListBySubscription method.
11972type PrivateLinkServicesListBySubscriptionOptions struct {
11973	// placeholder for future optional parameters
11974}
11975
11976// PrivateLinkServicesListOptions contains the optional parameters for the PrivateLinkServices.List method.
11977type PrivateLinkServicesListOptions struct {
11978	// placeholder for future optional parameters
11979}
11980
11981// PrivateLinkServicesListPrivateEndpointConnectionsOptions contains the optional parameters for the PrivateLinkServices.ListPrivateEndpointConnections
11982// method.
11983type PrivateLinkServicesListPrivateEndpointConnectionsOptions struct {
11984	// placeholder for future optional parameters
11985}
11986
11987// PrivateLinkServicesUpdatePrivateEndpointConnectionOptions contains the optional parameters for the PrivateLinkServices.UpdatePrivateEndpointConnection
11988// method.
11989type PrivateLinkServicesUpdatePrivateEndpointConnectionOptions struct {
11990	// placeholder for future optional parameters
11991}
11992
11993// A load balancer probe.
11994type Probe struct {
11995	SubResource
11996	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
11997	Etag *string `json:"etag,omitempty" azure:"ro"`
11998
11999	// The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource.
12000	Name *string `json:"name,omitempty"`
12001
12002	// Properties of load balancer probe.
12003	Properties *ProbePropertiesFormat `json:"properties,omitempty"`
12004
12005	// READ-ONLY; Type of the resource.
12006	Type *string `json:"type,omitempty" azure:"ro"`
12007}
12008
12009// Load balancer probe resource.
12010type ProbePropertiesFormat struct {
12011	// The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated
12012	// timeout period (in seconds) which allows two full
12013	// probes before taking the instance out of rotation. The default value is 15, the minimum value is 5.
12014	IntervalInSeconds *int32 `json:"intervalInSeconds,omitempty"`
12015
12016	// READ-ONLY; The load balancer rules that use this probe.
12017	LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty" azure:"ro"`
12018
12019	// The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints
12020	// to be taken out of rotation faster or slower than
12021	// the typical times used in Azure.
12022	NumberOfProbes *int32 `json:"numberOfProbes,omitempty"`
12023
12024	// The port for communicating the probe. Possible values range from 1 to 65535, inclusive.
12025	Port *int32 `json:"port,omitempty"`
12026
12027	// The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a
12028	// 200 OK response from the specifies URI is required
12029	// for the probe to be successful.
12030	Protocol *ProbeProtocol `json:"protocol,omitempty"`
12031
12032	// READ-ONLY; The provisioning state of the probe resource.
12033	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12034
12035	// The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default
12036	// value.
12037	RequestPath *string `json:"requestPath,omitempty"`
12038}
12039
12040// ProbeResponse is the response envelope for operations that return a Probe type.
12041type ProbeResponse struct {
12042	// A load balancer probe.
12043	Probe *Probe
12044
12045	// RawResponse contains the underlying HTTP response.
12046	RawResponse *http.Response
12047}
12048
12049// The list of RouteTables to advertise the routes to.
12050type PropagatedRouteTable struct {
12051	// The list of resource ids of all the RouteTables.
12052	IDs *[]SubResource `json:"ids,omitempty"`
12053
12054	// The list of labels.
12055	Labels *[]string `json:"labels,omitempty"`
12056}
12057
12058// Configuration of the protocol.
12059type ProtocolConfiguration struct {
12060	// HTTP configuration of the connectivity check.
12061	HTTPConfiguration *HTTPConfiguration `json:"HTTPConfiguration,omitempty"`
12062}
12063
12064// DDoS custom policy properties.
12065type ProtocolCustomSettingsFormat struct {
12066	// The protocol for which the DDoS protection policy is being customized.
12067	Protocol *DdosCustomPolicyProtocol `json:"protocol,omitempty"`
12068
12069	// The customized DDoS protection source rate.
12070	SourceRateOverride *string `json:"sourceRateOverride,omitempty"`
12071
12072	// The customized DDoS protection trigger rate.
12073	TriggerRateOverride *string `json:"triggerRateOverride,omitempty"`
12074
12075	// The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger
12076	// rate set with moderate sensitivity w.r.t. normal
12077	// traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic.
12078	TriggerSensitivityOverride *DdosCustomPolicyTriggerSensitivityOverride `json:"triggerSensitivityOverride,omitempty"`
12079}
12080
12081// Public IP address resource.
12082type PublicIPAddress struct {
12083	Resource
12084	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12085	Etag *string `json:"etag,omitempty" azure:"ro"`
12086
12087	// The extended location of the public ip address.
12088	ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"`
12089
12090	// Public IP address properties.
12091	Properties *PublicIPAddressPropertiesFormat `json:"properties,omitempty"`
12092
12093	// The public IP address SKU.
12094	SKU *PublicIPAddressSKU `json:"sku,omitempty"`
12095
12096	// A list of availability zones denoting the IP allocated for the resource needs to come from.
12097	Zones *[]string `json:"zones,omitempty"`
12098}
12099
12100// Contains FQDN of the DNS record associated with the public IP address.
12101type PublicIPAddressDNSSettings struct {
12102	// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with
12103	// the public IP address. If a domain name label is
12104	// specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
12105	DomainNameLabel *string `json:"domainNameLabel,omitempty"`
12106
12107	// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized
12108	// DNS zone.
12109	Fqdn *string `json:"fqdn,omitempty"`
12110
12111	// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS
12112	// record is created pointing from the IP address in
12113	// the in-addr.arpa domain to the reverse FQDN.
12114	ReverseFqdn *string `json:"reverseFqdn,omitempty"`
12115}
12116
12117// Response for ListPublicIpAddresses API service call.
12118type PublicIPAddressListResult struct {
12119	// The URL to get the next set of results.
12120	NextLink *string `json:"nextLink,omitempty"`
12121
12122	// A list of public IP addresses that exists in a resource group.
12123	Value *[]PublicIPAddress `json:"value,omitempty"`
12124}
12125
12126// PublicIPAddressListResultResponse is the response envelope for operations that return a PublicIPAddressListResult type.
12127type PublicIPAddressListResultResponse struct {
12128	// Response for ListPublicIpAddresses API service call.
12129	PublicIPAddressListResult *PublicIPAddressListResult
12130
12131	// RawResponse contains the underlying HTTP response.
12132	RawResponse *http.Response
12133}
12134
12135// PublicIPAddressPollerResponse is the response envelope for operations that asynchronously return a PublicIPAddress type.
12136type PublicIPAddressPollerResponse struct {
12137	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12138	PollUntilDone func(ctx context.Context, frequency time.Duration) (PublicIPAddressResponse, error)
12139
12140	// Poller contains an initialized poller.
12141	Poller PublicIPAddressPoller
12142
12143	// RawResponse contains the underlying HTTP response.
12144	RawResponse *http.Response
12145}
12146
12147// Public IP address properties.
12148type PublicIPAddressPropertiesFormat struct {
12149	// The FQDN of the DNS record associated with the public IP address.
12150	DNSSettings *PublicIPAddressDNSSettings `json:"dnsSettings,omitempty"`
12151
12152	// The DDoS protection custom policy associated with the public IP address.
12153	DdosSettings *DdosSettings `json:"ddosSettings,omitempty"`
12154
12155	// The idle timeout of the public IP address.
12156	IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"`
12157
12158	// The IP address associated with the public IP address resource.
12159	IPAddress *string `json:"ipAddress,omitempty"`
12160
12161	// READ-ONLY; The IP configuration associated with the public IP address.
12162	IPConfiguration *IPConfiguration `json:"ipConfiguration,omitempty" azure:"ro"`
12163
12164	// The list of tags associated with the public IP address.
12165	IPTags *[]IPTag `json:"ipTags,omitempty"`
12166
12167	// READ-ONLY; The provisioning state of the public IP address resource.
12168	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12169
12170	// The public IP address version.
12171	PublicIPAddressVersion *IPVersion `json:"publicIPAddressVersion,omitempty"`
12172
12173	// The public IP address allocation method.
12174	PublicIPAllocationMethod *IPAllocationMethod `json:"publicIPAllocationMethod,omitempty"`
12175
12176	// The Public IP Prefix this Public IP Address should be allocated from.
12177	PublicIPPrefix *SubResource `json:"publicIPPrefix,omitempty"`
12178
12179	// READ-ONLY; The resource GUID property of the public IP address resource.
12180	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
12181}
12182
12183// PublicIPAddressResponse is the response envelope for operations that return a PublicIPAddress type.
12184type PublicIPAddressResponse struct {
12185	// Public IP address resource.
12186	PublicIPAddress *PublicIPAddress
12187
12188	// RawResponse contains the underlying HTTP response.
12189	RawResponse *http.Response
12190}
12191
12192// SKU of a public IP address.
12193type PublicIPAddressSKU struct {
12194	// Name of a public IP address SKU.
12195	Name *PublicIPAddressSKUName `json:"name,omitempty"`
12196
12197	// Tier of a public IP address SKU.
12198	Tier *PublicIPAddressSKUTier `json:"tier,omitempty"`
12199}
12200
12201// PublicIPAddressesBeginCreateOrUpdateOptions contains the optional parameters for the PublicIPAddresses.BeginCreateOrUpdate method.
12202type PublicIPAddressesBeginCreateOrUpdateOptions struct {
12203	// placeholder for future optional parameters
12204}
12205
12206// PublicIPAddressesBeginDeleteOptions contains the optional parameters for the PublicIPAddresses.BeginDelete method.
12207type PublicIPAddressesBeginDeleteOptions struct {
12208	// placeholder for future optional parameters
12209}
12210
12211// PublicIPAddressesGetCloudServicePublicIPAddressOptions contains the optional parameters for the PublicIPAddresses.GetCloudServicePublicIPAddress method.
12212type PublicIPAddressesGetCloudServicePublicIPAddressOptions struct {
12213	// Expands referenced resources.
12214	Expand *string
12215}
12216
12217// PublicIPAddressesGetOptions contains the optional parameters for the PublicIPAddresses.Get method.
12218type PublicIPAddressesGetOptions struct {
12219	// Expands referenced resources.
12220	Expand *string
12221}
12222
12223// PublicIPAddressesGetVirtualMachineScaleSetPublicIPAddressOptions contains the optional parameters for the PublicIPAddresses.GetVirtualMachineScaleSetPublicIPAddress
12224// method.
12225type PublicIPAddressesGetVirtualMachineScaleSetPublicIPAddressOptions struct {
12226	// Expands referenced resources.
12227	Expand *string
12228}
12229
12230// PublicIPAddressesListAllOptions contains the optional parameters for the PublicIPAddresses.ListAll method.
12231type PublicIPAddressesListAllOptions struct {
12232	// placeholder for future optional parameters
12233}
12234
12235// PublicIPAddressesListCloudServicePublicIPAddressesOptions contains the optional parameters for the PublicIPAddresses.ListCloudServicePublicIPAddresses
12236// method.
12237type PublicIPAddressesListCloudServicePublicIPAddressesOptions struct {
12238	// placeholder for future optional parameters
12239}
12240
12241// PublicIPAddressesListCloudServiceRoleInstancePublicIPAddressesOptions contains the optional parameters for the PublicIPAddresses.ListCloudServiceRoleInstancePublicIPAddresses
12242// method.
12243type PublicIPAddressesListCloudServiceRoleInstancePublicIPAddressesOptions struct {
12244	// placeholder for future optional parameters
12245}
12246
12247// PublicIPAddressesListOptions contains the optional parameters for the PublicIPAddresses.List method.
12248type PublicIPAddressesListOptions struct {
12249	// placeholder for future optional parameters
12250}
12251
12252// PublicIPAddressesListVirtualMachineScaleSetPublicIPAddressesOptions contains the optional parameters for the PublicIPAddresses.ListVirtualMachineScaleSetPublicIPAddresses
12253// method.
12254type PublicIPAddressesListVirtualMachineScaleSetPublicIPAddressesOptions struct {
12255	// placeholder for future optional parameters
12256}
12257
12258// PublicIPAddressesListVirtualMachineScaleSetVMPublicIPaddressesOptions contains the optional parameters for the PublicIPAddresses.ListVirtualMachineScaleSetVMPublicIPaddresses
12259// method.
12260type PublicIPAddressesListVirtualMachineScaleSetVMPublicIPaddressesOptions struct {
12261	// placeholder for future optional parameters
12262}
12263
12264// PublicIPAddressesUpdateTagsOptions contains the optional parameters for the PublicIPAddresses.UpdateTags method.
12265type PublicIPAddressesUpdateTagsOptions struct {
12266	// placeholder for future optional parameters
12267}
12268
12269// Public IP prefix resource.
12270type PublicIPPrefix struct {
12271	Resource
12272	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12273	Etag *string `json:"etag,omitempty" azure:"ro"`
12274
12275	// The extended location of the public ip address.
12276	ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"`
12277
12278	// Public IP prefix properties.
12279	Properties *PublicIPPrefixPropertiesFormat `json:"properties,omitempty"`
12280
12281	// The public IP prefix SKU.
12282	SKU *PublicIPPrefixSKU `json:"sku,omitempty"`
12283
12284	// A list of availability zones denoting the IP allocated for the resource needs to come from.
12285	Zones *[]string `json:"zones,omitempty"`
12286}
12287
12288// Response for ListPublicIpPrefixes API service call.
12289type PublicIPPrefixListResult struct {
12290	// The URL to get the next set of results.
12291	NextLink *string `json:"nextLink,omitempty"`
12292
12293	// A list of public IP prefixes that exists in a resource group.
12294	Value *[]PublicIPPrefix `json:"value,omitempty"`
12295}
12296
12297// PublicIPPrefixListResultResponse is the response envelope for operations that return a PublicIPPrefixListResult type.
12298type PublicIPPrefixListResultResponse struct {
12299	// Response for ListPublicIpPrefixes API service call.
12300	PublicIPPrefixListResult *PublicIPPrefixListResult
12301
12302	// RawResponse contains the underlying HTTP response.
12303	RawResponse *http.Response
12304}
12305
12306// PublicIPPrefixPollerResponse is the response envelope for operations that asynchronously return a PublicIPPrefix type.
12307type PublicIPPrefixPollerResponse struct {
12308	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12309	PollUntilDone func(ctx context.Context, frequency time.Duration) (PublicIPPrefixResponse, error)
12310
12311	// Poller contains an initialized poller.
12312	Poller PublicIPPrefixPoller
12313
12314	// RawResponse contains the underlying HTTP response.
12315	RawResponse *http.Response
12316}
12317
12318// Public IP prefix properties.
12319type PublicIPPrefixPropertiesFormat struct {
12320	// The customIpPrefix that this prefix is associated with.
12321	CustomIPPrefix *SubResource `json:"customIPPrefix,omitempty"`
12322
12323	// READ-ONLY; The allocated Prefix.
12324	IPPrefix *string `json:"ipPrefix,omitempty" azure:"ro"`
12325
12326	// The list of tags associated with the public IP prefix.
12327	IPTags *[]IPTag `json:"ipTags,omitempty"`
12328
12329	// READ-ONLY; The reference to load balancer frontend IP configuration associated with the public IP prefix.
12330	LoadBalancerFrontendIPConfiguration *SubResource `json:"loadBalancerFrontendIpConfiguration,omitempty" azure:"ro"`
12331
12332	// The Length of the Public IP Prefix.
12333	PrefixLength *int32 `json:"prefixLength,omitempty"`
12334
12335	// READ-ONLY; The provisioning state of the public IP prefix resource.
12336	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12337
12338	// The public IP address version.
12339	PublicIPAddressVersion *IPVersion `json:"publicIPAddressVersion,omitempty"`
12340
12341	// READ-ONLY; The list of all referenced PublicIPAddresses.
12342	PublicIPAddresses *[]ReferencedPublicIPAddress `json:"publicIPAddresses,omitempty" azure:"ro"`
12343
12344	// READ-ONLY; The resource GUID property of the public IP prefix resource.
12345	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
12346}
12347
12348// PublicIPPrefixResponse is the response envelope for operations that return a PublicIPPrefix type.
12349type PublicIPPrefixResponse struct {
12350	// Public IP prefix resource.
12351	PublicIPPrefix *PublicIPPrefix
12352
12353	// RawResponse contains the underlying HTTP response.
12354	RawResponse *http.Response
12355}
12356
12357// SKU of a public IP prefix.
12358type PublicIPPrefixSKU struct {
12359	// Name of a public IP prefix SKU.
12360	Name *PublicIPPrefixSKUName `json:"name,omitempty"`
12361
12362	// Tier of a public IP prefix SKU.
12363	Tier *PublicIPPrefixSKUTier `json:"tier,omitempty"`
12364}
12365
12366// PublicIPPrefixesBeginCreateOrUpdateOptions contains the optional parameters for the PublicIPPrefixes.BeginCreateOrUpdate method.
12367type PublicIPPrefixesBeginCreateOrUpdateOptions struct {
12368	// placeholder for future optional parameters
12369}
12370
12371// PublicIPPrefixesBeginDeleteOptions contains the optional parameters for the PublicIPPrefixes.BeginDelete method.
12372type PublicIPPrefixesBeginDeleteOptions struct {
12373	// placeholder for future optional parameters
12374}
12375
12376// PublicIPPrefixesGetOptions contains the optional parameters for the PublicIPPrefixes.Get method.
12377type PublicIPPrefixesGetOptions struct {
12378	// Expands referenced resources.
12379	Expand *string
12380}
12381
12382// PublicIPPrefixesListAllOptions contains the optional parameters for the PublicIPPrefixes.ListAll method.
12383type PublicIPPrefixesListAllOptions struct {
12384	// placeholder for future optional parameters
12385}
12386
12387// PublicIPPrefixesListOptions contains the optional parameters for the PublicIPPrefixes.List method.
12388type PublicIPPrefixesListOptions struct {
12389	// placeholder for future optional parameters
12390}
12391
12392// PublicIPPrefixesUpdateTagsOptions contains the optional parameters for the PublicIPPrefixes.UpdateTags method.
12393type PublicIPPrefixesUpdateTagsOptions struct {
12394	// placeholder for future optional parameters
12395}
12396
12397// Qos Traffic Profiler IP Range properties.
12398type QosIPRange struct {
12399	// End IP Address.
12400	EndIP *string `json:"endIP,omitempty"`
12401
12402	// Start IP Address.
12403	StartIP *string `json:"startIP,omitempty"`
12404}
12405
12406// Qos Traffic Profiler Port range properties.
12407type QosPortRange struct {
12408	// Qos Port Range end.
12409	End *int32 `json:"end,omitempty"`
12410
12411	// Qos Port Range start.
12412	Start *int32 `json:"start,omitempty"`
12413}
12414
12415// Parameters that define the resource to query the troubleshooting result.
12416type QueryTroubleshootingParameters struct {
12417	// The target resource ID to query the troubleshooting result.
12418	TargetResourceID *string `json:"targetResourceId,omitempty"`
12419}
12420
12421// Radius Server Settings.
12422type RadiusServer struct {
12423	// The address of this radius server.
12424	RadiusServerAddress *string `json:"radiusServerAddress,omitempty"`
12425
12426	// The initial score assigned to this radius server.
12427	RadiusServerScore *int64 `json:"radiusServerScore,omitempty"`
12428
12429	// The secret used for this radius server.
12430	RadiusServerSecret *string `json:"radiusServerSecret,omitempty"`
12431}
12432
12433// A collective group of information about the record set information.
12434type RecordSet struct {
12435	// Fqdn that resolves to private endpoint ip address.
12436	Fqdn *string `json:"fqdn,omitempty"`
12437
12438	// The private ip address of the private endpoint.
12439	IPAddresses *[]string `json:"ipAddresses,omitempty"`
12440
12441	// READ-ONLY; The provisioning state of the recordset.
12442	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12443
12444	// Recordset name.
12445	RecordSetName *string `json:"recordSetName,omitempty"`
12446
12447	// Resource record type.
12448	RecordType *string `json:"recordType,omitempty"`
12449
12450	// Recordset time to live.
12451	TTL *int32 `json:"ttl,omitempty"`
12452}
12453
12454// Reference to a public IP address.
12455type ReferencedPublicIPAddress struct {
12456	// The PublicIPAddress Reference.
12457	ID *string `json:"id,omitempty"`
12458}
12459
12460// Common resource representation.
12461type Resource struct {
12462	// Resource ID.
12463	ID *string `json:"id,omitempty"`
12464
12465	// Resource location.
12466	Location *string `json:"location,omitempty"`
12467
12468	// READ-ONLY; Resource name.
12469	Name *string `json:"name,omitempty" azure:"ro"`
12470
12471	// Resource tags.
12472	Tags *map[string]string `json:"tags,omitempty"`
12473
12474	// READ-ONLY; Resource type.
12475	Type *string `json:"type,omitempty" azure:"ro"`
12476}
12477
12478// ResourceNavigationLink resource.
12479type ResourceNavigationLink struct {
12480	SubResource
12481	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12482	Etag *string `json:"etag,omitempty" azure:"ro"`
12483
12484	// Name of the resource that is unique within a resource group. This name can be used to access the resource.
12485	Name *string `json:"name,omitempty"`
12486
12487	// Resource navigation link properties format.
12488	Properties *ResourceNavigationLinkFormat `json:"properties,omitempty"`
12489
12490	// READ-ONLY; Resource type.
12491	Type *string `json:"type,omitempty" azure:"ro"`
12492}
12493
12494// Properties of ResourceNavigationLink.
12495type ResourceNavigationLinkFormat struct {
12496	// Link to the external resource.
12497	Link *string `json:"link,omitempty"`
12498
12499	// Resource type of the linked resource.
12500	LinkedResourceType *string `json:"linkedResourceType,omitempty"`
12501
12502	// READ-ONLY; The provisioning state of the resource navigation link resource.
12503	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12504}
12505
12506// ResourceNavigationLinksListOptions contains the optional parameters for the ResourceNavigationLinks.List method.
12507type ResourceNavigationLinksListOptions struct {
12508	// placeholder for future optional parameters
12509}
12510
12511// Response for ResourceNavigationLinks_List operation.
12512type ResourceNavigationLinksListResult struct {
12513	// READ-ONLY; The URL to get the next set of results.
12514	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
12515
12516	// The resource navigation links in a subnet.
12517	Value *[]ResourceNavigationLink `json:"value,omitempty"`
12518}
12519
12520// ResourceNavigationLinksListResultResponse is the response envelope for operations that return a ResourceNavigationLinksListResult type.
12521type ResourceNavigationLinksListResultResponse struct {
12522	// RawResponse contains the underlying HTTP response.
12523	RawResponse *http.Response
12524
12525	// Response for ResourceNavigationLinks_List operation.
12526	ResourceNavigationLinksListResult *ResourceNavigationLinksListResult
12527}
12528
12529// The base resource set for visibility and auto-approval.
12530type ResourceSet struct {
12531	// The list of subscriptions.
12532	Subscriptions *[]string `json:"subscriptions,omitempty"`
12533}
12534
12535// Parameters that define the retention policy for flow log.
12536type RetentionPolicyParameters struct {
12537	// Number of days to retain flow log records.
12538	Days *int32 `json:"days,omitempty"`
12539
12540	// Flag to enable/disable retention.
12541	Enabled *bool `json:"enabled,omitempty"`
12542}
12543
12544// Route resource.
12545type Route struct {
12546	SubResource
12547	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12548	Etag *string `json:"etag,omitempty" azure:"ro"`
12549
12550	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
12551	Name *string `json:"name,omitempty"`
12552
12553	// Properties of the route.
12554	Properties *RoutePropertiesFormat `json:"properties,omitempty"`
12555}
12556
12557// Route Filter Resource.
12558type RouteFilter struct {
12559	Resource
12560	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12561	Etag *string `json:"etag,omitempty" azure:"ro"`
12562
12563	// Properties of the route filter.
12564	Properties *RouteFilterPropertiesFormat `json:"properties,omitempty"`
12565}
12566
12567// Response for the ListRouteFilters API service call.
12568type RouteFilterListResult struct {
12569	// The URL to get the next set of results.
12570	NextLink *string `json:"nextLink,omitempty"`
12571
12572	// A list of route filters in a resource group.
12573	Value *[]RouteFilter `json:"value,omitempty"`
12574}
12575
12576// RouteFilterListResultResponse is the response envelope for operations that return a RouteFilterListResult type.
12577type RouteFilterListResultResponse struct {
12578	// RawResponse contains the underlying HTTP response.
12579	RawResponse *http.Response
12580
12581	// Response for the ListRouteFilters API service call.
12582	RouteFilterListResult *RouteFilterListResult
12583}
12584
12585// RouteFilterPollerResponse is the response envelope for operations that asynchronously return a RouteFilter type.
12586type RouteFilterPollerResponse struct {
12587	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12588	PollUntilDone func(ctx context.Context, frequency time.Duration) (RouteFilterResponse, error)
12589
12590	// Poller contains an initialized poller.
12591	Poller RouteFilterPoller
12592
12593	// RawResponse contains the underlying HTTP response.
12594	RawResponse *http.Response
12595}
12596
12597// Route Filter Resource.
12598type RouteFilterPropertiesFormat struct {
12599	// READ-ONLY; A collection of references to express route circuit ipv6 peerings.
12600	IPv6Peerings *[]ExpressRouteCircuitPeering `json:"ipv6Peerings,omitempty" azure:"ro"`
12601
12602	// READ-ONLY; A collection of references to express route circuit peerings.
12603	Peerings *[]ExpressRouteCircuitPeering `json:"peerings,omitempty" azure:"ro"`
12604
12605	// READ-ONLY; The provisioning state of the route filter resource.
12606	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12607
12608	// Collection of RouteFilterRules contained within a route filter.
12609	Rules *[]RouteFilterRule `json:"rules,omitempty"`
12610}
12611
12612// RouteFilterResponse is the response envelope for operations that return a RouteFilter type.
12613type RouteFilterResponse struct {
12614	// RawResponse contains the underlying HTTP response.
12615	RawResponse *http.Response
12616
12617	// Route Filter Resource.
12618	RouteFilter *RouteFilter
12619}
12620
12621// Route Filter Rule Resource.
12622type RouteFilterRule struct {
12623	SubResource
12624	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12625	Etag *string `json:"etag,omitempty" azure:"ro"`
12626
12627	// Resource location.
12628	Location *string `json:"location,omitempty"`
12629
12630	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
12631	Name *string `json:"name,omitempty"`
12632
12633	// Properties of the route filter rule.
12634	Properties *RouteFilterRulePropertiesFormat `json:"properties,omitempty"`
12635}
12636
12637// Response for the ListRouteFilterRules API service call.
12638type RouteFilterRuleListResult struct {
12639	// The URL to get the next set of results.
12640	NextLink *string `json:"nextLink,omitempty"`
12641
12642	// A list of RouteFilterRules in a resource group.
12643	Value *[]RouteFilterRule `json:"value,omitempty"`
12644}
12645
12646// RouteFilterRuleListResultResponse is the response envelope for operations that return a RouteFilterRuleListResult type.
12647type RouteFilterRuleListResultResponse struct {
12648	// RawResponse contains the underlying HTTP response.
12649	RawResponse *http.Response
12650
12651	// Response for the ListRouteFilterRules API service call.
12652	RouteFilterRuleListResult *RouteFilterRuleListResult
12653}
12654
12655// RouteFilterRulePollerResponse is the response envelope for operations that asynchronously return a RouteFilterRule type.
12656type RouteFilterRulePollerResponse struct {
12657	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12658	PollUntilDone func(ctx context.Context, frequency time.Duration) (RouteFilterRuleResponse, error)
12659
12660	// Poller contains an initialized poller.
12661	Poller RouteFilterRulePoller
12662
12663	// RawResponse contains the underlying HTTP response.
12664	RawResponse *http.Response
12665}
12666
12667// Route Filter Rule Resource.
12668type RouteFilterRulePropertiesFormat struct {
12669	// The access type of the rule.
12670	Access *Access `json:"access,omitempty"`
12671
12672	// The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020'].
12673	Communities *[]string `json:"communities,omitempty"`
12674
12675	// READ-ONLY; The provisioning state of the route filter rule resource.
12676	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12677
12678	// The rule type of the rule.
12679	RouteFilterRuleType *RouteFilterRuleType `json:"routeFilterRuleType,omitempty"`
12680}
12681
12682// RouteFilterRuleResponse is the response envelope for operations that return a RouteFilterRule type.
12683type RouteFilterRuleResponse struct {
12684	// RawResponse contains the underlying HTTP response.
12685	RawResponse *http.Response
12686
12687	// Route Filter Rule Resource.
12688	RouteFilterRule *RouteFilterRule
12689}
12690
12691// RouteFilterRulesBeginCreateOrUpdateOptions contains the optional parameters for the RouteFilterRules.BeginCreateOrUpdate method.
12692type RouteFilterRulesBeginCreateOrUpdateOptions struct {
12693	// placeholder for future optional parameters
12694}
12695
12696// RouteFilterRulesBeginDeleteOptions contains the optional parameters for the RouteFilterRules.BeginDelete method.
12697type RouteFilterRulesBeginDeleteOptions struct {
12698	// placeholder for future optional parameters
12699}
12700
12701// RouteFilterRulesGetOptions contains the optional parameters for the RouteFilterRules.Get method.
12702type RouteFilterRulesGetOptions struct {
12703	// placeholder for future optional parameters
12704}
12705
12706// RouteFilterRulesListByRouteFilterOptions contains the optional parameters for the RouteFilterRules.ListByRouteFilter method.
12707type RouteFilterRulesListByRouteFilterOptions struct {
12708	// placeholder for future optional parameters
12709}
12710
12711// RouteFiltersBeginCreateOrUpdateOptions contains the optional parameters for the RouteFilters.BeginCreateOrUpdate method.
12712type RouteFiltersBeginCreateOrUpdateOptions struct {
12713	// placeholder for future optional parameters
12714}
12715
12716// RouteFiltersBeginDeleteOptions contains the optional parameters for the RouteFilters.BeginDelete method.
12717type RouteFiltersBeginDeleteOptions struct {
12718	// placeholder for future optional parameters
12719}
12720
12721// RouteFiltersGetOptions contains the optional parameters for the RouteFilters.Get method.
12722type RouteFiltersGetOptions struct {
12723	// Expands referenced express route bgp peering resources.
12724	Expand *string
12725}
12726
12727// RouteFiltersListByResourceGroupOptions contains the optional parameters for the RouteFilters.ListByResourceGroup method.
12728type RouteFiltersListByResourceGroupOptions struct {
12729	// placeholder for future optional parameters
12730}
12731
12732// RouteFiltersListOptions contains the optional parameters for the RouteFilters.List method.
12733type RouteFiltersListOptions struct {
12734	// placeholder for future optional parameters
12735}
12736
12737// RouteFiltersUpdateTagsOptions contains the optional parameters for the RouteFilters.UpdateTags method.
12738type RouteFiltersUpdateTagsOptions struct {
12739	// placeholder for future optional parameters
12740}
12741
12742// Response for the ListRoute API service call.
12743type RouteListResult struct {
12744	// The URL to get the next set of results.
12745	NextLink *string `json:"nextLink,omitempty"`
12746
12747	// A list of routes in a resource group.
12748	Value *[]Route `json:"value,omitempty"`
12749}
12750
12751// RouteListResultResponse is the response envelope for operations that return a RouteListResult type.
12752type RouteListResultResponse struct {
12753	// RawResponse contains the underlying HTTP response.
12754	RawResponse *http.Response
12755
12756	// Response for the ListRoute API service call.
12757	RouteListResult *RouteListResult
12758}
12759
12760// RoutePollerResponse is the response envelope for operations that asynchronously return a Route type.
12761type RoutePollerResponse struct {
12762	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12763	PollUntilDone func(ctx context.Context, frequency time.Duration) (RouteResponse, error)
12764
12765	// Poller contains an initialized poller.
12766	Poller RoutePoller
12767
12768	// RawResponse contains the underlying HTTP response.
12769	RawResponse *http.Response
12770}
12771
12772// Route resource.
12773type RoutePropertiesFormat struct {
12774	// The destination CIDR to which the route applies.
12775	AddressPrefix *string `json:"addressPrefix,omitempty"`
12776
12777	// The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance.
12778	NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"`
12779
12780	// The type of Azure hop the packet should be sent to.
12781	NextHopType *RouteNextHopType `json:"nextHopType,omitempty"`
12782
12783	// READ-ONLY; The provisioning state of the route resource.
12784	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12785}
12786
12787// RouteResponse is the response envelope for operations that return a Route type.
12788type RouteResponse struct {
12789	// RawResponse contains the underlying HTTP response.
12790	RawResponse *http.Response
12791
12792	// Route resource.
12793	Route *Route
12794}
12795
12796// Route table resource.
12797type RouteTable struct {
12798	Resource
12799	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12800	Etag *string `json:"etag,omitempty" azure:"ro"`
12801
12802	// Properties of the route table.
12803	Properties *RouteTablePropertiesFormat `json:"properties,omitempty"`
12804}
12805
12806// Response for the ListRouteTable API service call.
12807type RouteTableListResult struct {
12808	// The URL to get the next set of results.
12809	NextLink *string `json:"nextLink,omitempty"`
12810
12811	// A list of route tables in a resource group.
12812	Value *[]RouteTable `json:"value,omitempty"`
12813}
12814
12815// RouteTableListResultResponse is the response envelope for operations that return a RouteTableListResult type.
12816type RouteTableListResultResponse struct {
12817	// RawResponse contains the underlying HTTP response.
12818	RawResponse *http.Response
12819
12820	// Response for the ListRouteTable API service call.
12821	RouteTableListResult *RouteTableListResult
12822}
12823
12824// RouteTablePollerResponse is the response envelope for operations that asynchronously return a RouteTable type.
12825type RouteTablePollerResponse struct {
12826	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12827	PollUntilDone func(ctx context.Context, frequency time.Duration) (RouteTableResponse, error)
12828
12829	// Poller contains an initialized poller.
12830	Poller RouteTablePoller
12831
12832	// RawResponse contains the underlying HTTP response.
12833	RawResponse *http.Response
12834}
12835
12836// Route Table resource.
12837type RouteTablePropertiesFormat struct {
12838	// Whether to disable the routes learned by BGP on that route table. True means disable.
12839	DisableBgpRoutePropagation *bool `json:"disableBgpRoutePropagation,omitempty"`
12840
12841	// READ-ONLY; The provisioning state of the route table resource.
12842	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
12843
12844	// Collection of routes contained within a route table.
12845	Routes *[]Route `json:"routes,omitempty"`
12846
12847	// READ-ONLY; A collection of references to subnets.
12848	Subnets *[]Subnet `json:"subnets,omitempty" azure:"ro"`
12849}
12850
12851// RouteTableResponse is the response envelope for operations that return a RouteTable type.
12852type RouteTableResponse struct {
12853	// RawResponse contains the underlying HTTP response.
12854	RawResponse *http.Response
12855
12856	// Route table resource.
12857	RouteTable *RouteTable
12858}
12859
12860// RouteTablesBeginCreateOrUpdateOptions contains the optional parameters for the RouteTables.BeginCreateOrUpdate method.
12861type RouteTablesBeginCreateOrUpdateOptions struct {
12862	// placeholder for future optional parameters
12863}
12864
12865// RouteTablesBeginDeleteOptions contains the optional parameters for the RouteTables.BeginDelete method.
12866type RouteTablesBeginDeleteOptions struct {
12867	// placeholder for future optional parameters
12868}
12869
12870// RouteTablesGetOptions contains the optional parameters for the RouteTables.Get method.
12871type RouteTablesGetOptions struct {
12872	// Expands referenced resources.
12873	Expand *string
12874}
12875
12876// RouteTablesListAllOptions contains the optional parameters for the RouteTables.ListAll method.
12877type RouteTablesListAllOptions struct {
12878	// placeholder for future optional parameters
12879}
12880
12881// RouteTablesListOptions contains the optional parameters for the RouteTables.List method.
12882type RouteTablesListOptions struct {
12883	// placeholder for future optional parameters
12884}
12885
12886// RouteTablesUpdateTagsOptions contains the optional parameters for the RouteTables.UpdateTags method.
12887type RouteTablesUpdateTagsOptions struct {
12888	// placeholder for future optional parameters
12889}
12890
12891// RoutesBeginCreateOrUpdateOptions contains the optional parameters for the Routes.BeginCreateOrUpdate method.
12892type RoutesBeginCreateOrUpdateOptions struct {
12893	// placeholder for future optional parameters
12894}
12895
12896// RoutesBeginDeleteOptions contains the optional parameters for the Routes.BeginDelete method.
12897type RoutesBeginDeleteOptions struct {
12898	// placeholder for future optional parameters
12899}
12900
12901// RoutesGetOptions contains the optional parameters for the Routes.Get method.
12902type RoutesGetOptions struct {
12903	// placeholder for future optional parameters
12904}
12905
12906// RoutesListOptions contains the optional parameters for the Routes.List method.
12907type RoutesListOptions struct {
12908	// placeholder for future optional parameters
12909}
12910
12911// Routing Configuration indicating the associated and propagated route tables for this connection.
12912type RoutingConfiguration struct {
12913	// The resource id RouteTable associated with this RoutingConfiguration.
12914	AssociatedRouteTable *SubResource `json:"associatedRouteTable,omitempty"`
12915
12916	// The list of RouteTables to advertise the routes to.
12917	PropagatedRouteTables *PropagatedRouteTable `json:"propagatedRouteTables,omitempty"`
12918
12919	// List of routes that control routing from VirtualHub into a virtual network connection.
12920	VnetRoutes *VnetRoute `json:"vnetRoutes,omitempty"`
12921}
12922
12923// Network interface and all its associated security rules.
12924type SecurityGroupNetworkInterface struct {
12925	// ID of the network interface.
12926	ID *string `json:"id,omitempty"`
12927
12928	// All security rules associated with the network interface.
12929	SecurityRuleAssociations *SecurityRuleAssociations `json:"securityRuleAssociations,omitempty"`
12930}
12931
12932// Parameters that define the VM to check security groups for.
12933type SecurityGroupViewParameters struct {
12934	// ID of the target VM.
12935	TargetResourceID *string `json:"targetResourceId,omitempty"`
12936}
12937
12938// The information about security rules applied to the specified VM.
12939type SecurityGroupViewResult struct {
12940	// List of network interfaces on the specified VM.
12941	NetworkInterfaces *[]SecurityGroupNetworkInterface `json:"networkInterfaces,omitempty"`
12942}
12943
12944// SecurityGroupViewResultPollerResponse is the response envelope for operations that asynchronously return a SecurityGroupViewResult type.
12945type SecurityGroupViewResultPollerResponse struct {
12946	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12947	PollUntilDone func(ctx context.Context, frequency time.Duration) (SecurityGroupViewResultResponse, error)
12948
12949	// Poller contains an initialized poller.
12950	Poller SecurityGroupViewResultPoller
12951
12952	// RawResponse contains the underlying HTTP response.
12953	RawResponse *http.Response
12954}
12955
12956// SecurityGroupViewResultResponse is the response envelope for operations that return a SecurityGroupViewResult type.
12957type SecurityGroupViewResultResponse struct {
12958	// RawResponse contains the underlying HTTP response.
12959	RawResponse *http.Response
12960
12961	// The information about security rules applied to the specified VM.
12962	SecurityGroupViewResult *SecurityGroupViewResult
12963}
12964
12965// Security Partner Provider resource.
12966type SecurityPartnerProvider struct {
12967	Resource
12968	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
12969	Etag *string `json:"etag,omitempty" azure:"ro"`
12970
12971	// Properties of the Security Partner Provider.
12972	Properties *SecurityPartnerProviderPropertiesFormat `json:"properties,omitempty"`
12973}
12974
12975// Response for ListSecurityPartnerProviders API service call.
12976type SecurityPartnerProviderListResult struct {
12977	// URL to get the next set of results.
12978	NextLink *string `json:"nextLink,omitempty"`
12979
12980	// List of Security Partner Providers in a resource group.
12981	Value *[]SecurityPartnerProvider `json:"value,omitempty"`
12982}
12983
12984// SecurityPartnerProviderListResultResponse is the response envelope for operations that return a SecurityPartnerProviderListResult type.
12985type SecurityPartnerProviderListResultResponse struct {
12986	// RawResponse contains the underlying HTTP response.
12987	RawResponse *http.Response
12988
12989	// Response for ListSecurityPartnerProviders API service call.
12990	SecurityPartnerProviderListResult *SecurityPartnerProviderListResult
12991}
12992
12993// SecurityPartnerProviderPollerResponse is the response envelope for operations that asynchronously return a SecurityPartnerProvider type.
12994type SecurityPartnerProviderPollerResponse struct {
12995	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
12996	PollUntilDone func(ctx context.Context, frequency time.Duration) (SecurityPartnerProviderResponse, error)
12997
12998	// Poller contains an initialized poller.
12999	Poller SecurityPartnerProviderPoller
13000
13001	// RawResponse contains the underlying HTTP response.
13002	RawResponse *http.Response
13003}
13004
13005// Properties of the Security Partner Provider.
13006type SecurityPartnerProviderPropertiesFormat struct {
13007	// READ-ONLY; The connection status with the Security Partner Provider.
13008	ConnectionStatus *SecurityPartnerProviderConnectionStatus `json:"connectionStatus,omitempty" azure:"ro"`
13009
13010	// READ-ONLY; The provisioning state of the Security Partner Provider resource.
13011	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13012
13013	// The security provider name.
13014	SecurityProviderName *SecurityProviderName `json:"securityProviderName,omitempty"`
13015
13016	// The virtualHub to which the Security Partner Provider belongs.
13017	VirtualHub *SubResource `json:"virtualHub,omitempty"`
13018}
13019
13020// SecurityPartnerProviderResponse is the response envelope for operations that return a SecurityPartnerProvider type.
13021type SecurityPartnerProviderResponse struct {
13022	// RawResponse contains the underlying HTTP response.
13023	RawResponse *http.Response
13024
13025	// Security Partner Provider resource.
13026	SecurityPartnerProvider *SecurityPartnerProvider
13027}
13028
13029// SecurityPartnerProvidersBeginCreateOrUpdateOptions contains the optional parameters for the SecurityPartnerProviders.BeginCreateOrUpdate method.
13030type SecurityPartnerProvidersBeginCreateOrUpdateOptions struct {
13031	// placeholder for future optional parameters
13032}
13033
13034// SecurityPartnerProvidersBeginDeleteOptions contains the optional parameters for the SecurityPartnerProviders.BeginDelete method.
13035type SecurityPartnerProvidersBeginDeleteOptions struct {
13036	// placeholder for future optional parameters
13037}
13038
13039// SecurityPartnerProvidersGetOptions contains the optional parameters for the SecurityPartnerProviders.Get method.
13040type SecurityPartnerProvidersGetOptions struct {
13041	// placeholder for future optional parameters
13042}
13043
13044// SecurityPartnerProvidersListByResourceGroupOptions contains the optional parameters for the SecurityPartnerProviders.ListByResourceGroup method.
13045type SecurityPartnerProvidersListByResourceGroupOptions struct {
13046	// placeholder for future optional parameters
13047}
13048
13049// SecurityPartnerProvidersListOptions contains the optional parameters for the SecurityPartnerProviders.List method.
13050type SecurityPartnerProvidersListOptions struct {
13051	// placeholder for future optional parameters
13052}
13053
13054// SecurityPartnerProvidersUpdateTagsOptions contains the optional parameters for the SecurityPartnerProviders.UpdateTags method.
13055type SecurityPartnerProvidersUpdateTagsOptions struct {
13056	// placeholder for future optional parameters
13057}
13058
13059// Network security rule.
13060type SecurityRule struct {
13061	SubResource
13062	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
13063	Etag *string `json:"etag,omitempty" azure:"ro"`
13064
13065	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
13066	Name *string `json:"name,omitempty"`
13067
13068	// Properties of the security rule.
13069	Properties *SecurityRulePropertiesFormat `json:"properties,omitempty"`
13070}
13071
13072// All security rules associated with the network interface.
13073type SecurityRuleAssociations struct {
13074	// Collection of default security rules of the network security group.
13075	DefaultSecurityRules *[]SecurityRule `json:"defaultSecurityRules,omitempty"`
13076
13077	// Collection of effective security rules.
13078	EffectiveSecurityRules *[]EffectiveNetworkSecurityRule `json:"effectiveSecurityRules,omitempty"`
13079
13080	// Network interface and it's custom security rules.
13081	NetworkInterfaceAssociation *NetworkInterfaceAssociation `json:"networkInterfaceAssociation,omitempty"`
13082
13083	// Subnet and it's custom security rules.
13084	SubnetAssociation *SubnetAssociation `json:"subnetAssociation,omitempty"`
13085}
13086
13087// Response for ListSecurityRule API service call. Retrieves all security rules that belongs to a network security group.
13088type SecurityRuleListResult struct {
13089	// The URL to get the next set of results.
13090	NextLink *string `json:"nextLink,omitempty"`
13091
13092	// The security rules in a network security group.
13093	Value *[]SecurityRule `json:"value,omitempty"`
13094}
13095
13096// SecurityRuleListResultResponse is the response envelope for operations that return a SecurityRuleListResult type.
13097type SecurityRuleListResultResponse struct {
13098	// RawResponse contains the underlying HTTP response.
13099	RawResponse *http.Response
13100
13101	// Response for ListSecurityRule API service call. Retrieves all security rules that belongs to a network security group.
13102	SecurityRuleListResult *SecurityRuleListResult
13103}
13104
13105// SecurityRulePollerResponse is the response envelope for operations that asynchronously return a SecurityRule type.
13106type SecurityRulePollerResponse struct {
13107	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
13108	PollUntilDone func(ctx context.Context, frequency time.Duration) (SecurityRuleResponse, error)
13109
13110	// Poller contains an initialized poller.
13111	Poller SecurityRulePoller
13112
13113	// RawResponse contains the underlying HTTP response.
13114	RawResponse *http.Response
13115}
13116
13117// Security rule resource.
13118type SecurityRulePropertiesFormat struct {
13119	// The network traffic is allowed or denied.
13120	Access *SecurityRuleAccess `json:"access,omitempty"`
13121
13122	// A description for this rule. Restricted to 140 chars.
13123	Description *string `json:"description,omitempty"`
13124
13125	// The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork',
13126	// 'AzureLoadBalancer' and 'Internet' can also
13127	// be used.
13128	DestinationAddressPrefix *string `json:"destinationAddressPrefix,omitempty"`
13129
13130	// The destination address prefixes. CIDR or destination IP ranges.
13131	DestinationAddressPrefixes *[]string `json:"destinationAddressPrefixes,omitempty"`
13132
13133	// The application security group specified as destination.
13134	DestinationApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"destinationApplicationSecurityGroups,omitempty"`
13135
13136	// The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
13137	DestinationPortRange *string `json:"destinationPortRange,omitempty"`
13138
13139	// The destination port ranges.
13140	DestinationPortRanges *[]string `json:"destinationPortRanges,omitempty"`
13141
13142	// The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic.
13143	Direction *SecurityRuleDirection `json:"direction,omitempty"`
13144
13145	// The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority
13146	// number, the higher the priority of the rule.
13147	Priority *int32 `json:"priority,omitempty"`
13148
13149	// Network protocol this rule applies to.
13150	Protocol *SecurityRuleProtocol `json:"protocol,omitempty"`
13151
13152	// READ-ONLY; The provisioning state of the security rule resource.
13153	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13154
13155	// The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet'
13156	// can also be used. If this is an ingress
13157	// rule, specifies where network traffic originates from.
13158	SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"`
13159
13160	// The CIDR or source IP ranges.
13161	SourceAddressPrefixes *[]string `json:"sourceAddressPrefixes,omitempty"`
13162
13163	// The application security group specified as source.
13164	SourceApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"sourceApplicationSecurityGroups,omitempty"`
13165
13166	// The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
13167	SourcePortRange *string `json:"sourcePortRange,omitempty"`
13168
13169	// The source port ranges.
13170	SourcePortRanges *[]string `json:"sourcePortRanges,omitempty"`
13171}
13172
13173// SecurityRuleResponse is the response envelope for operations that return a SecurityRule type.
13174type SecurityRuleResponse struct {
13175	// RawResponse contains the underlying HTTP response.
13176	RawResponse *http.Response
13177
13178	// Network security rule.
13179	SecurityRule *SecurityRule
13180}
13181
13182// SecurityRulesBeginCreateOrUpdateOptions contains the optional parameters for the SecurityRules.BeginCreateOrUpdate method.
13183type SecurityRulesBeginCreateOrUpdateOptions struct {
13184	// placeholder for future optional parameters
13185}
13186
13187// SecurityRulesBeginDeleteOptions contains the optional parameters for the SecurityRules.BeginDelete method.
13188type SecurityRulesBeginDeleteOptions struct {
13189	// placeholder for future optional parameters
13190}
13191
13192// SecurityRulesGetOptions contains the optional parameters for the SecurityRules.Get method.
13193type SecurityRulesGetOptions struct {
13194	// placeholder for future optional parameters
13195}
13196
13197// SecurityRulesListOptions contains the optional parameters for the SecurityRules.List method.
13198type SecurityRulesListOptions struct {
13199	// placeholder for future optional parameters
13200}
13201
13202// ServiceAssociationLink resource.
13203type ServiceAssociationLink struct {
13204	SubResource
13205	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
13206	Etag *string `json:"etag,omitempty" azure:"ro"`
13207
13208	// Name of the resource that is unique within a resource group. This name can be used to access the resource.
13209	Name *string `json:"name,omitempty"`
13210
13211	// Resource navigation link properties format.
13212	Properties *ServiceAssociationLinkPropertiesFormat `json:"properties,omitempty"`
13213
13214	// READ-ONLY; Resource type.
13215	Type *string `json:"type,omitempty" azure:"ro"`
13216}
13217
13218// Properties of ServiceAssociationLink.
13219type ServiceAssociationLinkPropertiesFormat struct {
13220	// If true, the resource can be deleted.
13221	AllowDelete *bool `json:"allowDelete,omitempty"`
13222
13223	// Link to the external resource.
13224	Link *string `json:"link,omitempty"`
13225
13226	// Resource type of the linked resource.
13227	LinkedResourceType *string `json:"linkedResourceType,omitempty"`
13228
13229	// A list of locations.
13230	Locations *[]string `json:"locations,omitempty"`
13231
13232	// READ-ONLY; The provisioning state of the service association link resource.
13233	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13234}
13235
13236// ServiceAssociationLinksListOptions contains the optional parameters for the ServiceAssociationLinks.List method.
13237type ServiceAssociationLinksListOptions struct {
13238	// placeholder for future optional parameters
13239}
13240
13241// Response for ServiceAssociationLinks_List operation.
13242type ServiceAssociationLinksListResult struct {
13243	// READ-ONLY; The URL to get the next set of results.
13244	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
13245
13246	// The service association links in a subnet.
13247	Value *[]ServiceAssociationLink `json:"value,omitempty"`
13248}
13249
13250// ServiceAssociationLinksListResultResponse is the response envelope for operations that return a ServiceAssociationLinksListResult type.
13251type ServiceAssociationLinksListResultResponse struct {
13252	// RawResponse contains the underlying HTTP response.
13253	RawResponse *http.Response
13254
13255	// Response for ServiceAssociationLinks_List operation.
13256	ServiceAssociationLinksListResult *ServiceAssociationLinksListResult
13257}
13258
13259// Properties of a service delegation.
13260type ServiceDelegationPropertiesFormat struct {
13261	// READ-ONLY; The actions permitted to the service upon delegation.
13262	Actions *[]string `json:"actions,omitempty" azure:"ro"`
13263
13264	// READ-ONLY; The provisioning state of the service delegation resource.
13265	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13266
13267	// The name of the service to whom the subnet should be delegated (e.g. Microsoft.Sql/servers).
13268	ServiceName *string `json:"serviceName,omitempty"`
13269}
13270
13271// ServiceEndpointPoliciesBeginCreateOrUpdateOptions contains the optional parameters for the ServiceEndpointPolicies.BeginCreateOrUpdate method.
13272type ServiceEndpointPoliciesBeginCreateOrUpdateOptions struct {
13273	// placeholder for future optional parameters
13274}
13275
13276// ServiceEndpointPoliciesBeginDeleteOptions contains the optional parameters for the ServiceEndpointPolicies.BeginDelete method.
13277type ServiceEndpointPoliciesBeginDeleteOptions struct {
13278	// placeholder for future optional parameters
13279}
13280
13281// ServiceEndpointPoliciesGetOptions contains the optional parameters for the ServiceEndpointPolicies.Get method.
13282type ServiceEndpointPoliciesGetOptions struct {
13283	// Expands referenced resources.
13284	Expand *string
13285}
13286
13287// ServiceEndpointPoliciesListByResourceGroupOptions contains the optional parameters for the ServiceEndpointPolicies.ListByResourceGroup method.
13288type ServiceEndpointPoliciesListByResourceGroupOptions struct {
13289	// placeholder for future optional parameters
13290}
13291
13292// ServiceEndpointPoliciesListOptions contains the optional parameters for the ServiceEndpointPolicies.List method.
13293type ServiceEndpointPoliciesListOptions struct {
13294	// placeholder for future optional parameters
13295}
13296
13297// ServiceEndpointPoliciesUpdateTagsOptions contains the optional parameters for the ServiceEndpointPolicies.UpdateTags method.
13298type ServiceEndpointPoliciesUpdateTagsOptions struct {
13299	// placeholder for future optional parameters
13300}
13301
13302// Service End point policy resource.
13303type ServiceEndpointPolicy struct {
13304	Resource
13305	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
13306	Etag *string `json:"etag,omitempty" azure:"ro"`
13307
13308	// Properties of the service end point policy.
13309	Properties *ServiceEndpointPolicyPropertiesFormat `json:"properties,omitempty"`
13310}
13311
13312// Service Endpoint policy definitions.
13313type ServiceEndpointPolicyDefinition struct {
13314	SubResource
13315	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
13316	Etag *string `json:"etag,omitempty" azure:"ro"`
13317
13318	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
13319	Name *string `json:"name,omitempty"`
13320
13321	// Properties of the service endpoint policy definition.
13322	Properties *ServiceEndpointPolicyDefinitionPropertiesFormat `json:"properties,omitempty"`
13323}
13324
13325// Response for ListServiceEndpointPolicyDefinition API service call. Retrieves all service endpoint policy definition that belongs to a service endpoint
13326// policy.
13327type ServiceEndpointPolicyDefinitionListResult struct {
13328	// The URL to get the next set of results.
13329	NextLink *string `json:"nextLink,omitempty"`
13330
13331	// The service endpoint policy definition in a service endpoint policy.
13332	Value *[]ServiceEndpointPolicyDefinition `json:"value,omitempty"`
13333}
13334
13335// ServiceEndpointPolicyDefinitionListResultResponse is the response envelope for operations that return a ServiceEndpointPolicyDefinitionListResult type.
13336type ServiceEndpointPolicyDefinitionListResultResponse struct {
13337	// RawResponse contains the underlying HTTP response.
13338	RawResponse *http.Response
13339
13340	// Response for ListServiceEndpointPolicyDefinition API service call. Retrieves all service endpoint policy definition that belongs to a service endpoint
13341	// policy.
13342	ServiceEndpointPolicyDefinitionListResult *ServiceEndpointPolicyDefinitionListResult
13343}
13344
13345// ServiceEndpointPolicyDefinitionPollerResponse is the response envelope for operations that asynchronously return a ServiceEndpointPolicyDefinition type.
13346type ServiceEndpointPolicyDefinitionPollerResponse struct {
13347	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
13348	PollUntilDone func(ctx context.Context, frequency time.Duration) (ServiceEndpointPolicyDefinitionResponse, error)
13349
13350	// Poller contains an initialized poller.
13351	Poller ServiceEndpointPolicyDefinitionPoller
13352
13353	// RawResponse contains the underlying HTTP response.
13354	RawResponse *http.Response
13355}
13356
13357// Service Endpoint policy definition resource.
13358type ServiceEndpointPolicyDefinitionPropertiesFormat struct {
13359	// A description for this rule. Restricted to 140 chars.
13360	Description *string `json:"description,omitempty"`
13361
13362	// READ-ONLY; The provisioning state of the service endpoint policy definition resource.
13363	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13364
13365	// Service endpoint name.
13366	Service *string `json:"service,omitempty"`
13367
13368	// A list of service resources.
13369	ServiceResources *[]string `json:"serviceResources,omitempty"`
13370}
13371
13372// ServiceEndpointPolicyDefinitionResponse is the response envelope for operations that return a ServiceEndpointPolicyDefinition type.
13373type ServiceEndpointPolicyDefinitionResponse struct {
13374	// RawResponse contains the underlying HTTP response.
13375	RawResponse *http.Response
13376
13377	// Service Endpoint policy definitions.
13378	ServiceEndpointPolicyDefinition *ServiceEndpointPolicyDefinition
13379}
13380
13381// ServiceEndpointPolicyDefinitionsBeginCreateOrUpdateOptions contains the optional parameters for the ServiceEndpointPolicyDefinitions.BeginCreateOrUpdate
13382// method.
13383type ServiceEndpointPolicyDefinitionsBeginCreateOrUpdateOptions struct {
13384	// placeholder for future optional parameters
13385}
13386
13387// ServiceEndpointPolicyDefinitionsBeginDeleteOptions contains the optional parameters for the ServiceEndpointPolicyDefinitions.BeginDelete method.
13388type ServiceEndpointPolicyDefinitionsBeginDeleteOptions struct {
13389	// placeholder for future optional parameters
13390}
13391
13392// ServiceEndpointPolicyDefinitionsGetOptions contains the optional parameters for the ServiceEndpointPolicyDefinitions.Get method.
13393type ServiceEndpointPolicyDefinitionsGetOptions struct {
13394	// placeholder for future optional parameters
13395}
13396
13397// ServiceEndpointPolicyDefinitionsListByResourceGroupOptions contains the optional parameters for the ServiceEndpointPolicyDefinitions.ListByResourceGroup
13398// method.
13399type ServiceEndpointPolicyDefinitionsListByResourceGroupOptions struct {
13400	// placeholder for future optional parameters
13401}
13402
13403// Response for ListServiceEndpointPolicies API service call.
13404type ServiceEndpointPolicyListResult struct {
13405	// READ-ONLY; The URL to get the next set of results.
13406	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
13407
13408	// A list of ServiceEndpointPolicy resources.
13409	Value *[]ServiceEndpointPolicy `json:"value,omitempty"`
13410}
13411
13412// ServiceEndpointPolicyListResultResponse is the response envelope for operations that return a ServiceEndpointPolicyListResult type.
13413type ServiceEndpointPolicyListResultResponse struct {
13414	// RawResponse contains the underlying HTTP response.
13415	RawResponse *http.Response
13416
13417	// Response for ListServiceEndpointPolicies API service call.
13418	ServiceEndpointPolicyListResult *ServiceEndpointPolicyListResult
13419}
13420
13421// ServiceEndpointPolicyPollerResponse is the response envelope for operations that asynchronously return a ServiceEndpointPolicy type.
13422type ServiceEndpointPolicyPollerResponse struct {
13423	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
13424	PollUntilDone func(ctx context.Context, frequency time.Duration) (ServiceEndpointPolicyResponse, error)
13425
13426	// Poller contains an initialized poller.
13427	Poller ServiceEndpointPolicyPoller
13428
13429	// RawResponse contains the underlying HTTP response.
13430	RawResponse *http.Response
13431}
13432
13433// Service Endpoint Policy resource.
13434type ServiceEndpointPolicyPropertiesFormat struct {
13435	// READ-ONLY; The provisioning state of the service endpoint policy resource.
13436	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13437
13438	// READ-ONLY; The resource GUID property of the service endpoint policy resource.
13439	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
13440
13441	// A collection of service endpoint policy definitions of the service endpoint policy.
13442	ServiceEndpointPolicyDefinitions *[]ServiceEndpointPolicyDefinition `json:"serviceEndpointPolicyDefinitions,omitempty"`
13443
13444	// READ-ONLY; A collection of references to subnets.
13445	Subnets *[]Subnet `json:"subnets,omitempty" azure:"ro"`
13446}
13447
13448// ServiceEndpointPolicyResponse is the response envelope for operations that return a ServiceEndpointPolicy type.
13449type ServiceEndpointPolicyResponse struct {
13450	// RawResponse contains the underlying HTTP response.
13451	RawResponse *http.Response
13452
13453	// Service End point policy resource.
13454	ServiceEndpointPolicy *ServiceEndpointPolicy
13455}
13456
13457// The service endpoint properties.
13458type ServiceEndpointPropertiesFormat struct {
13459	// A list of locations.
13460	Locations *[]string `json:"locations,omitempty"`
13461
13462	// READ-ONLY; The provisioning state of the service endpoint resource.
13463	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13464
13465	// The type of the endpoint service.
13466	Service *string `json:"service,omitempty"`
13467}
13468
13469// The service tag information.
13470type ServiceTagInformation struct {
13471	// READ-ONLY; The ID of service tag.
13472	ID *string `json:"id,omitempty" azure:"ro"`
13473
13474	// READ-ONLY; The name of service tag.
13475	Name *string `json:"name,omitempty" azure:"ro"`
13476
13477	// READ-ONLY; Properties of the service tag information.
13478	Properties *ServiceTagInformationPropertiesFormat `json:"properties,omitempty" azure:"ro"`
13479}
13480
13481// Properties of the service tag information.
13482type ServiceTagInformationPropertiesFormat struct {
13483	// READ-ONLY; The list of IP address prefixes.
13484	AddressPrefixes *[]string `json:"addressPrefixes,omitempty" azure:"ro"`
13485
13486	// READ-ONLY; The iteration number of service tag.
13487	ChangeNumber *string `json:"changeNumber,omitempty" azure:"ro"`
13488
13489	// READ-ONLY; The region of service tag.
13490	Region *string `json:"region,omitempty" azure:"ro"`
13491
13492	// READ-ONLY; The name of system service.
13493	SystemService *string `json:"systemService,omitempty" azure:"ro"`
13494}
13495
13496// ServiceTagsListOptions contains the optional parameters for the ServiceTags.List method.
13497type ServiceTagsListOptions struct {
13498	// placeholder for future optional parameters
13499}
13500
13501// Response for the ListServiceTags API service call.
13502type ServiceTagsListResult struct {
13503	// READ-ONLY; The iteration number.
13504	ChangeNumber *string `json:"changeNumber,omitempty" azure:"ro"`
13505
13506	// READ-ONLY; The name of the cloud.
13507	Cloud *string `json:"cloud,omitempty" azure:"ro"`
13508
13509	// READ-ONLY; The ID of the cloud.
13510	ID *string `json:"id,omitempty" azure:"ro"`
13511
13512	// READ-ONLY; The name of the cloud.
13513	Name *string `json:"name,omitempty" azure:"ro"`
13514
13515	// READ-ONLY; The URL to get next page of service tag information resources.
13516	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
13517
13518	// READ-ONLY; The azure resource type.
13519	Type *string `json:"type,omitempty" azure:"ro"`
13520
13521	// READ-ONLY; The list of service tag information resources.
13522	Values *[]ServiceTagInformation `json:"values,omitempty" azure:"ro"`
13523}
13524
13525// ServiceTagsListResultResponse is the response envelope for operations that return a ServiceTagsListResult type.
13526type ServiceTagsListResultResponse struct {
13527	// RawResponse contains the underlying HTTP response.
13528	RawResponse *http.Response
13529
13530	// Response for the ListServiceTags API service call.
13531	ServiceTagsListResult *ServiceTagsListResult
13532}
13533
13534// List of session IDs.
13535type SessionIDs struct {
13536	// List of session IDs.
13537	SessionIDs *[]string `json:"sessionIds,omitempty"`
13538}
13539
13540// List of all Static Routes.
13541type StaticRoute struct {
13542	// List of all address prefixes.
13543	AddressPrefixes *[]string `json:"addressPrefixes,omitempty"`
13544
13545	// The name of the StaticRoute that is unique within a VnetRoute.
13546	Name *string `json:"name,omitempty"`
13547
13548	// The ip address of the next hop.
13549	NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"`
13550}
13551
13552// StringArrayResponse is the response envelope for operations that return a []string type.
13553type StringArrayResponse struct {
13554	// RawResponse contains the underlying HTTP response.
13555	RawResponse *http.Response
13556
13557	// Response for ApplicationGatewayAvailableServerVariables API service call.
13558	StringArray *[]string
13559}
13560
13561// StringPollerResponse is the response envelope for operations that asynchronously return a string type.
13562type StringPollerResponse struct {
13563	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
13564	PollUntilDone func(ctx context.Context, frequency time.Duration) (StringResponse, error)
13565
13566	// Poller contains an initialized poller.
13567	Poller StringPoller
13568
13569	// RawResponse contains the underlying HTTP response.
13570	RawResponse *http.Response
13571}
13572
13573// StringResponse is the response envelope for operations that return a string type.
13574type StringResponse struct {
13575	// RawResponse contains the underlying HTTP response.
13576	RawResponse *http.Response
13577	Value       *string
13578}
13579
13580// Reference to another subresource.
13581type SubResource struct {
13582	// Resource ID.
13583	ID *string `json:"id,omitempty"`
13584}
13585
13586// Subnet in a virtual network resource.
13587type Subnet struct {
13588	SubResource
13589	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
13590	Etag *string `json:"etag,omitempty" azure:"ro"`
13591
13592	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
13593	Name *string `json:"name,omitempty"`
13594
13595	// Properties of the subnet.
13596	Properties *SubnetPropertiesFormat `json:"properties,omitempty"`
13597}
13598
13599// Subnet and it's custom security rules.
13600type SubnetAssociation struct {
13601	// READ-ONLY; Subnet ID.
13602	ID *string `json:"id,omitempty" azure:"ro"`
13603
13604	// Collection of custom security rules.
13605	SecurityRules *[]SecurityRule `json:"securityRules,omitempty"`
13606}
13607
13608// Response for ListSubnets API service callRetrieves all subnet that belongs to a virtual network.
13609type SubnetListResult struct {
13610	// The URL to get the next set of results.
13611	NextLink *string `json:"nextLink,omitempty"`
13612
13613	// The subnets in a virtual network.
13614	Value *[]Subnet `json:"value,omitempty"`
13615}
13616
13617// SubnetListResultResponse is the response envelope for operations that return a SubnetListResult type.
13618type SubnetListResultResponse struct {
13619	// RawResponse contains the underlying HTTP response.
13620	RawResponse *http.Response
13621
13622	// Response for ListSubnets API service callRetrieves all subnet that belongs to a virtual network.
13623	SubnetListResult *SubnetListResult
13624}
13625
13626// SubnetPollerResponse is the response envelope for operations that asynchronously return a Subnet type.
13627type SubnetPollerResponse struct {
13628	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
13629	PollUntilDone func(ctx context.Context, frequency time.Duration) (SubnetResponse, error)
13630
13631	// Poller contains an initialized poller.
13632	Poller SubnetPoller
13633
13634	// RawResponse contains the underlying HTTP response.
13635	RawResponse *http.Response
13636}
13637
13638// Properties of the subnet.
13639type SubnetPropertiesFormat struct {
13640	// The address prefix for the subnet.
13641	AddressPrefix *string `json:"addressPrefix,omitempty"`
13642
13643	// List of address prefixes for the subnet.
13644	AddressPrefixes *[]string `json:"addressPrefixes,omitempty"`
13645
13646	// An array of references to the delegations on the subnet.
13647	Delegations *[]Delegation `json:"delegations,omitempty"`
13648
13649	// Array of IpAllocation which reference this subnet.
13650	IPAllocations *[]SubResource `json:"ipAllocations,omitempty"`
13651
13652	// READ-ONLY; Array of IP configuration profiles which reference this subnet.
13653	IPConfigurationProfiles *[]IPConfigurationProfile `json:"ipConfigurationProfiles,omitempty" azure:"ro"`
13654
13655	// READ-ONLY; An array of references to the network interface IP configurations using subnet.
13656	IPConfigurations *[]IPConfiguration `json:"ipConfigurations,omitempty" azure:"ro"`
13657
13658	// Nat gateway associated with this subnet.
13659	NatGateway *SubResource `json:"natGateway,omitempty"`
13660
13661	// The reference to the NetworkSecurityGroup resource.
13662	NetworkSecurityGroup *NetworkSecurityGroup `json:"networkSecurityGroup,omitempty"`
13663
13664	// Enable or Disable apply network policies on private end point in the subnet.
13665	PrivateEndpointNetworkPolicies *string `json:"privateEndpointNetworkPolicies,omitempty"`
13666
13667	// READ-ONLY; An array of references to private endpoints.
13668	PrivateEndpoints *[]PrivateEndpoint `json:"privateEndpoints,omitempty" azure:"ro"`
13669
13670	// Enable or Disable apply network policies on private link service in the subnet.
13671	PrivateLinkServiceNetworkPolicies *string `json:"privateLinkServiceNetworkPolicies,omitempty"`
13672
13673	// READ-ONLY; The provisioning state of the subnet resource.
13674	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
13675
13676	// READ-ONLY; A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties.
13677	Purpose *string `json:"purpose,omitempty" azure:"ro"`
13678
13679	// READ-ONLY; An array of references to the external resources using subnet.
13680	ResourceNavigationLinks *[]ResourceNavigationLink `json:"resourceNavigationLinks,omitempty" azure:"ro"`
13681
13682	// The reference to the RouteTable resource.
13683	RouteTable *RouteTable `json:"routeTable,omitempty"`
13684
13685	// READ-ONLY; An array of references to services injecting into this subnet.
13686	ServiceAssociationLinks *[]ServiceAssociationLink `json:"serviceAssociationLinks,omitempty" azure:"ro"`
13687
13688	// An array of service endpoint policies.
13689	ServiceEndpointPolicies *[]ServiceEndpointPolicy `json:"serviceEndpointPolicies,omitempty"`
13690
13691	// An array of service endpoints.
13692	ServiceEndpoints *[]ServiceEndpointPropertiesFormat `json:"serviceEndpoints,omitempty"`
13693}
13694
13695// SubnetResponse is the response envelope for operations that return a Subnet type.
13696type SubnetResponse struct {
13697	// RawResponse contains the underlying HTTP response.
13698	RawResponse *http.Response
13699
13700	// Subnet in a virtual network resource.
13701	Subnet *Subnet
13702}
13703
13704// SubnetsBeginCreateOrUpdateOptions contains the optional parameters for the Subnets.BeginCreateOrUpdate method.
13705type SubnetsBeginCreateOrUpdateOptions struct {
13706	// placeholder for future optional parameters
13707}
13708
13709// SubnetsBeginDeleteOptions contains the optional parameters for the Subnets.BeginDelete method.
13710type SubnetsBeginDeleteOptions struct {
13711	// placeholder for future optional parameters
13712}
13713
13714// SubnetsBeginPrepareNetworkPoliciesOptions contains the optional parameters for the Subnets.BeginPrepareNetworkPolicies method.
13715type SubnetsBeginPrepareNetworkPoliciesOptions struct {
13716	// placeholder for future optional parameters
13717}
13718
13719// SubnetsBeginUnprepareNetworkPoliciesOptions contains the optional parameters for the Subnets.BeginUnprepareNetworkPolicies method.
13720type SubnetsBeginUnprepareNetworkPoliciesOptions struct {
13721	// placeholder for future optional parameters
13722}
13723
13724// SubnetsGetOptions contains the optional parameters for the Subnets.Get method.
13725type SubnetsGetOptions struct {
13726	// Expands referenced resources.
13727	Expand *string
13728}
13729
13730// SubnetsListOptions contains the optional parameters for the Subnets.List method.
13731type SubnetsListOptions struct {
13732	// placeholder for future optional parameters
13733}
13734
13735// Tags object for patch operations.
13736type TagsObject struct {
13737	// Resource tags.
13738	Tags *map[string]string `json:"tags,omitempty"`
13739}
13740
13741// Topology of the specified resource group.
13742type Topology struct {
13743	// READ-ONLY; The datetime when the topology was initially created for the resource group.
13744	CreatedDateTime *time.Time `json:"createdDateTime,omitempty" azure:"ro"`
13745
13746	// READ-ONLY; GUID representing the operation id.
13747	ID *string `json:"id,omitempty" azure:"ro"`
13748
13749	// READ-ONLY; The datetime when the topology was last modified.
13750	LastModified *time.Time `json:"lastModified,omitempty" azure:"ro"`
13751
13752	// A list of topology resources.
13753	Resources *[]TopologyResource `json:"resources,omitempty"`
13754}
13755
13756// MarshalJSON implements the json.Marshaller interface for type Topology.
13757func (t Topology) MarshalJSON() ([]byte, error) {
13758	objectMap := make(map[string]interface{})
13759	if t.CreatedDateTime != nil {
13760		objectMap["createdDateTime"] = (*timeRFC3339)(t.CreatedDateTime)
13761	}
13762	if t.ID != nil {
13763		objectMap["id"] = t.ID
13764	}
13765	if t.LastModified != nil {
13766		objectMap["lastModified"] = (*timeRFC3339)(t.LastModified)
13767	}
13768	if t.Resources != nil {
13769		objectMap["resources"] = t.Resources
13770	}
13771	return json.Marshal(objectMap)
13772}
13773
13774// UnmarshalJSON implements the json.Unmarshaller interface for type Topology.
13775func (t *Topology) UnmarshalJSON(data []byte) error {
13776	var rawMsg map[string]*json.RawMessage
13777	if err := json.Unmarshal(data, &rawMsg); err != nil {
13778		return err
13779	}
13780	for key, val := range rawMsg {
13781		var err error
13782		switch key {
13783		case "createdDateTime":
13784			if val != nil {
13785				var aux timeRFC3339
13786				err = json.Unmarshal(*val, &aux)
13787				t.CreatedDateTime = (*time.Time)(&aux)
13788			}
13789			delete(rawMsg, key)
13790		case "id":
13791			if val != nil {
13792				err = json.Unmarshal(*val, &t.ID)
13793			}
13794			delete(rawMsg, key)
13795		case "lastModified":
13796			if val != nil {
13797				var aux timeRFC3339
13798				err = json.Unmarshal(*val, &aux)
13799				t.LastModified = (*time.Time)(&aux)
13800			}
13801			delete(rawMsg, key)
13802		case "resources":
13803			if val != nil {
13804				err = json.Unmarshal(*val, &t.Resources)
13805			}
13806			delete(rawMsg, key)
13807		}
13808		if err != nil {
13809			return err
13810		}
13811	}
13812	return nil
13813}
13814
13815// Resources that have an association with the parent resource.
13816type TopologyAssociation struct {
13817	// The association type of the child resource to the parent resource.
13818	AssociationType *AssociationType `json:"associationType,omitempty"`
13819
13820	// The name of the resource that is associated with the parent resource.
13821	Name *string `json:"name,omitempty"`
13822
13823	// The ID of the resource that is associated with the parent resource.
13824	ResourceID *string `json:"resourceId,omitempty"`
13825}
13826
13827// Parameters that define the representation of topology.
13828type TopologyParameters struct {
13829	// The name of the target resource group to perform topology on.
13830	TargetResourceGroupName *string `json:"targetResourceGroupName,omitempty"`
13831
13832	// The reference to the Subnet resource.
13833	TargetSubnet *SubResource `json:"targetSubnet,omitempty"`
13834
13835	// The reference to the Virtual Network resource.
13836	TargetVirtualNetwork *SubResource `json:"targetVirtualNetwork,omitempty"`
13837}
13838
13839// The network resource topology information for the given resource group.
13840type TopologyResource struct {
13841	// Holds the associations the resource has with other resources in the resource group.
13842	Associations *[]TopologyAssociation `json:"associations,omitempty"`
13843
13844	// ID of the resource.
13845	ID *string `json:"id,omitempty"`
13846
13847	// Resource location.
13848	Location *string `json:"location,omitempty"`
13849
13850	// Name of the resource.
13851	Name *string `json:"name,omitempty"`
13852}
13853
13854// TopologyResponse is the response envelope for operations that return a Topology type.
13855type TopologyResponse struct {
13856	// RawResponse contains the underlying HTTP response.
13857	RawResponse *http.Response
13858
13859	// Topology of the specified resource group.
13860	Topology *Topology
13861}
13862
13863// Parameters that define the configuration of traffic analytics.
13864type TrafficAnalyticsConfigurationProperties struct {
13865	// Flag to enable/disable traffic analytics.
13866	Enabled *bool `json:"enabled,omitempty"`
13867
13868	// The interval in minutes which would decide how frequently TA service should do flow analytics.
13869	TrafficAnalyticsInterval *int32 `json:"trafficAnalyticsInterval,omitempty"`
13870
13871	// The resource guid of the attached workspace.
13872	WorkspaceID *string `json:"workspaceId,omitempty"`
13873
13874	// The location of the attached workspace.
13875	WorkspaceRegion *string `json:"workspaceRegion,omitempty"`
13876
13877	// Resource Id of the attached workspace.
13878	WorkspaceResourceID *string `json:"workspaceResourceId,omitempty"`
13879}
13880
13881// Parameters that define the configuration of traffic analytics.
13882type TrafficAnalyticsProperties struct {
13883	// Parameters that define the configuration of traffic analytics.
13884	NetworkWatcherFlowAnalyticsConfiguration *TrafficAnalyticsConfigurationProperties `json:"networkWatcherFlowAnalyticsConfiguration,omitempty"`
13885}
13886
13887// An traffic selector policy for a virtual network gateway connection.
13888type TrafficSelectorPolicy struct {
13889	// A collection of local address spaces in CIDR format.
13890	LocalAddressRanges *[]string `json:"localAddressRanges,omitempty"`
13891
13892	// A collection of remote address spaces in CIDR format.
13893	RemoteAddressRanges *[]string `json:"remoteAddressRanges,omitempty"`
13894}
13895
13896// Information gained from troubleshooting of specified resource.
13897type TroubleshootingDetails struct {
13898	// Details on troubleshooting results.
13899	Detail *string `json:"detail,omitempty"`
13900
13901	// The id of the get troubleshoot operation.
13902	ID *string `json:"id,omitempty"`
13903
13904	// Reason type of failure.
13905	ReasonType *string `json:"reasonType,omitempty"`
13906
13907	// List of recommended actions.
13908	RecommendedActions *[]TroubleshootingRecommendedActions `json:"recommendedActions,omitempty"`
13909
13910	// A summary of troubleshooting.
13911	Summary *string `json:"summary,omitempty"`
13912}
13913
13914// Parameters that define the resource to troubleshoot.
13915type TroubleshootingParameters struct {
13916	// Properties of the troubleshooting resource.
13917	Properties *TroubleshootingProperties `json:"properties,omitempty"`
13918
13919	// The target resource to troubleshoot.
13920	TargetResourceID *string `json:"targetResourceId,omitempty"`
13921}
13922
13923// Storage location provided for troubleshoot.
13924type TroubleshootingProperties struct {
13925	// The ID for the storage account to save the troubleshoot result.
13926	StorageID *string `json:"storageId,omitempty"`
13927
13928	// The path to the blob to save the troubleshoot result in.
13929	StoragePath *string `json:"storagePath,omitempty"`
13930}
13931
13932// Recommended actions based on discovered issues.
13933type TroubleshootingRecommendedActions struct {
13934	// ID of the recommended action.
13935	ActionID *string `json:"actionId,omitempty"`
13936
13937	// Description of recommended actions.
13938	ActionText *string `json:"actionText,omitempty"`
13939
13940	// The uri linking to a documentation for the recommended troubleshooting actions.
13941	ActionURI *string `json:"actionUri,omitempty"`
13942
13943	// The information from the URI for the recommended troubleshooting actions.
13944	ActionURIText *string `json:"actionUriText,omitempty"`
13945}
13946
13947// Troubleshooting information gained from specified resource.
13948type TroubleshootingResult struct {
13949	// The result code of the troubleshooting.
13950	Code *string `json:"code,omitempty"`
13951
13952	// The end time of the troubleshooting.
13953	EndTime *time.Time `json:"endTime,omitempty"`
13954
13955	// Information from troubleshooting.
13956	Results *[]TroubleshootingDetails `json:"results,omitempty"`
13957
13958	// The start time of the troubleshooting.
13959	StartTime *time.Time `json:"startTime,omitempty"`
13960}
13961
13962// MarshalJSON implements the json.Marshaller interface for type TroubleshootingResult.
13963func (t TroubleshootingResult) MarshalJSON() ([]byte, error) {
13964	objectMap := make(map[string]interface{})
13965	if t.Code != nil {
13966		objectMap["code"] = t.Code
13967	}
13968	if t.EndTime != nil {
13969		objectMap["endTime"] = (*timeRFC3339)(t.EndTime)
13970	}
13971	if t.Results != nil {
13972		objectMap["results"] = t.Results
13973	}
13974	if t.StartTime != nil {
13975		objectMap["startTime"] = (*timeRFC3339)(t.StartTime)
13976	}
13977	return json.Marshal(objectMap)
13978}
13979
13980// UnmarshalJSON implements the json.Unmarshaller interface for type TroubleshootingResult.
13981func (t *TroubleshootingResult) UnmarshalJSON(data []byte) error {
13982	var rawMsg map[string]*json.RawMessage
13983	if err := json.Unmarshal(data, &rawMsg); err != nil {
13984		return err
13985	}
13986	for key, val := range rawMsg {
13987		var err error
13988		switch key {
13989		case "code":
13990			if val != nil {
13991				err = json.Unmarshal(*val, &t.Code)
13992			}
13993			delete(rawMsg, key)
13994		case "endTime":
13995			if val != nil {
13996				var aux timeRFC3339
13997				err = json.Unmarshal(*val, &aux)
13998				t.EndTime = (*time.Time)(&aux)
13999			}
14000			delete(rawMsg, key)
14001		case "results":
14002			if val != nil {
14003				err = json.Unmarshal(*val, &t.Results)
14004			}
14005			delete(rawMsg, key)
14006		case "startTime":
14007			if val != nil {
14008				var aux timeRFC3339
14009				err = json.Unmarshal(*val, &aux)
14010				t.StartTime = (*time.Time)(&aux)
14011			}
14012			delete(rawMsg, key)
14013		}
14014		if err != nil {
14015			return err
14016		}
14017	}
14018	return nil
14019}
14020
14021// TroubleshootingResultPollerResponse is the response envelope for operations that asynchronously return a TroubleshootingResult type.
14022type TroubleshootingResultPollerResponse struct {
14023	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
14024	PollUntilDone func(ctx context.Context, frequency time.Duration) (TroubleshootingResultResponse, error)
14025
14026	// Poller contains an initialized poller.
14027	Poller TroubleshootingResultPoller
14028
14029	// RawResponse contains the underlying HTTP response.
14030	RawResponse *http.Response
14031}
14032
14033// TroubleshootingResultResponse is the response envelope for operations that return a TroubleshootingResult type.
14034type TroubleshootingResultResponse struct {
14035	// RawResponse contains the underlying HTTP response.
14036	RawResponse *http.Response
14037
14038	// Troubleshooting information gained from specified resource.
14039	TroubleshootingResult *TroubleshootingResult
14040}
14041
14042// VirtualNetworkGatewayConnection properties.
14043type TunnelConnectionHealth struct {
14044	// READ-ONLY; Virtual Network Gateway connection status.
14045	ConnectionStatus *VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty" azure:"ro"`
14046
14047	// READ-ONLY; The Egress Bytes Transferred in this connection.
14048	EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty" azure:"ro"`
14049
14050	// READ-ONLY; The Ingress Bytes Transferred in this connection.
14051	IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty" azure:"ro"`
14052
14053	// READ-ONLY; The time at which connection was established in Utc format.
14054	LastConnectionEstablishedUTCTime *string `json:"lastConnectionEstablishedUtcTime,omitempty" azure:"ro"`
14055
14056	// READ-ONLY; Tunnel name.
14057	Tunnel *string `json:"tunnel,omitempty" azure:"ro"`
14058}
14059
14060// Details of UnprepareNetworkPolicies for Subnet.
14061type UnprepareNetworkPoliciesRequest struct {
14062	// The name of the service for which subnet is being unprepared for.
14063	ServiceName *string `json:"serviceName,omitempty"`
14064}
14065
14066// The network resource usage.
14067type Usage struct {
14068	// The current value of the usage.
14069	CurrentValue *int64 `json:"currentValue,omitempty"`
14070
14071	// READ-ONLY; Resource identifier.
14072	ID *string `json:"id,omitempty" azure:"ro"`
14073
14074	// The limit of usage.
14075	Limit *int64 `json:"limit,omitempty"`
14076
14077	// The name of the type of usage.
14078	Name *UsageName `json:"name,omitempty"`
14079
14080	// An enum describing the unit of measurement.
14081	Unit *UsageUnit `json:"unit,omitempty"`
14082}
14083
14084// The usage names.
14085type UsageName struct {
14086	// A localized string describing the resource name.
14087	LocalizedValue *string `json:"localizedValue,omitempty"`
14088
14089	// A string describing the resource name.
14090	Value *string `json:"value,omitempty"`
14091}
14092
14093// UsagesListOptions contains the optional parameters for the Usages.List method.
14094type UsagesListOptions struct {
14095	// placeholder for future optional parameters
14096}
14097
14098// The list usages operation response.
14099type UsagesListResult struct {
14100	// URL to get the next set of results.
14101	NextLink *string `json:"nextLink,omitempty"`
14102
14103	// The list network resource usages.
14104	Value *[]Usage `json:"value,omitempty"`
14105}
14106
14107// UsagesListResultResponse is the response envelope for operations that return a UsagesListResult type.
14108type UsagesListResultResponse struct {
14109	// RawResponse contains the underlying HTTP response.
14110	RawResponse *http.Response
14111
14112	// The list usages operation response.
14113	UsagesListResult *UsagesListResult
14114}
14115
14116// Describes a Virtual Machine.
14117type VM struct {
14118	Resource
14119}
14120
14121// Parameters that define the IP flow to be verified.
14122type VerificationIPFlowParameters struct {
14123	// The direction of the packet represented as a 5-tuple.
14124	Direction *Direction `json:"direction,omitempty"`
14125
14126	// The local IP address. Acceptable values are valid IPv4 addresses.
14127	LocalIPAddress *string `json:"localIPAddress,omitempty"`
14128
14129	// The local port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction.
14130	LocalPort *string `json:"localPort,omitempty"`
14131
14132	// Protocol to be verified on.
14133	Protocol *IPFlowProtocol `json:"protocol,omitempty"`
14134
14135	// The remote IP address. Acceptable values are valid IPv4 addresses.
14136	RemoteIPAddress *string `json:"remoteIPAddress,omitempty"`
14137
14138	// The remote port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction.
14139	RemotePort *string `json:"remotePort,omitempty"`
14140
14141	// The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of them, then this parameter must be specified. Otherwise optional).
14142	TargetNicResourceID *string `json:"targetNicResourceId,omitempty"`
14143
14144	// The ID of the target resource to perform next-hop on.
14145	TargetResourceID *string `json:"targetResourceId,omitempty"`
14146}
14147
14148// Results of IP flow verification on the target resource.
14149type VerificationIPFlowResult struct {
14150	// Indicates whether the traffic is allowed or denied.
14151	Access *Access `json:"access,omitempty"`
14152
14153	// Name of the rule. If input is not matched against any security rule, it is not displayed.
14154	RuleName *string `json:"ruleName,omitempty"`
14155}
14156
14157// VerificationIPFlowResultPollerResponse is the response envelope for operations that asynchronously return a VerificationIPFlowResult type.
14158type VerificationIPFlowResultPollerResponse struct {
14159	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
14160	PollUntilDone func(ctx context.Context, frequency time.Duration) (VerificationIPFlowResultResponse, error)
14161
14162	// Poller contains an initialized poller.
14163	Poller VerificationIPFlowResultPoller
14164
14165	// RawResponse contains the underlying HTTP response.
14166	RawResponse *http.Response
14167}
14168
14169// VerificationIPFlowResultResponse is the response envelope for operations that return a VerificationIPFlowResult type.
14170type VerificationIPFlowResultResponse struct {
14171	// RawResponse contains the underlying HTTP response.
14172	RawResponse *http.Response
14173
14174	// Results of IP flow verification on the target resource.
14175	VerificationIPFlowResult *VerificationIPFlowResult
14176}
14177
14178// Network Virtual Appliance NIC properties.
14179type VirtualApplianceNicProperties struct {
14180	// READ-ONLY; NIC name.
14181	Name *string `json:"name,omitempty" azure:"ro"`
14182
14183	// READ-ONLY; Private IP address.
14184	PrivateIPAddress *string `json:"privateIpAddress,omitempty" azure:"ro"`
14185
14186	// READ-ONLY; Public IP address.
14187	PublicIPAddress *string `json:"publicIpAddress,omitempty" azure:"ro"`
14188}
14189
14190// Network Virtual Appliance Sku Properties.
14191type VirtualApplianceSKUProperties struct {
14192	// Virtual Appliance Scale Unit.
14193	BundledScaleUnit *string `json:"bundledScaleUnit,omitempty"`
14194
14195	// Virtual Appliance Version.
14196	MarketPlaceVersion *string `json:"marketPlaceVersion,omitempty"`
14197
14198	// Virtual Appliance Vendor.
14199	Vendor *string `json:"vendor,omitempty"`
14200}
14201
14202// VirtualApplianceSKUsGetOptions contains the optional parameters for the VirtualApplianceSKUs.Get method.
14203type VirtualApplianceSKUsGetOptions struct {
14204	// placeholder for future optional parameters
14205}
14206
14207// VirtualApplianceSKUsListOptions contains the optional parameters for the VirtualApplianceSKUs.List method.
14208type VirtualApplianceSKUsListOptions struct {
14209	// placeholder for future optional parameters
14210}
14211
14212// Virtual Appliance Site resource.
14213type VirtualApplianceSite struct {
14214	SubResource
14215	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14216	Etag *string `json:"etag,omitempty" azure:"ro"`
14217
14218	// Name of the virtual appliance site.
14219	Name *string `json:"name,omitempty"`
14220
14221	// The properties of the Virtual Appliance Sites.
14222	Properties *VirtualApplianceSiteProperties `json:"properties,omitempty"`
14223
14224	// READ-ONLY; Site type.
14225	Type *string `json:"type,omitempty" azure:"ro"`
14226}
14227
14228// VirtualApplianceSitePollerResponse is the response envelope for operations that asynchronously return a VirtualApplianceSite type.
14229type VirtualApplianceSitePollerResponse struct {
14230	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
14231	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualApplianceSiteResponse, error)
14232
14233	// Poller contains an initialized poller.
14234	Poller VirtualApplianceSitePoller
14235
14236	// RawResponse contains the underlying HTTP response.
14237	RawResponse *http.Response
14238}
14239
14240// Properties of the rule group.
14241type VirtualApplianceSiteProperties struct {
14242	// Address Prefix.
14243	AddressPrefix *string `json:"addressPrefix,omitempty"`
14244
14245	// Office 365 Policy.
14246	O365Policy *Office365PolicyProperties `json:"o365Policy,omitempty"`
14247
14248	// READ-ONLY; The provisioning state of the resource.
14249	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
14250}
14251
14252// VirtualApplianceSiteResponse is the response envelope for operations that return a VirtualApplianceSite type.
14253type VirtualApplianceSiteResponse struct {
14254	// RawResponse contains the underlying HTTP response.
14255	RawResponse *http.Response
14256
14257	// Virtual Appliance Site resource.
14258	VirtualApplianceSite *VirtualApplianceSite
14259}
14260
14261// VirtualApplianceSitesBeginCreateOrUpdateOptions contains the optional parameters for the VirtualApplianceSites.BeginCreateOrUpdate method.
14262type VirtualApplianceSitesBeginCreateOrUpdateOptions struct {
14263	// placeholder for future optional parameters
14264}
14265
14266// VirtualApplianceSitesBeginDeleteOptions contains the optional parameters for the VirtualApplianceSites.BeginDelete method.
14267type VirtualApplianceSitesBeginDeleteOptions struct {
14268	// placeholder for future optional parameters
14269}
14270
14271// VirtualApplianceSitesGetOptions contains the optional parameters for the VirtualApplianceSites.Get method.
14272type VirtualApplianceSitesGetOptions struct {
14273	// placeholder for future optional parameters
14274}
14275
14276// VirtualApplianceSitesListOptions contains the optional parameters for the VirtualApplianceSites.List method.
14277type VirtualApplianceSitesListOptions struct {
14278	// placeholder for future optional parameters
14279}
14280
14281// VirtualHub Resource.
14282type VirtualHub struct {
14283	Resource
14284	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14285	Etag *string `json:"etag,omitempty" azure:"ro"`
14286
14287	// Properties of the virtual hub.
14288	Properties *VirtualHubProperties `json:"properties,omitempty"`
14289}
14290
14291// VirtualHubBgpConnectionBeginCreateOrUpdateOptions contains the optional parameters for the VirtualHubBgpConnection.BeginCreateOrUpdate method.
14292type VirtualHubBgpConnectionBeginCreateOrUpdateOptions struct {
14293	// placeholder for future optional parameters
14294}
14295
14296// VirtualHubBgpConnectionBeginDeleteOptions contains the optional parameters for the VirtualHubBgpConnection.BeginDelete method.
14297type VirtualHubBgpConnectionBeginDeleteOptions struct {
14298	// placeholder for future optional parameters
14299}
14300
14301// VirtualHubBgpConnectionGetOptions contains the optional parameters for the VirtualHubBgpConnection.Get method.
14302type VirtualHubBgpConnectionGetOptions struct {
14303	// placeholder for future optional parameters
14304}
14305
14306// VirtualHubBgpConnectionsBeginListAdvertisedRoutesOptions contains the optional parameters for the VirtualHubBgpConnections.BeginListAdvertisedRoutes
14307// method.
14308type VirtualHubBgpConnectionsBeginListAdvertisedRoutesOptions struct {
14309	// placeholder for future optional parameters
14310}
14311
14312// VirtualHubBgpConnectionsBeginListLearnedRoutesOptions contains the optional parameters for the VirtualHubBgpConnections.BeginListLearnedRoutes method.
14313type VirtualHubBgpConnectionsBeginListLearnedRoutesOptions struct {
14314	// placeholder for future optional parameters
14315}
14316
14317// VirtualHubBgpConnectionsListOptions contains the optional parameters for the VirtualHubBgpConnections.List method.
14318type VirtualHubBgpConnectionsListOptions struct {
14319	// placeholder for future optional parameters
14320}
14321
14322// The effective route configured on the virtual hub or specified resource.
14323type VirtualHubEffectiveRoute struct {
14324	// The list of address prefixes.
14325	AddressPrefixes *[]string `json:"addressPrefixes,omitempty"`
14326
14327	// The ASPath of this route.
14328	AsPath *string `json:"asPath,omitempty"`
14329
14330	// The type of the next hop.
14331	NextHopType *string `json:"nextHopType,omitempty"`
14332
14333	// The list of next hops.
14334	NextHops *[]string `json:"nextHops,omitempty"`
14335
14336	// The origin of this route.
14337	RouteOrigin *string `json:"routeOrigin,omitempty"`
14338}
14339
14340// EffectiveRoutes List.
14341type VirtualHubEffectiveRouteList struct {
14342	// The list of effective routes configured on the virtual hub or the specified resource.
14343	Value *[]VirtualHubEffectiveRoute `json:"value,omitempty"`
14344}
14345
14346// Virtual Hub identifier.
14347type VirtualHubID struct {
14348	// The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource
14349	// reside in the same subscription.
14350	ID *string `json:"id,omitempty"`
14351}
14352
14353// VirtualHubIPConfigurationBeginCreateOrUpdateOptions contains the optional parameters for the VirtualHubIPConfiguration.BeginCreateOrUpdate method.
14354type VirtualHubIPConfigurationBeginCreateOrUpdateOptions struct {
14355	// placeholder for future optional parameters
14356}
14357
14358// VirtualHubIPConfigurationBeginDeleteOptions contains the optional parameters for the VirtualHubIPConfiguration.BeginDelete method.
14359type VirtualHubIPConfigurationBeginDeleteOptions struct {
14360	// placeholder for future optional parameters
14361}
14362
14363// VirtualHubIPConfigurationGetOptions contains the optional parameters for the VirtualHubIPConfiguration.Get method.
14364type VirtualHubIPConfigurationGetOptions struct {
14365	// placeholder for future optional parameters
14366}
14367
14368// VirtualHubIPConfigurationListOptions contains the optional parameters for the VirtualHubIPConfiguration.List method.
14369type VirtualHubIPConfigurationListOptions struct {
14370	// placeholder for future optional parameters
14371}
14372
14373// VirtualHubPollerResponse is the response envelope for operations that asynchronously return a VirtualHub type.
14374type VirtualHubPollerResponse struct {
14375	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
14376	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualHubResponse, error)
14377
14378	// Poller contains an initialized poller.
14379	Poller VirtualHubPoller
14380
14381	// RawResponse contains the underlying HTTP response.
14382	RawResponse *http.Response
14383}
14384
14385// Parameters for VirtualHub.
14386type VirtualHubProperties struct {
14387	// Address-prefix for this VirtualHub.
14388	AddressPrefix *string `json:"addressPrefix,omitempty"`
14389
14390	// Flag to control transit for VirtualRouter hub.
14391	AllowBranchToBranchTraffic *bool `json:"allowBranchToBranchTraffic,omitempty"`
14392
14393	// The azureFirewall associated with this VirtualHub.
14394	AzureFirewall *SubResource `json:"azureFirewall,omitempty"`
14395
14396	// READ-ONLY; List of references to Bgp Connections.
14397	BgpConnections *[]SubResource `json:"bgpConnections,omitempty" azure:"ro"`
14398
14399	// The expressRouteGateway associated with this VirtualHub.
14400	ExpressRouteGateway *SubResource `json:"expressRouteGateway,omitempty"`
14401
14402	// READ-ONLY; List of references to IpConfigurations.
14403	IPConfigurations *[]SubResource `json:"ipConfigurations,omitempty" azure:"ro"`
14404
14405	// The P2SVpnGateway associated with this VirtualHub.
14406	P2SVpnGateway *SubResource `json:"p2SVpnGateway,omitempty"`
14407
14408	// READ-ONLY; The provisioning state of the virtual hub resource.
14409	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
14410
14411	// The routeTable associated with this virtual hub.
14412	RouteTable *VirtualHubRouteTable `json:"routeTable,omitempty"`
14413
14414	// READ-ONLY; The routing state.
14415	RoutingState *RoutingState `json:"routingState,omitempty" azure:"ro"`
14416
14417	// The sku of this VirtualHub.
14418	SKU *string `json:"sku,omitempty"`
14419
14420	// The securityPartnerProvider associated with this VirtualHub.
14421	SecurityPartnerProvider *SubResource `json:"securityPartnerProvider,omitempty"`
14422
14423	// The Security Provider name.
14424	SecurityProviderName *string `json:"securityProviderName,omitempty"`
14425
14426	// List of all virtual hub route table v2s associated with this VirtualHub.
14427	VirtualHubRouteTableV2S *[]VirtualHubRouteTableV2 `json:"virtualHubRouteTableV2s,omitempty"`
14428
14429	// VirtualRouter ASN.
14430	VirtualRouterAsn *int64 `json:"virtualRouterAsn,omitempty"`
14431
14432	// VirtualRouter IPs.
14433	VirtualRouterIPs *[]string `json:"virtualRouterIps,omitempty"`
14434
14435	// The VirtualWAN to which the VirtualHub belongs.
14436	VirtualWan *SubResource `json:"virtualWan,omitempty"`
14437
14438	// The VpnGateway associated with this VirtualHub.
14439	VpnGateway *SubResource `json:"vpnGateway,omitempty"`
14440}
14441
14442// VirtualHubResponse is the response envelope for operations that return a VirtualHub type.
14443type VirtualHubResponse struct {
14444	// RawResponse contains the underlying HTTP response.
14445	RawResponse *http.Response
14446
14447	// VirtualHub Resource.
14448	VirtualHub *VirtualHub
14449}
14450
14451// VirtualHub route.
14452type VirtualHubRoute struct {
14453	// List of all addressPrefixes.
14454	AddressPrefixes *[]string `json:"addressPrefixes,omitempty"`
14455
14456	// NextHop ip address.
14457	NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"`
14458}
14459
14460// VirtualHub route table.
14461type VirtualHubRouteTable struct {
14462	// List of all routes.
14463	Routes *[]VirtualHubRoute `json:"routes,omitempty"`
14464}
14465
14466// VirtualHubRouteTableV2 Resource.
14467type VirtualHubRouteTableV2 struct {
14468	SubResource
14469	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14470	Etag *string `json:"etag,omitempty" azure:"ro"`
14471
14472	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
14473	Name *string `json:"name,omitempty"`
14474
14475	// Properties of the virtual hub route table v2.
14476	Properties *VirtualHubRouteTableV2Properties `json:"properties,omitempty"`
14477}
14478
14479// VirtualHubRouteTableV2PollerResponse is the response envelope for operations that asynchronously return a VirtualHubRouteTableV2 type.
14480type VirtualHubRouteTableV2PollerResponse struct {
14481	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
14482	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualHubRouteTableV2Response, error)
14483
14484	// Poller contains an initialized poller.
14485	Poller VirtualHubRouteTableV2Poller
14486
14487	// RawResponse contains the underlying HTTP response.
14488	RawResponse *http.Response
14489}
14490
14491// Parameters for VirtualHubRouteTableV2.
14492type VirtualHubRouteTableV2Properties struct {
14493	// List of all connections attached to this route table v2.
14494	AttachedConnections *[]string `json:"attachedConnections,omitempty"`
14495
14496	// READ-ONLY; The provisioning state of the virtual hub route table v2 resource.
14497	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
14498
14499	// List of all routes.
14500	Routes *[]VirtualHubRouteV2 `json:"routes,omitempty"`
14501}
14502
14503// VirtualHubRouteTableV2Response is the response envelope for operations that return a VirtualHubRouteTableV2 type.
14504type VirtualHubRouteTableV2Response struct {
14505	// RawResponse contains the underlying HTTP response.
14506	RawResponse *http.Response
14507
14508	// VirtualHubRouteTableV2 Resource.
14509	VirtualHubRouteTableV2 *VirtualHubRouteTableV2
14510}
14511
14512// VirtualHubRouteTableV2SBeginCreateOrUpdateOptions contains the optional parameters for the VirtualHubRouteTableV2S.BeginCreateOrUpdate method.
14513type VirtualHubRouteTableV2SBeginCreateOrUpdateOptions struct {
14514	// placeholder for future optional parameters
14515}
14516
14517// VirtualHubRouteTableV2SBeginDeleteOptions contains the optional parameters for the VirtualHubRouteTableV2S.BeginDelete method.
14518type VirtualHubRouteTableV2SBeginDeleteOptions struct {
14519	// placeholder for future optional parameters
14520}
14521
14522// VirtualHubRouteTableV2SGetOptions contains the optional parameters for the VirtualHubRouteTableV2S.Get method.
14523type VirtualHubRouteTableV2SGetOptions struct {
14524	// placeholder for future optional parameters
14525}
14526
14527// VirtualHubRouteTableV2SListOptions contains the optional parameters for the VirtualHubRouteTableV2S.List method.
14528type VirtualHubRouteTableV2SListOptions struct {
14529	// placeholder for future optional parameters
14530}
14531
14532// VirtualHubRouteTableV2 route.
14533type VirtualHubRouteV2 struct {
14534	// The type of destinations.
14535	DestinationType *string `json:"destinationType,omitempty"`
14536
14537	// List of all destinations.
14538	Destinations *[]string `json:"destinations,omitempty"`
14539
14540	// The type of next hops.
14541	NextHopType *string `json:"nextHopType,omitempty"`
14542
14543	// NextHops ip address.
14544	NextHops *[]string `json:"nextHops,omitempty"`
14545}
14546
14547// VirtualHubsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualHubs.BeginCreateOrUpdate method.
14548type VirtualHubsBeginCreateOrUpdateOptions struct {
14549	// placeholder for future optional parameters
14550}
14551
14552// VirtualHubsBeginDeleteOptions contains the optional parameters for the VirtualHubs.BeginDelete method.
14553type VirtualHubsBeginDeleteOptions struct {
14554	// placeholder for future optional parameters
14555}
14556
14557// VirtualHubsBeginGetEffectiveVirtualHubRoutesOptions contains the optional parameters for the VirtualHubs.BeginGetEffectiveVirtualHubRoutes method.
14558type VirtualHubsBeginGetEffectiveVirtualHubRoutesOptions struct {
14559	// Parameters supplied to get the effective routes for a specific resource.
14560	EffectiveRoutesParameters *EffectiveRoutesParameters
14561}
14562
14563// VirtualHubsGetOptions contains the optional parameters for the VirtualHubs.Get method.
14564type VirtualHubsGetOptions struct {
14565	// placeholder for future optional parameters
14566}
14567
14568// VirtualHubsListByResourceGroupOptions contains the optional parameters for the VirtualHubs.ListByResourceGroup method.
14569type VirtualHubsListByResourceGroupOptions struct {
14570	// placeholder for future optional parameters
14571}
14572
14573// VirtualHubsListOptions contains the optional parameters for the VirtualHubs.List method.
14574type VirtualHubsListOptions struct {
14575	// placeholder for future optional parameters
14576}
14577
14578// VirtualHubsUpdateTagsOptions contains the optional parameters for the VirtualHubs.UpdateTags method.
14579type VirtualHubsUpdateTagsOptions struct {
14580	// placeholder for future optional parameters
14581}
14582
14583// Virtual Network resource.
14584type VirtualNetwork struct {
14585	Resource
14586	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14587	Etag *string `json:"etag,omitempty" azure:"ro"`
14588
14589	// The extended location of the virtual network.
14590	ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"`
14591
14592	// Properties of the virtual network.
14593	Properties *VirtualNetworkPropertiesFormat `json:"properties,omitempty"`
14594}
14595
14596// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET.
14597type VirtualNetworkBgpCommunities struct {
14598	// READ-ONLY; The BGP community associated with the region of the virtual network.
14599	RegionalCommunity *string `json:"regionalCommunity,omitempty" azure:"ro"`
14600
14601	// The BGP community associated with the virtual network.
14602	VirtualNetworkCommunity *string `json:"virtualNetworkCommunity,omitempty"`
14603}
14604
14605// A reference to VirtualNetworkGateway or LocalNetworkGateway resource.
14606type VirtualNetworkConnectionGatewayReference struct {
14607	// The ID of VirtualNetworkGateway or LocalNetworkGateway resource.
14608	ID *string `json:"id,omitempty"`
14609}
14610
14611// A common class for general resource information.
14612type VirtualNetworkGateway struct {
14613	Resource
14614	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14615	Etag *string `json:"etag,omitempty" azure:"ro"`
14616
14617	// Properties of the virtual network gateway.
14618	Properties *VirtualNetworkGatewayPropertiesFormat `json:"properties,omitempty"`
14619}
14620
14621// A common class for general resource information.
14622type VirtualNetworkGatewayConnection struct {
14623	Resource
14624	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14625	Etag *string `json:"etag,omitempty" azure:"ro"`
14626
14627	// Properties of the virtual network gateway connection.
14628	Properties *VirtualNetworkGatewayConnectionPropertiesFormat `json:"properties,omitempty"`
14629}
14630
14631// A common class for general resource information.
14632type VirtualNetworkGatewayConnectionListEntity struct {
14633	Resource
14634	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14635	Etag *string `json:"etag,omitempty" azure:"ro"`
14636
14637	// Properties of the virtual network gateway connection.
14638	Properties *VirtualNetworkGatewayConnectionListEntityPropertiesFormat `json:"properties,omitempty"`
14639}
14640
14641// VirtualNetworkGatewayConnection properties.
14642type VirtualNetworkGatewayConnectionListEntityPropertiesFormat struct {
14643	// The authorizationKey.
14644	AuthorizationKey *string `json:"authorizationKey,omitempty"`
14645
14646	// The connection mode for this connection.
14647	ConnectionMode *VirtualNetworkGatewayConnectionMode `json:"connectionMode,omitempty"`
14648
14649	// Connection protocol used for this connection.
14650	ConnectionProtocol *VirtualNetworkGatewayConnectionProtocol `json:"connectionProtocol,omitempty"`
14651
14652	// READ-ONLY; Virtual Network Gateway connection status.
14653	ConnectionStatus *VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty" azure:"ro"`
14654
14655	// Gateway connection type.
14656	ConnectionType *VirtualNetworkGatewayConnectionType `json:"connectionType,omitempty"`
14657
14658	// READ-ONLY; The egress bytes transferred in this connection.
14659	EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty" azure:"ro"`
14660
14661	// EnableBgp flag.
14662	EnableBgp *bool `json:"enableBgp,omitempty"`
14663
14664	// Bypass ExpressRoute Gateway for data forwarding.
14665	ExpressRouteGatewayBypass *bool `json:"expressRouteGatewayBypass,omitempty"`
14666
14667	// The IPSec Policies to be considered by this connection.
14668	IPsecPolicies *[]IPsecPolicy `json:"ipsecPolicies,omitempty"`
14669
14670	// READ-ONLY; The ingress bytes transferred in this connection.
14671	IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty" azure:"ro"`
14672
14673	// The reference to local network gateway resource.
14674	LocalNetworkGateway2 *VirtualNetworkConnectionGatewayReference `json:"localNetworkGateway2,omitempty"`
14675
14676	// The reference to peerings resource.
14677	Peer *SubResource `json:"peer,omitempty"`
14678
14679	// READ-ONLY; The provisioning state of the virtual network gateway connection resource.
14680	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
14681
14682	// READ-ONLY; The resource GUID property of the virtual network gateway connection resource.
14683	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
14684
14685	// The routing weight.
14686	RoutingWeight *int32 `json:"routingWeight,omitempty"`
14687
14688	// The IPSec shared key.
14689	SharedKey *string `json:"sharedKey,omitempty"`
14690
14691	// The Traffic Selector Policies to be considered by this connection.
14692	TrafficSelectorPolicies *[]TrafficSelectorPolicy `json:"trafficSelectorPolicies,omitempty"`
14693
14694	// READ-ONLY; Collection of all tunnels' connection health status.
14695	TunnelConnectionStatus *[]TunnelConnectionHealth `json:"tunnelConnectionStatus,omitempty" azure:"ro"`
14696
14697	// Enable policy-based traffic selectors.
14698	UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"`
14699
14700	// The reference to virtual network gateway resource.
14701	VirtualNetworkGateway1 *VirtualNetworkConnectionGatewayReference `json:"virtualNetworkGateway1,omitempty"`
14702
14703	// The reference to virtual network gateway resource.
14704	VirtualNetworkGateway2 *VirtualNetworkConnectionGatewayReference `json:"virtualNetworkGateway2,omitempty"`
14705}
14706
14707// Response for the ListVirtualNetworkGatewayConnections API service call.
14708type VirtualNetworkGatewayConnectionListResult struct {
14709	// READ-ONLY; The URL to get the next set of results.
14710	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
14711
14712	// A list of VirtualNetworkGatewayConnection resources that exists in a resource group.
14713	Value *[]VirtualNetworkGatewayConnection `json:"value,omitempty"`
14714}
14715
14716// VirtualNetworkGatewayConnectionListResultResponse is the response envelope for operations that return a VirtualNetworkGatewayConnectionListResult type.
14717type VirtualNetworkGatewayConnectionListResultResponse struct {
14718	// RawResponse contains the underlying HTTP response.
14719	RawResponse *http.Response
14720
14721	// Response for the ListVirtualNetworkGatewayConnections API service call.
14722	VirtualNetworkGatewayConnectionListResult *VirtualNetworkGatewayConnectionListResult
14723}
14724
14725// VirtualNetworkGatewayConnectionPollerResponse is the response envelope for operations that asynchronously return a VirtualNetworkGatewayConnection type.
14726type VirtualNetworkGatewayConnectionPollerResponse struct {
14727	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
14728	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualNetworkGatewayConnectionResponse, error)
14729
14730	// Poller contains an initialized poller.
14731	Poller VirtualNetworkGatewayConnectionPoller
14732
14733	// RawResponse contains the underlying HTTP response.
14734	RawResponse *http.Response
14735}
14736
14737// VirtualNetworkGatewayConnection properties.
14738type VirtualNetworkGatewayConnectionPropertiesFormat struct {
14739	// The authorizationKey.
14740	AuthorizationKey *string `json:"authorizationKey,omitempty"`
14741
14742	// The connection mode for this connection.
14743	ConnectionMode *VirtualNetworkGatewayConnectionMode `json:"connectionMode,omitempty"`
14744
14745	// Connection protocol used for this connection.
14746	ConnectionProtocol *VirtualNetworkGatewayConnectionProtocol `json:"connectionProtocol,omitempty"`
14747
14748	// READ-ONLY; Virtual Network Gateway connection status.
14749	ConnectionStatus *VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty" azure:"ro"`
14750
14751	// Gateway connection type.
14752	ConnectionType *VirtualNetworkGatewayConnectionType `json:"connectionType,omitempty"`
14753
14754	// The dead peer detection timeout of this connection in seconds.
14755	DpdTimeoutSeconds *int32 `json:"dpdTimeoutSeconds,omitempty"`
14756
14757	// READ-ONLY; The egress bytes transferred in this connection.
14758	EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty" azure:"ro"`
14759
14760	// EnableBgp flag.
14761	EnableBgp *bool `json:"enableBgp,omitempty"`
14762
14763	// Bypass ExpressRoute Gateway for data forwarding.
14764	ExpressRouteGatewayBypass *bool `json:"expressRouteGatewayBypass,omitempty"`
14765
14766	// The IPSec Policies to be considered by this connection.
14767	IPsecPolicies *[]IPsecPolicy `json:"ipsecPolicies,omitempty"`
14768
14769	// READ-ONLY; The ingress bytes transferred in this connection.
14770	IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty" azure:"ro"`
14771
14772	// The reference to local network gateway resource.
14773	LocalNetworkGateway2 *LocalNetworkGateway `json:"localNetworkGateway2,omitempty"`
14774
14775	// The reference to peerings resource.
14776	Peer *SubResource `json:"peer,omitempty"`
14777
14778	// READ-ONLY; The provisioning state of the virtual network gateway connection resource.
14779	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
14780
14781	// READ-ONLY; The resource GUID property of the virtual network gateway connection resource.
14782	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
14783
14784	// The routing weight.
14785	RoutingWeight *int32 `json:"routingWeight,omitempty"`
14786
14787	// The IPSec shared key.
14788	SharedKey *string `json:"sharedKey,omitempty"`
14789
14790	// The Traffic Selector Policies to be considered by this connection.
14791	TrafficSelectorPolicies *[]TrafficSelectorPolicy `json:"trafficSelectorPolicies,omitempty"`
14792
14793	// READ-ONLY; Collection of all tunnels' connection health status.
14794	TunnelConnectionStatus *[]TunnelConnectionHealth `json:"tunnelConnectionStatus,omitempty" azure:"ro"`
14795
14796	// Use private local Azure IP for the connection.
14797	UseLocalAzureIPAddress *bool `json:"useLocalAzureIpAddress,omitempty"`
14798
14799	// Enable policy-based traffic selectors.
14800	UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"`
14801
14802	// The reference to virtual network gateway resource.
14803	VirtualNetworkGateway1 *VirtualNetworkGateway `json:"virtualNetworkGateway1,omitempty"`
14804
14805	// The reference to virtual network gateway resource.
14806	VirtualNetworkGateway2 *VirtualNetworkGateway `json:"virtualNetworkGateway2,omitempty"`
14807}
14808
14809// VirtualNetworkGatewayConnectionResponse is the response envelope for operations that return a VirtualNetworkGatewayConnection type.
14810type VirtualNetworkGatewayConnectionResponse struct {
14811	// RawResponse contains the underlying HTTP response.
14812	RawResponse *http.Response
14813
14814	// A common class for general resource information.
14815	VirtualNetworkGatewayConnection *VirtualNetworkGatewayConnection
14816}
14817
14818// VirtualNetworkGatewayConnectionsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualNetworkGatewayConnections.BeginCreateOrUpdate
14819// method.
14820type VirtualNetworkGatewayConnectionsBeginCreateOrUpdateOptions struct {
14821	// placeholder for future optional parameters
14822}
14823
14824// VirtualNetworkGatewayConnectionsBeginDeleteOptions contains the optional parameters for the VirtualNetworkGatewayConnections.BeginDelete method.
14825type VirtualNetworkGatewayConnectionsBeginDeleteOptions struct {
14826	// placeholder for future optional parameters
14827}
14828
14829// VirtualNetworkGatewayConnectionsBeginResetSharedKeyOptions contains the optional parameters for the VirtualNetworkGatewayConnections.BeginResetSharedKey
14830// method.
14831type VirtualNetworkGatewayConnectionsBeginResetSharedKeyOptions struct {
14832	// placeholder for future optional parameters
14833}
14834
14835// VirtualNetworkGatewayConnectionsBeginSetSharedKeyOptions contains the optional parameters for the VirtualNetworkGatewayConnections.BeginSetSharedKey
14836// method.
14837type VirtualNetworkGatewayConnectionsBeginSetSharedKeyOptions struct {
14838	// placeholder for future optional parameters
14839}
14840
14841// VirtualNetworkGatewayConnectionsBeginStartPacketCaptureOptions contains the optional parameters for the VirtualNetworkGatewayConnections.BeginStartPacketCapture
14842// method.
14843type VirtualNetworkGatewayConnectionsBeginStartPacketCaptureOptions struct {
14844	// Virtual network gateway packet capture parameters supplied to start packet capture on gateway connection.
14845	Parameters *VpnPacketCaptureStartParameters
14846}
14847
14848// VirtualNetworkGatewayConnectionsBeginStopPacketCaptureOptions contains the optional parameters for the VirtualNetworkGatewayConnections.BeginStopPacketCapture
14849// method.
14850type VirtualNetworkGatewayConnectionsBeginStopPacketCaptureOptions struct {
14851	// placeholder for future optional parameters
14852}
14853
14854// VirtualNetworkGatewayConnectionsBeginUpdateTagsOptions contains the optional parameters for the VirtualNetworkGatewayConnections.BeginUpdateTags method.
14855type VirtualNetworkGatewayConnectionsBeginUpdateTagsOptions struct {
14856	// placeholder for future optional parameters
14857}
14858
14859// VirtualNetworkGatewayConnectionsGetOptions contains the optional parameters for the VirtualNetworkGatewayConnections.Get method.
14860type VirtualNetworkGatewayConnectionsGetOptions struct {
14861	// placeholder for future optional parameters
14862}
14863
14864// VirtualNetworkGatewayConnectionsGetSharedKeyOptions contains the optional parameters for the VirtualNetworkGatewayConnections.GetSharedKey method.
14865type VirtualNetworkGatewayConnectionsGetSharedKeyOptions struct {
14866	// placeholder for future optional parameters
14867}
14868
14869// VirtualNetworkGatewayConnectionsListOptions contains the optional parameters for the VirtualNetworkGatewayConnections.List method.
14870type VirtualNetworkGatewayConnectionsListOptions struct {
14871	// placeholder for future optional parameters
14872}
14873
14874// IP configuration for virtual network gateway.
14875type VirtualNetworkGatewayIPConfiguration struct {
14876	SubResource
14877	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
14878	Etag *string `json:"etag,omitempty" azure:"ro"`
14879
14880	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
14881	Name *string `json:"name,omitempty"`
14882
14883	// Properties of the virtual network gateway ip configuration.
14884	Properties *VirtualNetworkGatewayIPConfigurationPropertiesFormat `json:"properties,omitempty"`
14885}
14886
14887// Properties of VirtualNetworkGatewayIPConfiguration.
14888type VirtualNetworkGatewayIPConfigurationPropertiesFormat struct {
14889	// READ-ONLY; Private IP Address for this gateway.
14890	PrivateIPAddress *string `json:"privateIPAddress,omitempty" azure:"ro"`
14891
14892	// The private IP address allocation method.
14893	PrivateIPAllocationMethod *IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"`
14894
14895	// READ-ONLY; The provisioning state of the virtual network gateway IP configuration resource.
14896	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
14897
14898	// The reference to the public IP resource.
14899	PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"`
14900
14901	// The reference to the subnet resource.
14902	Subnet *SubResource `json:"subnet,omitempty"`
14903}
14904
14905// Response for the VirtualNetworkGatewayListConnections API service call.
14906type VirtualNetworkGatewayListConnectionsResult struct {
14907	// READ-ONLY; The URL to get the next set of results.
14908	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
14909
14910	// A list of VirtualNetworkGatewayConnection resources that exists in a resource group.
14911	Value *[]VirtualNetworkGatewayConnectionListEntity `json:"value,omitempty"`
14912}
14913
14914// VirtualNetworkGatewayListConnectionsResultResponse is the response envelope for operations that return a VirtualNetworkGatewayListConnectionsResult type.
14915type VirtualNetworkGatewayListConnectionsResultResponse struct {
14916	// RawResponse contains the underlying HTTP response.
14917	RawResponse *http.Response
14918
14919	// Response for the VirtualNetworkGatewayListConnections API service call.
14920	VirtualNetworkGatewayListConnectionsResult *VirtualNetworkGatewayListConnectionsResult
14921}
14922
14923// Response for the ListVirtualNetworkGateways API service call.
14924type VirtualNetworkGatewayListResult struct {
14925	// READ-ONLY; The URL to get the next set of results.
14926	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
14927
14928	// A list of VirtualNetworkGateway resources that exists in a resource group.
14929	Value *[]VirtualNetworkGateway `json:"value,omitempty"`
14930}
14931
14932// VirtualNetworkGatewayListResultResponse is the response envelope for operations that return a VirtualNetworkGatewayListResult type.
14933type VirtualNetworkGatewayListResultResponse struct {
14934	// RawResponse contains the underlying HTTP response.
14935	RawResponse *http.Response
14936
14937	// Response for the ListVirtualNetworkGateways API service call.
14938	VirtualNetworkGatewayListResult *VirtualNetworkGatewayListResult
14939}
14940
14941// VirtualNetworkGatewayPollerResponse is the response envelope for operations that asynchronously return a VirtualNetworkGateway type.
14942type VirtualNetworkGatewayPollerResponse struct {
14943	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
14944	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualNetworkGatewayResponse, error)
14945
14946	// Poller contains an initialized poller.
14947	Poller VirtualNetworkGatewayPoller
14948
14949	// RawResponse contains the underlying HTTP response.
14950	RawResponse *http.Response
14951}
14952
14953// VirtualNetworkGateway properties.
14954type VirtualNetworkGatewayPropertiesFormat struct {
14955	// ActiveActive flag.
14956	Active *bool `json:"activeActive,omitempty"`
14957
14958	// Virtual network gateway's BGP speaker settings.
14959	BgpSettings *BgpSettings `json:"bgpSettings,omitempty"`
14960
14961	// The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and
14962	// VpnClient.
14963	CustomRoutes *AddressSpace `json:"customRoutes,omitempty"`
14964
14965	// Whether BGP is enabled for this virtual network gateway or not.
14966	EnableBgp *bool `json:"enableBgp,omitempty"`
14967
14968	// Whether dns forwarding is enabled or not.
14969	EnableDNSForwarding *bool `json:"enableDnsForwarding,omitempty"`
14970
14971	// Whether private IP needs to be enabled on this gateway for connections or not.
14972	EnablePrivateIPAddress *bool `json:"enablePrivateIpAddress,omitempty"`
14973
14974	// The extended location of type local virtual network gateway.
14975	ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"`
14976
14977	// The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing
14978	// default site setting.
14979	GatewayDefaultSite *SubResource `json:"gatewayDefaultSite,omitempty"`
14980
14981	// The type of this virtual network gateway.
14982	GatewayType *VirtualNetworkGatewayType `json:"gatewayType,omitempty"`
14983
14984	// IP configurations for virtual network gateway.
14985	IPConfigurations *[]VirtualNetworkGatewayIPConfiguration `json:"ipConfigurations,omitempty"`
14986
14987	// READ-ONLY; The IP address allocated by the gateway to which dns requests can be sent.
14988	InboundDNSForwardingEndpoint *string `json:"inboundDnsForwardingEndpoint,omitempty" azure:"ro"`
14989
14990	// READ-ONLY; The provisioning state of the virtual network gateway resource.
14991	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
14992
14993	// READ-ONLY; The resource GUID property of the virtual network gateway resource.
14994	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
14995
14996	// The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway.
14997	SKU *VirtualNetworkGatewaySKU `json:"sku,omitempty"`
14998
14999	// MAS FIJI customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet.
15000	VirtualNetworkExtendedLocationResourceID *string `json:"virtualNetworkExtendedLocationResourceId,omitempty"`
15001
15002	// The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations.
15003	VpnClientConfiguration *VpnClientConfiguration `json:"vpnClientConfiguration,omitempty"`
15004
15005	// The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN.
15006	VpnGatewayGeneration *VpnGatewayGeneration `json:"vpnGatewayGeneration,omitempty"`
15007
15008	// The type of this virtual network gateway.
15009	VpnType *VpnType `json:"vpnType,omitempty"`
15010}
15011
15012// VirtualNetworkGatewayResponse is the response envelope for operations that return a VirtualNetworkGateway type.
15013type VirtualNetworkGatewayResponse struct {
15014	// RawResponse contains the underlying HTTP response.
15015	RawResponse *http.Response
15016
15017	// A common class for general resource information.
15018	VirtualNetworkGateway *VirtualNetworkGateway
15019}
15020
15021// VirtualNetworkGatewaySku details.
15022type VirtualNetworkGatewaySKU struct {
15023	// READ-ONLY; The capacity.
15024	Capacity *int32 `json:"capacity,omitempty" azure:"ro"`
15025
15026	// Gateway SKU name.
15027	Name *VirtualNetworkGatewaySKUName `json:"name,omitempty"`
15028
15029	// Gateway SKU tier.
15030	Tier *VirtualNetworkGatewaySKUTier `json:"tier,omitempty"`
15031}
15032
15033// VirtualNetworkGatewaysBeginCreateOrUpdateOptions contains the optional parameters for the VirtualNetworkGateways.BeginCreateOrUpdate method.
15034type VirtualNetworkGatewaysBeginCreateOrUpdateOptions struct {
15035	// placeholder for future optional parameters
15036}
15037
15038// VirtualNetworkGatewaysBeginDeleteOptions contains the optional parameters for the VirtualNetworkGateways.BeginDelete method.
15039type VirtualNetworkGatewaysBeginDeleteOptions struct {
15040	// placeholder for future optional parameters
15041}
15042
15043// VirtualNetworkGatewaysBeginDisconnectVirtualNetworkGatewayVpnConnectionsOptions contains the optional parameters for the VirtualNetworkGateways.BeginDisconnectVirtualNetworkGatewayVpnConnections
15044// method.
15045type VirtualNetworkGatewaysBeginDisconnectVirtualNetworkGatewayVpnConnectionsOptions struct {
15046	// placeholder for future optional parameters
15047}
15048
15049// VirtualNetworkGatewaysBeginGenerateVpnProfileOptions contains the optional parameters for the VirtualNetworkGateways.BeginGenerateVpnProfile method.
15050type VirtualNetworkGatewaysBeginGenerateVpnProfileOptions struct {
15051	// placeholder for future optional parameters
15052}
15053
15054// VirtualNetworkGatewaysBeginGeneratevpnclientpackageOptions contains the optional parameters for the VirtualNetworkGateways.BeginGeneratevpnclientpackage
15055// method.
15056type VirtualNetworkGatewaysBeginGeneratevpnclientpackageOptions struct {
15057	// placeholder for future optional parameters
15058}
15059
15060// VirtualNetworkGatewaysBeginGetAdvertisedRoutesOptions contains the optional parameters for the VirtualNetworkGateways.BeginGetAdvertisedRoutes method.
15061type VirtualNetworkGatewaysBeginGetAdvertisedRoutesOptions struct {
15062	// placeholder for future optional parameters
15063}
15064
15065// VirtualNetworkGatewaysBeginGetBgpPeerStatusOptions contains the optional parameters for the VirtualNetworkGateways.BeginGetBgpPeerStatus method.
15066type VirtualNetworkGatewaysBeginGetBgpPeerStatusOptions struct {
15067	// The IP address of the peer to retrieve the status of.
15068	Peer *string
15069}
15070
15071// VirtualNetworkGatewaysBeginGetLearnedRoutesOptions contains the optional parameters for the VirtualNetworkGateways.BeginGetLearnedRoutes method.
15072type VirtualNetworkGatewaysBeginGetLearnedRoutesOptions struct {
15073	// placeholder for future optional parameters
15074}
15075
15076// VirtualNetworkGatewaysBeginGetVpnProfilePackageURLOptions contains the optional parameters for the VirtualNetworkGateways.BeginGetVpnProfilePackageURL
15077// method.
15078type VirtualNetworkGatewaysBeginGetVpnProfilePackageURLOptions struct {
15079	// placeholder for future optional parameters
15080}
15081
15082// VirtualNetworkGatewaysBeginGetVpnclientConnectionHealthOptions contains the optional parameters for the VirtualNetworkGateways.BeginGetVpnclientConnectionHealth
15083// method.
15084type VirtualNetworkGatewaysBeginGetVpnclientConnectionHealthOptions struct {
15085	// placeholder for future optional parameters
15086}
15087
15088// VirtualNetworkGatewaysBeginGetVpnclientIPsecParametersOptions contains the optional parameters for the VirtualNetworkGateways.BeginGetVpnclientIPsecParameters
15089// method.
15090type VirtualNetworkGatewaysBeginGetVpnclientIPsecParametersOptions struct {
15091	// placeholder for future optional parameters
15092}
15093
15094// VirtualNetworkGatewaysBeginResetOptions contains the optional parameters for the VirtualNetworkGateways.BeginReset method.
15095type VirtualNetworkGatewaysBeginResetOptions struct {
15096	// Virtual network gateway vip address supplied to the begin reset of the active-active feature enabled gateway.
15097	GatewayVip *string
15098}
15099
15100// VirtualNetworkGatewaysBeginResetVpnClientSharedKeyOptions contains the optional parameters for the VirtualNetworkGateways.BeginResetVpnClientSharedKey
15101// method.
15102type VirtualNetworkGatewaysBeginResetVpnClientSharedKeyOptions struct {
15103	// placeholder for future optional parameters
15104}
15105
15106// VirtualNetworkGatewaysBeginSetVpnclientIPsecParametersOptions contains the optional parameters for the VirtualNetworkGateways.BeginSetVpnclientIPsecParameters
15107// method.
15108type VirtualNetworkGatewaysBeginSetVpnclientIPsecParametersOptions struct {
15109	// placeholder for future optional parameters
15110}
15111
15112// VirtualNetworkGatewaysBeginStartPacketCaptureOptions contains the optional parameters for the VirtualNetworkGateways.BeginStartPacketCapture method.
15113type VirtualNetworkGatewaysBeginStartPacketCaptureOptions struct {
15114	// Virtual network gateway packet capture parameters supplied to start packet capture on gateway.
15115	Parameters *VpnPacketCaptureStartParameters
15116}
15117
15118// VirtualNetworkGatewaysBeginStopPacketCaptureOptions contains the optional parameters for the VirtualNetworkGateways.BeginStopPacketCapture method.
15119type VirtualNetworkGatewaysBeginStopPacketCaptureOptions struct {
15120	// placeholder for future optional parameters
15121}
15122
15123// VirtualNetworkGatewaysBeginUpdateTagsOptions contains the optional parameters for the VirtualNetworkGateways.BeginUpdateTags method.
15124type VirtualNetworkGatewaysBeginUpdateTagsOptions struct {
15125	// placeholder for future optional parameters
15126}
15127
15128// VirtualNetworkGatewaysGetOptions contains the optional parameters for the VirtualNetworkGateways.Get method.
15129type VirtualNetworkGatewaysGetOptions struct {
15130	// placeholder for future optional parameters
15131}
15132
15133// VirtualNetworkGatewaysListConnectionsOptions contains the optional parameters for the VirtualNetworkGateways.ListConnections method.
15134type VirtualNetworkGatewaysListConnectionsOptions struct {
15135	// placeholder for future optional parameters
15136}
15137
15138// VirtualNetworkGatewaysListOptions contains the optional parameters for the VirtualNetworkGateways.List method.
15139type VirtualNetworkGatewaysListOptions struct {
15140	// placeholder for future optional parameters
15141}
15142
15143// VirtualNetworkGatewaysSupportedVpnDevicesOptions contains the optional parameters for the VirtualNetworkGateways.SupportedVpnDevices method.
15144type VirtualNetworkGatewaysSupportedVpnDevicesOptions struct {
15145	// placeholder for future optional parameters
15146}
15147
15148// VirtualNetworkGatewaysVpnDeviceConfigurationScriptOptions contains the optional parameters for the VirtualNetworkGateways.VpnDeviceConfigurationScript
15149// method.
15150type VirtualNetworkGatewaysVpnDeviceConfigurationScriptOptions struct {
15151	// placeholder for future optional parameters
15152}
15153
15154// Response for the ListVirtualNetworks API service call.
15155type VirtualNetworkListResult struct {
15156	// The URL to get the next set of results.
15157	NextLink *string `json:"nextLink,omitempty"`
15158
15159	// A list of VirtualNetwork resources in a resource group.
15160	Value *[]VirtualNetwork `json:"value,omitempty"`
15161}
15162
15163// VirtualNetworkListResultResponse is the response envelope for operations that return a VirtualNetworkListResult type.
15164type VirtualNetworkListResultResponse struct {
15165	// RawResponse contains the underlying HTTP response.
15166	RawResponse *http.Response
15167
15168	// Response for the ListVirtualNetworks API service call.
15169	VirtualNetworkListResult *VirtualNetworkListResult
15170}
15171
15172// Response for the virtual networks GetUsage API service call.
15173type VirtualNetworkListUsageResult struct {
15174	// The URL to get the next set of results.
15175	NextLink *string `json:"nextLink,omitempty"`
15176
15177	// READ-ONLY; VirtualNetwork usage stats.
15178	Value *[]VirtualNetworkUsage `json:"value,omitempty" azure:"ro"`
15179}
15180
15181// VirtualNetworkListUsageResultResponse is the response envelope for operations that return a VirtualNetworkListUsageResult type.
15182type VirtualNetworkListUsageResultResponse struct {
15183	// RawResponse contains the underlying HTTP response.
15184	RawResponse *http.Response
15185
15186	// Response for the virtual networks GetUsage API service call.
15187	VirtualNetworkListUsageResult *VirtualNetworkListUsageResult
15188}
15189
15190// Peerings in a virtual network resource.
15191type VirtualNetworkPeering struct {
15192	SubResource
15193	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
15194	Etag *string `json:"etag,omitempty" azure:"ro"`
15195
15196	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
15197	Name *string `json:"name,omitempty"`
15198
15199	// Properties of the virtual network peering.
15200	Properties *VirtualNetworkPeeringPropertiesFormat `json:"properties,omitempty"`
15201}
15202
15203// Response for ListSubnets API service call. Retrieves all subnets that belong to a virtual network.
15204type VirtualNetworkPeeringListResult struct {
15205	// The URL to get the next set of results.
15206	NextLink *string `json:"nextLink,omitempty"`
15207
15208	// The peerings in a virtual network.
15209	Value *[]VirtualNetworkPeering `json:"value,omitempty"`
15210}
15211
15212// VirtualNetworkPeeringListResultResponse is the response envelope for operations that return a VirtualNetworkPeeringListResult type.
15213type VirtualNetworkPeeringListResultResponse struct {
15214	// RawResponse contains the underlying HTTP response.
15215	RawResponse *http.Response
15216
15217	// Response for ListSubnets API service call. Retrieves all subnets that belong to a virtual network.
15218	VirtualNetworkPeeringListResult *VirtualNetworkPeeringListResult
15219}
15220
15221// VirtualNetworkPeeringPollerResponse is the response envelope for operations that asynchronously return a VirtualNetworkPeering type.
15222type VirtualNetworkPeeringPollerResponse struct {
15223	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15224	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualNetworkPeeringResponse, error)
15225
15226	// Poller contains an initialized poller.
15227	Poller VirtualNetworkPeeringPoller
15228
15229	// RawResponse contains the underlying HTTP response.
15230	RawResponse *http.Response
15231}
15232
15233// Properties of the virtual network peering.
15234type VirtualNetworkPeeringPropertiesFormat struct {
15235	// Whether the forwarded traffic from the VMs in the local virtual network will be allowed/disallowed in remote virtual network.
15236	AllowForwardedTraffic *bool `json:"allowForwardedTraffic,omitempty"`
15237
15238	// If gateway links can be used in remote virtual networking to link to this virtual network.
15239	AllowGatewayTransit *bool `json:"allowGatewayTransit,omitempty"`
15240
15241	// Whether the VMs in the local virtual network space would be able to access the VMs in remote virtual network space.
15242	AllowVirtualNetworkAccess *bool `json:"allowVirtualNetworkAccess,omitempty"`
15243
15244	// The status of the virtual network peering.
15245	PeeringState *VirtualNetworkPeeringState `json:"peeringState,omitempty"`
15246
15247	// READ-ONLY; The provisioning state of the virtual network peering resource.
15248	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
15249
15250	// The reference to the remote virtual network address space.
15251	RemoteAddressSpace *AddressSpace `json:"remoteAddressSpace,omitempty"`
15252
15253	// The reference to the remote virtual network's Bgp Communities.
15254	RemoteBgpCommunities *VirtualNetworkBgpCommunities `json:"remoteBgpCommunities,omitempty"`
15255
15256	// The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the
15257	// preview and learn more
15258	// (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering).
15259	RemoteVirtualNetwork *SubResource `json:"remoteVirtualNetwork,omitempty"`
15260
15261	// If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network
15262	// will use gateways of remote virtual network
15263	// for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway.
15264	UseRemoteGateways *bool `json:"useRemoteGateways,omitempty"`
15265}
15266
15267// VirtualNetworkPeeringResponse is the response envelope for operations that return a VirtualNetworkPeering type.
15268type VirtualNetworkPeeringResponse struct {
15269	// RawResponse contains the underlying HTTP response.
15270	RawResponse *http.Response
15271
15272	// Peerings in a virtual network resource.
15273	VirtualNetworkPeering *VirtualNetworkPeering
15274}
15275
15276// VirtualNetworkPeeringsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualNetworkPeerings.BeginCreateOrUpdate method.
15277type VirtualNetworkPeeringsBeginCreateOrUpdateOptions struct {
15278	// placeholder for future optional parameters
15279}
15280
15281// VirtualNetworkPeeringsBeginDeleteOptions contains the optional parameters for the VirtualNetworkPeerings.BeginDelete method.
15282type VirtualNetworkPeeringsBeginDeleteOptions struct {
15283	// placeholder for future optional parameters
15284}
15285
15286// VirtualNetworkPeeringsGetOptions contains the optional parameters for the VirtualNetworkPeerings.Get method.
15287type VirtualNetworkPeeringsGetOptions struct {
15288	// placeholder for future optional parameters
15289}
15290
15291// VirtualNetworkPeeringsListOptions contains the optional parameters for the VirtualNetworkPeerings.List method.
15292type VirtualNetworkPeeringsListOptions struct {
15293	// placeholder for future optional parameters
15294}
15295
15296// VirtualNetworkPollerResponse is the response envelope for operations that asynchronously return a VirtualNetwork type.
15297type VirtualNetworkPollerResponse struct {
15298	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15299	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualNetworkResponse, error)
15300
15301	// Poller contains an initialized poller.
15302	Poller VirtualNetworkPoller
15303
15304	// RawResponse contains the underlying HTTP response.
15305	RawResponse *http.Response
15306}
15307
15308// Properties of the virtual network.
15309type VirtualNetworkPropertiesFormat struct {
15310	// The AddressSpace that contains an array of IP address ranges that can be used by subnets.
15311	AddressSpace *AddressSpace `json:"addressSpace,omitempty"`
15312
15313	// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET.
15314	BgpCommunities *VirtualNetworkBgpCommunities `json:"bgpCommunities,omitempty"`
15315
15316	// The DDoS protection plan associated with the virtual network.
15317	DdosProtectionPlan *SubResource `json:"ddosProtectionPlan,omitempty"`
15318
15319	// The dhcpOptions that contains an array of DNS servers available to VMs deployed in the virtual network.
15320	DhcpOptions *DhcpOptions `json:"dhcpOptions,omitempty"`
15321
15322	// Indicates if DDoS protection is enabled for all the protected resources in the virtual network. It requires a DDoS protection plan associated with the
15323	// resource.
15324	EnableDdosProtection *bool `json:"enableDdosProtection,omitempty"`
15325
15326	// Indicates if VM protection is enabled for all the subnets in the virtual network.
15327	EnableVMProtection *bool `json:"enableVmProtection,omitempty"`
15328
15329	// Array of IpAllocation which reference this VNET.
15330	IPAllocations *[]SubResource `json:"ipAllocations,omitempty"`
15331
15332	// READ-ONLY; The provisioning state of the virtual network resource.
15333	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
15334
15335	// READ-ONLY; The resourceGuid property of the Virtual Network resource.
15336	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
15337
15338	// A list of subnets in a Virtual Network.
15339	Subnets *[]Subnet `json:"subnets,omitempty"`
15340
15341	// A list of peerings in a Virtual Network.
15342	VirtualNetworkPeerings *[]VirtualNetworkPeering `json:"virtualNetworkPeerings,omitempty"`
15343}
15344
15345// VirtualNetworkResponse is the response envelope for operations that return a VirtualNetwork type.
15346type VirtualNetworkResponse struct {
15347	// RawResponse contains the underlying HTTP response.
15348	RawResponse *http.Response
15349
15350	// Virtual Network resource.
15351	VirtualNetwork *VirtualNetwork
15352}
15353
15354// Virtual Network Tap resource.
15355type VirtualNetworkTap struct {
15356	Resource
15357	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
15358	Etag *string `json:"etag,omitempty" azure:"ro"`
15359
15360	// Virtual Network Tap Properties.
15361	Properties *VirtualNetworkTapPropertiesFormat `json:"properties,omitempty"`
15362}
15363
15364// Response for ListVirtualNetworkTap API service call.
15365type VirtualNetworkTapListResult struct {
15366	// The URL to get the next set of results.
15367	NextLink *string `json:"nextLink,omitempty"`
15368
15369	// A list of VirtualNetworkTaps in a resource group.
15370	Value *[]VirtualNetworkTap `json:"value,omitempty"`
15371}
15372
15373// VirtualNetworkTapListResultResponse is the response envelope for operations that return a VirtualNetworkTapListResult type.
15374type VirtualNetworkTapListResultResponse struct {
15375	// RawResponse contains the underlying HTTP response.
15376	RawResponse *http.Response
15377
15378	// Response for ListVirtualNetworkTap API service call.
15379	VirtualNetworkTapListResult *VirtualNetworkTapListResult
15380}
15381
15382// VirtualNetworkTapPollerResponse is the response envelope for operations that asynchronously return a VirtualNetworkTap type.
15383type VirtualNetworkTapPollerResponse struct {
15384	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15385	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualNetworkTapResponse, error)
15386
15387	// Poller contains an initialized poller.
15388	Poller VirtualNetworkTapPoller
15389
15390	// RawResponse contains the underlying HTTP response.
15391	RawResponse *http.Response
15392}
15393
15394// Virtual Network Tap properties.
15395type VirtualNetworkTapPropertiesFormat struct {
15396	// The reference to the private IP address on the internal Load Balancer that will receive the tap.
15397	DestinationLoadBalancerFrontEndIPConfiguration *FrontendIPConfiguration `json:"destinationLoadBalancerFrontEndIPConfiguration,omitempty"`
15398
15399	// The reference to the private IP Address of the collector nic that will receive the tap.
15400	DestinationNetworkInterfaceIPConfiguration *NetworkInterfaceIPConfiguration `json:"destinationNetworkInterfaceIPConfiguration,omitempty"`
15401
15402	// The VXLAN destination port that will receive the tapped traffic.
15403	DestinationPort *int32 `json:"destinationPort,omitempty"`
15404
15405	// READ-ONLY; Specifies the list of resource IDs for the network interface IP configuration that needs to be tapped.
15406	NetworkInterfaceTapConfigurations *[]NetworkInterfaceTapConfiguration `json:"networkInterfaceTapConfigurations,omitempty" azure:"ro"`
15407
15408	// READ-ONLY; The provisioning state of the virtual network tap resource.
15409	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
15410
15411	// READ-ONLY; The resource GUID property of the virtual network tap resource.
15412	ResourceGUID *string `json:"resourceGuid,omitempty" azure:"ro"`
15413}
15414
15415// VirtualNetworkTapResponse is the response envelope for operations that return a VirtualNetworkTap type.
15416type VirtualNetworkTapResponse struct {
15417	// RawResponse contains the underlying HTTP response.
15418	RawResponse *http.Response
15419
15420	// Virtual Network Tap resource.
15421	VirtualNetworkTap *VirtualNetworkTap
15422}
15423
15424// VirtualNetworkTapsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualNetworkTaps.BeginCreateOrUpdate method.
15425type VirtualNetworkTapsBeginCreateOrUpdateOptions struct {
15426	// placeholder for future optional parameters
15427}
15428
15429// VirtualNetworkTapsBeginDeleteOptions contains the optional parameters for the VirtualNetworkTaps.BeginDelete method.
15430type VirtualNetworkTapsBeginDeleteOptions struct {
15431	// placeholder for future optional parameters
15432}
15433
15434// VirtualNetworkTapsGetOptions contains the optional parameters for the VirtualNetworkTaps.Get method.
15435type VirtualNetworkTapsGetOptions struct {
15436	// placeholder for future optional parameters
15437}
15438
15439// VirtualNetworkTapsListAllOptions contains the optional parameters for the VirtualNetworkTaps.ListAll method.
15440type VirtualNetworkTapsListAllOptions struct {
15441	// placeholder for future optional parameters
15442}
15443
15444// VirtualNetworkTapsListByResourceGroupOptions contains the optional parameters for the VirtualNetworkTaps.ListByResourceGroup method.
15445type VirtualNetworkTapsListByResourceGroupOptions struct {
15446	// placeholder for future optional parameters
15447}
15448
15449// VirtualNetworkTapsUpdateTagsOptions contains the optional parameters for the VirtualNetworkTaps.UpdateTags method.
15450type VirtualNetworkTapsUpdateTagsOptions struct {
15451	// placeholder for future optional parameters
15452}
15453
15454// Usage details for subnet.
15455type VirtualNetworkUsage struct {
15456	// READ-ONLY; Indicates number of IPs used from the Subnet.
15457	CurrentValue *float64 `json:"currentValue,omitempty" azure:"ro"`
15458
15459	// READ-ONLY; Subnet identifier.
15460	ID *string `json:"id,omitempty" azure:"ro"`
15461
15462	// READ-ONLY; Indicates the size of the subnet.
15463	Limit *float64 `json:"limit,omitempty" azure:"ro"`
15464
15465	// READ-ONLY; The name containing common and localized value for usage.
15466	Name *VirtualNetworkUsageName `json:"name,omitempty" azure:"ro"`
15467
15468	// READ-ONLY; Usage units. Returns 'Count'.
15469	Unit *string `json:"unit,omitempty" azure:"ro"`
15470}
15471
15472// Usage strings container.
15473type VirtualNetworkUsageName struct {
15474	// READ-ONLY; Localized subnet size and usage string.
15475	LocalizedValue *string `json:"localizedValue,omitempty" azure:"ro"`
15476
15477	// READ-ONLY; Subnet size and usage string.
15478	Value *string `json:"value,omitempty" azure:"ro"`
15479}
15480
15481// VirtualNetworksBeginCreateOrUpdateOptions contains the optional parameters for the VirtualNetworks.BeginCreateOrUpdate method.
15482type VirtualNetworksBeginCreateOrUpdateOptions struct {
15483	// placeholder for future optional parameters
15484}
15485
15486// VirtualNetworksBeginDeleteOptions contains the optional parameters for the VirtualNetworks.BeginDelete method.
15487type VirtualNetworksBeginDeleteOptions struct {
15488	// placeholder for future optional parameters
15489}
15490
15491// VirtualNetworksCheckIPAddressAvailabilityOptions contains the optional parameters for the VirtualNetworks.CheckIPAddressAvailability method.
15492type VirtualNetworksCheckIPAddressAvailabilityOptions struct {
15493	// placeholder for future optional parameters
15494}
15495
15496// VirtualNetworksGetOptions contains the optional parameters for the VirtualNetworks.Get method.
15497type VirtualNetworksGetOptions struct {
15498	// Expands referenced resources.
15499	Expand *string
15500}
15501
15502// VirtualNetworksListAllOptions contains the optional parameters for the VirtualNetworks.ListAll method.
15503type VirtualNetworksListAllOptions struct {
15504	// placeholder for future optional parameters
15505}
15506
15507// VirtualNetworksListOptions contains the optional parameters for the VirtualNetworks.List method.
15508type VirtualNetworksListOptions struct {
15509	// placeholder for future optional parameters
15510}
15511
15512// VirtualNetworksListUsageOptions contains the optional parameters for the VirtualNetworks.ListUsage method.
15513type VirtualNetworksListUsageOptions struct {
15514	// placeholder for future optional parameters
15515}
15516
15517// VirtualNetworksUpdateTagsOptions contains the optional parameters for the VirtualNetworks.UpdateTags method.
15518type VirtualNetworksUpdateTagsOptions struct {
15519	// placeholder for future optional parameters
15520}
15521
15522// VirtualRouter Resource.
15523type VirtualRouter struct {
15524	Resource
15525	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
15526	Etag *string `json:"etag,omitempty" azure:"ro"`
15527
15528	// Properties of the Virtual Router.
15529	Properties *VirtualRouterPropertiesFormat `json:"properties,omitempty"`
15530}
15531
15532// Response for ListVirtualRouters API service call.
15533type VirtualRouterListResult struct {
15534	// URL to get the next set of results.
15535	NextLink *string `json:"nextLink,omitempty"`
15536
15537	// List of Virtual Routers.
15538	Value *[]VirtualRouter `json:"value,omitempty"`
15539}
15540
15541// VirtualRouterListResultResponse is the response envelope for operations that return a VirtualRouterListResult type.
15542type VirtualRouterListResultResponse struct {
15543	// RawResponse contains the underlying HTTP response.
15544	RawResponse *http.Response
15545
15546	// Response for ListVirtualRouters API service call.
15547	VirtualRouterListResult *VirtualRouterListResult
15548}
15549
15550// Virtual Router Peering resource.
15551type VirtualRouterPeering struct {
15552	SubResource
15553	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
15554	Etag *string `json:"etag,omitempty" azure:"ro"`
15555
15556	// Name of the virtual router peering that is unique within a virtual router.
15557	Name *string `json:"name,omitempty"`
15558
15559	// The properties of the Virtual Router Peering.
15560	Properties *VirtualRouterPeeringProperties `json:"properties,omitempty"`
15561
15562	// READ-ONLY; Peering type.
15563	Type *string `json:"type,omitempty" azure:"ro"`
15564}
15565
15566// Response for ListVirtualRouterPeerings API service call.
15567type VirtualRouterPeeringListResult struct {
15568	// URL to get the next set of results.
15569	NextLink *string `json:"nextLink,omitempty"`
15570
15571	// List of VirtualRouterPeerings in a VirtualRouter.
15572	Value *[]VirtualRouterPeering `json:"value,omitempty"`
15573}
15574
15575// VirtualRouterPeeringListResultResponse is the response envelope for operations that return a VirtualRouterPeeringListResult type.
15576type VirtualRouterPeeringListResultResponse struct {
15577	// RawResponse contains the underlying HTTP response.
15578	RawResponse *http.Response
15579
15580	// Response for ListVirtualRouterPeerings API service call.
15581	VirtualRouterPeeringListResult *VirtualRouterPeeringListResult
15582}
15583
15584// VirtualRouterPeeringPollerResponse is the response envelope for operations that asynchronously return a VirtualRouterPeering type.
15585type VirtualRouterPeeringPollerResponse struct {
15586	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15587	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualRouterPeeringResponse, error)
15588
15589	// Poller contains an initialized poller.
15590	Poller VirtualRouterPeeringPoller
15591
15592	// RawResponse contains the underlying HTTP response.
15593	RawResponse *http.Response
15594}
15595
15596// Properties of the rule group.
15597type VirtualRouterPeeringProperties struct {
15598	// Peer ASN.
15599	PeerAsn *int64 `json:"peerAsn,omitempty"`
15600
15601	// Peer IP.
15602	PeerIP *string `json:"peerIp,omitempty"`
15603
15604	// READ-ONLY; The provisioning state of the resource.
15605	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
15606}
15607
15608// VirtualRouterPeeringResponse is the response envelope for operations that return a VirtualRouterPeering type.
15609type VirtualRouterPeeringResponse struct {
15610	// RawResponse contains the underlying HTTP response.
15611	RawResponse *http.Response
15612
15613	// Virtual Router Peering resource.
15614	VirtualRouterPeering *VirtualRouterPeering
15615}
15616
15617// VirtualRouterPeeringsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualRouterPeerings.BeginCreateOrUpdate method.
15618type VirtualRouterPeeringsBeginCreateOrUpdateOptions struct {
15619	// placeholder for future optional parameters
15620}
15621
15622// VirtualRouterPeeringsBeginDeleteOptions contains the optional parameters for the VirtualRouterPeerings.BeginDelete method.
15623type VirtualRouterPeeringsBeginDeleteOptions struct {
15624	// placeholder for future optional parameters
15625}
15626
15627// VirtualRouterPeeringsGetOptions contains the optional parameters for the VirtualRouterPeerings.Get method.
15628type VirtualRouterPeeringsGetOptions struct {
15629	// placeholder for future optional parameters
15630}
15631
15632// VirtualRouterPeeringsListOptions contains the optional parameters for the VirtualRouterPeerings.List method.
15633type VirtualRouterPeeringsListOptions struct {
15634	// placeholder for future optional parameters
15635}
15636
15637// VirtualRouterPollerResponse is the response envelope for operations that asynchronously return a VirtualRouter type.
15638type VirtualRouterPollerResponse struct {
15639	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15640	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualRouterResponse, error)
15641
15642	// Poller contains an initialized poller.
15643	Poller VirtualRouterPoller
15644
15645	// RawResponse contains the underlying HTTP response.
15646	RawResponse *http.Response
15647}
15648
15649// Virtual Router definition.
15650type VirtualRouterPropertiesFormat struct {
15651	// The Gateway on which VirtualRouter is hosted.
15652	HostedGateway *SubResource `json:"hostedGateway,omitempty"`
15653
15654	// The Subnet on which VirtualRouter is hosted.
15655	HostedSubnet *SubResource `json:"hostedSubnet,omitempty"`
15656
15657	// READ-ONLY; List of references to VirtualRouterPeerings.
15658	Peerings *[]SubResource `json:"peerings,omitempty" azure:"ro"`
15659
15660	// READ-ONLY; The provisioning state of the resource.
15661	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
15662
15663	// VirtualRouter ASN.
15664	VirtualRouterAsn *int64 `json:"virtualRouterAsn,omitempty"`
15665
15666	// VirtualRouter IPs.
15667	VirtualRouterIPs *[]string `json:"virtualRouterIps,omitempty"`
15668}
15669
15670// VirtualRouterResponse is the response envelope for operations that return a VirtualRouter type.
15671type VirtualRouterResponse struct {
15672	// RawResponse contains the underlying HTTP response.
15673	RawResponse *http.Response
15674
15675	// VirtualRouter Resource.
15676	VirtualRouter *VirtualRouter
15677}
15678
15679// VirtualRoutersBeginCreateOrUpdateOptions contains the optional parameters for the VirtualRouters.BeginCreateOrUpdate method.
15680type VirtualRoutersBeginCreateOrUpdateOptions struct {
15681	// placeholder for future optional parameters
15682}
15683
15684// VirtualRoutersBeginDeleteOptions contains the optional parameters for the VirtualRouters.BeginDelete method.
15685type VirtualRoutersBeginDeleteOptions struct {
15686	// placeholder for future optional parameters
15687}
15688
15689// VirtualRoutersGetOptions contains the optional parameters for the VirtualRouters.Get method.
15690type VirtualRoutersGetOptions struct {
15691	// Expands referenced resources.
15692	Expand *string
15693}
15694
15695// VirtualRoutersListByResourceGroupOptions contains the optional parameters for the VirtualRouters.ListByResourceGroup method.
15696type VirtualRoutersListByResourceGroupOptions struct {
15697	// placeholder for future optional parameters
15698}
15699
15700// VirtualRoutersListOptions contains the optional parameters for the VirtualRouters.List method.
15701type VirtualRoutersListOptions struct {
15702	// placeholder for future optional parameters
15703}
15704
15705// VirtualWAN Resource.
15706type VirtualWan struct {
15707	Resource
15708	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
15709	Etag *string `json:"etag,omitempty" azure:"ro"`
15710
15711	// Properties of the virtual WAN.
15712	Properties *VirtualWanProperties `json:"properties,omitempty"`
15713}
15714
15715// VirtualWanPollerResponse is the response envelope for operations that asynchronously return a VirtualWan type.
15716type VirtualWanPollerResponse struct {
15717	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15718	PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualWanResponse, error)
15719
15720	// Poller contains an initialized poller.
15721	Poller VirtualWanPoller
15722
15723	// RawResponse contains the underlying HTTP response.
15724	RawResponse *http.Response
15725}
15726
15727// Parameters for VirtualWAN.
15728type VirtualWanProperties struct {
15729	// True if branch to branch traffic is allowed.
15730	AllowBranchToBranchTraffic *bool `json:"allowBranchToBranchTraffic,omitempty"`
15731
15732	// True if Vnet to Vnet traffic is allowed.
15733	AllowVnetToVnetTraffic *bool `json:"allowVnetToVnetTraffic,omitempty"`
15734
15735	// Vpn encryption to be disabled or not.
15736	DisableVpnEncryption *bool `json:"disableVpnEncryption,omitempty"`
15737
15738	// READ-ONLY; The office local breakout category.
15739	Office365LocalBreakoutCategory *OfficeTrafficCategory `json:"office365LocalBreakoutCategory,omitempty" azure:"ro"`
15740
15741	// READ-ONLY; The provisioning state of the virtual WAN resource.
15742	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
15743
15744	// The type of the VirtualWAN.
15745	Type *string `json:"type,omitempty"`
15746
15747	// READ-ONLY; List of VirtualHubs in the VirtualWAN.
15748	VirtualHubs *[]SubResource `json:"virtualHubs,omitempty" azure:"ro"`
15749
15750	// READ-ONLY; List of VpnSites in the VirtualWAN.
15751	VpnSites *[]SubResource `json:"vpnSites,omitempty" azure:"ro"`
15752}
15753
15754// VirtualWanResponse is the response envelope for operations that return a VirtualWan type.
15755type VirtualWanResponse struct {
15756	// RawResponse contains the underlying HTTP response.
15757	RawResponse *http.Response
15758
15759	// VirtualWAN Resource.
15760	VirtualWan *VirtualWan
15761}
15762
15763// Collection of SecurityProviders.
15764type VirtualWanSecurityProvider struct {
15765	// Name of the security provider.
15766	Name *string `json:"name,omitempty"`
15767
15768	// READ-ONLY; Name of the security provider.
15769	Type *VirtualWanSecurityProviderType `json:"type,omitempty" azure:"ro"`
15770
15771	// Url of the security provider.
15772	URL *string `json:"url,omitempty"`
15773}
15774
15775// Collection of SecurityProviders.
15776type VirtualWanSecurityProviders struct {
15777	// List of VirtualWAN security providers.
15778	SupportedProviders *[]VirtualWanSecurityProvider `json:"supportedProviders,omitempty"`
15779}
15780
15781// VirtualWanSecurityProvidersResponse is the response envelope for operations that return a VirtualWanSecurityProviders type.
15782type VirtualWanSecurityProvidersResponse struct {
15783	// RawResponse contains the underlying HTTP response.
15784	RawResponse *http.Response
15785
15786	// Collection of SecurityProviders.
15787	VirtualWanSecurityProviders *VirtualWanSecurityProviders
15788}
15789
15790// Virtual Wan Vpn profile parameters Vpn profile generation.
15791type VirtualWanVpnProfileParameters struct {
15792	// VPN client authentication method.
15793	AuthenticationMethod *AuthenticationMethod `json:"authenticationMethod,omitempty"`
15794
15795	// VpnServerConfiguration partial resource uri with which VirtualWan is associated to.
15796	VpnServerConfigurationResourceID *string `json:"vpnServerConfigurationResourceId,omitempty"`
15797}
15798
15799// VirtualWansBeginCreateOrUpdateOptions contains the optional parameters for the VirtualWans.BeginCreateOrUpdate method.
15800type VirtualWansBeginCreateOrUpdateOptions struct {
15801	// placeholder for future optional parameters
15802}
15803
15804// VirtualWansBeginDeleteOptions contains the optional parameters for the VirtualWans.BeginDelete method.
15805type VirtualWansBeginDeleteOptions struct {
15806	// placeholder for future optional parameters
15807}
15808
15809// VirtualWansGetOptions contains the optional parameters for the VirtualWans.Get method.
15810type VirtualWansGetOptions struct {
15811	// placeholder for future optional parameters
15812}
15813
15814// VirtualWansListByResourceGroupOptions contains the optional parameters for the VirtualWans.ListByResourceGroup method.
15815type VirtualWansListByResourceGroupOptions struct {
15816	// placeholder for future optional parameters
15817}
15818
15819// VirtualWansListOptions contains the optional parameters for the VirtualWans.List method.
15820type VirtualWansListOptions struct {
15821	// placeholder for future optional parameters
15822}
15823
15824// VirtualWansUpdateTagsOptions contains the optional parameters for the VirtualWans.UpdateTags method.
15825type VirtualWansUpdateTagsOptions struct {
15826	// placeholder for future optional parameters
15827}
15828
15829// List of routes that control routing from VirtualHub into a virtual network connection.
15830type VnetRoute struct {
15831	// List of all Static Routes.
15832	StaticRoutes *[]StaticRoute `json:"staticRoutes,omitempty"`
15833}
15834
15835// VpnClientConfiguration for P2S client.
15836type VpnClientConfiguration struct {
15837	// The AADAudience property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication.
15838	AadAudience *string `json:"aadAudience,omitempty"`
15839
15840	// The AADIssuer property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication.
15841	AadIssuer *string `json:"aadIssuer,omitempty"`
15842
15843	// The AADTenant property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication.
15844	AadTenant *string `json:"aadTenant,omitempty"`
15845
15846	// The radius server address property of the VirtualNetworkGateway resource for vpn client connection.
15847	RadiusServerAddress *string `json:"radiusServerAddress,omitempty"`
15848
15849	// The radius secret property of the VirtualNetworkGateway resource for vpn client connection.
15850	RadiusServerSecret *string `json:"radiusServerSecret,omitempty"`
15851
15852	// The radiusServers property for multiple radius server configuration.
15853	RadiusServers *[]RadiusServer `json:"radiusServers,omitempty"`
15854
15855	// The reference to the address space resource which represents Address space for P2S VpnClient.
15856	VpnClientAddressPool *AddressSpace `json:"vpnClientAddressPool,omitempty"`
15857
15858	// VpnClientIpsecPolicies for virtual network gateway P2S client.
15859	VpnClientIPsecPolicies *[]IPsecPolicy `json:"vpnClientIpsecPolicies,omitempty"`
15860
15861	// VpnClientProtocols for Virtual network gateway.
15862	VpnClientProtocols *[]VpnClientProtocol `json:"vpnClientProtocols,omitempty"`
15863
15864	// VpnClientRevokedCertificate for Virtual network gateway.
15865	VpnClientRevokedCertificates *[]VpnClientRevokedCertificate `json:"vpnClientRevokedCertificates,omitempty"`
15866
15867	// VpnClientRootCertificate for virtual network gateway.
15868	VpnClientRootCertificates *[]VpnClientRootCertificate `json:"vpnClientRootCertificates,omitempty"`
15869}
15870
15871// VpnClientConnectionHealth properties.
15872type VpnClientConnectionHealth struct {
15873	// List of allocated ip addresses to the connected p2s vpn clients.
15874	AllocatedIPAddresses *[]string `json:"allocatedIpAddresses,omitempty"`
15875
15876	// READ-ONLY; Total of the Egress Bytes Transferred in this connection.
15877	TotalEgressBytesTransferred *int64 `json:"totalEgressBytesTransferred,omitempty" azure:"ro"`
15878
15879	// READ-ONLY; Total of the Ingress Bytes Transferred in this P2S Vpn connection.
15880	TotalIngressBytesTransferred *int64 `json:"totalIngressBytesTransferred,omitempty" azure:"ro"`
15881
15882	// The total of p2s vpn clients connected at this time to this P2SVpnGateway.
15883	VpnClientConnectionsCount *int32 `json:"vpnClientConnectionsCount,omitempty"`
15884}
15885
15886// VPN client connection health detail.
15887type VpnClientConnectionHealthDetail struct {
15888	// READ-ONLY; The egress bytes per second.
15889	EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty" azure:"ro"`
15890
15891	// READ-ONLY; The egress packets per second.
15892	EgressPacketsTransferred *int64 `json:"egressPacketsTransferred,omitempty" azure:"ro"`
15893
15894	// READ-ONLY; The ingress bytes per second.
15895	IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty" azure:"ro"`
15896
15897	// READ-ONLY; The ingress packets per second.
15898	IngressPacketsTransferred *int64 `json:"ingressPacketsTransferred,omitempty" azure:"ro"`
15899
15900	// READ-ONLY; The max band width.
15901	MaxBandwidth *int64 `json:"maxBandwidth,omitempty" azure:"ro"`
15902
15903	// READ-ONLY; The max packets transferred per second.
15904	MaxPacketsPerSecond *int64 `json:"maxPacketsPerSecond,omitempty" azure:"ro"`
15905
15906	// READ-ONLY; The assigned private Ip of a connected vpn client.
15907	PrivateIPAddress *string `json:"privateIpAddress,omitempty" azure:"ro"`
15908
15909	// READ-ONLY; The public Ip of a connected vpn client.
15910	PublicIPAddress *string `json:"publicIpAddress,omitempty" azure:"ro"`
15911
15912	// READ-ONLY; The duration time of a connected vpn client.
15913	VpnConnectionDuration *int64 `json:"vpnConnectionDuration,omitempty" azure:"ro"`
15914
15915	// READ-ONLY; The vpn client Id.
15916	VpnConnectionID *string `json:"vpnConnectionId,omitempty" azure:"ro"`
15917
15918	// READ-ONLY; The start time of a connected vpn client.
15919	VpnConnectionTime *string `json:"vpnConnectionTime,omitempty" azure:"ro"`
15920
15921	// READ-ONLY; The user name of a connected vpn client.
15922	VpnUserName *string `json:"vpnUserName,omitempty" azure:"ro"`
15923}
15924
15925// List of virtual network gateway vpn client connection health.
15926type VpnClientConnectionHealthDetailListResult struct {
15927	// List of vpn client connection health.
15928	Value *[]VpnClientConnectionHealthDetail `json:"value,omitempty"`
15929}
15930
15931// VpnClientConnectionHealthDetailListResultPollerResponse is the response envelope for operations that asynchronously return a VpnClientConnectionHealthDetailListResult
15932// type.
15933type VpnClientConnectionHealthDetailListResultPollerResponse struct {
15934	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15935	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnClientConnectionHealthDetailListResultResponse, error)
15936
15937	// Poller contains an initialized poller.
15938	Poller VpnClientConnectionHealthDetailListResultPoller
15939
15940	// RawResponse contains the underlying HTTP response.
15941	RawResponse *http.Response
15942}
15943
15944// VpnClientConnectionHealthDetailListResultResponse is the response envelope for operations that return a VpnClientConnectionHealthDetailListResult type.
15945type VpnClientConnectionHealthDetailListResultResponse struct {
15946	// RawResponse contains the underlying HTTP response.
15947	RawResponse *http.Response
15948
15949	// List of virtual network gateway vpn client connection health.
15950	VpnClientConnectionHealthDetailListResult *VpnClientConnectionHealthDetailListResult
15951}
15952
15953// An IPSec parameters for a virtual network gateway P2S connection.
15954type VpnClientIPsecParameters struct {
15955	// The DH Group used in IKE Phase 1 for initial SA.
15956	DhGroup *DhGroup `json:"dhGroup,omitempty"`
15957
15958	// The IPSec encryption algorithm (IKE phase 1).
15959	IPsecEncryption *IPsecEncryption `json:"ipsecEncryption,omitempty"`
15960
15961	// The IPSec integrity algorithm (IKE phase 1).
15962	IPsecIntegrity *IPsecIntegrity `json:"ipsecIntegrity,omitempty"`
15963
15964	// The IKE encryption algorithm (IKE phase 2).
15965	IkeEncryption *IkeEncryption `json:"ikeEncryption,omitempty"`
15966
15967	// The IKE integrity algorithm (IKE phase 2).
15968	IkeIntegrity *IkeIntegrity `json:"ikeIntegrity,omitempty"`
15969
15970	// The Pfs Group used in IKE Phase 2 for new child SA.
15971	PfsGroup *PfsGroup `json:"pfsGroup,omitempty"`
15972
15973	// The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for P2S client..
15974	SaDataSizeKilobytes *int32 `json:"saDataSizeKilobytes,omitempty"`
15975
15976	// The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for P2S client.
15977	SaLifeTimeSeconds *int32 `json:"saLifeTimeSeconds,omitempty"`
15978}
15979
15980// VpnClientIPsecParametersPollerResponse is the response envelope for operations that asynchronously return a VpnClientIPsecParameters type.
15981type VpnClientIPsecParametersPollerResponse struct {
15982	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
15983	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnClientIPsecParametersResponse, error)
15984
15985	// Poller contains an initialized poller.
15986	Poller VpnClientIPsecParametersPoller
15987
15988	// RawResponse contains the underlying HTTP response.
15989	RawResponse *http.Response
15990}
15991
15992// VpnClientIPsecParametersResponse is the response envelope for operations that return a VpnClientIPsecParameters type.
15993type VpnClientIPsecParametersResponse struct {
15994	// RawResponse contains the underlying HTTP response.
15995	RawResponse *http.Response
15996
15997	// An IPSec parameters for a virtual network gateway P2S connection.
15998	VpnClientIPsecParameters *VpnClientIPsecParameters
15999}
16000
16001// Vpn Client Parameters for package generation.
16002type VpnClientParameters struct {
16003	// VPN client authentication method.
16004	AuthenticationMethod *AuthenticationMethod `json:"authenticationMethod,omitempty"`
16005
16006	// A list of client root certificates public certificate data encoded as Base-64 strings. Optional parameter for external radius based authentication with
16007	// EAPTLS.
16008	ClientRootCertificates *[]string `json:"clientRootCertificates,omitempty"`
16009
16010	// VPN client Processor Architecture.
16011	ProcessorArchitecture *ProcessorArchitecture `json:"processorArchitecture,omitempty"`
16012
16013	// The public certificate data for the radius server authentication certificate as a Base-64 encoded string. Required only if external radius authentication
16014	// has been configured with EAPTLS
16015	// authentication.
16016	RadiusServerAuthCertificate *string `json:"radiusServerAuthCertificate,omitempty"`
16017}
16018
16019// VPN client revoked certificate of virtual network gateway.
16020type VpnClientRevokedCertificate struct {
16021	SubResource
16022	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16023	Etag *string `json:"etag,omitempty" azure:"ro"`
16024
16025	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
16026	Name *string `json:"name,omitempty"`
16027
16028	// Properties of the vpn client revoked certificate.
16029	Properties *VpnClientRevokedCertificatePropertiesFormat `json:"properties,omitempty"`
16030}
16031
16032// Properties of the revoked VPN client certificate of virtual network gateway.
16033type VpnClientRevokedCertificatePropertiesFormat struct {
16034	// READ-ONLY; The provisioning state of the VPN client revoked certificate resource.
16035	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16036
16037	// The revoked VPN client certificate thumbprint.
16038	Thumbprint *string `json:"thumbprint,omitempty"`
16039}
16040
16041// VPN client root certificate of virtual network gateway.
16042type VpnClientRootCertificate struct {
16043	SubResource
16044	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16045	Etag *string `json:"etag,omitempty" azure:"ro"`
16046
16047	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
16048	Name *string `json:"name,omitempty"`
16049
16050	// Properties of the vpn client root certificate.
16051	Properties *VpnClientRootCertificatePropertiesFormat `json:"properties,omitempty"`
16052}
16053
16054// Properties of SSL certificates of application gateway.
16055type VpnClientRootCertificatePropertiesFormat struct {
16056	// READ-ONLY; The provisioning state of the VPN client root certificate resource.
16057	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16058
16059	// The certificate public data.
16060	PublicCertData *string `json:"publicCertData,omitempty"`
16061}
16062
16063// VpnConnection Resource.
16064type VpnConnection struct {
16065	SubResource
16066	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16067	Etag *string `json:"etag,omitempty" azure:"ro"`
16068
16069	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
16070	Name *string `json:"name,omitempty"`
16071
16072	// Properties of the VPN connection.
16073	Properties *VpnConnectionProperties `json:"properties,omitempty"`
16074}
16075
16076// Vpn Connection packet capture parameters supplied to start packet capture on gateway connection.
16077type VpnConnectionPacketCaptureStartParameters struct {
16078	// Start Packet capture parameters on vpn connection.
16079	FilterData *string `json:"filterData,omitempty"`
16080
16081	// List of site link connection names.
16082	LinkConnectionNames *[]string `json:"linkConnectionNames,omitempty"`
16083}
16084
16085// Vpn Connection packet capture parameters supplied to stop packet capture on gateway connection.
16086type VpnConnectionPacketCaptureStopParameters struct {
16087	// List of site link connection names.
16088	LinkConnectionNames *[]string `json:"linkConnectionNames,omitempty"`
16089
16090	// SAS url for packet capture on vpn connection.
16091	SasURL *string `json:"sasUrl,omitempty"`
16092}
16093
16094// VpnConnectionPollerResponse is the response envelope for operations that asynchronously return a VpnConnection type.
16095type VpnConnectionPollerResponse struct {
16096	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
16097	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnConnectionResponse, error)
16098
16099	// Poller contains an initialized poller.
16100	Poller VpnConnectionPoller
16101
16102	// RawResponse contains the underlying HTTP response.
16103	RawResponse *http.Response
16104}
16105
16106// Parameters for VpnConnection.
16107type VpnConnectionProperties struct {
16108	// Expected bandwidth in MBPS.
16109	ConnectionBandwidth *int32 `json:"connectionBandwidth,omitempty"`
16110
16111	// READ-ONLY; The connection status.
16112	ConnectionStatus *VpnConnectionStatus `json:"connectionStatus,omitempty" azure:"ro"`
16113
16114	// DPD timeout in seconds for vpn connection.
16115	DpdTimeoutSeconds *int32 `json:"dpdTimeoutSeconds,omitempty"`
16116
16117	// READ-ONLY; Egress bytes transferred.
16118	EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty" azure:"ro"`
16119
16120	// EnableBgp flag.
16121	EnableBgp *bool `json:"enableBgp,omitempty"`
16122
16123	// Enable internet security.
16124	EnableInternetSecurity *bool `json:"enableInternetSecurity,omitempty"`
16125
16126	// EnableBgp flag.
16127	EnableRateLimiting *bool `json:"enableRateLimiting,omitempty"`
16128
16129	// The IPSec Policies to be considered by this connection.
16130	IPsecPolicies *[]IPsecPolicy `json:"ipsecPolicies,omitempty"`
16131
16132	// READ-ONLY; Ingress bytes transferred.
16133	IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty" azure:"ro"`
16134
16135	// READ-ONLY; The provisioning state of the VPN connection resource.
16136	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16137
16138	// Id of the connected vpn site.
16139	RemoteVpnSite *SubResource `json:"remoteVpnSite,omitempty"`
16140
16141	// The Routing Configuration indicating the associated and propagated route tables on this connection.
16142	RoutingConfiguration *RoutingConfiguration `json:"routingConfiguration,omitempty"`
16143
16144	// Routing weight for vpn connection.
16145	RoutingWeight *int32 `json:"routingWeight,omitempty"`
16146
16147	// SharedKey for the vpn connection.
16148	SharedKey *string `json:"sharedKey,omitempty"`
16149
16150	// Use local azure ip to initiate connection.
16151	UseLocalAzureIPAddress *bool `json:"useLocalAzureIpAddress,omitempty"`
16152
16153	// Enable policy-based traffic selectors.
16154	UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"`
16155
16156	// Connection protocol used for this connection.
16157	VpnConnectionProtocolType *VirtualNetworkGatewayConnectionProtocol `json:"vpnConnectionProtocolType,omitempty"`
16158
16159	// List of all vpn site link connections to the gateway.
16160	VpnLinkConnections *[]VpnSiteLinkConnection `json:"vpnLinkConnections,omitempty"`
16161}
16162
16163// VpnConnectionResponse is the response envelope for operations that return a VpnConnection type.
16164type VpnConnectionResponse struct {
16165	// RawResponse contains the underlying HTTP response.
16166	RawResponse *http.Response
16167
16168	// VpnConnection Resource.
16169	VpnConnection *VpnConnection
16170}
16171
16172// VpnConnectionsBeginCreateOrUpdateOptions contains the optional parameters for the VpnConnections.BeginCreateOrUpdate method.
16173type VpnConnectionsBeginCreateOrUpdateOptions struct {
16174	// placeholder for future optional parameters
16175}
16176
16177// VpnConnectionsBeginDeleteOptions contains the optional parameters for the VpnConnections.BeginDelete method.
16178type VpnConnectionsBeginDeleteOptions struct {
16179	// placeholder for future optional parameters
16180}
16181
16182// VpnConnectionsBeginStartPacketCaptureOptions contains the optional parameters for the VpnConnections.BeginStartPacketCapture method.
16183type VpnConnectionsBeginStartPacketCaptureOptions struct {
16184	// Vpn Connection packet capture parameters supplied to start packet capture on gateway connection.
16185	Parameters *VpnConnectionPacketCaptureStartParameters
16186}
16187
16188// VpnConnectionsBeginStopPacketCaptureOptions contains the optional parameters for the VpnConnections.BeginStopPacketCapture method.
16189type VpnConnectionsBeginStopPacketCaptureOptions struct {
16190	// Vpn Connection packet capture parameters supplied to stop packet capture on gateway connection.
16191	Parameters *VpnConnectionPacketCaptureStopParameters
16192}
16193
16194// VpnConnectionsGetOptions contains the optional parameters for the VpnConnections.Get method.
16195type VpnConnectionsGetOptions struct {
16196	// placeholder for future optional parameters
16197}
16198
16199// VpnConnectionsListByVpnGatewayOptions contains the optional parameters for the VpnConnections.ListByVpnGateway method.
16200type VpnConnectionsListByVpnGatewayOptions struct {
16201	// placeholder for future optional parameters
16202}
16203
16204// Vpn device configuration script generation parameters.
16205type VpnDeviceScriptParameters struct {
16206	// The device family for the vpn device.
16207	DeviceFamily *string `json:"deviceFamily,omitempty"`
16208
16209	// The firmware version for the vpn device.
16210	FirmwareVersion *string `json:"firmwareVersion,omitempty"`
16211
16212	// The vendor for the vpn device.
16213	Vendor *string `json:"vendor,omitempty"`
16214}
16215
16216// VpnGateway Resource.
16217type VpnGateway struct {
16218	Resource
16219	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16220	Etag *string `json:"etag,omitempty" azure:"ro"`
16221
16222	// Properties of the VPN gateway.
16223	Properties *VpnGatewayProperties `json:"properties,omitempty"`
16224}
16225
16226// IP Configuration of a VPN Gateway Resource.
16227type VpnGatewayIPConfiguration struct {
16228	// The identifier of the IP configuration for a VPN Gateway.
16229	ID *string `json:"id,omitempty"`
16230
16231	// The private IP address of this IP configuration.
16232	PrivateIPAddress *string `json:"privateIpAddress,omitempty"`
16233
16234	// The public IP address of this IP configuration.
16235	PublicIPAddress *string `json:"publicIpAddress,omitempty"`
16236}
16237
16238// Start packet capture parameters.
16239type VpnGatewayPacketCaptureStartParameters struct {
16240	// Start Packet capture parameters on vpn gateway.
16241	FilterData *string `json:"filterData,omitempty"`
16242}
16243
16244// Stop packet capture parameters.
16245type VpnGatewayPacketCaptureStopParameters struct {
16246	// SAS url for packet capture on vpn gateway.
16247	SasURL *string `json:"sasUrl,omitempty"`
16248}
16249
16250// VpnGatewayPollerResponse is the response envelope for operations that asynchronously return a VpnGateway type.
16251type VpnGatewayPollerResponse struct {
16252	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
16253	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnGatewayResponse, error)
16254
16255	// Poller contains an initialized poller.
16256	Poller VpnGatewayPoller
16257
16258	// RawResponse contains the underlying HTTP response.
16259	RawResponse *http.Response
16260}
16261
16262// Parameters for VpnGateway.
16263type VpnGatewayProperties struct {
16264	// Local network gateway's BGP speaker settings.
16265	BgpSettings *BgpSettings `json:"bgpSettings,omitempty"`
16266
16267	// List of all vpn connections to the gateway.
16268	Connections *[]VpnConnection `json:"connections,omitempty"`
16269
16270	// READ-ONLY; List of all IPs configured on the gateway.
16271	IPConfigurations *[]VpnGatewayIPConfiguration `json:"ipConfigurations,omitempty" azure:"ro"`
16272
16273	// Enable Routing Preference property for the Public IP Interface of the VpnGateway.
16274	IsRoutingPreferenceInternet *bool `json:"isRoutingPreferenceInternet,omitempty"`
16275
16276	// READ-ONLY; The provisioning state of the VPN gateway resource.
16277	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16278
16279	// The VirtualHub to which the gateway belongs.
16280	VirtualHub *SubResource `json:"virtualHub,omitempty"`
16281
16282	// The scale unit for this vpn gateway.
16283	VpnGatewayScaleUnit *int32 `json:"vpnGatewayScaleUnit,omitempty"`
16284}
16285
16286// VpnGatewayResponse is the response envelope for operations that return a VpnGateway type.
16287type VpnGatewayResponse struct {
16288	// RawResponse contains the underlying HTTP response.
16289	RawResponse *http.Response
16290
16291	// VpnGateway Resource.
16292	VpnGateway *VpnGateway
16293}
16294
16295// VpnGatewaysBeginCreateOrUpdateOptions contains the optional parameters for the VpnGateways.BeginCreateOrUpdate method.
16296type VpnGatewaysBeginCreateOrUpdateOptions struct {
16297	// placeholder for future optional parameters
16298}
16299
16300// VpnGatewaysBeginDeleteOptions contains the optional parameters for the VpnGateways.BeginDelete method.
16301type VpnGatewaysBeginDeleteOptions struct {
16302	// placeholder for future optional parameters
16303}
16304
16305// VpnGatewaysBeginResetOptions contains the optional parameters for the VpnGateways.BeginReset method.
16306type VpnGatewaysBeginResetOptions struct {
16307	// placeholder for future optional parameters
16308}
16309
16310// VpnGatewaysBeginStartPacketCaptureOptions contains the optional parameters for the VpnGateways.BeginStartPacketCapture method.
16311type VpnGatewaysBeginStartPacketCaptureOptions struct {
16312	// Vpn gateway packet capture parameters supplied to start packet capture on vpn gateway.
16313	Parameters *VpnGatewayPacketCaptureStartParameters
16314}
16315
16316// VpnGatewaysBeginStopPacketCaptureOptions contains the optional parameters for the VpnGateways.BeginStopPacketCapture method.
16317type VpnGatewaysBeginStopPacketCaptureOptions struct {
16318	// Vpn gateway packet capture parameters supplied to stop packet capture on vpn gateway.
16319	Parameters *VpnGatewayPacketCaptureStopParameters
16320}
16321
16322// VpnGatewaysBeginUpdateTagsOptions contains the optional parameters for the VpnGateways.BeginUpdateTags method.
16323type VpnGatewaysBeginUpdateTagsOptions struct {
16324	// placeholder for future optional parameters
16325}
16326
16327// VpnGatewaysGetOptions contains the optional parameters for the VpnGateways.Get method.
16328type VpnGatewaysGetOptions struct {
16329	// placeholder for future optional parameters
16330}
16331
16332// VpnGatewaysListByResourceGroupOptions contains the optional parameters for the VpnGateways.ListByResourceGroup method.
16333type VpnGatewaysListByResourceGroupOptions struct {
16334	// placeholder for future optional parameters
16335}
16336
16337// VpnGatewaysListOptions contains the optional parameters for the VpnGateways.List method.
16338type VpnGatewaysListOptions struct {
16339	// placeholder for future optional parameters
16340}
16341
16342// BGP settings details for a link.
16343type VpnLinkBgpSettings struct {
16344	// The BGP speaker's ASN.
16345	Asn *int64 `json:"asn,omitempty"`
16346
16347	// The BGP peering address and BGP identifier of this BGP speaker.
16348	BgpPeeringAddress *string `json:"bgpPeeringAddress,omitempty"`
16349}
16350
16351// VpnLinkConnectionsListByVpnConnectionOptions contains the optional parameters for the VpnLinkConnections.ListByVpnConnection method.
16352type VpnLinkConnectionsListByVpnConnectionOptions struct {
16353	// placeholder for future optional parameters
16354}
16355
16356// List of properties of a link provider.
16357type VpnLinkProviderProperties struct {
16358	// Name of the link provider.
16359	LinkProviderName *string `json:"linkProviderName,omitempty"`
16360
16361	// Link speed.
16362	LinkSpeedInMbps *int32 `json:"linkSpeedInMbps,omitempty"`
16363}
16364
16365// Start packet capture parameters on virtual network gateway.
16366type VpnPacketCaptureStartParameters struct {
16367	// Start Packet capture parameters.
16368	FilterData *string `json:"filterData,omitempty"`
16369}
16370
16371// Stop packet capture parameters.
16372type VpnPacketCaptureStopParameters struct {
16373	// SAS url for packet capture on virtual network gateway.
16374	SasURL *string `json:"sasUrl,omitempty"`
16375}
16376
16377// Vpn Profile Response for package generation.
16378type VpnProfileResponse struct {
16379	// URL to the VPN profile.
16380	ProfileURL *string `json:"profileUrl,omitempty"`
16381}
16382
16383// VpnProfileResponsePollerResponse is the response envelope for operations that asynchronously return a VpnProfileResponse type.
16384type VpnProfileResponsePollerResponse struct {
16385	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
16386	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnProfileResponseResponse, error)
16387
16388	// Poller contains an initialized poller.
16389	Poller VpnProfileResponsePoller
16390
16391	// RawResponse contains the underlying HTTP response.
16392	RawResponse *http.Response
16393}
16394
16395// VpnProfileResponseResponse is the response envelope for operations that return a VpnProfileResponse type.
16396type VpnProfileResponseResponse struct {
16397	// RawResponse contains the underlying HTTP response.
16398	RawResponse *http.Response
16399
16400	// Vpn Profile Response for package generation.
16401	VpnProfileResponse *VpnProfileResponse
16402}
16403
16404// Properties of the Radius client root certificate of VpnServerConfiguration.
16405type VpnServerConfigRadiusClientRootCertificate struct {
16406	// The certificate name.
16407	Name *string `json:"name,omitempty"`
16408
16409	// The Radius client root certificate thumbprint.
16410	Thumbprint *string `json:"thumbprint,omitempty"`
16411}
16412
16413// Properties of Radius Server root certificate of VpnServerConfiguration.
16414type VpnServerConfigRadiusServerRootCertificate struct {
16415	// The certificate name.
16416	Name *string `json:"name,omitempty"`
16417
16418	// The certificate public data.
16419	PublicCertData *string `json:"publicCertData,omitempty"`
16420}
16421
16422// Properties of the revoked VPN client certificate of VpnServerConfiguration.
16423type VpnServerConfigVpnClientRevokedCertificate struct {
16424	// The certificate name.
16425	Name *string `json:"name,omitempty"`
16426
16427	// The revoked VPN client certificate thumbprint.
16428	Thumbprint *string `json:"thumbprint,omitempty"`
16429}
16430
16431// Properties of VPN client root certificate of VpnServerConfiguration.
16432type VpnServerConfigVpnClientRootCertificate struct {
16433	// The certificate name.
16434	Name *string `json:"name,omitempty"`
16435
16436	// The certificate public data.
16437	PublicCertData *string `json:"publicCertData,omitempty"`
16438}
16439
16440// VpnServerConfiguration Resource.
16441type VpnServerConfiguration struct {
16442	Resource
16443	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16444	Etag *string `json:"etag,omitempty" azure:"ro"`
16445
16446	// Properties of the P2SVpnServer configuration.
16447	Properties *VpnServerConfigurationProperties `json:"properties,omitempty"`
16448}
16449
16450// VpnServerConfigurationPollerResponse is the response envelope for operations that asynchronously return a VpnServerConfiguration type.
16451type VpnServerConfigurationPollerResponse struct {
16452	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
16453	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnServerConfigurationResponse, error)
16454
16455	// Poller contains an initialized poller.
16456	Poller VpnServerConfigurationPoller
16457
16458	// RawResponse contains the underlying HTTP response.
16459	RawResponse *http.Response
16460}
16461
16462// Parameters for VpnServerConfiguration.
16463type VpnServerConfigurationProperties struct {
16464	// The set of aad vpn authentication parameters.
16465	AadAuthenticationParameters *AadAuthenticationParameters `json:"aadAuthenticationParameters,omitempty"`
16466
16467	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16468	Etag *string `json:"etag,omitempty" azure:"ro"`
16469
16470	// The name of the VpnServerConfiguration that is unique within a resource group.
16471	Name *string `json:"name,omitempty"`
16472
16473	// READ-ONLY; List of references to P2SVpnGateways.
16474	P2SVpnGateways *[]P2SVpnGateway `json:"p2SVpnGateways,omitempty" azure:"ro"`
16475
16476	// READ-ONLY; The provisioning state of the VpnServerConfiguration resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
16477	ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"`
16478
16479	// Radius client root certificate of VpnServerConfiguration.
16480	RadiusClientRootCertificates *[]VpnServerConfigRadiusClientRootCertificate `json:"radiusClientRootCertificates,omitempty"`
16481
16482	// The radius server address property of the VpnServerConfiguration resource for point to site client connection.
16483	RadiusServerAddress *string `json:"radiusServerAddress,omitempty"`
16484
16485	// Radius Server root certificate of VpnServerConfiguration.
16486	RadiusServerRootCertificates *[]VpnServerConfigRadiusServerRootCertificate `json:"radiusServerRootCertificates,omitempty"`
16487
16488	// The radius secret property of the VpnServerConfiguration resource for point to site client connection.
16489	RadiusServerSecret *string `json:"radiusServerSecret,omitempty"`
16490
16491	// Multiple Radius Server configuration for VpnServerConfiguration.
16492	RadiusServers *[]RadiusServer `json:"radiusServers,omitempty"`
16493
16494	// VPN authentication types for the VpnServerConfiguration.
16495	VpnAuthenticationTypes *[]VpnAuthenticationType `json:"vpnAuthenticationTypes,omitempty"`
16496
16497	// VpnClientIpsecPolicies for VpnServerConfiguration.
16498	VpnClientIPsecPolicies *[]IPsecPolicy `json:"vpnClientIpsecPolicies,omitempty"`
16499
16500	// VPN client revoked certificate of VpnServerConfiguration.
16501	VpnClientRevokedCertificates *[]VpnServerConfigVpnClientRevokedCertificate `json:"vpnClientRevokedCertificates,omitempty"`
16502
16503	// VPN client root certificate of VpnServerConfiguration.
16504	VpnClientRootCertificates *[]VpnServerConfigVpnClientRootCertificate `json:"vpnClientRootCertificates,omitempty"`
16505
16506	// VPN protocols for the VpnServerConfiguration.
16507	VpnProtocols *[]VpnGatewayTunnelingProtocol `json:"vpnProtocols,omitempty"`
16508}
16509
16510// VpnServerConfigurationResponse is the response envelope for operations that return a VpnServerConfiguration type.
16511type VpnServerConfigurationResponse struct {
16512	// RawResponse contains the underlying HTTP response.
16513	RawResponse *http.Response
16514
16515	// VpnServerConfiguration Resource.
16516	VpnServerConfiguration *VpnServerConfiguration
16517}
16518
16519// VpnServerConfigurationsAssociatedWithVirtualWanBeginListOptions contains the optional parameters for the VpnServerConfigurationsAssociatedWithVirtualWan.BeginList
16520// method.
16521type VpnServerConfigurationsAssociatedWithVirtualWanBeginListOptions struct {
16522	// placeholder for future optional parameters
16523}
16524
16525// VpnServerConfigurationsBeginCreateOrUpdateOptions contains the optional parameters for the VpnServerConfigurations.BeginCreateOrUpdate method.
16526type VpnServerConfigurationsBeginCreateOrUpdateOptions struct {
16527	// placeholder for future optional parameters
16528}
16529
16530// VpnServerConfigurationsBeginDeleteOptions contains the optional parameters for the VpnServerConfigurations.BeginDelete method.
16531type VpnServerConfigurationsBeginDeleteOptions struct {
16532	// placeholder for future optional parameters
16533}
16534
16535// VpnServerConfigurationsGetOptions contains the optional parameters for the VpnServerConfigurations.Get method.
16536type VpnServerConfigurationsGetOptions struct {
16537	// placeholder for future optional parameters
16538}
16539
16540// VpnServerConfigurationsListByResourceGroupOptions contains the optional parameters for the VpnServerConfigurations.ListByResourceGroup method.
16541type VpnServerConfigurationsListByResourceGroupOptions struct {
16542	// placeholder for future optional parameters
16543}
16544
16545// VpnServerConfigurationsListOptions contains the optional parameters for the VpnServerConfigurations.List method.
16546type VpnServerConfigurationsListOptions struct {
16547	// placeholder for future optional parameters
16548}
16549
16550// VpnServerConfigurations list associated with VirtualWan Response.
16551type VpnServerConfigurationsResponse struct {
16552	// List of VpnServerConfigurations associated with VirtualWan.
16553	VpnServerConfigurationResourceIDs *[]string `json:"vpnServerConfigurationResourceIds,omitempty"`
16554}
16555
16556// VpnServerConfigurationsResponsePollerResponse is the response envelope for operations that asynchronously return a VpnServerConfigurationsResponse type.
16557type VpnServerConfigurationsResponsePollerResponse struct {
16558	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
16559	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnServerConfigurationsResponseResponse, error)
16560
16561	// Poller contains an initialized poller.
16562	Poller VpnServerConfigurationsResponsePoller
16563
16564	// RawResponse contains the underlying HTTP response.
16565	RawResponse *http.Response
16566}
16567
16568// VpnServerConfigurationsResponseResponse is the response envelope for operations that return a VpnServerConfigurationsResponse type.
16569type VpnServerConfigurationsResponseResponse struct {
16570	// RawResponse contains the underlying HTTP response.
16571	RawResponse *http.Response
16572
16573	// VpnServerConfigurations list associated with VirtualWan Response.
16574	VpnServerConfigurationsResponse *VpnServerConfigurationsResponse
16575}
16576
16577// VpnServerConfigurationsUpdateTagsOptions contains the optional parameters for the VpnServerConfigurations.UpdateTags method.
16578type VpnServerConfigurationsUpdateTagsOptions struct {
16579	// placeholder for future optional parameters
16580}
16581
16582// VpnSite Resource.
16583type VpnSite struct {
16584	Resource
16585	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16586	Etag *string `json:"etag,omitempty" azure:"ro"`
16587
16588	// Properties of the VPN site.
16589	Properties *VpnSiteProperties `json:"properties,omitempty"`
16590}
16591
16592// VpnSite Resource.
16593type VpnSiteID struct {
16594	// READ-ONLY; The resource-uri of the vpn-site for which config is to be fetched.
16595	VpnSite *string `json:"vpnSite,omitempty" azure:"ro"`
16596}
16597
16598// VpnSiteLink Resource.
16599type VpnSiteLink struct {
16600	SubResource
16601	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16602	Etag *string `json:"etag,omitempty" azure:"ro"`
16603
16604	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
16605	Name *string `json:"name,omitempty"`
16606
16607	// Properties of the VPN site link.
16608	Properties *VpnSiteLinkProperties `json:"properties,omitempty"`
16609
16610	// READ-ONLY; Resource type.
16611	Type *string `json:"type,omitempty" azure:"ro"`
16612}
16613
16614// VpnSiteLinkConnection Resource.
16615type VpnSiteLinkConnection struct {
16616	SubResource
16617	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16618	Etag *string `json:"etag,omitempty" azure:"ro"`
16619
16620	// The name of the resource that is unique within a resource group. This name can be used to access the resource.
16621	Name *string `json:"name,omitempty"`
16622
16623	// Properties of the VPN site link connection.
16624	Properties *VpnSiteLinkConnectionProperties `json:"properties,omitempty"`
16625
16626	// READ-ONLY; Resource type.
16627	Type *string `json:"type,omitempty" azure:"ro"`
16628}
16629
16630// Parameters for VpnConnection.
16631type VpnSiteLinkConnectionProperties struct {
16632	// Expected bandwidth in MBPS.
16633	ConnectionBandwidth *int32 `json:"connectionBandwidth,omitempty"`
16634
16635	// READ-ONLY; The connection status.
16636	ConnectionStatus *VpnConnectionStatus `json:"connectionStatus,omitempty" azure:"ro"`
16637
16638	// READ-ONLY; Egress bytes transferred.
16639	EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty" azure:"ro"`
16640
16641	// EnableBgp flag.
16642	EnableBgp *bool `json:"enableBgp,omitempty"`
16643
16644	// EnableBgp flag.
16645	EnableRateLimiting *bool `json:"enableRateLimiting,omitempty"`
16646
16647	// The IPSec Policies to be considered by this connection.
16648	IPsecPolicies *[]IPsecPolicy `json:"ipsecPolicies,omitempty"`
16649
16650	// READ-ONLY; Ingress bytes transferred.
16651	IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty" azure:"ro"`
16652
16653	// READ-ONLY; The provisioning state of the VPN site link connection resource.
16654	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16655
16656	// Routing weight for vpn connection.
16657	RoutingWeight *int32 `json:"routingWeight,omitempty"`
16658
16659	// SharedKey for the vpn connection.
16660	SharedKey *string `json:"sharedKey,omitempty"`
16661
16662	// Use local azure ip to initiate connection.
16663	UseLocalAzureIPAddress *bool `json:"useLocalAzureIpAddress,omitempty"`
16664
16665	// Enable policy-based traffic selectors.
16666	UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"`
16667
16668	// Connection protocol used for this connection.
16669	VpnConnectionProtocolType *VirtualNetworkGatewayConnectionProtocol `json:"vpnConnectionProtocolType,omitempty"`
16670
16671	// Id of the connected vpn site link.
16672	VpnSiteLink *SubResource `json:"vpnSiteLink,omitempty"`
16673}
16674
16675// VpnSiteLinkConnectionResponse is the response envelope for operations that return a VpnSiteLinkConnection type.
16676type VpnSiteLinkConnectionResponse struct {
16677	// RawResponse contains the underlying HTTP response.
16678	RawResponse *http.Response
16679
16680	// VpnSiteLinkConnection Resource.
16681	VpnSiteLinkConnection *VpnSiteLinkConnection
16682}
16683
16684// VpnSiteLinkConnectionsGetOptions contains the optional parameters for the VpnSiteLinkConnections.Get method.
16685type VpnSiteLinkConnectionsGetOptions struct {
16686	// placeholder for future optional parameters
16687}
16688
16689// Parameters for VpnSite.
16690type VpnSiteLinkProperties struct {
16691	// The set of bgp properties.
16692	BgpProperties *VpnLinkBgpSettings `json:"bgpProperties,omitempty"`
16693
16694	// FQDN of vpn-site-link.
16695	Fqdn *string `json:"fqdn,omitempty"`
16696
16697	// The ip-address for the vpn-site-link.
16698	IPAddress *string `json:"ipAddress,omitempty"`
16699
16700	// The link provider properties.
16701	LinkProperties *VpnLinkProviderProperties `json:"linkProperties,omitempty"`
16702
16703	// READ-ONLY; The provisioning state of the VPN site link resource.
16704	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16705}
16706
16707// VpnSiteLinkResponse is the response envelope for operations that return a VpnSiteLink type.
16708type VpnSiteLinkResponse struct {
16709	// RawResponse contains the underlying HTTP response.
16710	RawResponse *http.Response
16711
16712	// VpnSiteLink Resource.
16713	VpnSiteLink *VpnSiteLink
16714}
16715
16716// VpnSiteLinksGetOptions contains the optional parameters for the VpnSiteLinks.Get method.
16717type VpnSiteLinksGetOptions struct {
16718	// placeholder for future optional parameters
16719}
16720
16721// VpnSiteLinksListByVpnSiteOptions contains the optional parameters for the VpnSiteLinks.ListByVpnSite method.
16722type VpnSiteLinksListByVpnSiteOptions struct {
16723	// placeholder for future optional parameters
16724}
16725
16726// VpnSitePollerResponse is the response envelope for operations that asynchronously return a VpnSite type.
16727type VpnSitePollerResponse struct {
16728	// PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received
16729	PollUntilDone func(ctx context.Context, frequency time.Duration) (VpnSiteResponse, error)
16730
16731	// Poller contains an initialized poller.
16732	Poller VpnSitePoller
16733
16734	// RawResponse contains the underlying HTTP response.
16735	RawResponse *http.Response
16736}
16737
16738// Parameters for VpnSite.
16739type VpnSiteProperties struct {
16740	// The AddressSpace that contains an array of IP address ranges.
16741	AddressSpace *AddressSpace `json:"addressSpace,omitempty"`
16742
16743	// The set of bgp properties.
16744	BgpProperties *BgpSettings `json:"bgpProperties,omitempty"`
16745
16746	// The device properties.
16747	DeviceProperties *DeviceProperties `json:"deviceProperties,omitempty"`
16748
16749	// The ip-address for the vpn-site.
16750	IPAddress *string `json:"ipAddress,omitempty"`
16751
16752	// IsSecuritySite flag.
16753	IsSecuritySite *bool `json:"isSecuritySite,omitempty"`
16754
16755	// Office365 Policy.
16756	O365Policy *O365PolicyProperties `json:"o365Policy,omitempty"`
16757
16758	// READ-ONLY; The provisioning state of the VPN site resource.
16759	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16760
16761	// The key for vpn-site that can be used for connections.
16762	SiteKey *string `json:"siteKey,omitempty"`
16763
16764	// The VirtualWAN to which the vpnSite belongs.
16765	VirtualWan *SubResource `json:"virtualWan,omitempty"`
16766
16767	// List of all vpn site links.
16768	VpnSiteLinks *[]VpnSiteLink `json:"vpnSiteLinks,omitempty"`
16769}
16770
16771// VpnSiteResponse is the response envelope for operations that return a VpnSite type.
16772type VpnSiteResponse struct {
16773	// RawResponse contains the underlying HTTP response.
16774	RawResponse *http.Response
16775
16776	// VpnSite Resource.
16777	VpnSite *VpnSite
16778}
16779
16780// VpnSitesBeginCreateOrUpdateOptions contains the optional parameters for the VpnSites.BeginCreateOrUpdate method.
16781type VpnSitesBeginCreateOrUpdateOptions struct {
16782	// placeholder for future optional parameters
16783}
16784
16785// VpnSitesBeginDeleteOptions contains the optional parameters for the VpnSites.BeginDelete method.
16786type VpnSitesBeginDeleteOptions struct {
16787	// placeholder for future optional parameters
16788}
16789
16790// VpnSitesConfigurationBeginDownloadOptions contains the optional parameters for the VpnSitesConfiguration.BeginDownload method.
16791type VpnSitesConfigurationBeginDownloadOptions struct {
16792	// placeholder for future optional parameters
16793}
16794
16795// VpnSitesGetOptions contains the optional parameters for the VpnSites.Get method.
16796type VpnSitesGetOptions struct {
16797	// placeholder for future optional parameters
16798}
16799
16800// VpnSitesListByResourceGroupOptions contains the optional parameters for the VpnSites.ListByResourceGroup method.
16801type VpnSitesListByResourceGroupOptions struct {
16802	// placeholder for future optional parameters
16803}
16804
16805// VpnSitesListOptions contains the optional parameters for the VpnSites.List method.
16806type VpnSitesListOptions struct {
16807	// placeholder for future optional parameters
16808}
16809
16810// VpnSitesUpdateTagsOptions contains the optional parameters for the VpnSites.UpdateTags method.
16811type VpnSitesUpdateTagsOptions struct {
16812	// placeholder for future optional parameters
16813}
16814
16815// Defines contents of a web application rule.
16816type WebApplicationFirewallCustomRule struct {
16817	// Type of Actions.
16818	Action *WebApplicationFirewallAction `json:"action,omitempty"`
16819
16820	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16821	Etag *string `json:"etag,omitempty" azure:"ro"`
16822
16823	// List of match conditions.
16824	MatchConditions *[]MatchCondition `json:"matchConditions,omitempty"`
16825
16826	// The name of the resource that is unique within a policy. This name can be used to access the resource.
16827	Name *string `json:"name,omitempty"`
16828
16829	// Priority of the rule. Rules with a lower value will be evaluated before rules with a higher value.
16830	Priority *int32 `json:"priority,omitempty"`
16831
16832	// The rule type.
16833	RuleType *WebApplicationFirewallRuleType `json:"ruleType,omitempty"`
16834}
16835
16836// WebApplicationFirewallPoliciesBeginDeleteOptions contains the optional parameters for the WebApplicationFirewallPolicies.BeginDelete method.
16837type WebApplicationFirewallPoliciesBeginDeleteOptions struct {
16838	// placeholder for future optional parameters
16839}
16840
16841// WebApplicationFirewallPoliciesCreateOrUpdateOptions contains the optional parameters for the WebApplicationFirewallPolicies.CreateOrUpdate method.
16842type WebApplicationFirewallPoliciesCreateOrUpdateOptions struct {
16843	// placeholder for future optional parameters
16844}
16845
16846// WebApplicationFirewallPoliciesGetOptions contains the optional parameters for the WebApplicationFirewallPolicies.Get method.
16847type WebApplicationFirewallPoliciesGetOptions struct {
16848	// placeholder for future optional parameters
16849}
16850
16851// WebApplicationFirewallPoliciesListAllOptions contains the optional parameters for the WebApplicationFirewallPolicies.ListAll method.
16852type WebApplicationFirewallPoliciesListAllOptions struct {
16853	// placeholder for future optional parameters
16854}
16855
16856// WebApplicationFirewallPoliciesListOptions contains the optional parameters for the WebApplicationFirewallPolicies.List method.
16857type WebApplicationFirewallPoliciesListOptions struct {
16858	// placeholder for future optional parameters
16859}
16860
16861// Defines web application firewall policy.
16862type WebApplicationFirewallPolicy struct {
16863	Resource
16864	// READ-ONLY; A unique read-only string that changes whenever the resource is updated.
16865	Etag *string `json:"etag,omitempty" azure:"ro"`
16866
16867	// Properties of the web application firewall policy.
16868	Properties *WebApplicationFirewallPolicyPropertiesFormat `json:"properties,omitempty"`
16869}
16870
16871// Result of the request to list WebApplicationFirewallPolicies. It contains a list of WebApplicationFirewallPolicy objects and a URL link to get the next
16872// set of results.
16873type WebApplicationFirewallPolicyListResult struct {
16874	// READ-ONLY; URL to get the next set of WebApplicationFirewallPolicy objects if there are any.
16875	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
16876
16877	// READ-ONLY; List of WebApplicationFirewallPolicies within a resource group.
16878	Value *[]WebApplicationFirewallPolicy `json:"value,omitempty" azure:"ro"`
16879}
16880
16881// WebApplicationFirewallPolicyListResultResponse is the response envelope for operations that return a WebApplicationFirewallPolicyListResult type.
16882type WebApplicationFirewallPolicyListResultResponse struct {
16883	// RawResponse contains the underlying HTTP response.
16884	RawResponse *http.Response
16885
16886	// Result of the request to list WebApplicationFirewallPolicies. It contains a list of WebApplicationFirewallPolicy objects and a URL link to get the next
16887	// set of results.
16888	WebApplicationFirewallPolicyListResult *WebApplicationFirewallPolicyListResult
16889}
16890
16891// Defines web application firewall policy properties.
16892type WebApplicationFirewallPolicyPropertiesFormat struct {
16893	// READ-ONLY; A collection of references to application gateways.
16894	ApplicationGateways *[]ApplicationGateway `json:"applicationGateways,omitempty" azure:"ro"`
16895
16896	// The custom rules inside the policy.
16897	CustomRules *[]WebApplicationFirewallCustomRule `json:"customRules,omitempty"`
16898
16899	// READ-ONLY; A collection of references to application gateway http listeners.
16900	HTTPListeners *[]SubResource `json:"httpListeners,omitempty" azure:"ro"`
16901
16902	// Describes the managedRules structure.
16903	ManagedRules *ManagedRulesDefinition `json:"managedRules,omitempty"`
16904
16905	// READ-ONLY; A collection of references to application gateway path rules.
16906	PathBasedRules *[]SubResource `json:"pathBasedRules,omitempty" azure:"ro"`
16907
16908	// The PolicySettings for policy.
16909	PolicySettings *PolicySettings `json:"policySettings,omitempty"`
16910
16911	// READ-ONLY; The provisioning state of the web application firewall policy resource.
16912	ProvisioningState *ProvisioningState `json:"provisioningState,omitempty" azure:"ro"`
16913
16914	// READ-ONLY; Resource status of the policy.
16915	ResourceState *WebApplicationFirewallPolicyResourceState `json:"resourceState,omitempty" azure:"ro"`
16916}
16917
16918// WebApplicationFirewallPolicyResponse is the response envelope for operations that return a WebApplicationFirewallPolicy type.
16919type WebApplicationFirewallPolicyResponse struct {
16920	// RawResponse contains the underlying HTTP response.
16921	RawResponse *http.Response
16922
16923	// Defines web application firewall policy.
16924	WebApplicationFirewallPolicy *WebApplicationFirewallPolicy
16925}
16926
16927// WebCategoriesGetOptions contains the optional parameters for the WebCategories.Get method.
16928type WebCategoriesGetOptions struct {
16929	// Expands resourceIds back referenced by the azureWebCategory resource.
16930	Expand *string
16931}
16932
16933// WebCategoriesListBySubscriptionOptions contains the optional parameters for the WebCategories.ListBySubscription method.
16934type WebCategoriesListBySubscriptionOptions struct {
16935	// placeholder for future optional parameters
16936}
16937