1package network 2 3// Copyright (c) Microsoft and contributors. All rights reserved. 4// 5// Licensed under the Apache License, Version 2.0 (the "License"); 6// you may not use this file except in compliance with the License. 7// You may obtain a copy of the License at 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// 14// See the License for the specific language governing permissions and 15// limitations under the License. 16// 17// Code generated by Microsoft (R) AutoRest Code Generator. 18// Changes may cause incorrect behavior and will be lost if the code is regenerated. 19 20import ( 21 "context" 22 "encoding/json" 23 "github.com/Azure/go-autorest/autorest" 24 "github.com/Azure/go-autorest/autorest/azure" 25 "github.com/Azure/go-autorest/autorest/date" 26 "github.com/Azure/go-autorest/autorest/to" 27 "github.com/Azure/go-autorest/tracing" 28 "net/http" 29) 30 31// The package's fully qualified name. 32const fqdn = "github.com/Azure/azure-sdk-for-go/services/network/mgmt/2018-02-01/network" 33 34// Access enumerates the values for access. 35type Access string 36 37const ( 38 // Allow ... 39 Allow Access = "Allow" 40 // Deny ... 41 Deny Access = "Deny" 42) 43 44// PossibleAccessValues returns an array of possible values for the Access const type. 45func PossibleAccessValues() []Access { 46 return []Access{Allow, Deny} 47} 48 49// ApplicationGatewayBackendHealthServerHealth enumerates the values for application gateway backend health 50// server health. 51type ApplicationGatewayBackendHealthServerHealth string 52 53const ( 54 // Down ... 55 Down ApplicationGatewayBackendHealthServerHealth = "Down" 56 // Draining ... 57 Draining ApplicationGatewayBackendHealthServerHealth = "Draining" 58 // Partial ... 59 Partial ApplicationGatewayBackendHealthServerHealth = "Partial" 60 // Unknown ... 61 Unknown ApplicationGatewayBackendHealthServerHealth = "Unknown" 62 // Up ... 63 Up ApplicationGatewayBackendHealthServerHealth = "Up" 64) 65 66// PossibleApplicationGatewayBackendHealthServerHealthValues returns an array of possible values for the ApplicationGatewayBackendHealthServerHealth const type. 67func PossibleApplicationGatewayBackendHealthServerHealthValues() []ApplicationGatewayBackendHealthServerHealth { 68 return []ApplicationGatewayBackendHealthServerHealth{Down, Draining, Partial, Unknown, Up} 69} 70 71// ApplicationGatewayCookieBasedAffinity enumerates the values for application gateway cookie based affinity. 72type ApplicationGatewayCookieBasedAffinity string 73 74const ( 75 // Disabled ... 76 Disabled ApplicationGatewayCookieBasedAffinity = "Disabled" 77 // Enabled ... 78 Enabled ApplicationGatewayCookieBasedAffinity = "Enabled" 79) 80 81// PossibleApplicationGatewayCookieBasedAffinityValues returns an array of possible values for the ApplicationGatewayCookieBasedAffinity const type. 82func PossibleApplicationGatewayCookieBasedAffinityValues() []ApplicationGatewayCookieBasedAffinity { 83 return []ApplicationGatewayCookieBasedAffinity{Disabled, Enabled} 84} 85 86// ApplicationGatewayFirewallMode enumerates the values for application gateway firewall mode. 87type ApplicationGatewayFirewallMode string 88 89const ( 90 // Detection ... 91 Detection ApplicationGatewayFirewallMode = "Detection" 92 // Prevention ... 93 Prevention ApplicationGatewayFirewallMode = "Prevention" 94) 95 96// PossibleApplicationGatewayFirewallModeValues returns an array of possible values for the ApplicationGatewayFirewallMode const type. 97func PossibleApplicationGatewayFirewallModeValues() []ApplicationGatewayFirewallMode { 98 return []ApplicationGatewayFirewallMode{Detection, Prevention} 99} 100 101// ApplicationGatewayOperationalState enumerates the values for application gateway operational state. 102type ApplicationGatewayOperationalState string 103 104const ( 105 // Running ... 106 Running ApplicationGatewayOperationalState = "Running" 107 // Starting ... 108 Starting ApplicationGatewayOperationalState = "Starting" 109 // Stopped ... 110 Stopped ApplicationGatewayOperationalState = "Stopped" 111 // Stopping ... 112 Stopping ApplicationGatewayOperationalState = "Stopping" 113) 114 115// PossibleApplicationGatewayOperationalStateValues returns an array of possible values for the ApplicationGatewayOperationalState const type. 116func PossibleApplicationGatewayOperationalStateValues() []ApplicationGatewayOperationalState { 117 return []ApplicationGatewayOperationalState{Running, Starting, Stopped, Stopping} 118} 119 120// ApplicationGatewayProtocol enumerates the values for application gateway protocol. 121type ApplicationGatewayProtocol string 122 123const ( 124 // HTTP ... 125 HTTP ApplicationGatewayProtocol = "Http" 126 // HTTPS ... 127 HTTPS ApplicationGatewayProtocol = "Https" 128) 129 130// PossibleApplicationGatewayProtocolValues returns an array of possible values for the ApplicationGatewayProtocol const type. 131func PossibleApplicationGatewayProtocolValues() []ApplicationGatewayProtocol { 132 return []ApplicationGatewayProtocol{HTTP, HTTPS} 133} 134 135// ApplicationGatewayRedirectType enumerates the values for application gateway redirect type. 136type ApplicationGatewayRedirectType string 137 138const ( 139 // Found ... 140 Found ApplicationGatewayRedirectType = "Found" 141 // Permanent ... 142 Permanent ApplicationGatewayRedirectType = "Permanent" 143 // SeeOther ... 144 SeeOther ApplicationGatewayRedirectType = "SeeOther" 145 // Temporary ... 146 Temporary ApplicationGatewayRedirectType = "Temporary" 147) 148 149// PossibleApplicationGatewayRedirectTypeValues returns an array of possible values for the ApplicationGatewayRedirectType const type. 150func PossibleApplicationGatewayRedirectTypeValues() []ApplicationGatewayRedirectType { 151 return []ApplicationGatewayRedirectType{Found, Permanent, SeeOther, Temporary} 152} 153 154// ApplicationGatewayRequestRoutingRuleType enumerates the values for application gateway request routing rule 155// type. 156type ApplicationGatewayRequestRoutingRuleType string 157 158const ( 159 // Basic ... 160 Basic ApplicationGatewayRequestRoutingRuleType = "Basic" 161 // PathBasedRouting ... 162 PathBasedRouting ApplicationGatewayRequestRoutingRuleType = "PathBasedRouting" 163) 164 165// PossibleApplicationGatewayRequestRoutingRuleTypeValues returns an array of possible values for the ApplicationGatewayRequestRoutingRuleType const type. 166func PossibleApplicationGatewayRequestRoutingRuleTypeValues() []ApplicationGatewayRequestRoutingRuleType { 167 return []ApplicationGatewayRequestRoutingRuleType{Basic, PathBasedRouting} 168} 169 170// ApplicationGatewaySkuName enumerates the values for application gateway sku name. 171type ApplicationGatewaySkuName string 172 173const ( 174 // StandardLarge ... 175 StandardLarge ApplicationGatewaySkuName = "Standard_Large" 176 // StandardMedium ... 177 StandardMedium ApplicationGatewaySkuName = "Standard_Medium" 178 // StandardSmall ... 179 StandardSmall ApplicationGatewaySkuName = "Standard_Small" 180 // WAFLarge ... 181 WAFLarge ApplicationGatewaySkuName = "WAF_Large" 182 // WAFMedium ... 183 WAFMedium ApplicationGatewaySkuName = "WAF_Medium" 184) 185 186// PossibleApplicationGatewaySkuNameValues returns an array of possible values for the ApplicationGatewaySkuName const type. 187func PossibleApplicationGatewaySkuNameValues() []ApplicationGatewaySkuName { 188 return []ApplicationGatewaySkuName{StandardLarge, StandardMedium, StandardSmall, WAFLarge, WAFMedium} 189} 190 191// ApplicationGatewaySslCipherSuite enumerates the values for application gateway ssl cipher suite. 192type ApplicationGatewaySslCipherSuite string 193 194const ( 195 // TLSDHEDSSWITH3DESEDECBCSHA ... 196 TLSDHEDSSWITH3DESEDECBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA" 197 // TLSDHEDSSWITHAES128CBCSHA ... 198 TLSDHEDSSWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" 199 // TLSDHEDSSWITHAES128CBCSHA256 ... 200 TLSDHEDSSWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" 201 // TLSDHEDSSWITHAES256CBCSHA ... 202 TLSDHEDSSWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" 203 // TLSDHEDSSWITHAES256CBCSHA256 ... 204 TLSDHEDSSWITHAES256CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" 205 // TLSDHERSAWITHAES128CBCSHA ... 206 TLSDHERSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" 207 // TLSDHERSAWITHAES128GCMSHA256 ... 208 TLSDHERSAWITHAES128GCMSHA256 ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" 209 // TLSDHERSAWITHAES256CBCSHA ... 210 TLSDHERSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" 211 // TLSDHERSAWITHAES256GCMSHA384 ... 212 TLSDHERSAWITHAES256GCMSHA384 ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" 213 // TLSECDHEECDSAWITHAES128CBCSHA ... 214 TLSECDHEECDSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" 215 // TLSECDHEECDSAWITHAES128CBCSHA256 ... 216 TLSECDHEECDSAWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" 217 // TLSECDHEECDSAWITHAES128GCMSHA256 ... 218 TLSECDHEECDSAWITHAES128GCMSHA256 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" 219 // TLSECDHEECDSAWITHAES256CBCSHA ... 220 TLSECDHEECDSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" 221 // TLSECDHEECDSAWITHAES256CBCSHA384 ... 222 TLSECDHEECDSAWITHAES256CBCSHA384 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" 223 // TLSECDHEECDSAWITHAES256GCMSHA384 ... 224 TLSECDHEECDSAWITHAES256GCMSHA384 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" 225 // TLSECDHERSAWITHAES128CBCSHA ... 226 TLSECDHERSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" 227 // TLSECDHERSAWITHAES128CBCSHA256 ... 228 TLSECDHERSAWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" 229 // TLSECDHERSAWITHAES128GCMSHA256 ... 230 TLSECDHERSAWITHAES128GCMSHA256 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" 231 // TLSECDHERSAWITHAES256CBCSHA ... 232 TLSECDHERSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" 233 // TLSECDHERSAWITHAES256CBCSHA384 ... 234 TLSECDHERSAWITHAES256CBCSHA384 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" 235 // TLSECDHERSAWITHAES256GCMSHA384 ... 236 TLSECDHERSAWITHAES256GCMSHA384 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" 237 // TLSRSAWITH3DESEDECBCSHA ... 238 TLSRSAWITH3DESEDECBCSHA ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_3DES_EDE_CBC_SHA" 239 // TLSRSAWITHAES128CBCSHA ... 240 TLSRSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_128_CBC_SHA" 241 // TLSRSAWITHAES128CBCSHA256 ... 242 TLSRSAWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_128_CBC_SHA256" 243 // TLSRSAWITHAES128GCMSHA256 ... 244 TLSRSAWITHAES128GCMSHA256 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_128_GCM_SHA256" 245 // TLSRSAWITHAES256CBCSHA ... 246 TLSRSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_256_CBC_SHA" 247 // TLSRSAWITHAES256CBCSHA256 ... 248 TLSRSAWITHAES256CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_256_CBC_SHA256" 249 // TLSRSAWITHAES256GCMSHA384 ... 250 TLSRSAWITHAES256GCMSHA384 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_256_GCM_SHA384" 251) 252 253// PossibleApplicationGatewaySslCipherSuiteValues returns an array of possible values for the ApplicationGatewaySslCipherSuite const type. 254func PossibleApplicationGatewaySslCipherSuiteValues() []ApplicationGatewaySslCipherSuite { 255 return []ApplicationGatewaySslCipherSuite{TLSDHEDSSWITH3DESEDECBCSHA, TLSDHEDSSWITHAES128CBCSHA, TLSDHEDSSWITHAES128CBCSHA256, TLSDHEDSSWITHAES256CBCSHA, TLSDHEDSSWITHAES256CBCSHA256, TLSDHERSAWITHAES128CBCSHA, TLSDHERSAWITHAES128GCMSHA256, TLSDHERSAWITHAES256CBCSHA, TLSDHERSAWITHAES256GCMSHA384, TLSECDHEECDSAWITHAES128CBCSHA, TLSECDHEECDSAWITHAES128CBCSHA256, TLSECDHEECDSAWITHAES128GCMSHA256, TLSECDHEECDSAWITHAES256CBCSHA, TLSECDHEECDSAWITHAES256CBCSHA384, TLSECDHEECDSAWITHAES256GCMSHA384, TLSECDHERSAWITHAES128CBCSHA, TLSECDHERSAWITHAES128CBCSHA256, TLSECDHERSAWITHAES128GCMSHA256, TLSECDHERSAWITHAES256CBCSHA, TLSECDHERSAWITHAES256CBCSHA384, TLSECDHERSAWITHAES256GCMSHA384, TLSRSAWITH3DESEDECBCSHA, TLSRSAWITHAES128CBCSHA, TLSRSAWITHAES128CBCSHA256, TLSRSAWITHAES128GCMSHA256, TLSRSAWITHAES256CBCSHA, TLSRSAWITHAES256CBCSHA256, TLSRSAWITHAES256GCMSHA384} 256} 257 258// ApplicationGatewaySslPolicyName enumerates the values for application gateway ssl policy name. 259type ApplicationGatewaySslPolicyName string 260 261const ( 262 // AppGwSslPolicy20150501 ... 263 AppGwSslPolicy20150501 ApplicationGatewaySslPolicyName = "AppGwSslPolicy20150501" 264 // AppGwSslPolicy20170401 ... 265 AppGwSslPolicy20170401 ApplicationGatewaySslPolicyName = "AppGwSslPolicy20170401" 266 // AppGwSslPolicy20170401S ... 267 AppGwSslPolicy20170401S ApplicationGatewaySslPolicyName = "AppGwSslPolicy20170401S" 268) 269 270// PossibleApplicationGatewaySslPolicyNameValues returns an array of possible values for the ApplicationGatewaySslPolicyName const type. 271func PossibleApplicationGatewaySslPolicyNameValues() []ApplicationGatewaySslPolicyName { 272 return []ApplicationGatewaySslPolicyName{AppGwSslPolicy20150501, AppGwSslPolicy20170401, AppGwSslPolicy20170401S} 273} 274 275// ApplicationGatewaySslPolicyType enumerates the values for application gateway ssl policy type. 276type ApplicationGatewaySslPolicyType string 277 278const ( 279 // Custom ... 280 Custom ApplicationGatewaySslPolicyType = "Custom" 281 // Predefined ... 282 Predefined ApplicationGatewaySslPolicyType = "Predefined" 283) 284 285// PossibleApplicationGatewaySslPolicyTypeValues returns an array of possible values for the ApplicationGatewaySslPolicyType const type. 286func PossibleApplicationGatewaySslPolicyTypeValues() []ApplicationGatewaySslPolicyType { 287 return []ApplicationGatewaySslPolicyType{Custom, Predefined} 288} 289 290// ApplicationGatewaySslProtocol enumerates the values for application gateway ssl protocol. 291type ApplicationGatewaySslProtocol string 292 293const ( 294 // TLSv10 ... 295 TLSv10 ApplicationGatewaySslProtocol = "TLSv1_0" 296 // TLSv11 ... 297 TLSv11 ApplicationGatewaySslProtocol = "TLSv1_1" 298 // TLSv12 ... 299 TLSv12 ApplicationGatewaySslProtocol = "TLSv1_2" 300) 301 302// PossibleApplicationGatewaySslProtocolValues returns an array of possible values for the ApplicationGatewaySslProtocol const type. 303func PossibleApplicationGatewaySslProtocolValues() []ApplicationGatewaySslProtocol { 304 return []ApplicationGatewaySslProtocol{TLSv10, TLSv11, TLSv12} 305} 306 307// ApplicationGatewayTier enumerates the values for application gateway tier. 308type ApplicationGatewayTier string 309 310const ( 311 // Standard ... 312 Standard ApplicationGatewayTier = "Standard" 313 // WAF ... 314 WAF ApplicationGatewayTier = "WAF" 315) 316 317// PossibleApplicationGatewayTierValues returns an array of possible values for the ApplicationGatewayTier const type. 318func PossibleApplicationGatewayTierValues() []ApplicationGatewayTier { 319 return []ApplicationGatewayTier{Standard, WAF} 320} 321 322// AssociationType enumerates the values for association type. 323type AssociationType string 324 325const ( 326 // Associated ... 327 Associated AssociationType = "Associated" 328 // Contains ... 329 Contains AssociationType = "Contains" 330) 331 332// PossibleAssociationTypeValues returns an array of possible values for the AssociationType const type. 333func PossibleAssociationTypeValues() []AssociationType { 334 return []AssociationType{Associated, Contains} 335} 336 337// AuthenticationMethod enumerates the values for authentication method. 338type AuthenticationMethod string 339 340const ( 341 // EAPMSCHAPv2 ... 342 EAPMSCHAPv2 AuthenticationMethod = "EAPMSCHAPv2" 343 // EAPTLS ... 344 EAPTLS AuthenticationMethod = "EAPTLS" 345) 346 347// PossibleAuthenticationMethodValues returns an array of possible values for the AuthenticationMethod const type. 348func PossibleAuthenticationMethodValues() []AuthenticationMethod { 349 return []AuthenticationMethod{EAPMSCHAPv2, EAPTLS} 350} 351 352// AuthorizationUseStatus enumerates the values for authorization use status. 353type AuthorizationUseStatus string 354 355const ( 356 // Available ... 357 Available AuthorizationUseStatus = "Available" 358 // InUse ... 359 InUse AuthorizationUseStatus = "InUse" 360) 361 362// PossibleAuthorizationUseStatusValues returns an array of possible values for the AuthorizationUseStatus const type. 363func PossibleAuthorizationUseStatusValues() []AuthorizationUseStatus { 364 return []AuthorizationUseStatus{Available, InUse} 365} 366 367// BgpPeerState enumerates the values for bgp peer state. 368type BgpPeerState string 369 370const ( 371 // BgpPeerStateConnected ... 372 BgpPeerStateConnected BgpPeerState = "Connected" 373 // BgpPeerStateConnecting ... 374 BgpPeerStateConnecting BgpPeerState = "Connecting" 375 // BgpPeerStateIdle ... 376 BgpPeerStateIdle BgpPeerState = "Idle" 377 // BgpPeerStateStopped ... 378 BgpPeerStateStopped BgpPeerState = "Stopped" 379 // BgpPeerStateUnknown ... 380 BgpPeerStateUnknown BgpPeerState = "Unknown" 381) 382 383// PossibleBgpPeerStateValues returns an array of possible values for the BgpPeerState const type. 384func PossibleBgpPeerStateValues() []BgpPeerState { 385 return []BgpPeerState{BgpPeerStateConnected, BgpPeerStateConnecting, BgpPeerStateIdle, BgpPeerStateStopped, BgpPeerStateUnknown} 386} 387 388// CircuitConnectionStatus enumerates the values for circuit connection status. 389type CircuitConnectionStatus string 390 391const ( 392 // Connected ... 393 Connected CircuitConnectionStatus = "Connected" 394 // Connecting ... 395 Connecting CircuitConnectionStatus = "Connecting" 396 // Disconnected ... 397 Disconnected CircuitConnectionStatus = "Disconnected" 398) 399 400// PossibleCircuitConnectionStatusValues returns an array of possible values for the CircuitConnectionStatus const type. 401func PossibleCircuitConnectionStatusValues() []CircuitConnectionStatus { 402 return []CircuitConnectionStatus{Connected, Connecting, Disconnected} 403} 404 405// ConnectionMonitorSourceStatus enumerates the values for connection monitor source status. 406type ConnectionMonitorSourceStatus string 407 408const ( 409 // Active ... 410 Active ConnectionMonitorSourceStatus = "Active" 411 // Inactive ... 412 Inactive ConnectionMonitorSourceStatus = "Inactive" 413 // Uknown ... 414 Uknown ConnectionMonitorSourceStatus = "Uknown" 415) 416 417// PossibleConnectionMonitorSourceStatusValues returns an array of possible values for the ConnectionMonitorSourceStatus const type. 418func PossibleConnectionMonitorSourceStatusValues() []ConnectionMonitorSourceStatus { 419 return []ConnectionMonitorSourceStatus{Active, Inactive, Uknown} 420} 421 422// ConnectionState enumerates the values for connection state. 423type ConnectionState string 424 425const ( 426 // ConnectionStateReachable ... 427 ConnectionStateReachable ConnectionState = "Reachable" 428 // ConnectionStateUnknown ... 429 ConnectionStateUnknown ConnectionState = "Unknown" 430 // ConnectionStateUnreachable ... 431 ConnectionStateUnreachable ConnectionState = "Unreachable" 432) 433 434// PossibleConnectionStateValues returns an array of possible values for the ConnectionState const type. 435func PossibleConnectionStateValues() []ConnectionState { 436 return []ConnectionState{ConnectionStateReachable, ConnectionStateUnknown, ConnectionStateUnreachable} 437} 438 439// ConnectionStatus enumerates the values for connection status. 440type ConnectionStatus string 441 442const ( 443 // ConnectionStatusConnected ... 444 ConnectionStatusConnected ConnectionStatus = "Connected" 445 // ConnectionStatusDegraded ... 446 ConnectionStatusDegraded ConnectionStatus = "Degraded" 447 // ConnectionStatusDisconnected ... 448 ConnectionStatusDisconnected ConnectionStatus = "Disconnected" 449 // ConnectionStatusUnknown ... 450 ConnectionStatusUnknown ConnectionStatus = "Unknown" 451) 452 453// PossibleConnectionStatusValues returns an array of possible values for the ConnectionStatus const type. 454func PossibleConnectionStatusValues() []ConnectionStatus { 455 return []ConnectionStatus{ConnectionStatusConnected, ConnectionStatusDegraded, ConnectionStatusDisconnected, ConnectionStatusUnknown} 456} 457 458// DhGroup enumerates the values for dh group. 459type DhGroup string 460 461const ( 462 // DHGroup1 ... 463 DHGroup1 DhGroup = "DHGroup1" 464 // DHGroup14 ... 465 DHGroup14 DhGroup = "DHGroup14" 466 // DHGroup2 ... 467 DHGroup2 DhGroup = "DHGroup2" 468 // DHGroup2048 ... 469 DHGroup2048 DhGroup = "DHGroup2048" 470 // DHGroup24 ... 471 DHGroup24 DhGroup = "DHGroup24" 472 // ECP256 ... 473 ECP256 DhGroup = "ECP256" 474 // ECP384 ... 475 ECP384 DhGroup = "ECP384" 476 // None ... 477 None DhGroup = "None" 478) 479 480// PossibleDhGroupValues returns an array of possible values for the DhGroup const type. 481func PossibleDhGroupValues() []DhGroup { 482 return []DhGroup{DHGroup1, DHGroup14, DHGroup2, DHGroup2048, DHGroup24, ECP256, ECP384, None} 483} 484 485// Direction enumerates the values for direction. 486type Direction string 487 488const ( 489 // Inbound ... 490 Inbound Direction = "Inbound" 491 // Outbound ... 492 Outbound Direction = "Outbound" 493) 494 495// PossibleDirectionValues returns an array of possible values for the Direction const type. 496func PossibleDirectionValues() []Direction { 497 return []Direction{Inbound, Outbound} 498} 499 500// EffectiveRouteSource enumerates the values for effective route source. 501type EffectiveRouteSource string 502 503const ( 504 // EffectiveRouteSourceDefault ... 505 EffectiveRouteSourceDefault EffectiveRouteSource = "Default" 506 // EffectiveRouteSourceUnknown ... 507 EffectiveRouteSourceUnknown EffectiveRouteSource = "Unknown" 508 // EffectiveRouteSourceUser ... 509 EffectiveRouteSourceUser EffectiveRouteSource = "User" 510 // EffectiveRouteSourceVirtualNetworkGateway ... 511 EffectiveRouteSourceVirtualNetworkGateway EffectiveRouteSource = "VirtualNetworkGateway" 512) 513 514// PossibleEffectiveRouteSourceValues returns an array of possible values for the EffectiveRouteSource const type. 515func PossibleEffectiveRouteSourceValues() []EffectiveRouteSource { 516 return []EffectiveRouteSource{EffectiveRouteSourceDefault, EffectiveRouteSourceUnknown, EffectiveRouteSourceUser, EffectiveRouteSourceVirtualNetworkGateway} 517} 518 519// EffectiveRouteState enumerates the values for effective route state. 520type EffectiveRouteState string 521 522const ( 523 // EffectiveRouteStateActive ... 524 EffectiveRouteStateActive EffectiveRouteState = "Active" 525 // EffectiveRouteStateInvalid ... 526 EffectiveRouteStateInvalid EffectiveRouteState = "Invalid" 527) 528 529// PossibleEffectiveRouteStateValues returns an array of possible values for the EffectiveRouteState const type. 530func PossibleEffectiveRouteStateValues() []EffectiveRouteState { 531 return []EffectiveRouteState{EffectiveRouteStateActive, EffectiveRouteStateInvalid} 532} 533 534// EffectiveSecurityRuleProtocol enumerates the values for effective security rule protocol. 535type EffectiveSecurityRuleProtocol string 536 537const ( 538 // All ... 539 All EffectiveSecurityRuleProtocol = "All" 540 // TCP ... 541 TCP EffectiveSecurityRuleProtocol = "Tcp" 542 // UDP ... 543 UDP EffectiveSecurityRuleProtocol = "Udp" 544) 545 546// PossibleEffectiveSecurityRuleProtocolValues returns an array of possible values for the EffectiveSecurityRuleProtocol const type. 547func PossibleEffectiveSecurityRuleProtocolValues() []EffectiveSecurityRuleProtocol { 548 return []EffectiveSecurityRuleProtocol{All, TCP, UDP} 549} 550 551// EvaluationState enumerates the values for evaluation state. 552type EvaluationState string 553 554const ( 555 // Completed ... 556 Completed EvaluationState = "Completed" 557 // InProgress ... 558 InProgress EvaluationState = "InProgress" 559 // NotStarted ... 560 NotStarted EvaluationState = "NotStarted" 561) 562 563// PossibleEvaluationStateValues returns an array of possible values for the EvaluationState const type. 564func PossibleEvaluationStateValues() []EvaluationState { 565 return []EvaluationState{Completed, InProgress, NotStarted} 566} 567 568// ExpressRouteCircuitPeeringAdvertisedPublicPrefixState enumerates the values for express route circuit 569// peering advertised public prefix state. 570type ExpressRouteCircuitPeeringAdvertisedPublicPrefixState string 571 572const ( 573 // Configured ... 574 Configured ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "Configured" 575 // Configuring ... 576 Configuring ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "Configuring" 577 // NotConfigured ... 578 NotConfigured ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "NotConfigured" 579 // ValidationNeeded ... 580 ValidationNeeded ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "ValidationNeeded" 581) 582 583// PossibleExpressRouteCircuitPeeringAdvertisedPublicPrefixStateValues returns an array of possible values for the ExpressRouteCircuitPeeringAdvertisedPublicPrefixState const type. 584func PossibleExpressRouteCircuitPeeringAdvertisedPublicPrefixStateValues() []ExpressRouteCircuitPeeringAdvertisedPublicPrefixState { 585 return []ExpressRouteCircuitPeeringAdvertisedPublicPrefixState{Configured, Configuring, NotConfigured, ValidationNeeded} 586} 587 588// ExpressRouteCircuitPeeringState enumerates the values for express route circuit peering state. 589type ExpressRouteCircuitPeeringState string 590 591const ( 592 // ExpressRouteCircuitPeeringStateDisabled ... 593 ExpressRouteCircuitPeeringStateDisabled ExpressRouteCircuitPeeringState = "Disabled" 594 // ExpressRouteCircuitPeeringStateEnabled ... 595 ExpressRouteCircuitPeeringStateEnabled ExpressRouteCircuitPeeringState = "Enabled" 596) 597 598// PossibleExpressRouteCircuitPeeringStateValues returns an array of possible values for the ExpressRouteCircuitPeeringState const type. 599func PossibleExpressRouteCircuitPeeringStateValues() []ExpressRouteCircuitPeeringState { 600 return []ExpressRouteCircuitPeeringState{ExpressRouteCircuitPeeringStateDisabled, ExpressRouteCircuitPeeringStateEnabled} 601} 602 603// ExpressRouteCircuitSkuFamily enumerates the values for express route circuit sku family. 604type ExpressRouteCircuitSkuFamily string 605 606const ( 607 // MeteredData ... 608 MeteredData ExpressRouteCircuitSkuFamily = "MeteredData" 609 // UnlimitedData ... 610 UnlimitedData ExpressRouteCircuitSkuFamily = "UnlimitedData" 611) 612 613// PossibleExpressRouteCircuitSkuFamilyValues returns an array of possible values for the ExpressRouteCircuitSkuFamily const type. 614func PossibleExpressRouteCircuitSkuFamilyValues() []ExpressRouteCircuitSkuFamily { 615 return []ExpressRouteCircuitSkuFamily{MeteredData, UnlimitedData} 616} 617 618// ExpressRouteCircuitSkuTier enumerates the values for express route circuit sku tier. 619type ExpressRouteCircuitSkuTier string 620 621const ( 622 // ExpressRouteCircuitSkuTierPremium ... 623 ExpressRouteCircuitSkuTierPremium ExpressRouteCircuitSkuTier = "Premium" 624 // ExpressRouteCircuitSkuTierStandard ... 625 ExpressRouteCircuitSkuTierStandard ExpressRouteCircuitSkuTier = "Standard" 626) 627 628// PossibleExpressRouteCircuitSkuTierValues returns an array of possible values for the ExpressRouteCircuitSkuTier const type. 629func PossibleExpressRouteCircuitSkuTierValues() []ExpressRouteCircuitSkuTier { 630 return []ExpressRouteCircuitSkuTier{ExpressRouteCircuitSkuTierPremium, ExpressRouteCircuitSkuTierStandard} 631} 632 633// ExpressRoutePeeringState enumerates the values for express route peering state. 634type ExpressRoutePeeringState string 635 636const ( 637 // ExpressRoutePeeringStateDisabled ... 638 ExpressRoutePeeringStateDisabled ExpressRoutePeeringState = "Disabled" 639 // ExpressRoutePeeringStateEnabled ... 640 ExpressRoutePeeringStateEnabled ExpressRoutePeeringState = "Enabled" 641) 642 643// PossibleExpressRoutePeeringStateValues returns an array of possible values for the ExpressRoutePeeringState const type. 644func PossibleExpressRoutePeeringStateValues() []ExpressRoutePeeringState { 645 return []ExpressRoutePeeringState{ExpressRoutePeeringStateDisabled, ExpressRoutePeeringStateEnabled} 646} 647 648// ExpressRoutePeeringType enumerates the values for express route peering type. 649type ExpressRoutePeeringType string 650 651const ( 652 // AzurePrivatePeering ... 653 AzurePrivatePeering ExpressRoutePeeringType = "AzurePrivatePeering" 654 // AzurePublicPeering ... 655 AzurePublicPeering ExpressRoutePeeringType = "AzurePublicPeering" 656 // MicrosoftPeering ... 657 MicrosoftPeering ExpressRoutePeeringType = "MicrosoftPeering" 658) 659 660// PossibleExpressRoutePeeringTypeValues returns an array of possible values for the ExpressRoutePeeringType const type. 661func PossibleExpressRoutePeeringTypeValues() []ExpressRoutePeeringType { 662 return []ExpressRoutePeeringType{AzurePrivatePeering, AzurePublicPeering, MicrosoftPeering} 663} 664 665// HTTPMethod enumerates the values for http method. 666type HTTPMethod string 667 668const ( 669 // Get ... 670 Get HTTPMethod = "Get" 671) 672 673// PossibleHTTPMethodValues returns an array of possible values for the HTTPMethod const type. 674func PossibleHTTPMethodValues() []HTTPMethod { 675 return []HTTPMethod{Get} 676} 677 678// IkeEncryption enumerates the values for ike encryption. 679type IkeEncryption string 680 681const ( 682 // AES128 ... 683 AES128 IkeEncryption = "AES128" 684 // AES192 ... 685 AES192 IkeEncryption = "AES192" 686 // AES256 ... 687 AES256 IkeEncryption = "AES256" 688 // DES ... 689 DES IkeEncryption = "DES" 690 // DES3 ... 691 DES3 IkeEncryption = "DES3" 692 // GCMAES128 ... 693 GCMAES128 IkeEncryption = "GCMAES128" 694 // GCMAES256 ... 695 GCMAES256 IkeEncryption = "GCMAES256" 696) 697 698// PossibleIkeEncryptionValues returns an array of possible values for the IkeEncryption const type. 699func PossibleIkeEncryptionValues() []IkeEncryption { 700 return []IkeEncryption{AES128, AES192, AES256, DES, DES3, GCMAES128, GCMAES256} 701} 702 703// IkeIntegrity enumerates the values for ike integrity. 704type IkeIntegrity string 705 706const ( 707 // IkeIntegrityGCMAES128 ... 708 IkeIntegrityGCMAES128 IkeIntegrity = "GCMAES128" 709 // IkeIntegrityGCMAES256 ... 710 IkeIntegrityGCMAES256 IkeIntegrity = "GCMAES256" 711 // IkeIntegrityMD5 ... 712 IkeIntegrityMD5 IkeIntegrity = "MD5" 713 // IkeIntegritySHA1 ... 714 IkeIntegritySHA1 IkeIntegrity = "SHA1" 715 // IkeIntegritySHA256 ... 716 IkeIntegritySHA256 IkeIntegrity = "SHA256" 717 // IkeIntegritySHA384 ... 718 IkeIntegritySHA384 IkeIntegrity = "SHA384" 719) 720 721// PossibleIkeIntegrityValues returns an array of possible values for the IkeIntegrity const type. 722func PossibleIkeIntegrityValues() []IkeIntegrity { 723 return []IkeIntegrity{IkeIntegrityGCMAES128, IkeIntegrityGCMAES256, IkeIntegrityMD5, IkeIntegritySHA1, IkeIntegritySHA256, IkeIntegritySHA384} 724} 725 726// IPAllocationMethod enumerates the values for ip allocation method. 727type IPAllocationMethod string 728 729const ( 730 // Dynamic ... 731 Dynamic IPAllocationMethod = "Dynamic" 732 // Static ... 733 Static IPAllocationMethod = "Static" 734) 735 736// PossibleIPAllocationMethodValues returns an array of possible values for the IPAllocationMethod const type. 737func PossibleIPAllocationMethodValues() []IPAllocationMethod { 738 return []IPAllocationMethod{Dynamic, Static} 739} 740 741// IPFlowProtocol enumerates the values for ip flow protocol. 742type IPFlowProtocol string 743 744const ( 745 // IPFlowProtocolTCP ... 746 IPFlowProtocolTCP IPFlowProtocol = "TCP" 747 // IPFlowProtocolUDP ... 748 IPFlowProtocolUDP IPFlowProtocol = "UDP" 749) 750 751// PossibleIPFlowProtocolValues returns an array of possible values for the IPFlowProtocol const type. 752func PossibleIPFlowProtocolValues() []IPFlowProtocol { 753 return []IPFlowProtocol{IPFlowProtocolTCP, IPFlowProtocolUDP} 754} 755 756// IpsecEncryption enumerates the values for ipsec encryption. 757type IpsecEncryption string 758 759const ( 760 // IpsecEncryptionAES128 ... 761 IpsecEncryptionAES128 IpsecEncryption = "AES128" 762 // IpsecEncryptionAES192 ... 763 IpsecEncryptionAES192 IpsecEncryption = "AES192" 764 // IpsecEncryptionAES256 ... 765 IpsecEncryptionAES256 IpsecEncryption = "AES256" 766 // IpsecEncryptionDES ... 767 IpsecEncryptionDES IpsecEncryption = "DES" 768 // IpsecEncryptionDES3 ... 769 IpsecEncryptionDES3 IpsecEncryption = "DES3" 770 // IpsecEncryptionGCMAES128 ... 771 IpsecEncryptionGCMAES128 IpsecEncryption = "GCMAES128" 772 // IpsecEncryptionGCMAES192 ... 773 IpsecEncryptionGCMAES192 IpsecEncryption = "GCMAES192" 774 // IpsecEncryptionGCMAES256 ... 775 IpsecEncryptionGCMAES256 IpsecEncryption = "GCMAES256" 776 // IpsecEncryptionNone ... 777 IpsecEncryptionNone IpsecEncryption = "None" 778) 779 780// PossibleIpsecEncryptionValues returns an array of possible values for the IpsecEncryption const type. 781func PossibleIpsecEncryptionValues() []IpsecEncryption { 782 return []IpsecEncryption{IpsecEncryptionAES128, IpsecEncryptionAES192, IpsecEncryptionAES256, IpsecEncryptionDES, IpsecEncryptionDES3, IpsecEncryptionGCMAES128, IpsecEncryptionGCMAES192, IpsecEncryptionGCMAES256, IpsecEncryptionNone} 783} 784 785// IpsecIntegrity enumerates the values for ipsec integrity. 786type IpsecIntegrity string 787 788const ( 789 // IpsecIntegrityGCMAES128 ... 790 IpsecIntegrityGCMAES128 IpsecIntegrity = "GCMAES128" 791 // IpsecIntegrityGCMAES192 ... 792 IpsecIntegrityGCMAES192 IpsecIntegrity = "GCMAES192" 793 // IpsecIntegrityGCMAES256 ... 794 IpsecIntegrityGCMAES256 IpsecIntegrity = "GCMAES256" 795 // IpsecIntegrityMD5 ... 796 IpsecIntegrityMD5 IpsecIntegrity = "MD5" 797 // IpsecIntegritySHA1 ... 798 IpsecIntegritySHA1 IpsecIntegrity = "SHA1" 799 // IpsecIntegritySHA256 ... 800 IpsecIntegritySHA256 IpsecIntegrity = "SHA256" 801) 802 803// PossibleIpsecIntegrityValues returns an array of possible values for the IpsecIntegrity const type. 804func PossibleIpsecIntegrityValues() []IpsecIntegrity { 805 return []IpsecIntegrity{IpsecIntegrityGCMAES128, IpsecIntegrityGCMAES192, IpsecIntegrityGCMAES256, IpsecIntegrityMD5, IpsecIntegritySHA1, IpsecIntegritySHA256} 806} 807 808// IPVersion enumerates the values for ip version. 809type IPVersion string 810 811const ( 812 // IPv4 ... 813 IPv4 IPVersion = "IPv4" 814 // IPv6 ... 815 IPv6 IPVersion = "IPv6" 816) 817 818// PossibleIPVersionValues returns an array of possible values for the IPVersion const type. 819func PossibleIPVersionValues() []IPVersion { 820 return []IPVersion{IPv4, IPv6} 821} 822 823// IssueType enumerates the values for issue type. 824type IssueType string 825 826const ( 827 // IssueTypeAgentStopped ... 828 IssueTypeAgentStopped IssueType = "AgentStopped" 829 // IssueTypeDNSResolution ... 830 IssueTypeDNSResolution IssueType = "DnsResolution" 831 // IssueTypeGuestFirewall ... 832 IssueTypeGuestFirewall IssueType = "GuestFirewall" 833 // IssueTypeNetworkSecurityRule ... 834 IssueTypeNetworkSecurityRule IssueType = "NetworkSecurityRule" 835 // IssueTypePlatform ... 836 IssueTypePlatform IssueType = "Platform" 837 // IssueTypePortThrottled ... 838 IssueTypePortThrottled IssueType = "PortThrottled" 839 // IssueTypeSocketBind ... 840 IssueTypeSocketBind IssueType = "SocketBind" 841 // IssueTypeUnknown ... 842 IssueTypeUnknown IssueType = "Unknown" 843 // IssueTypeUserDefinedRoute ... 844 IssueTypeUserDefinedRoute IssueType = "UserDefinedRoute" 845) 846 847// PossibleIssueTypeValues returns an array of possible values for the IssueType const type. 848func PossibleIssueTypeValues() []IssueType { 849 return []IssueType{IssueTypeAgentStopped, IssueTypeDNSResolution, IssueTypeGuestFirewall, IssueTypeNetworkSecurityRule, IssueTypePlatform, IssueTypePortThrottled, IssueTypeSocketBind, IssueTypeUnknown, IssueTypeUserDefinedRoute} 850} 851 852// LoadBalancerSkuName enumerates the values for load balancer sku name. 853type LoadBalancerSkuName string 854 855const ( 856 // LoadBalancerSkuNameBasic ... 857 LoadBalancerSkuNameBasic LoadBalancerSkuName = "Basic" 858 // LoadBalancerSkuNameStandard ... 859 LoadBalancerSkuNameStandard LoadBalancerSkuName = "Standard" 860) 861 862// PossibleLoadBalancerSkuNameValues returns an array of possible values for the LoadBalancerSkuName const type. 863func PossibleLoadBalancerSkuNameValues() []LoadBalancerSkuName { 864 return []LoadBalancerSkuName{LoadBalancerSkuNameBasic, LoadBalancerSkuNameStandard} 865} 866 867// LoadDistribution enumerates the values for load distribution. 868type LoadDistribution string 869 870const ( 871 // Default ... 872 Default LoadDistribution = "Default" 873 // SourceIP ... 874 SourceIP LoadDistribution = "SourceIP" 875 // SourceIPProtocol ... 876 SourceIPProtocol LoadDistribution = "SourceIPProtocol" 877) 878 879// PossibleLoadDistributionValues returns an array of possible values for the LoadDistribution const type. 880func PossibleLoadDistributionValues() []LoadDistribution { 881 return []LoadDistribution{Default, SourceIP, SourceIPProtocol} 882} 883 884// NextHopType enumerates the values for next hop type. 885type NextHopType string 886 887const ( 888 // NextHopTypeHyperNetGateway ... 889 NextHopTypeHyperNetGateway NextHopType = "HyperNetGateway" 890 // NextHopTypeInternet ... 891 NextHopTypeInternet NextHopType = "Internet" 892 // NextHopTypeNone ... 893 NextHopTypeNone NextHopType = "None" 894 // NextHopTypeVirtualAppliance ... 895 NextHopTypeVirtualAppliance NextHopType = "VirtualAppliance" 896 // NextHopTypeVirtualNetworkGateway ... 897 NextHopTypeVirtualNetworkGateway NextHopType = "VirtualNetworkGateway" 898 // NextHopTypeVnetLocal ... 899 NextHopTypeVnetLocal NextHopType = "VnetLocal" 900) 901 902// PossibleNextHopTypeValues returns an array of possible values for the NextHopType const type. 903func PossibleNextHopTypeValues() []NextHopType { 904 return []NextHopType{NextHopTypeHyperNetGateway, NextHopTypeInternet, NextHopTypeNone, NextHopTypeVirtualAppliance, NextHopTypeVirtualNetworkGateway, NextHopTypeVnetLocal} 905} 906 907// OperationStatus enumerates the values for operation status. 908type OperationStatus string 909 910const ( 911 // OperationStatusFailed ... 912 OperationStatusFailed OperationStatus = "Failed" 913 // OperationStatusInProgress ... 914 OperationStatusInProgress OperationStatus = "InProgress" 915 // OperationStatusSucceeded ... 916 OperationStatusSucceeded OperationStatus = "Succeeded" 917) 918 919// PossibleOperationStatusValues returns an array of possible values for the OperationStatus const type. 920func PossibleOperationStatusValues() []OperationStatus { 921 return []OperationStatus{OperationStatusFailed, OperationStatusInProgress, OperationStatusSucceeded} 922} 923 924// Origin enumerates the values for origin. 925type Origin string 926 927const ( 928 // OriginInbound ... 929 OriginInbound Origin = "Inbound" 930 // OriginLocal ... 931 OriginLocal Origin = "Local" 932 // OriginOutbound ... 933 OriginOutbound Origin = "Outbound" 934) 935 936// PossibleOriginValues returns an array of possible values for the Origin const type. 937func PossibleOriginValues() []Origin { 938 return []Origin{OriginInbound, OriginLocal, OriginOutbound} 939} 940 941// PcError enumerates the values for pc error. 942type PcError string 943 944const ( 945 // AgentStopped ... 946 AgentStopped PcError = "AgentStopped" 947 // CaptureFailed ... 948 CaptureFailed PcError = "CaptureFailed" 949 // InternalError ... 950 InternalError PcError = "InternalError" 951 // LocalFileFailed ... 952 LocalFileFailed PcError = "LocalFileFailed" 953 // StorageFailed ... 954 StorageFailed PcError = "StorageFailed" 955) 956 957// PossiblePcErrorValues returns an array of possible values for the PcError const type. 958func PossiblePcErrorValues() []PcError { 959 return []PcError{AgentStopped, CaptureFailed, InternalError, LocalFileFailed, StorageFailed} 960} 961 962// PcProtocol enumerates the values for pc protocol. 963type PcProtocol string 964 965const ( 966 // PcProtocolAny ... 967 PcProtocolAny PcProtocol = "Any" 968 // PcProtocolTCP ... 969 PcProtocolTCP PcProtocol = "TCP" 970 // PcProtocolUDP ... 971 PcProtocolUDP PcProtocol = "UDP" 972) 973 974// PossiblePcProtocolValues returns an array of possible values for the PcProtocol const type. 975func PossiblePcProtocolValues() []PcProtocol { 976 return []PcProtocol{PcProtocolAny, PcProtocolTCP, PcProtocolUDP} 977} 978 979// PcStatus enumerates the values for pc status. 980type PcStatus string 981 982const ( 983 // PcStatusError ... 984 PcStatusError PcStatus = "Error" 985 // PcStatusNotStarted ... 986 PcStatusNotStarted PcStatus = "NotStarted" 987 // PcStatusRunning ... 988 PcStatusRunning PcStatus = "Running" 989 // PcStatusStopped ... 990 PcStatusStopped PcStatus = "Stopped" 991 // PcStatusUnknown ... 992 PcStatusUnknown PcStatus = "Unknown" 993) 994 995// PossiblePcStatusValues returns an array of possible values for the PcStatus const type. 996func PossiblePcStatusValues() []PcStatus { 997 return []PcStatus{PcStatusError, PcStatusNotStarted, PcStatusRunning, PcStatusStopped, PcStatusUnknown} 998} 999 1000// PfsGroup enumerates the values for pfs group. 1001type PfsGroup string 1002 1003const ( 1004 // PfsGroupECP256 ... 1005 PfsGroupECP256 PfsGroup = "ECP256" 1006 // PfsGroupECP384 ... 1007 PfsGroupECP384 PfsGroup = "ECP384" 1008 // PfsGroupNone ... 1009 PfsGroupNone PfsGroup = "None" 1010 // PfsGroupPFS1 ... 1011 PfsGroupPFS1 PfsGroup = "PFS1" 1012 // PfsGroupPFS14 ... 1013 PfsGroupPFS14 PfsGroup = "PFS14" 1014 // PfsGroupPFS2 ... 1015 PfsGroupPFS2 PfsGroup = "PFS2" 1016 // PfsGroupPFS2048 ... 1017 PfsGroupPFS2048 PfsGroup = "PFS2048" 1018 // PfsGroupPFS24 ... 1019 PfsGroupPFS24 PfsGroup = "PFS24" 1020 // PfsGroupPFSMM ... 1021 PfsGroupPFSMM PfsGroup = "PFSMM" 1022) 1023 1024// PossiblePfsGroupValues returns an array of possible values for the PfsGroup const type. 1025func PossiblePfsGroupValues() []PfsGroup { 1026 return []PfsGroup{PfsGroupECP256, PfsGroupECP384, PfsGroupNone, PfsGroupPFS1, PfsGroupPFS14, PfsGroupPFS2, PfsGroupPFS2048, PfsGroupPFS24, PfsGroupPFSMM} 1027} 1028 1029// ProbeProtocol enumerates the values for probe protocol. 1030type ProbeProtocol string 1031 1032const ( 1033 // ProbeProtocolHTTP ... 1034 ProbeProtocolHTTP ProbeProtocol = "Http" 1035 // ProbeProtocolHTTPS ... 1036 ProbeProtocolHTTPS ProbeProtocol = "Https" 1037 // ProbeProtocolTCP ... 1038 ProbeProtocolTCP ProbeProtocol = "Tcp" 1039) 1040 1041// PossibleProbeProtocolValues returns an array of possible values for the ProbeProtocol const type. 1042func PossibleProbeProtocolValues() []ProbeProtocol { 1043 return []ProbeProtocol{ProbeProtocolHTTP, ProbeProtocolHTTPS, ProbeProtocolTCP} 1044} 1045 1046// ProcessorArchitecture enumerates the values for processor architecture. 1047type ProcessorArchitecture string 1048 1049const ( 1050 // Amd64 ... 1051 Amd64 ProcessorArchitecture = "Amd64" 1052 // X86 ... 1053 X86 ProcessorArchitecture = "X86" 1054) 1055 1056// PossibleProcessorArchitectureValues returns an array of possible values for the ProcessorArchitecture const type. 1057func PossibleProcessorArchitectureValues() []ProcessorArchitecture { 1058 return []ProcessorArchitecture{Amd64, X86} 1059} 1060 1061// Protocol enumerates the values for protocol. 1062type Protocol string 1063 1064const ( 1065 // ProtocolHTTP ... 1066 ProtocolHTTP Protocol = "Http" 1067 // ProtocolHTTPS ... 1068 ProtocolHTTPS Protocol = "Https" 1069 // ProtocolIcmp ... 1070 ProtocolIcmp Protocol = "Icmp" 1071 // ProtocolTCP ... 1072 ProtocolTCP Protocol = "Tcp" 1073) 1074 1075// PossibleProtocolValues returns an array of possible values for the Protocol const type. 1076func PossibleProtocolValues() []Protocol { 1077 return []Protocol{ProtocolHTTP, ProtocolHTTPS, ProtocolIcmp, ProtocolTCP} 1078} 1079 1080// ProvisioningState enumerates the values for provisioning state. 1081type ProvisioningState string 1082 1083const ( 1084 // Deleting ... 1085 Deleting ProvisioningState = "Deleting" 1086 // Failed ... 1087 Failed ProvisioningState = "Failed" 1088 // Succeeded ... 1089 Succeeded ProvisioningState = "Succeeded" 1090 // Updating ... 1091 Updating ProvisioningState = "Updating" 1092) 1093 1094// PossibleProvisioningStateValues returns an array of possible values for the ProvisioningState const type. 1095func PossibleProvisioningStateValues() []ProvisioningState { 1096 return []ProvisioningState{Deleting, Failed, Succeeded, Updating} 1097} 1098 1099// PublicIPAddressSkuName enumerates the values for public ip address sku name. 1100type PublicIPAddressSkuName string 1101 1102const ( 1103 // PublicIPAddressSkuNameBasic ... 1104 PublicIPAddressSkuNameBasic PublicIPAddressSkuName = "Basic" 1105 // PublicIPAddressSkuNameStandard ... 1106 PublicIPAddressSkuNameStandard PublicIPAddressSkuName = "Standard" 1107) 1108 1109// PossiblePublicIPAddressSkuNameValues returns an array of possible values for the PublicIPAddressSkuName const type. 1110func PossiblePublicIPAddressSkuNameValues() []PublicIPAddressSkuName { 1111 return []PublicIPAddressSkuName{PublicIPAddressSkuNameBasic, PublicIPAddressSkuNameStandard} 1112} 1113 1114// RouteNextHopType enumerates the values for route next hop type. 1115type RouteNextHopType string 1116 1117const ( 1118 // RouteNextHopTypeInternet ... 1119 RouteNextHopTypeInternet RouteNextHopType = "Internet" 1120 // RouteNextHopTypeNone ... 1121 RouteNextHopTypeNone RouteNextHopType = "None" 1122 // RouteNextHopTypeVirtualAppliance ... 1123 RouteNextHopTypeVirtualAppliance RouteNextHopType = "VirtualAppliance" 1124 // RouteNextHopTypeVirtualNetworkGateway ... 1125 RouteNextHopTypeVirtualNetworkGateway RouteNextHopType = "VirtualNetworkGateway" 1126 // RouteNextHopTypeVnetLocal ... 1127 RouteNextHopTypeVnetLocal RouteNextHopType = "VnetLocal" 1128) 1129 1130// PossibleRouteNextHopTypeValues returns an array of possible values for the RouteNextHopType const type. 1131func PossibleRouteNextHopTypeValues() []RouteNextHopType { 1132 return []RouteNextHopType{RouteNextHopTypeInternet, RouteNextHopTypeNone, RouteNextHopTypeVirtualAppliance, RouteNextHopTypeVirtualNetworkGateway, RouteNextHopTypeVnetLocal} 1133} 1134 1135// SecurityRuleAccess enumerates the values for security rule access. 1136type SecurityRuleAccess string 1137 1138const ( 1139 // SecurityRuleAccessAllow ... 1140 SecurityRuleAccessAllow SecurityRuleAccess = "Allow" 1141 // SecurityRuleAccessDeny ... 1142 SecurityRuleAccessDeny SecurityRuleAccess = "Deny" 1143) 1144 1145// PossibleSecurityRuleAccessValues returns an array of possible values for the SecurityRuleAccess const type. 1146func PossibleSecurityRuleAccessValues() []SecurityRuleAccess { 1147 return []SecurityRuleAccess{SecurityRuleAccessAllow, SecurityRuleAccessDeny} 1148} 1149 1150// SecurityRuleDirection enumerates the values for security rule direction. 1151type SecurityRuleDirection string 1152 1153const ( 1154 // SecurityRuleDirectionInbound ... 1155 SecurityRuleDirectionInbound SecurityRuleDirection = "Inbound" 1156 // SecurityRuleDirectionOutbound ... 1157 SecurityRuleDirectionOutbound SecurityRuleDirection = "Outbound" 1158) 1159 1160// PossibleSecurityRuleDirectionValues returns an array of possible values for the SecurityRuleDirection const type. 1161func PossibleSecurityRuleDirectionValues() []SecurityRuleDirection { 1162 return []SecurityRuleDirection{SecurityRuleDirectionInbound, SecurityRuleDirectionOutbound} 1163} 1164 1165// SecurityRuleProtocol enumerates the values for security rule protocol. 1166type SecurityRuleProtocol string 1167 1168const ( 1169 // SecurityRuleProtocolAsterisk ... 1170 SecurityRuleProtocolAsterisk SecurityRuleProtocol = "*" 1171 // SecurityRuleProtocolTCP ... 1172 SecurityRuleProtocolTCP SecurityRuleProtocol = "Tcp" 1173 // SecurityRuleProtocolUDP ... 1174 SecurityRuleProtocolUDP SecurityRuleProtocol = "Udp" 1175) 1176 1177// PossibleSecurityRuleProtocolValues returns an array of possible values for the SecurityRuleProtocol const type. 1178func PossibleSecurityRuleProtocolValues() []SecurityRuleProtocol { 1179 return []SecurityRuleProtocol{SecurityRuleProtocolAsterisk, SecurityRuleProtocolTCP, SecurityRuleProtocolUDP} 1180} 1181 1182// ServiceProviderProvisioningState enumerates the values for service provider provisioning state. 1183type ServiceProviderProvisioningState string 1184 1185const ( 1186 // Deprovisioning ... 1187 Deprovisioning ServiceProviderProvisioningState = "Deprovisioning" 1188 // NotProvisioned ... 1189 NotProvisioned ServiceProviderProvisioningState = "NotProvisioned" 1190 // Provisioned ... 1191 Provisioned ServiceProviderProvisioningState = "Provisioned" 1192 // Provisioning ... 1193 Provisioning ServiceProviderProvisioningState = "Provisioning" 1194) 1195 1196// PossibleServiceProviderProvisioningStateValues returns an array of possible values for the ServiceProviderProvisioningState const type. 1197func PossibleServiceProviderProvisioningStateValues() []ServiceProviderProvisioningState { 1198 return []ServiceProviderProvisioningState{Deprovisioning, NotProvisioned, Provisioned, Provisioning} 1199} 1200 1201// Severity enumerates the values for severity. 1202type Severity string 1203 1204const ( 1205 // SeverityError ... 1206 SeverityError Severity = "Error" 1207 // SeverityWarning ... 1208 SeverityWarning Severity = "Warning" 1209) 1210 1211// PossibleSeverityValues returns an array of possible values for the Severity const type. 1212func PossibleSeverityValues() []Severity { 1213 return []Severity{SeverityError, SeverityWarning} 1214} 1215 1216// TransportProtocol enumerates the values for transport protocol. 1217type TransportProtocol string 1218 1219const ( 1220 // TransportProtocolAll ... 1221 TransportProtocolAll TransportProtocol = "All" 1222 // TransportProtocolTCP ... 1223 TransportProtocolTCP TransportProtocol = "Tcp" 1224 // TransportProtocolUDP ... 1225 TransportProtocolUDP TransportProtocol = "Udp" 1226) 1227 1228// PossibleTransportProtocolValues returns an array of possible values for the TransportProtocol const type. 1229func PossibleTransportProtocolValues() []TransportProtocol { 1230 return []TransportProtocol{TransportProtocolAll, TransportProtocolTCP, TransportProtocolUDP} 1231} 1232 1233// VirtualNetworkGatewayConnectionStatus enumerates the values for virtual network gateway connection status. 1234type VirtualNetworkGatewayConnectionStatus string 1235 1236const ( 1237 // VirtualNetworkGatewayConnectionStatusConnected ... 1238 VirtualNetworkGatewayConnectionStatusConnected VirtualNetworkGatewayConnectionStatus = "Connected" 1239 // VirtualNetworkGatewayConnectionStatusConnecting ... 1240 VirtualNetworkGatewayConnectionStatusConnecting VirtualNetworkGatewayConnectionStatus = "Connecting" 1241 // VirtualNetworkGatewayConnectionStatusNotConnected ... 1242 VirtualNetworkGatewayConnectionStatusNotConnected VirtualNetworkGatewayConnectionStatus = "NotConnected" 1243 // VirtualNetworkGatewayConnectionStatusUnknown ... 1244 VirtualNetworkGatewayConnectionStatusUnknown VirtualNetworkGatewayConnectionStatus = "Unknown" 1245) 1246 1247// PossibleVirtualNetworkGatewayConnectionStatusValues returns an array of possible values for the VirtualNetworkGatewayConnectionStatus const type. 1248func PossibleVirtualNetworkGatewayConnectionStatusValues() []VirtualNetworkGatewayConnectionStatus { 1249 return []VirtualNetworkGatewayConnectionStatus{VirtualNetworkGatewayConnectionStatusConnected, VirtualNetworkGatewayConnectionStatusConnecting, VirtualNetworkGatewayConnectionStatusNotConnected, VirtualNetworkGatewayConnectionStatusUnknown} 1250} 1251 1252// VirtualNetworkGatewayConnectionType enumerates the values for virtual network gateway connection type. 1253type VirtualNetworkGatewayConnectionType string 1254 1255const ( 1256 // ExpressRoute ... 1257 ExpressRoute VirtualNetworkGatewayConnectionType = "ExpressRoute" 1258 // IPsec ... 1259 IPsec VirtualNetworkGatewayConnectionType = "IPsec" 1260 // Vnet2Vnet ... 1261 Vnet2Vnet VirtualNetworkGatewayConnectionType = "Vnet2Vnet" 1262 // VPNClient ... 1263 VPNClient VirtualNetworkGatewayConnectionType = "VPNClient" 1264) 1265 1266// PossibleVirtualNetworkGatewayConnectionTypeValues returns an array of possible values for the VirtualNetworkGatewayConnectionType const type. 1267func PossibleVirtualNetworkGatewayConnectionTypeValues() []VirtualNetworkGatewayConnectionType { 1268 return []VirtualNetworkGatewayConnectionType{ExpressRoute, IPsec, Vnet2Vnet, VPNClient} 1269} 1270 1271// VirtualNetworkGatewaySkuName enumerates the values for virtual network gateway sku name. 1272type VirtualNetworkGatewaySkuName string 1273 1274const ( 1275 // VirtualNetworkGatewaySkuNameBasic ... 1276 VirtualNetworkGatewaySkuNameBasic VirtualNetworkGatewaySkuName = "Basic" 1277 // VirtualNetworkGatewaySkuNameHighPerformance ... 1278 VirtualNetworkGatewaySkuNameHighPerformance VirtualNetworkGatewaySkuName = "HighPerformance" 1279 // VirtualNetworkGatewaySkuNameStandard ... 1280 VirtualNetworkGatewaySkuNameStandard VirtualNetworkGatewaySkuName = "Standard" 1281 // VirtualNetworkGatewaySkuNameUltraPerformance ... 1282 VirtualNetworkGatewaySkuNameUltraPerformance VirtualNetworkGatewaySkuName = "UltraPerformance" 1283 // VirtualNetworkGatewaySkuNameVpnGw1 ... 1284 VirtualNetworkGatewaySkuNameVpnGw1 VirtualNetworkGatewaySkuName = "VpnGw1" 1285 // VirtualNetworkGatewaySkuNameVpnGw2 ... 1286 VirtualNetworkGatewaySkuNameVpnGw2 VirtualNetworkGatewaySkuName = "VpnGw2" 1287 // VirtualNetworkGatewaySkuNameVpnGw3 ... 1288 VirtualNetworkGatewaySkuNameVpnGw3 VirtualNetworkGatewaySkuName = "VpnGw3" 1289) 1290 1291// PossibleVirtualNetworkGatewaySkuNameValues returns an array of possible values for the VirtualNetworkGatewaySkuName const type. 1292func PossibleVirtualNetworkGatewaySkuNameValues() []VirtualNetworkGatewaySkuName { 1293 return []VirtualNetworkGatewaySkuName{VirtualNetworkGatewaySkuNameBasic, VirtualNetworkGatewaySkuNameHighPerformance, VirtualNetworkGatewaySkuNameStandard, VirtualNetworkGatewaySkuNameUltraPerformance, VirtualNetworkGatewaySkuNameVpnGw1, VirtualNetworkGatewaySkuNameVpnGw2, VirtualNetworkGatewaySkuNameVpnGw3} 1294} 1295 1296// VirtualNetworkGatewaySkuTier enumerates the values for virtual network gateway sku tier. 1297type VirtualNetworkGatewaySkuTier string 1298 1299const ( 1300 // VirtualNetworkGatewaySkuTierBasic ... 1301 VirtualNetworkGatewaySkuTierBasic VirtualNetworkGatewaySkuTier = "Basic" 1302 // VirtualNetworkGatewaySkuTierHighPerformance ... 1303 VirtualNetworkGatewaySkuTierHighPerformance VirtualNetworkGatewaySkuTier = "HighPerformance" 1304 // VirtualNetworkGatewaySkuTierStandard ... 1305 VirtualNetworkGatewaySkuTierStandard VirtualNetworkGatewaySkuTier = "Standard" 1306 // VirtualNetworkGatewaySkuTierUltraPerformance ... 1307 VirtualNetworkGatewaySkuTierUltraPerformance VirtualNetworkGatewaySkuTier = "UltraPerformance" 1308 // VirtualNetworkGatewaySkuTierVpnGw1 ... 1309 VirtualNetworkGatewaySkuTierVpnGw1 VirtualNetworkGatewaySkuTier = "VpnGw1" 1310 // VirtualNetworkGatewaySkuTierVpnGw2 ... 1311 VirtualNetworkGatewaySkuTierVpnGw2 VirtualNetworkGatewaySkuTier = "VpnGw2" 1312 // VirtualNetworkGatewaySkuTierVpnGw3 ... 1313 VirtualNetworkGatewaySkuTierVpnGw3 VirtualNetworkGatewaySkuTier = "VpnGw3" 1314) 1315 1316// PossibleVirtualNetworkGatewaySkuTierValues returns an array of possible values for the VirtualNetworkGatewaySkuTier const type. 1317func PossibleVirtualNetworkGatewaySkuTierValues() []VirtualNetworkGatewaySkuTier { 1318 return []VirtualNetworkGatewaySkuTier{VirtualNetworkGatewaySkuTierBasic, VirtualNetworkGatewaySkuTierHighPerformance, VirtualNetworkGatewaySkuTierStandard, VirtualNetworkGatewaySkuTierUltraPerformance, VirtualNetworkGatewaySkuTierVpnGw1, VirtualNetworkGatewaySkuTierVpnGw2, VirtualNetworkGatewaySkuTierVpnGw3} 1319} 1320 1321// VirtualNetworkGatewayType enumerates the values for virtual network gateway type. 1322type VirtualNetworkGatewayType string 1323 1324const ( 1325 // VirtualNetworkGatewayTypeExpressRoute ... 1326 VirtualNetworkGatewayTypeExpressRoute VirtualNetworkGatewayType = "ExpressRoute" 1327 // VirtualNetworkGatewayTypeVpn ... 1328 VirtualNetworkGatewayTypeVpn VirtualNetworkGatewayType = "Vpn" 1329) 1330 1331// PossibleVirtualNetworkGatewayTypeValues returns an array of possible values for the VirtualNetworkGatewayType const type. 1332func PossibleVirtualNetworkGatewayTypeValues() []VirtualNetworkGatewayType { 1333 return []VirtualNetworkGatewayType{VirtualNetworkGatewayTypeExpressRoute, VirtualNetworkGatewayTypeVpn} 1334} 1335 1336// VirtualNetworkPeeringState enumerates the values for virtual network peering state. 1337type VirtualNetworkPeeringState string 1338 1339const ( 1340 // VirtualNetworkPeeringStateConnected ... 1341 VirtualNetworkPeeringStateConnected VirtualNetworkPeeringState = "Connected" 1342 // VirtualNetworkPeeringStateDisconnected ... 1343 VirtualNetworkPeeringStateDisconnected VirtualNetworkPeeringState = "Disconnected" 1344 // VirtualNetworkPeeringStateInitiated ... 1345 VirtualNetworkPeeringStateInitiated VirtualNetworkPeeringState = "Initiated" 1346) 1347 1348// PossibleVirtualNetworkPeeringStateValues returns an array of possible values for the VirtualNetworkPeeringState const type. 1349func PossibleVirtualNetworkPeeringStateValues() []VirtualNetworkPeeringState { 1350 return []VirtualNetworkPeeringState{VirtualNetworkPeeringStateConnected, VirtualNetworkPeeringStateDisconnected, VirtualNetworkPeeringStateInitiated} 1351} 1352 1353// VpnClientProtocol enumerates the values for vpn client protocol. 1354type VpnClientProtocol string 1355 1356const ( 1357 // IkeV2 ... 1358 IkeV2 VpnClientProtocol = "IkeV2" 1359 // SSTP ... 1360 SSTP VpnClientProtocol = "SSTP" 1361) 1362 1363// PossibleVpnClientProtocolValues returns an array of possible values for the VpnClientProtocol const type. 1364func PossibleVpnClientProtocolValues() []VpnClientProtocol { 1365 return []VpnClientProtocol{IkeV2, SSTP} 1366} 1367 1368// VpnType enumerates the values for vpn type. 1369type VpnType string 1370 1371const ( 1372 // PolicyBased ... 1373 PolicyBased VpnType = "PolicyBased" 1374 // RouteBased ... 1375 RouteBased VpnType = "RouteBased" 1376) 1377 1378// PossibleVpnTypeValues returns an array of possible values for the VpnType const type. 1379func PossibleVpnTypeValues() []VpnType { 1380 return []VpnType{PolicyBased, RouteBased} 1381} 1382 1383// AddressSpace addressSpace contains an array of IP address ranges that can be used by subnets of the 1384// virtual network. 1385type AddressSpace struct { 1386 // AddressPrefixes - A list of address blocks reserved for this virtual network in CIDR notation. 1387 AddressPrefixes *[]string `json:"addressPrefixes,omitempty"` 1388} 1389 1390// ApplicationGateway application gateway resource 1391type ApplicationGateway struct { 1392 autorest.Response `json:"-"` 1393 *ApplicationGatewayPropertiesFormat `json:"properties,omitempty"` 1394 // Etag - A unique read-only string that changes whenever the resource is updated. 1395 Etag *string `json:"etag,omitempty"` 1396 // ID - Resource ID. 1397 ID *string `json:"id,omitempty"` 1398 // Name - READ-ONLY; Resource name. 1399 Name *string `json:"name,omitempty"` 1400 // Type - READ-ONLY; Resource type. 1401 Type *string `json:"type,omitempty"` 1402 // Location - Resource location. 1403 Location *string `json:"location,omitempty"` 1404 // Tags - Resource tags. 1405 Tags map[string]*string `json:"tags"` 1406} 1407 1408// MarshalJSON is the custom marshaler for ApplicationGateway. 1409func (ag ApplicationGateway) MarshalJSON() ([]byte, error) { 1410 objectMap := make(map[string]interface{}) 1411 if ag.ApplicationGatewayPropertiesFormat != nil { 1412 objectMap["properties"] = ag.ApplicationGatewayPropertiesFormat 1413 } 1414 if ag.Etag != nil { 1415 objectMap["etag"] = ag.Etag 1416 } 1417 if ag.ID != nil { 1418 objectMap["id"] = ag.ID 1419 } 1420 if ag.Location != nil { 1421 objectMap["location"] = ag.Location 1422 } 1423 if ag.Tags != nil { 1424 objectMap["tags"] = ag.Tags 1425 } 1426 return json.Marshal(objectMap) 1427} 1428 1429// UnmarshalJSON is the custom unmarshaler for ApplicationGateway struct. 1430func (ag *ApplicationGateway) UnmarshalJSON(body []byte) error { 1431 var m map[string]*json.RawMessage 1432 err := json.Unmarshal(body, &m) 1433 if err != nil { 1434 return err 1435 } 1436 for k, v := range m { 1437 switch k { 1438 case "properties": 1439 if v != nil { 1440 var applicationGatewayPropertiesFormat ApplicationGatewayPropertiesFormat 1441 err = json.Unmarshal(*v, &applicationGatewayPropertiesFormat) 1442 if err != nil { 1443 return err 1444 } 1445 ag.ApplicationGatewayPropertiesFormat = &applicationGatewayPropertiesFormat 1446 } 1447 case "etag": 1448 if v != nil { 1449 var etag string 1450 err = json.Unmarshal(*v, &etag) 1451 if err != nil { 1452 return err 1453 } 1454 ag.Etag = &etag 1455 } 1456 case "id": 1457 if v != nil { 1458 var ID string 1459 err = json.Unmarshal(*v, &ID) 1460 if err != nil { 1461 return err 1462 } 1463 ag.ID = &ID 1464 } 1465 case "name": 1466 if v != nil { 1467 var name string 1468 err = json.Unmarshal(*v, &name) 1469 if err != nil { 1470 return err 1471 } 1472 ag.Name = &name 1473 } 1474 case "type": 1475 if v != nil { 1476 var typeVar string 1477 err = json.Unmarshal(*v, &typeVar) 1478 if err != nil { 1479 return err 1480 } 1481 ag.Type = &typeVar 1482 } 1483 case "location": 1484 if v != nil { 1485 var location string 1486 err = json.Unmarshal(*v, &location) 1487 if err != nil { 1488 return err 1489 } 1490 ag.Location = &location 1491 } 1492 case "tags": 1493 if v != nil { 1494 var tags map[string]*string 1495 err = json.Unmarshal(*v, &tags) 1496 if err != nil { 1497 return err 1498 } 1499 ag.Tags = tags 1500 } 1501 } 1502 } 1503 1504 return nil 1505} 1506 1507// ApplicationGatewayAuthenticationCertificate authentication certificates of an application gateway. 1508type ApplicationGatewayAuthenticationCertificate struct { 1509 *ApplicationGatewayAuthenticationCertificatePropertiesFormat `json:"properties,omitempty"` 1510 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 1511 Name *string `json:"name,omitempty"` 1512 // Etag - A unique read-only string that changes whenever the resource is updated. 1513 Etag *string `json:"etag,omitempty"` 1514 // Type - Type of the resource. 1515 Type *string `json:"type,omitempty"` 1516 // ID - Resource ID. 1517 ID *string `json:"id,omitempty"` 1518} 1519 1520// MarshalJSON is the custom marshaler for ApplicationGatewayAuthenticationCertificate. 1521func (agac ApplicationGatewayAuthenticationCertificate) MarshalJSON() ([]byte, error) { 1522 objectMap := make(map[string]interface{}) 1523 if agac.ApplicationGatewayAuthenticationCertificatePropertiesFormat != nil { 1524 objectMap["properties"] = agac.ApplicationGatewayAuthenticationCertificatePropertiesFormat 1525 } 1526 if agac.Name != nil { 1527 objectMap["name"] = agac.Name 1528 } 1529 if agac.Etag != nil { 1530 objectMap["etag"] = agac.Etag 1531 } 1532 if agac.Type != nil { 1533 objectMap["type"] = agac.Type 1534 } 1535 if agac.ID != nil { 1536 objectMap["id"] = agac.ID 1537 } 1538 return json.Marshal(objectMap) 1539} 1540 1541// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayAuthenticationCertificate struct. 1542func (agac *ApplicationGatewayAuthenticationCertificate) UnmarshalJSON(body []byte) error { 1543 var m map[string]*json.RawMessage 1544 err := json.Unmarshal(body, &m) 1545 if err != nil { 1546 return err 1547 } 1548 for k, v := range m { 1549 switch k { 1550 case "properties": 1551 if v != nil { 1552 var applicationGatewayAuthenticationCertificatePropertiesFormat ApplicationGatewayAuthenticationCertificatePropertiesFormat 1553 err = json.Unmarshal(*v, &applicationGatewayAuthenticationCertificatePropertiesFormat) 1554 if err != nil { 1555 return err 1556 } 1557 agac.ApplicationGatewayAuthenticationCertificatePropertiesFormat = &applicationGatewayAuthenticationCertificatePropertiesFormat 1558 } 1559 case "name": 1560 if v != nil { 1561 var name string 1562 err = json.Unmarshal(*v, &name) 1563 if err != nil { 1564 return err 1565 } 1566 agac.Name = &name 1567 } 1568 case "etag": 1569 if v != nil { 1570 var etag string 1571 err = json.Unmarshal(*v, &etag) 1572 if err != nil { 1573 return err 1574 } 1575 agac.Etag = &etag 1576 } 1577 case "type": 1578 if v != nil { 1579 var typeVar string 1580 err = json.Unmarshal(*v, &typeVar) 1581 if err != nil { 1582 return err 1583 } 1584 agac.Type = &typeVar 1585 } 1586 case "id": 1587 if v != nil { 1588 var ID string 1589 err = json.Unmarshal(*v, &ID) 1590 if err != nil { 1591 return err 1592 } 1593 agac.ID = &ID 1594 } 1595 } 1596 } 1597 1598 return nil 1599} 1600 1601// ApplicationGatewayAuthenticationCertificatePropertiesFormat authentication certificates properties of an 1602// application gateway. 1603type ApplicationGatewayAuthenticationCertificatePropertiesFormat struct { 1604 // Data - Certificate public data. 1605 Data *string `json:"data,omitempty"` 1606 // ProvisioningState - Provisioning state of the authentication certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 1607 ProvisioningState *string `json:"provisioningState,omitempty"` 1608} 1609 1610// ApplicationGatewayAvailableSslOptions response for ApplicationGatewayAvailableSslOptions API service 1611// call. 1612type ApplicationGatewayAvailableSslOptions struct { 1613 autorest.Response `json:"-"` 1614 *ApplicationGatewayAvailableSslOptionsPropertiesFormat `json:"properties,omitempty"` 1615 // ID - Resource ID. 1616 ID *string `json:"id,omitempty"` 1617 // Name - READ-ONLY; Resource name. 1618 Name *string `json:"name,omitempty"` 1619 // Type - READ-ONLY; Resource type. 1620 Type *string `json:"type,omitempty"` 1621 // Location - Resource location. 1622 Location *string `json:"location,omitempty"` 1623 // Tags - Resource tags. 1624 Tags map[string]*string `json:"tags"` 1625} 1626 1627// MarshalJSON is the custom marshaler for ApplicationGatewayAvailableSslOptions. 1628func (agaso ApplicationGatewayAvailableSslOptions) MarshalJSON() ([]byte, error) { 1629 objectMap := make(map[string]interface{}) 1630 if agaso.ApplicationGatewayAvailableSslOptionsPropertiesFormat != nil { 1631 objectMap["properties"] = agaso.ApplicationGatewayAvailableSslOptionsPropertiesFormat 1632 } 1633 if agaso.ID != nil { 1634 objectMap["id"] = agaso.ID 1635 } 1636 if agaso.Location != nil { 1637 objectMap["location"] = agaso.Location 1638 } 1639 if agaso.Tags != nil { 1640 objectMap["tags"] = agaso.Tags 1641 } 1642 return json.Marshal(objectMap) 1643} 1644 1645// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayAvailableSslOptions struct. 1646func (agaso *ApplicationGatewayAvailableSslOptions) UnmarshalJSON(body []byte) error { 1647 var m map[string]*json.RawMessage 1648 err := json.Unmarshal(body, &m) 1649 if err != nil { 1650 return err 1651 } 1652 for k, v := range m { 1653 switch k { 1654 case "properties": 1655 if v != nil { 1656 var applicationGatewayAvailableSslOptionsPropertiesFormat ApplicationGatewayAvailableSslOptionsPropertiesFormat 1657 err = json.Unmarshal(*v, &applicationGatewayAvailableSslOptionsPropertiesFormat) 1658 if err != nil { 1659 return err 1660 } 1661 agaso.ApplicationGatewayAvailableSslOptionsPropertiesFormat = &applicationGatewayAvailableSslOptionsPropertiesFormat 1662 } 1663 case "id": 1664 if v != nil { 1665 var ID string 1666 err = json.Unmarshal(*v, &ID) 1667 if err != nil { 1668 return err 1669 } 1670 agaso.ID = &ID 1671 } 1672 case "name": 1673 if v != nil { 1674 var name string 1675 err = json.Unmarshal(*v, &name) 1676 if err != nil { 1677 return err 1678 } 1679 agaso.Name = &name 1680 } 1681 case "type": 1682 if v != nil { 1683 var typeVar string 1684 err = json.Unmarshal(*v, &typeVar) 1685 if err != nil { 1686 return err 1687 } 1688 agaso.Type = &typeVar 1689 } 1690 case "location": 1691 if v != nil { 1692 var location string 1693 err = json.Unmarshal(*v, &location) 1694 if err != nil { 1695 return err 1696 } 1697 agaso.Location = &location 1698 } 1699 case "tags": 1700 if v != nil { 1701 var tags map[string]*string 1702 err = json.Unmarshal(*v, &tags) 1703 if err != nil { 1704 return err 1705 } 1706 agaso.Tags = tags 1707 } 1708 } 1709 } 1710 1711 return nil 1712} 1713 1714// ApplicationGatewayAvailableSslOptionsPropertiesFormat properties of 1715// ApplicationGatewayAvailableSslOptions 1716type ApplicationGatewayAvailableSslOptionsPropertiesFormat struct { 1717 // PredefinedPolicies - List of available Ssl predefined policy. 1718 PredefinedPolicies *[]SubResource `json:"predefinedPolicies,omitempty"` 1719 // DefaultPolicy - Name of the Ssl predefined policy applied by default to application gateway. Possible values include: 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S' 1720 DefaultPolicy ApplicationGatewaySslPolicyName `json:"defaultPolicy,omitempty"` 1721 // AvailableCipherSuites - List of available Ssl cipher suites. 1722 AvailableCipherSuites *[]ApplicationGatewaySslCipherSuite `json:"availableCipherSuites,omitempty"` 1723 // AvailableProtocols - List of available Ssl protocols. 1724 AvailableProtocols *[]ApplicationGatewaySslProtocol `json:"availableProtocols,omitempty"` 1725} 1726 1727// ApplicationGatewayAvailableSslPredefinedPolicies response for ApplicationGatewayAvailableSslOptions API 1728// service call. 1729type ApplicationGatewayAvailableSslPredefinedPolicies struct { 1730 autorest.Response `json:"-"` 1731 // Value - List of available Ssl predefined policy. 1732 Value *[]ApplicationGatewaySslPredefinedPolicy `json:"value,omitempty"` 1733 // NextLink - URL to get the next set of results. 1734 NextLink *string `json:"nextLink,omitempty"` 1735} 1736 1737// ApplicationGatewayAvailableSslPredefinedPoliciesIterator provides access to a complete listing of 1738// ApplicationGatewaySslPredefinedPolicy values. 1739type ApplicationGatewayAvailableSslPredefinedPoliciesIterator struct { 1740 i int 1741 page ApplicationGatewayAvailableSslPredefinedPoliciesPage 1742} 1743 1744// NextWithContext advances to the next value. If there was an error making 1745// the request the iterator does not advance and the error is returned. 1746func (iter *ApplicationGatewayAvailableSslPredefinedPoliciesIterator) NextWithContext(ctx context.Context) (err error) { 1747 if tracing.IsEnabled() { 1748 ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationGatewayAvailableSslPredefinedPoliciesIterator.NextWithContext") 1749 defer func() { 1750 sc := -1 1751 if iter.Response().Response.Response != nil { 1752 sc = iter.Response().Response.Response.StatusCode 1753 } 1754 tracing.EndSpan(ctx, sc, err) 1755 }() 1756 } 1757 iter.i++ 1758 if iter.i < len(iter.page.Values()) { 1759 return nil 1760 } 1761 err = iter.page.NextWithContext(ctx) 1762 if err != nil { 1763 iter.i-- 1764 return err 1765 } 1766 iter.i = 0 1767 return nil 1768} 1769 1770// Next advances to the next value. If there was an error making 1771// the request the iterator does not advance and the error is returned. 1772// Deprecated: Use NextWithContext() instead. 1773func (iter *ApplicationGatewayAvailableSslPredefinedPoliciesIterator) Next() error { 1774 return iter.NextWithContext(context.Background()) 1775} 1776 1777// NotDone returns true if the enumeration should be started or is not yet complete. 1778func (iter ApplicationGatewayAvailableSslPredefinedPoliciesIterator) NotDone() bool { 1779 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1780} 1781 1782// Response returns the raw server response from the last page request. 1783func (iter ApplicationGatewayAvailableSslPredefinedPoliciesIterator) Response() ApplicationGatewayAvailableSslPredefinedPolicies { 1784 return iter.page.Response() 1785} 1786 1787// Value returns the current value or a zero-initialized value if the 1788// iterator has advanced beyond the end of the collection. 1789func (iter ApplicationGatewayAvailableSslPredefinedPoliciesIterator) Value() ApplicationGatewaySslPredefinedPolicy { 1790 if !iter.page.NotDone() { 1791 return ApplicationGatewaySslPredefinedPolicy{} 1792 } 1793 return iter.page.Values()[iter.i] 1794} 1795 1796// Creates a new instance of the ApplicationGatewayAvailableSslPredefinedPoliciesIterator type. 1797func NewApplicationGatewayAvailableSslPredefinedPoliciesIterator(page ApplicationGatewayAvailableSslPredefinedPoliciesPage) ApplicationGatewayAvailableSslPredefinedPoliciesIterator { 1798 return ApplicationGatewayAvailableSslPredefinedPoliciesIterator{page: page} 1799} 1800 1801// IsEmpty returns true if the ListResult contains no values. 1802func (agaspp ApplicationGatewayAvailableSslPredefinedPolicies) IsEmpty() bool { 1803 return agaspp.Value == nil || len(*agaspp.Value) == 0 1804} 1805 1806// applicationGatewayAvailableSslPredefinedPoliciesPreparer prepares a request to retrieve the next set of results. 1807// It returns nil if no more results exist. 1808func (agaspp ApplicationGatewayAvailableSslPredefinedPolicies) applicationGatewayAvailableSslPredefinedPoliciesPreparer(ctx context.Context) (*http.Request, error) { 1809 if agaspp.NextLink == nil || len(to.String(agaspp.NextLink)) < 1 { 1810 return nil, nil 1811 } 1812 return autorest.Prepare((&http.Request{}).WithContext(ctx), 1813 autorest.AsJSON(), 1814 autorest.AsGet(), 1815 autorest.WithBaseURL(to.String(agaspp.NextLink))) 1816} 1817 1818// ApplicationGatewayAvailableSslPredefinedPoliciesPage contains a page of 1819// ApplicationGatewaySslPredefinedPolicy values. 1820type ApplicationGatewayAvailableSslPredefinedPoliciesPage struct { 1821 fn func(context.Context, ApplicationGatewayAvailableSslPredefinedPolicies) (ApplicationGatewayAvailableSslPredefinedPolicies, error) 1822 agaspp ApplicationGatewayAvailableSslPredefinedPolicies 1823} 1824 1825// NextWithContext advances to the next page of values. If there was an error making 1826// the request the page does not advance and the error is returned. 1827func (page *ApplicationGatewayAvailableSslPredefinedPoliciesPage) NextWithContext(ctx context.Context) (err error) { 1828 if tracing.IsEnabled() { 1829 ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationGatewayAvailableSslPredefinedPoliciesPage.NextWithContext") 1830 defer func() { 1831 sc := -1 1832 if page.Response().Response.Response != nil { 1833 sc = page.Response().Response.Response.StatusCode 1834 } 1835 tracing.EndSpan(ctx, sc, err) 1836 }() 1837 } 1838 next, err := page.fn(ctx, page.agaspp) 1839 if err != nil { 1840 return err 1841 } 1842 page.agaspp = next 1843 return nil 1844} 1845 1846// Next advances to the next page of values. If there was an error making 1847// the request the page does not advance and the error is returned. 1848// Deprecated: Use NextWithContext() instead. 1849func (page *ApplicationGatewayAvailableSslPredefinedPoliciesPage) Next() error { 1850 return page.NextWithContext(context.Background()) 1851} 1852 1853// NotDone returns true if the page enumeration should be started or is not yet complete. 1854func (page ApplicationGatewayAvailableSslPredefinedPoliciesPage) NotDone() bool { 1855 return !page.agaspp.IsEmpty() 1856} 1857 1858// Response returns the raw server response from the last page request. 1859func (page ApplicationGatewayAvailableSslPredefinedPoliciesPage) Response() ApplicationGatewayAvailableSslPredefinedPolicies { 1860 return page.agaspp 1861} 1862 1863// Values returns the slice of values for the current page or nil if there are no values. 1864func (page ApplicationGatewayAvailableSslPredefinedPoliciesPage) Values() []ApplicationGatewaySslPredefinedPolicy { 1865 if page.agaspp.IsEmpty() { 1866 return nil 1867 } 1868 return *page.agaspp.Value 1869} 1870 1871// Creates a new instance of the ApplicationGatewayAvailableSslPredefinedPoliciesPage type. 1872func NewApplicationGatewayAvailableSslPredefinedPoliciesPage(getNextPage func(context.Context, ApplicationGatewayAvailableSslPredefinedPolicies) (ApplicationGatewayAvailableSslPredefinedPolicies, error)) ApplicationGatewayAvailableSslPredefinedPoliciesPage { 1873 return ApplicationGatewayAvailableSslPredefinedPoliciesPage{fn: getNextPage} 1874} 1875 1876// ApplicationGatewayAvailableWafRuleSetsResult response for ApplicationGatewayAvailableWafRuleSets API 1877// service call. 1878type ApplicationGatewayAvailableWafRuleSetsResult struct { 1879 autorest.Response `json:"-"` 1880 // Value - The list of application gateway rule sets. 1881 Value *[]ApplicationGatewayFirewallRuleSet `json:"value,omitempty"` 1882} 1883 1884// ApplicationGatewayBackendAddress backend address of an application gateway. 1885type ApplicationGatewayBackendAddress struct { 1886 // Fqdn - Fully qualified domain name (FQDN). 1887 Fqdn *string `json:"fqdn,omitempty"` 1888 // IPAddress - IP address 1889 IPAddress *string `json:"ipAddress,omitempty"` 1890} 1891 1892// ApplicationGatewayBackendAddressPool backend Address Pool of an application gateway. 1893type ApplicationGatewayBackendAddressPool struct { 1894 *ApplicationGatewayBackendAddressPoolPropertiesFormat `json:"properties,omitempty"` 1895 // Name - Resource that is unique within a resource group. This name can be used to access the resource. 1896 Name *string `json:"name,omitempty"` 1897 // Etag - A unique read-only string that changes whenever the resource is updated. 1898 Etag *string `json:"etag,omitempty"` 1899 // Type - Type of the resource. 1900 Type *string `json:"type,omitempty"` 1901 // ID - Resource ID. 1902 ID *string `json:"id,omitempty"` 1903} 1904 1905// MarshalJSON is the custom marshaler for ApplicationGatewayBackendAddressPool. 1906func (agbap ApplicationGatewayBackendAddressPool) MarshalJSON() ([]byte, error) { 1907 objectMap := make(map[string]interface{}) 1908 if agbap.ApplicationGatewayBackendAddressPoolPropertiesFormat != nil { 1909 objectMap["properties"] = agbap.ApplicationGatewayBackendAddressPoolPropertiesFormat 1910 } 1911 if agbap.Name != nil { 1912 objectMap["name"] = agbap.Name 1913 } 1914 if agbap.Etag != nil { 1915 objectMap["etag"] = agbap.Etag 1916 } 1917 if agbap.Type != nil { 1918 objectMap["type"] = agbap.Type 1919 } 1920 if agbap.ID != nil { 1921 objectMap["id"] = agbap.ID 1922 } 1923 return json.Marshal(objectMap) 1924} 1925 1926// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayBackendAddressPool struct. 1927func (agbap *ApplicationGatewayBackendAddressPool) UnmarshalJSON(body []byte) error { 1928 var m map[string]*json.RawMessage 1929 err := json.Unmarshal(body, &m) 1930 if err != nil { 1931 return err 1932 } 1933 for k, v := range m { 1934 switch k { 1935 case "properties": 1936 if v != nil { 1937 var applicationGatewayBackendAddressPoolPropertiesFormat ApplicationGatewayBackendAddressPoolPropertiesFormat 1938 err = json.Unmarshal(*v, &applicationGatewayBackendAddressPoolPropertiesFormat) 1939 if err != nil { 1940 return err 1941 } 1942 agbap.ApplicationGatewayBackendAddressPoolPropertiesFormat = &applicationGatewayBackendAddressPoolPropertiesFormat 1943 } 1944 case "name": 1945 if v != nil { 1946 var name string 1947 err = json.Unmarshal(*v, &name) 1948 if err != nil { 1949 return err 1950 } 1951 agbap.Name = &name 1952 } 1953 case "etag": 1954 if v != nil { 1955 var etag string 1956 err = json.Unmarshal(*v, &etag) 1957 if err != nil { 1958 return err 1959 } 1960 agbap.Etag = &etag 1961 } 1962 case "type": 1963 if v != nil { 1964 var typeVar string 1965 err = json.Unmarshal(*v, &typeVar) 1966 if err != nil { 1967 return err 1968 } 1969 agbap.Type = &typeVar 1970 } 1971 case "id": 1972 if v != nil { 1973 var ID string 1974 err = json.Unmarshal(*v, &ID) 1975 if err != nil { 1976 return err 1977 } 1978 agbap.ID = &ID 1979 } 1980 } 1981 } 1982 1983 return nil 1984} 1985 1986// ApplicationGatewayBackendAddressPoolPropertiesFormat properties of Backend Address Pool of an 1987// application gateway. 1988type ApplicationGatewayBackendAddressPoolPropertiesFormat struct { 1989 // BackendIPConfigurations - Collection of references to IPs defined in network interfaces. 1990 BackendIPConfigurations *[]InterfaceIPConfiguration `json:"backendIPConfigurations,omitempty"` 1991 // BackendAddresses - Backend addresses 1992 BackendAddresses *[]ApplicationGatewayBackendAddress `json:"backendAddresses,omitempty"` 1993 // ProvisioningState - Provisioning state of the backend address pool resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 1994 ProvisioningState *string `json:"provisioningState,omitempty"` 1995} 1996 1997// ApplicationGatewayBackendHealth list of ApplicationGatewayBackendHealthPool resources. 1998type ApplicationGatewayBackendHealth struct { 1999 autorest.Response `json:"-"` 2000 BackendAddressPools *[]ApplicationGatewayBackendHealthPool `json:"backendAddressPools,omitempty"` 2001} 2002 2003// ApplicationGatewayBackendHealthHTTPSettings application gateway BackendHealthHttp settings. 2004type ApplicationGatewayBackendHealthHTTPSettings struct { 2005 // BackendHTTPSettings - Reference of an ApplicationGatewayBackendHttpSettings resource. 2006 BackendHTTPSettings *ApplicationGatewayBackendHTTPSettings `json:"backendHttpSettings,omitempty"` 2007 // Servers - List of ApplicationGatewayBackendHealthServer resources. 2008 Servers *[]ApplicationGatewayBackendHealthServer `json:"servers,omitempty"` 2009} 2010 2011// ApplicationGatewayBackendHealthPool application gateway BackendHealth pool. 2012type ApplicationGatewayBackendHealthPool struct { 2013 // BackendAddressPool - Reference of an ApplicationGatewayBackendAddressPool resource. 2014 BackendAddressPool *ApplicationGatewayBackendAddressPool `json:"backendAddressPool,omitempty"` 2015 // BackendHTTPSettingsCollection - List of ApplicationGatewayBackendHealthHttpSettings resources. 2016 BackendHTTPSettingsCollection *[]ApplicationGatewayBackendHealthHTTPSettings `json:"backendHttpSettingsCollection,omitempty"` 2017} 2018 2019// ApplicationGatewayBackendHealthServer application gateway backendhealth http settings. 2020type ApplicationGatewayBackendHealthServer struct { 2021 // Address - IP address or FQDN of backend server. 2022 Address *string `json:"address,omitempty"` 2023 // IPConfiguration - Reference of IP configuration of backend server. 2024 IPConfiguration *InterfaceIPConfiguration `json:"ipConfiguration,omitempty"` 2025 // Health - Health of backend server. Possible values include: 'Unknown', 'Up', 'Down', 'Partial', 'Draining' 2026 Health ApplicationGatewayBackendHealthServerHealth `json:"health,omitempty"` 2027} 2028 2029// ApplicationGatewayBackendHTTPSettings backend address pool settings of an application gateway. 2030type ApplicationGatewayBackendHTTPSettings struct { 2031 *ApplicationGatewayBackendHTTPSettingsPropertiesFormat `json:"properties,omitempty"` 2032 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2033 Name *string `json:"name,omitempty"` 2034 // Etag - A unique read-only string that changes whenever the resource is updated. 2035 Etag *string `json:"etag,omitempty"` 2036 // Type - Type of the resource. 2037 Type *string `json:"type,omitempty"` 2038 // ID - Resource ID. 2039 ID *string `json:"id,omitempty"` 2040} 2041 2042// MarshalJSON is the custom marshaler for ApplicationGatewayBackendHTTPSettings. 2043func (agbhs ApplicationGatewayBackendHTTPSettings) MarshalJSON() ([]byte, error) { 2044 objectMap := make(map[string]interface{}) 2045 if agbhs.ApplicationGatewayBackendHTTPSettingsPropertiesFormat != nil { 2046 objectMap["properties"] = agbhs.ApplicationGatewayBackendHTTPSettingsPropertiesFormat 2047 } 2048 if agbhs.Name != nil { 2049 objectMap["name"] = agbhs.Name 2050 } 2051 if agbhs.Etag != nil { 2052 objectMap["etag"] = agbhs.Etag 2053 } 2054 if agbhs.Type != nil { 2055 objectMap["type"] = agbhs.Type 2056 } 2057 if agbhs.ID != nil { 2058 objectMap["id"] = agbhs.ID 2059 } 2060 return json.Marshal(objectMap) 2061} 2062 2063// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayBackendHTTPSettings struct. 2064func (agbhs *ApplicationGatewayBackendHTTPSettings) UnmarshalJSON(body []byte) error { 2065 var m map[string]*json.RawMessage 2066 err := json.Unmarshal(body, &m) 2067 if err != nil { 2068 return err 2069 } 2070 for k, v := range m { 2071 switch k { 2072 case "properties": 2073 if v != nil { 2074 var applicationGatewayBackendHTTPSettingsPropertiesFormat ApplicationGatewayBackendHTTPSettingsPropertiesFormat 2075 err = json.Unmarshal(*v, &applicationGatewayBackendHTTPSettingsPropertiesFormat) 2076 if err != nil { 2077 return err 2078 } 2079 agbhs.ApplicationGatewayBackendHTTPSettingsPropertiesFormat = &applicationGatewayBackendHTTPSettingsPropertiesFormat 2080 } 2081 case "name": 2082 if v != nil { 2083 var name string 2084 err = json.Unmarshal(*v, &name) 2085 if err != nil { 2086 return err 2087 } 2088 agbhs.Name = &name 2089 } 2090 case "etag": 2091 if v != nil { 2092 var etag string 2093 err = json.Unmarshal(*v, &etag) 2094 if err != nil { 2095 return err 2096 } 2097 agbhs.Etag = &etag 2098 } 2099 case "type": 2100 if v != nil { 2101 var typeVar string 2102 err = json.Unmarshal(*v, &typeVar) 2103 if err != nil { 2104 return err 2105 } 2106 agbhs.Type = &typeVar 2107 } 2108 case "id": 2109 if v != nil { 2110 var ID string 2111 err = json.Unmarshal(*v, &ID) 2112 if err != nil { 2113 return err 2114 } 2115 agbhs.ID = &ID 2116 } 2117 } 2118 } 2119 2120 return nil 2121} 2122 2123// ApplicationGatewayBackendHTTPSettingsPropertiesFormat properties of Backend address pool settings of an 2124// application gateway. 2125type ApplicationGatewayBackendHTTPSettingsPropertiesFormat struct { 2126 // Port - Port 2127 Port *int32 `json:"port,omitempty"` 2128 // Protocol - Protocol. Possible values include: 'HTTP', 'HTTPS' 2129 Protocol ApplicationGatewayProtocol `json:"protocol,omitempty"` 2130 // CookieBasedAffinity - Cookie based affinity. Possible values include: 'Enabled', 'Disabled' 2131 CookieBasedAffinity ApplicationGatewayCookieBasedAffinity `json:"cookieBasedAffinity,omitempty"` 2132 // RequestTimeout - Request timeout in seconds. Application Gateway will fail the request if response is not received within RequestTimeout. Acceptable values are from 1 second to 86400 seconds. 2133 RequestTimeout *int32 `json:"requestTimeout,omitempty"` 2134 // Probe - Probe resource of an application gateway. 2135 Probe *SubResource `json:"probe,omitempty"` 2136 // AuthenticationCertificates - Array of references to application gateway authentication certificates. 2137 AuthenticationCertificates *[]SubResource `json:"authenticationCertificates,omitempty"` 2138 // ConnectionDraining - Connection draining of the backend http settings resource. 2139 ConnectionDraining *ApplicationGatewayConnectionDraining `json:"connectionDraining,omitempty"` 2140 // HostName - Host header to be sent to the backend servers. 2141 HostName *string `json:"hostName,omitempty"` 2142 // PickHostNameFromBackendAddress - Whether to pick host header should be picked from the host name of the backend server. Default value is false. 2143 PickHostNameFromBackendAddress *bool `json:"pickHostNameFromBackendAddress,omitempty"` 2144 // AffinityCookieName - Cookie name to use for the affinity cookie. 2145 AffinityCookieName *string `json:"affinityCookieName,omitempty"` 2146 // ProbeEnabled - Whether the probe is enabled. Default value is false. 2147 ProbeEnabled *bool `json:"probeEnabled,omitempty"` 2148 // Path - Path which should be used as a prefix for all HTTP requests. Null means no path will be prefixed. Default value is null. 2149 Path *string `json:"path,omitempty"` 2150 // ProvisioningState - Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2151 ProvisioningState *string `json:"provisioningState,omitempty"` 2152} 2153 2154// ApplicationGatewayConnectionDraining connection draining allows open connections to a backend server to 2155// be active for a specified time after the backend server got removed from the configuration. 2156type ApplicationGatewayConnectionDraining struct { 2157 // Enabled - Whether connection draining is enabled or not. 2158 Enabled *bool `json:"enabled,omitempty"` 2159 // DrainTimeoutInSec - The number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds. 2160 DrainTimeoutInSec *int32 `json:"drainTimeoutInSec,omitempty"` 2161} 2162 2163// ApplicationGatewayFirewallDisabledRuleGroup allows to disable rules within a rule group or an entire 2164// rule group. 2165type ApplicationGatewayFirewallDisabledRuleGroup struct { 2166 // RuleGroupName - The name of the rule group that will be disabled. 2167 RuleGroupName *string `json:"ruleGroupName,omitempty"` 2168 // Rules - The list of rules that will be disabled. If null, all rules of the rule group will be disabled. 2169 Rules *[]int32 `json:"rules,omitempty"` 2170} 2171 2172// ApplicationGatewayFirewallRule a web application firewall rule. 2173type ApplicationGatewayFirewallRule struct { 2174 // RuleID - The identifier of the web application firewall rule. 2175 RuleID *int32 `json:"ruleId,omitempty"` 2176 // Description - The description of the web application firewall rule. 2177 Description *string `json:"description,omitempty"` 2178} 2179 2180// ApplicationGatewayFirewallRuleGroup a web application firewall rule group. 2181type ApplicationGatewayFirewallRuleGroup struct { 2182 // RuleGroupName - The name of the web application firewall rule group. 2183 RuleGroupName *string `json:"ruleGroupName,omitempty"` 2184 // Description - The description of the web application firewall rule group. 2185 Description *string `json:"description,omitempty"` 2186 // Rules - The rules of the web application firewall rule group. 2187 Rules *[]ApplicationGatewayFirewallRule `json:"rules,omitempty"` 2188} 2189 2190// ApplicationGatewayFirewallRuleSet a web application firewall rule set. 2191type ApplicationGatewayFirewallRuleSet struct { 2192 *ApplicationGatewayFirewallRuleSetPropertiesFormat `json:"properties,omitempty"` 2193 // ID - Resource ID. 2194 ID *string `json:"id,omitempty"` 2195 // Name - READ-ONLY; Resource name. 2196 Name *string `json:"name,omitempty"` 2197 // Type - READ-ONLY; Resource type. 2198 Type *string `json:"type,omitempty"` 2199 // Location - Resource location. 2200 Location *string `json:"location,omitempty"` 2201 // Tags - Resource tags. 2202 Tags map[string]*string `json:"tags"` 2203} 2204 2205// MarshalJSON is the custom marshaler for ApplicationGatewayFirewallRuleSet. 2206func (agfrs ApplicationGatewayFirewallRuleSet) MarshalJSON() ([]byte, error) { 2207 objectMap := make(map[string]interface{}) 2208 if agfrs.ApplicationGatewayFirewallRuleSetPropertiesFormat != nil { 2209 objectMap["properties"] = agfrs.ApplicationGatewayFirewallRuleSetPropertiesFormat 2210 } 2211 if agfrs.ID != nil { 2212 objectMap["id"] = agfrs.ID 2213 } 2214 if agfrs.Location != nil { 2215 objectMap["location"] = agfrs.Location 2216 } 2217 if agfrs.Tags != nil { 2218 objectMap["tags"] = agfrs.Tags 2219 } 2220 return json.Marshal(objectMap) 2221} 2222 2223// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayFirewallRuleSet struct. 2224func (agfrs *ApplicationGatewayFirewallRuleSet) UnmarshalJSON(body []byte) error { 2225 var m map[string]*json.RawMessage 2226 err := json.Unmarshal(body, &m) 2227 if err != nil { 2228 return err 2229 } 2230 for k, v := range m { 2231 switch k { 2232 case "properties": 2233 if v != nil { 2234 var applicationGatewayFirewallRuleSetPropertiesFormat ApplicationGatewayFirewallRuleSetPropertiesFormat 2235 err = json.Unmarshal(*v, &applicationGatewayFirewallRuleSetPropertiesFormat) 2236 if err != nil { 2237 return err 2238 } 2239 agfrs.ApplicationGatewayFirewallRuleSetPropertiesFormat = &applicationGatewayFirewallRuleSetPropertiesFormat 2240 } 2241 case "id": 2242 if v != nil { 2243 var ID string 2244 err = json.Unmarshal(*v, &ID) 2245 if err != nil { 2246 return err 2247 } 2248 agfrs.ID = &ID 2249 } 2250 case "name": 2251 if v != nil { 2252 var name string 2253 err = json.Unmarshal(*v, &name) 2254 if err != nil { 2255 return err 2256 } 2257 agfrs.Name = &name 2258 } 2259 case "type": 2260 if v != nil { 2261 var typeVar string 2262 err = json.Unmarshal(*v, &typeVar) 2263 if err != nil { 2264 return err 2265 } 2266 agfrs.Type = &typeVar 2267 } 2268 case "location": 2269 if v != nil { 2270 var location string 2271 err = json.Unmarshal(*v, &location) 2272 if err != nil { 2273 return err 2274 } 2275 agfrs.Location = &location 2276 } 2277 case "tags": 2278 if v != nil { 2279 var tags map[string]*string 2280 err = json.Unmarshal(*v, &tags) 2281 if err != nil { 2282 return err 2283 } 2284 agfrs.Tags = tags 2285 } 2286 } 2287 } 2288 2289 return nil 2290} 2291 2292// ApplicationGatewayFirewallRuleSetPropertiesFormat properties of the web application firewall rule set. 2293type ApplicationGatewayFirewallRuleSetPropertiesFormat struct { 2294 // ProvisioningState - The provisioning state of the web application firewall rule set. 2295 ProvisioningState *string `json:"provisioningState,omitempty"` 2296 // RuleSetType - The type of the web application firewall rule set. 2297 RuleSetType *string `json:"ruleSetType,omitempty"` 2298 // RuleSetVersion - The version of the web application firewall rule set type. 2299 RuleSetVersion *string `json:"ruleSetVersion,omitempty"` 2300 // RuleGroups - The rule groups of the web application firewall rule set. 2301 RuleGroups *[]ApplicationGatewayFirewallRuleGroup `json:"ruleGroups,omitempty"` 2302} 2303 2304// ApplicationGatewayFrontendIPConfiguration frontend IP configuration of an application gateway. 2305type ApplicationGatewayFrontendIPConfiguration struct { 2306 *ApplicationGatewayFrontendIPConfigurationPropertiesFormat `json:"properties,omitempty"` 2307 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2308 Name *string `json:"name,omitempty"` 2309 // Etag - A unique read-only string that changes whenever the resource is updated. 2310 Etag *string `json:"etag,omitempty"` 2311 // Type - Type of the resource. 2312 Type *string `json:"type,omitempty"` 2313 // ID - Resource ID. 2314 ID *string `json:"id,omitempty"` 2315} 2316 2317// MarshalJSON is the custom marshaler for ApplicationGatewayFrontendIPConfiguration. 2318func (agfic ApplicationGatewayFrontendIPConfiguration) MarshalJSON() ([]byte, error) { 2319 objectMap := make(map[string]interface{}) 2320 if agfic.ApplicationGatewayFrontendIPConfigurationPropertiesFormat != nil { 2321 objectMap["properties"] = agfic.ApplicationGatewayFrontendIPConfigurationPropertiesFormat 2322 } 2323 if agfic.Name != nil { 2324 objectMap["name"] = agfic.Name 2325 } 2326 if agfic.Etag != nil { 2327 objectMap["etag"] = agfic.Etag 2328 } 2329 if agfic.Type != nil { 2330 objectMap["type"] = agfic.Type 2331 } 2332 if agfic.ID != nil { 2333 objectMap["id"] = agfic.ID 2334 } 2335 return json.Marshal(objectMap) 2336} 2337 2338// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayFrontendIPConfiguration struct. 2339func (agfic *ApplicationGatewayFrontendIPConfiguration) UnmarshalJSON(body []byte) error { 2340 var m map[string]*json.RawMessage 2341 err := json.Unmarshal(body, &m) 2342 if err != nil { 2343 return err 2344 } 2345 for k, v := range m { 2346 switch k { 2347 case "properties": 2348 if v != nil { 2349 var applicationGatewayFrontendIPConfigurationPropertiesFormat ApplicationGatewayFrontendIPConfigurationPropertiesFormat 2350 err = json.Unmarshal(*v, &applicationGatewayFrontendIPConfigurationPropertiesFormat) 2351 if err != nil { 2352 return err 2353 } 2354 agfic.ApplicationGatewayFrontendIPConfigurationPropertiesFormat = &applicationGatewayFrontendIPConfigurationPropertiesFormat 2355 } 2356 case "name": 2357 if v != nil { 2358 var name string 2359 err = json.Unmarshal(*v, &name) 2360 if err != nil { 2361 return err 2362 } 2363 agfic.Name = &name 2364 } 2365 case "etag": 2366 if v != nil { 2367 var etag string 2368 err = json.Unmarshal(*v, &etag) 2369 if err != nil { 2370 return err 2371 } 2372 agfic.Etag = &etag 2373 } 2374 case "type": 2375 if v != nil { 2376 var typeVar string 2377 err = json.Unmarshal(*v, &typeVar) 2378 if err != nil { 2379 return err 2380 } 2381 agfic.Type = &typeVar 2382 } 2383 case "id": 2384 if v != nil { 2385 var ID string 2386 err = json.Unmarshal(*v, &ID) 2387 if err != nil { 2388 return err 2389 } 2390 agfic.ID = &ID 2391 } 2392 } 2393 } 2394 2395 return nil 2396} 2397 2398// ApplicationGatewayFrontendIPConfigurationPropertiesFormat properties of Frontend IP configuration of an 2399// application gateway. 2400type ApplicationGatewayFrontendIPConfigurationPropertiesFormat struct { 2401 // PrivateIPAddress - PrivateIPAddress of the network interface IP Configuration. 2402 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 2403 // PrivateIPAllocationMethod - PrivateIP allocation method. Possible values include: 'Static', 'Dynamic' 2404 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 2405 // Subnet - Reference of the subnet resource. 2406 Subnet *SubResource `json:"subnet,omitempty"` 2407 // PublicIPAddress - Reference of the PublicIP resource. 2408 PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"` 2409 // ProvisioningState - Provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2410 ProvisioningState *string `json:"provisioningState,omitempty"` 2411} 2412 2413// ApplicationGatewayFrontendPort frontend port of an application gateway. 2414type ApplicationGatewayFrontendPort struct { 2415 *ApplicationGatewayFrontendPortPropertiesFormat `json:"properties,omitempty"` 2416 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2417 Name *string `json:"name,omitempty"` 2418 // Etag - A unique read-only string that changes whenever the resource is updated. 2419 Etag *string `json:"etag,omitempty"` 2420 // Type - Type of the resource. 2421 Type *string `json:"type,omitempty"` 2422 // ID - Resource ID. 2423 ID *string `json:"id,omitempty"` 2424} 2425 2426// MarshalJSON is the custom marshaler for ApplicationGatewayFrontendPort. 2427func (agfp ApplicationGatewayFrontendPort) MarshalJSON() ([]byte, error) { 2428 objectMap := make(map[string]interface{}) 2429 if agfp.ApplicationGatewayFrontendPortPropertiesFormat != nil { 2430 objectMap["properties"] = agfp.ApplicationGatewayFrontendPortPropertiesFormat 2431 } 2432 if agfp.Name != nil { 2433 objectMap["name"] = agfp.Name 2434 } 2435 if agfp.Etag != nil { 2436 objectMap["etag"] = agfp.Etag 2437 } 2438 if agfp.Type != nil { 2439 objectMap["type"] = agfp.Type 2440 } 2441 if agfp.ID != nil { 2442 objectMap["id"] = agfp.ID 2443 } 2444 return json.Marshal(objectMap) 2445} 2446 2447// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayFrontendPort struct. 2448func (agfp *ApplicationGatewayFrontendPort) UnmarshalJSON(body []byte) error { 2449 var m map[string]*json.RawMessage 2450 err := json.Unmarshal(body, &m) 2451 if err != nil { 2452 return err 2453 } 2454 for k, v := range m { 2455 switch k { 2456 case "properties": 2457 if v != nil { 2458 var applicationGatewayFrontendPortPropertiesFormat ApplicationGatewayFrontendPortPropertiesFormat 2459 err = json.Unmarshal(*v, &applicationGatewayFrontendPortPropertiesFormat) 2460 if err != nil { 2461 return err 2462 } 2463 agfp.ApplicationGatewayFrontendPortPropertiesFormat = &applicationGatewayFrontendPortPropertiesFormat 2464 } 2465 case "name": 2466 if v != nil { 2467 var name string 2468 err = json.Unmarshal(*v, &name) 2469 if err != nil { 2470 return err 2471 } 2472 agfp.Name = &name 2473 } 2474 case "etag": 2475 if v != nil { 2476 var etag string 2477 err = json.Unmarshal(*v, &etag) 2478 if err != nil { 2479 return err 2480 } 2481 agfp.Etag = &etag 2482 } 2483 case "type": 2484 if v != nil { 2485 var typeVar string 2486 err = json.Unmarshal(*v, &typeVar) 2487 if err != nil { 2488 return err 2489 } 2490 agfp.Type = &typeVar 2491 } 2492 case "id": 2493 if v != nil { 2494 var ID string 2495 err = json.Unmarshal(*v, &ID) 2496 if err != nil { 2497 return err 2498 } 2499 agfp.ID = &ID 2500 } 2501 } 2502 } 2503 2504 return nil 2505} 2506 2507// ApplicationGatewayFrontendPortPropertiesFormat properties of Frontend port of an application gateway. 2508type ApplicationGatewayFrontendPortPropertiesFormat struct { 2509 // Port - Frontend port 2510 Port *int32 `json:"port,omitempty"` 2511 // ProvisioningState - Provisioning state of the frontend port resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2512 ProvisioningState *string `json:"provisioningState,omitempty"` 2513} 2514 2515// ApplicationGatewayHTTPListener http listener of an application gateway. 2516type ApplicationGatewayHTTPListener struct { 2517 *ApplicationGatewayHTTPListenerPropertiesFormat `json:"properties,omitempty"` 2518 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2519 Name *string `json:"name,omitempty"` 2520 // Etag - A unique read-only string that changes whenever the resource is updated. 2521 Etag *string `json:"etag,omitempty"` 2522 // Type - Type of the resource. 2523 Type *string `json:"type,omitempty"` 2524 // ID - Resource ID. 2525 ID *string `json:"id,omitempty"` 2526} 2527 2528// MarshalJSON is the custom marshaler for ApplicationGatewayHTTPListener. 2529func (aghl ApplicationGatewayHTTPListener) MarshalJSON() ([]byte, error) { 2530 objectMap := make(map[string]interface{}) 2531 if aghl.ApplicationGatewayHTTPListenerPropertiesFormat != nil { 2532 objectMap["properties"] = aghl.ApplicationGatewayHTTPListenerPropertiesFormat 2533 } 2534 if aghl.Name != nil { 2535 objectMap["name"] = aghl.Name 2536 } 2537 if aghl.Etag != nil { 2538 objectMap["etag"] = aghl.Etag 2539 } 2540 if aghl.Type != nil { 2541 objectMap["type"] = aghl.Type 2542 } 2543 if aghl.ID != nil { 2544 objectMap["id"] = aghl.ID 2545 } 2546 return json.Marshal(objectMap) 2547} 2548 2549// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayHTTPListener struct. 2550func (aghl *ApplicationGatewayHTTPListener) UnmarshalJSON(body []byte) error { 2551 var m map[string]*json.RawMessage 2552 err := json.Unmarshal(body, &m) 2553 if err != nil { 2554 return err 2555 } 2556 for k, v := range m { 2557 switch k { 2558 case "properties": 2559 if v != nil { 2560 var applicationGatewayHTTPListenerPropertiesFormat ApplicationGatewayHTTPListenerPropertiesFormat 2561 err = json.Unmarshal(*v, &applicationGatewayHTTPListenerPropertiesFormat) 2562 if err != nil { 2563 return err 2564 } 2565 aghl.ApplicationGatewayHTTPListenerPropertiesFormat = &applicationGatewayHTTPListenerPropertiesFormat 2566 } 2567 case "name": 2568 if v != nil { 2569 var name string 2570 err = json.Unmarshal(*v, &name) 2571 if err != nil { 2572 return err 2573 } 2574 aghl.Name = &name 2575 } 2576 case "etag": 2577 if v != nil { 2578 var etag string 2579 err = json.Unmarshal(*v, &etag) 2580 if err != nil { 2581 return err 2582 } 2583 aghl.Etag = &etag 2584 } 2585 case "type": 2586 if v != nil { 2587 var typeVar string 2588 err = json.Unmarshal(*v, &typeVar) 2589 if err != nil { 2590 return err 2591 } 2592 aghl.Type = &typeVar 2593 } 2594 case "id": 2595 if v != nil { 2596 var ID string 2597 err = json.Unmarshal(*v, &ID) 2598 if err != nil { 2599 return err 2600 } 2601 aghl.ID = &ID 2602 } 2603 } 2604 } 2605 2606 return nil 2607} 2608 2609// ApplicationGatewayHTTPListenerPropertiesFormat properties of HTTP listener of an application gateway. 2610type ApplicationGatewayHTTPListenerPropertiesFormat struct { 2611 // FrontendIPConfiguration - Frontend IP configuration resource of an application gateway. 2612 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 2613 // FrontendPort - Frontend port resource of an application gateway. 2614 FrontendPort *SubResource `json:"frontendPort,omitempty"` 2615 // Protocol - Protocol. Possible values include: 'HTTP', 'HTTPS' 2616 Protocol ApplicationGatewayProtocol `json:"protocol,omitempty"` 2617 // HostName - Host name of HTTP listener. 2618 HostName *string `json:"hostName,omitempty"` 2619 // SslCertificate - SSL certificate resource of an application gateway. 2620 SslCertificate *SubResource `json:"sslCertificate,omitempty"` 2621 // RequireServerNameIndication - Applicable only if protocol is https. Enables SNI for multi-hosting. 2622 RequireServerNameIndication *bool `json:"requireServerNameIndication,omitempty"` 2623 // ProvisioningState - Provisioning state of the HTTP listener resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2624 ProvisioningState *string `json:"provisioningState,omitempty"` 2625} 2626 2627// ApplicationGatewayIPConfiguration IP configuration of an application gateway. Currently 1 public and 1 2628// private IP configuration is allowed. 2629type ApplicationGatewayIPConfiguration struct { 2630 *ApplicationGatewayIPConfigurationPropertiesFormat `json:"properties,omitempty"` 2631 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2632 Name *string `json:"name,omitempty"` 2633 // Etag - A unique read-only string that changes whenever the resource is updated. 2634 Etag *string `json:"etag,omitempty"` 2635 // Type - Type of the resource. 2636 Type *string `json:"type,omitempty"` 2637 // ID - Resource ID. 2638 ID *string `json:"id,omitempty"` 2639} 2640 2641// MarshalJSON is the custom marshaler for ApplicationGatewayIPConfiguration. 2642func (agic ApplicationGatewayIPConfiguration) MarshalJSON() ([]byte, error) { 2643 objectMap := make(map[string]interface{}) 2644 if agic.ApplicationGatewayIPConfigurationPropertiesFormat != nil { 2645 objectMap["properties"] = agic.ApplicationGatewayIPConfigurationPropertiesFormat 2646 } 2647 if agic.Name != nil { 2648 objectMap["name"] = agic.Name 2649 } 2650 if agic.Etag != nil { 2651 objectMap["etag"] = agic.Etag 2652 } 2653 if agic.Type != nil { 2654 objectMap["type"] = agic.Type 2655 } 2656 if agic.ID != nil { 2657 objectMap["id"] = agic.ID 2658 } 2659 return json.Marshal(objectMap) 2660} 2661 2662// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayIPConfiguration struct. 2663func (agic *ApplicationGatewayIPConfiguration) UnmarshalJSON(body []byte) error { 2664 var m map[string]*json.RawMessage 2665 err := json.Unmarshal(body, &m) 2666 if err != nil { 2667 return err 2668 } 2669 for k, v := range m { 2670 switch k { 2671 case "properties": 2672 if v != nil { 2673 var applicationGatewayIPConfigurationPropertiesFormat ApplicationGatewayIPConfigurationPropertiesFormat 2674 err = json.Unmarshal(*v, &applicationGatewayIPConfigurationPropertiesFormat) 2675 if err != nil { 2676 return err 2677 } 2678 agic.ApplicationGatewayIPConfigurationPropertiesFormat = &applicationGatewayIPConfigurationPropertiesFormat 2679 } 2680 case "name": 2681 if v != nil { 2682 var name string 2683 err = json.Unmarshal(*v, &name) 2684 if err != nil { 2685 return err 2686 } 2687 agic.Name = &name 2688 } 2689 case "etag": 2690 if v != nil { 2691 var etag string 2692 err = json.Unmarshal(*v, &etag) 2693 if err != nil { 2694 return err 2695 } 2696 agic.Etag = &etag 2697 } 2698 case "type": 2699 if v != nil { 2700 var typeVar string 2701 err = json.Unmarshal(*v, &typeVar) 2702 if err != nil { 2703 return err 2704 } 2705 agic.Type = &typeVar 2706 } 2707 case "id": 2708 if v != nil { 2709 var ID string 2710 err = json.Unmarshal(*v, &ID) 2711 if err != nil { 2712 return err 2713 } 2714 agic.ID = &ID 2715 } 2716 } 2717 } 2718 2719 return nil 2720} 2721 2722// ApplicationGatewayIPConfigurationPropertiesFormat properties of IP configuration of an application 2723// gateway. 2724type ApplicationGatewayIPConfigurationPropertiesFormat struct { 2725 // Subnet - Reference of the subnet resource. A subnet from where application gateway gets its private address. 2726 Subnet *SubResource `json:"subnet,omitempty"` 2727 // ProvisioningState - Provisioning state of the application gateway subnet resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2728 ProvisioningState *string `json:"provisioningState,omitempty"` 2729} 2730 2731// ApplicationGatewayListResult response for ListApplicationGateways API service call. 2732type ApplicationGatewayListResult struct { 2733 autorest.Response `json:"-"` 2734 // Value - List of an application gateways in a resource group. 2735 Value *[]ApplicationGateway `json:"value,omitempty"` 2736 // NextLink - URL to get the next set of results. 2737 NextLink *string `json:"nextLink,omitempty"` 2738} 2739 2740// ApplicationGatewayListResultIterator provides access to a complete listing of ApplicationGateway values. 2741type ApplicationGatewayListResultIterator struct { 2742 i int 2743 page ApplicationGatewayListResultPage 2744} 2745 2746// NextWithContext advances to the next value. If there was an error making 2747// the request the iterator does not advance and the error is returned. 2748func (iter *ApplicationGatewayListResultIterator) NextWithContext(ctx context.Context) (err error) { 2749 if tracing.IsEnabled() { 2750 ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationGatewayListResultIterator.NextWithContext") 2751 defer func() { 2752 sc := -1 2753 if iter.Response().Response.Response != nil { 2754 sc = iter.Response().Response.Response.StatusCode 2755 } 2756 tracing.EndSpan(ctx, sc, err) 2757 }() 2758 } 2759 iter.i++ 2760 if iter.i < len(iter.page.Values()) { 2761 return nil 2762 } 2763 err = iter.page.NextWithContext(ctx) 2764 if err != nil { 2765 iter.i-- 2766 return err 2767 } 2768 iter.i = 0 2769 return nil 2770} 2771 2772// Next advances to the next value. If there was an error making 2773// the request the iterator does not advance and the error is returned. 2774// Deprecated: Use NextWithContext() instead. 2775func (iter *ApplicationGatewayListResultIterator) Next() error { 2776 return iter.NextWithContext(context.Background()) 2777} 2778 2779// NotDone returns true if the enumeration should be started or is not yet complete. 2780func (iter ApplicationGatewayListResultIterator) NotDone() bool { 2781 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 2782} 2783 2784// Response returns the raw server response from the last page request. 2785func (iter ApplicationGatewayListResultIterator) Response() ApplicationGatewayListResult { 2786 return iter.page.Response() 2787} 2788 2789// Value returns the current value or a zero-initialized value if the 2790// iterator has advanced beyond the end of the collection. 2791func (iter ApplicationGatewayListResultIterator) Value() ApplicationGateway { 2792 if !iter.page.NotDone() { 2793 return ApplicationGateway{} 2794 } 2795 return iter.page.Values()[iter.i] 2796} 2797 2798// Creates a new instance of the ApplicationGatewayListResultIterator type. 2799func NewApplicationGatewayListResultIterator(page ApplicationGatewayListResultPage) ApplicationGatewayListResultIterator { 2800 return ApplicationGatewayListResultIterator{page: page} 2801} 2802 2803// IsEmpty returns true if the ListResult contains no values. 2804func (aglr ApplicationGatewayListResult) IsEmpty() bool { 2805 return aglr.Value == nil || len(*aglr.Value) == 0 2806} 2807 2808// applicationGatewayListResultPreparer prepares a request to retrieve the next set of results. 2809// It returns nil if no more results exist. 2810func (aglr ApplicationGatewayListResult) applicationGatewayListResultPreparer(ctx context.Context) (*http.Request, error) { 2811 if aglr.NextLink == nil || len(to.String(aglr.NextLink)) < 1 { 2812 return nil, nil 2813 } 2814 return autorest.Prepare((&http.Request{}).WithContext(ctx), 2815 autorest.AsJSON(), 2816 autorest.AsGet(), 2817 autorest.WithBaseURL(to.String(aglr.NextLink))) 2818} 2819 2820// ApplicationGatewayListResultPage contains a page of ApplicationGateway values. 2821type ApplicationGatewayListResultPage struct { 2822 fn func(context.Context, ApplicationGatewayListResult) (ApplicationGatewayListResult, error) 2823 aglr ApplicationGatewayListResult 2824} 2825 2826// NextWithContext advances to the next page of values. If there was an error making 2827// the request the page does not advance and the error is returned. 2828func (page *ApplicationGatewayListResultPage) NextWithContext(ctx context.Context) (err error) { 2829 if tracing.IsEnabled() { 2830 ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationGatewayListResultPage.NextWithContext") 2831 defer func() { 2832 sc := -1 2833 if page.Response().Response.Response != nil { 2834 sc = page.Response().Response.Response.StatusCode 2835 } 2836 tracing.EndSpan(ctx, sc, err) 2837 }() 2838 } 2839 next, err := page.fn(ctx, page.aglr) 2840 if err != nil { 2841 return err 2842 } 2843 page.aglr = next 2844 return nil 2845} 2846 2847// Next advances to the next page of values. If there was an error making 2848// the request the page does not advance and the error is returned. 2849// Deprecated: Use NextWithContext() instead. 2850func (page *ApplicationGatewayListResultPage) Next() error { 2851 return page.NextWithContext(context.Background()) 2852} 2853 2854// NotDone returns true if the page enumeration should be started or is not yet complete. 2855func (page ApplicationGatewayListResultPage) NotDone() bool { 2856 return !page.aglr.IsEmpty() 2857} 2858 2859// Response returns the raw server response from the last page request. 2860func (page ApplicationGatewayListResultPage) Response() ApplicationGatewayListResult { 2861 return page.aglr 2862} 2863 2864// Values returns the slice of values for the current page or nil if there are no values. 2865func (page ApplicationGatewayListResultPage) Values() []ApplicationGateway { 2866 if page.aglr.IsEmpty() { 2867 return nil 2868 } 2869 return *page.aglr.Value 2870} 2871 2872// Creates a new instance of the ApplicationGatewayListResultPage type. 2873func NewApplicationGatewayListResultPage(getNextPage func(context.Context, ApplicationGatewayListResult) (ApplicationGatewayListResult, error)) ApplicationGatewayListResultPage { 2874 return ApplicationGatewayListResultPage{fn: getNextPage} 2875} 2876 2877// ApplicationGatewayPathRule path rule of URL path map of an application gateway. 2878type ApplicationGatewayPathRule struct { 2879 *ApplicationGatewayPathRulePropertiesFormat `json:"properties,omitempty"` 2880 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2881 Name *string `json:"name,omitempty"` 2882 // Etag - A unique read-only string that changes whenever the resource is updated. 2883 Etag *string `json:"etag,omitempty"` 2884 // Type - Type of the resource. 2885 Type *string `json:"type,omitempty"` 2886 // ID - Resource ID. 2887 ID *string `json:"id,omitempty"` 2888} 2889 2890// MarshalJSON is the custom marshaler for ApplicationGatewayPathRule. 2891func (agpr ApplicationGatewayPathRule) MarshalJSON() ([]byte, error) { 2892 objectMap := make(map[string]interface{}) 2893 if agpr.ApplicationGatewayPathRulePropertiesFormat != nil { 2894 objectMap["properties"] = agpr.ApplicationGatewayPathRulePropertiesFormat 2895 } 2896 if agpr.Name != nil { 2897 objectMap["name"] = agpr.Name 2898 } 2899 if agpr.Etag != nil { 2900 objectMap["etag"] = agpr.Etag 2901 } 2902 if agpr.Type != nil { 2903 objectMap["type"] = agpr.Type 2904 } 2905 if agpr.ID != nil { 2906 objectMap["id"] = agpr.ID 2907 } 2908 return json.Marshal(objectMap) 2909} 2910 2911// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayPathRule struct. 2912func (agpr *ApplicationGatewayPathRule) UnmarshalJSON(body []byte) error { 2913 var m map[string]*json.RawMessage 2914 err := json.Unmarshal(body, &m) 2915 if err != nil { 2916 return err 2917 } 2918 for k, v := range m { 2919 switch k { 2920 case "properties": 2921 if v != nil { 2922 var applicationGatewayPathRulePropertiesFormat ApplicationGatewayPathRulePropertiesFormat 2923 err = json.Unmarshal(*v, &applicationGatewayPathRulePropertiesFormat) 2924 if err != nil { 2925 return err 2926 } 2927 agpr.ApplicationGatewayPathRulePropertiesFormat = &applicationGatewayPathRulePropertiesFormat 2928 } 2929 case "name": 2930 if v != nil { 2931 var name string 2932 err = json.Unmarshal(*v, &name) 2933 if err != nil { 2934 return err 2935 } 2936 agpr.Name = &name 2937 } 2938 case "etag": 2939 if v != nil { 2940 var etag string 2941 err = json.Unmarshal(*v, &etag) 2942 if err != nil { 2943 return err 2944 } 2945 agpr.Etag = &etag 2946 } 2947 case "type": 2948 if v != nil { 2949 var typeVar string 2950 err = json.Unmarshal(*v, &typeVar) 2951 if err != nil { 2952 return err 2953 } 2954 agpr.Type = &typeVar 2955 } 2956 case "id": 2957 if v != nil { 2958 var ID string 2959 err = json.Unmarshal(*v, &ID) 2960 if err != nil { 2961 return err 2962 } 2963 agpr.ID = &ID 2964 } 2965 } 2966 } 2967 2968 return nil 2969} 2970 2971// ApplicationGatewayPathRulePropertiesFormat properties of path rule of an application gateway. 2972type ApplicationGatewayPathRulePropertiesFormat struct { 2973 // Paths - Path rules of URL path map. 2974 Paths *[]string `json:"paths,omitempty"` 2975 // BackendAddressPool - Backend address pool resource of URL path map path rule. 2976 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 2977 // BackendHTTPSettings - Backend http settings resource of URL path map path rule. 2978 BackendHTTPSettings *SubResource `json:"backendHttpSettings,omitempty"` 2979 // RedirectConfiguration - Redirect configuration resource of URL path map path rule. 2980 RedirectConfiguration *SubResource `json:"redirectConfiguration,omitempty"` 2981 // ProvisioningState - Path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2982 ProvisioningState *string `json:"provisioningState,omitempty"` 2983} 2984 2985// ApplicationGatewayProbe probe of the application gateway. 2986type ApplicationGatewayProbe struct { 2987 *ApplicationGatewayProbePropertiesFormat `json:"properties,omitempty"` 2988 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2989 Name *string `json:"name,omitempty"` 2990 // Etag - A unique read-only string that changes whenever the resource is updated. 2991 Etag *string `json:"etag,omitempty"` 2992 // Type - Type of the resource. 2993 Type *string `json:"type,omitempty"` 2994 // ID - Resource ID. 2995 ID *string `json:"id,omitempty"` 2996} 2997 2998// MarshalJSON is the custom marshaler for ApplicationGatewayProbe. 2999func (agp ApplicationGatewayProbe) MarshalJSON() ([]byte, error) { 3000 objectMap := make(map[string]interface{}) 3001 if agp.ApplicationGatewayProbePropertiesFormat != nil { 3002 objectMap["properties"] = agp.ApplicationGatewayProbePropertiesFormat 3003 } 3004 if agp.Name != nil { 3005 objectMap["name"] = agp.Name 3006 } 3007 if agp.Etag != nil { 3008 objectMap["etag"] = agp.Etag 3009 } 3010 if agp.Type != nil { 3011 objectMap["type"] = agp.Type 3012 } 3013 if agp.ID != nil { 3014 objectMap["id"] = agp.ID 3015 } 3016 return json.Marshal(objectMap) 3017} 3018 3019// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayProbe struct. 3020func (agp *ApplicationGatewayProbe) UnmarshalJSON(body []byte) error { 3021 var m map[string]*json.RawMessage 3022 err := json.Unmarshal(body, &m) 3023 if err != nil { 3024 return err 3025 } 3026 for k, v := range m { 3027 switch k { 3028 case "properties": 3029 if v != nil { 3030 var applicationGatewayProbePropertiesFormat ApplicationGatewayProbePropertiesFormat 3031 err = json.Unmarshal(*v, &applicationGatewayProbePropertiesFormat) 3032 if err != nil { 3033 return err 3034 } 3035 agp.ApplicationGatewayProbePropertiesFormat = &applicationGatewayProbePropertiesFormat 3036 } 3037 case "name": 3038 if v != nil { 3039 var name string 3040 err = json.Unmarshal(*v, &name) 3041 if err != nil { 3042 return err 3043 } 3044 agp.Name = &name 3045 } 3046 case "etag": 3047 if v != nil { 3048 var etag string 3049 err = json.Unmarshal(*v, &etag) 3050 if err != nil { 3051 return err 3052 } 3053 agp.Etag = &etag 3054 } 3055 case "type": 3056 if v != nil { 3057 var typeVar string 3058 err = json.Unmarshal(*v, &typeVar) 3059 if err != nil { 3060 return err 3061 } 3062 agp.Type = &typeVar 3063 } 3064 case "id": 3065 if v != nil { 3066 var ID string 3067 err = json.Unmarshal(*v, &ID) 3068 if err != nil { 3069 return err 3070 } 3071 agp.ID = &ID 3072 } 3073 } 3074 } 3075 3076 return nil 3077} 3078 3079// ApplicationGatewayProbeHealthResponseMatch application gateway probe health response match 3080type ApplicationGatewayProbeHealthResponseMatch struct { 3081 // Body - Body that must be contained in the health response. Default value is empty. 3082 Body *string `json:"body,omitempty"` 3083 // StatusCodes - Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. 3084 StatusCodes *[]string `json:"statusCodes,omitempty"` 3085} 3086 3087// ApplicationGatewayProbePropertiesFormat properties of probe of an application gateway. 3088type ApplicationGatewayProbePropertiesFormat struct { 3089 // Protocol - Protocol. Possible values include: 'HTTP', 'HTTPS' 3090 Protocol ApplicationGatewayProtocol `json:"protocol,omitempty"` 3091 // Host - Host name to send the probe to. 3092 Host *string `json:"host,omitempty"` 3093 // Path - Relative path of probe. Valid path starts from '/'. Probe is sent to <Protocol>://<host>:<port><path> 3094 Path *string `json:"path,omitempty"` 3095 // Interval - The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. 3096 Interval *int32 `json:"interval,omitempty"` 3097 // Timeout - 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 to 86400 seconds. 3098 Timeout *int32 `json:"timeout,omitempty"` 3099 // UnhealthyThreshold - The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. 3100 UnhealthyThreshold *int32 `json:"unhealthyThreshold,omitempty"` 3101 // PickHostNameFromBackendHTTPSettings - Whether the host header should be picked from the backend http settings. Default value is false. 3102 PickHostNameFromBackendHTTPSettings *bool `json:"pickHostNameFromBackendHttpSettings,omitempty"` 3103 // MinServers - Minimum number of servers that are always marked healthy. Default value is 0. 3104 MinServers *int32 `json:"minServers,omitempty"` 3105 // Match - Criterion for classifying a healthy probe response. 3106 Match *ApplicationGatewayProbeHealthResponseMatch `json:"match,omitempty"` 3107 // ProvisioningState - Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 3108 ProvisioningState *string `json:"provisioningState,omitempty"` 3109} 3110 3111// ApplicationGatewayPropertiesFormat properties of the application gateway. 3112type ApplicationGatewayPropertiesFormat struct { 3113 // Sku - SKU of the application gateway resource. 3114 Sku *ApplicationGatewaySku `json:"sku,omitempty"` 3115 // SslPolicy - SSL policy of the application gateway resource. 3116 SslPolicy *ApplicationGatewaySslPolicy `json:"sslPolicy,omitempty"` 3117 // OperationalState - READ-ONLY; Operational state of the application gateway resource. Possible values include: 'Stopped', 'Starting', 'Running', 'Stopping' 3118 OperationalState ApplicationGatewayOperationalState `json:"operationalState,omitempty"` 3119 // GatewayIPConfigurations - Subnets of application the gateway resource. 3120 GatewayIPConfigurations *[]ApplicationGatewayIPConfiguration `json:"gatewayIPConfigurations,omitempty"` 3121 // AuthenticationCertificates - Authentication certificates of the application gateway resource. 3122 AuthenticationCertificates *[]ApplicationGatewayAuthenticationCertificate `json:"authenticationCertificates,omitempty"` 3123 // SslCertificates - SSL certificates of the application gateway resource. 3124 SslCertificates *[]ApplicationGatewaySslCertificate `json:"sslCertificates,omitempty"` 3125 // FrontendIPConfigurations - Frontend IP addresses of the application gateway resource. 3126 FrontendIPConfigurations *[]ApplicationGatewayFrontendIPConfiguration `json:"frontendIPConfigurations,omitempty"` 3127 // FrontendPorts - Frontend ports of the application gateway resource. 3128 FrontendPorts *[]ApplicationGatewayFrontendPort `json:"frontendPorts,omitempty"` 3129 // Probes - Probes of the application gateway resource. 3130 Probes *[]ApplicationGatewayProbe `json:"probes,omitempty"` 3131 // BackendAddressPools - Backend address pool of the application gateway resource. 3132 BackendAddressPools *[]ApplicationGatewayBackendAddressPool `json:"backendAddressPools,omitempty"` 3133 // BackendHTTPSettingsCollection - Backend http settings of the application gateway resource. 3134 BackendHTTPSettingsCollection *[]ApplicationGatewayBackendHTTPSettings `json:"backendHttpSettingsCollection,omitempty"` 3135 // HTTPListeners - Http listeners of the application gateway resource. 3136 HTTPListeners *[]ApplicationGatewayHTTPListener `json:"httpListeners,omitempty"` 3137 // URLPathMaps - URL path map of the application gateway resource. 3138 URLPathMaps *[]ApplicationGatewayURLPathMap `json:"urlPathMaps,omitempty"` 3139 // RequestRoutingRules - Request routing rules of the application gateway resource. 3140 RequestRoutingRules *[]ApplicationGatewayRequestRoutingRule `json:"requestRoutingRules,omitempty"` 3141 // RedirectConfigurations - Redirect configurations of the application gateway resource. 3142 RedirectConfigurations *[]ApplicationGatewayRedirectConfiguration `json:"redirectConfigurations,omitempty"` 3143 // WebApplicationFirewallConfiguration - Web application firewall configuration. 3144 WebApplicationFirewallConfiguration *ApplicationGatewayWebApplicationFirewallConfiguration `json:"webApplicationFirewallConfiguration,omitempty"` 3145 // EnableHTTP2 - Whether HTTP2 is enabled on the application gateway resource. 3146 EnableHTTP2 *bool `json:"enableHttp2,omitempty"` 3147 // ResourceGUID - Resource GUID property of the application gateway resource. 3148 ResourceGUID *string `json:"resourceGuid,omitempty"` 3149 // ProvisioningState - Provisioning state of the application gateway resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 3150 ProvisioningState *string `json:"provisioningState,omitempty"` 3151} 3152 3153// ApplicationGatewayRedirectConfiguration redirect configuration of an application gateway. 3154type ApplicationGatewayRedirectConfiguration struct { 3155 *ApplicationGatewayRedirectConfigurationPropertiesFormat `json:"properties,omitempty"` 3156 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 3157 Name *string `json:"name,omitempty"` 3158 // Etag - A unique read-only string that changes whenever the resource is updated. 3159 Etag *string `json:"etag,omitempty"` 3160 // Type - Type of the resource. 3161 Type *string `json:"type,omitempty"` 3162 // ID - Resource ID. 3163 ID *string `json:"id,omitempty"` 3164} 3165 3166// MarshalJSON is the custom marshaler for ApplicationGatewayRedirectConfiguration. 3167func (agrc ApplicationGatewayRedirectConfiguration) MarshalJSON() ([]byte, error) { 3168 objectMap := make(map[string]interface{}) 3169 if agrc.ApplicationGatewayRedirectConfigurationPropertiesFormat != nil { 3170 objectMap["properties"] = agrc.ApplicationGatewayRedirectConfigurationPropertiesFormat 3171 } 3172 if agrc.Name != nil { 3173 objectMap["name"] = agrc.Name 3174 } 3175 if agrc.Etag != nil { 3176 objectMap["etag"] = agrc.Etag 3177 } 3178 if agrc.Type != nil { 3179 objectMap["type"] = agrc.Type 3180 } 3181 if agrc.ID != nil { 3182 objectMap["id"] = agrc.ID 3183 } 3184 return json.Marshal(objectMap) 3185} 3186 3187// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayRedirectConfiguration struct. 3188func (agrc *ApplicationGatewayRedirectConfiguration) UnmarshalJSON(body []byte) error { 3189 var m map[string]*json.RawMessage 3190 err := json.Unmarshal(body, &m) 3191 if err != nil { 3192 return err 3193 } 3194 for k, v := range m { 3195 switch k { 3196 case "properties": 3197 if v != nil { 3198 var applicationGatewayRedirectConfigurationPropertiesFormat ApplicationGatewayRedirectConfigurationPropertiesFormat 3199 err = json.Unmarshal(*v, &applicationGatewayRedirectConfigurationPropertiesFormat) 3200 if err != nil { 3201 return err 3202 } 3203 agrc.ApplicationGatewayRedirectConfigurationPropertiesFormat = &applicationGatewayRedirectConfigurationPropertiesFormat 3204 } 3205 case "name": 3206 if v != nil { 3207 var name string 3208 err = json.Unmarshal(*v, &name) 3209 if err != nil { 3210 return err 3211 } 3212 agrc.Name = &name 3213 } 3214 case "etag": 3215 if v != nil { 3216 var etag string 3217 err = json.Unmarshal(*v, &etag) 3218 if err != nil { 3219 return err 3220 } 3221 agrc.Etag = &etag 3222 } 3223 case "type": 3224 if v != nil { 3225 var typeVar string 3226 err = json.Unmarshal(*v, &typeVar) 3227 if err != nil { 3228 return err 3229 } 3230 agrc.Type = &typeVar 3231 } 3232 case "id": 3233 if v != nil { 3234 var ID string 3235 err = json.Unmarshal(*v, &ID) 3236 if err != nil { 3237 return err 3238 } 3239 agrc.ID = &ID 3240 } 3241 } 3242 } 3243 3244 return nil 3245} 3246 3247// ApplicationGatewayRedirectConfigurationPropertiesFormat properties of redirect configuration of the 3248// application gateway. 3249type ApplicationGatewayRedirectConfigurationPropertiesFormat struct { 3250 // RedirectType - Supported http redirection types - Permanent, Temporary, Found, SeeOther. Possible values include: 'Permanent', 'Found', 'SeeOther', 'Temporary' 3251 RedirectType ApplicationGatewayRedirectType `json:"redirectType,omitempty"` 3252 // TargetListener - Reference to a listener to redirect the request to. 3253 TargetListener *SubResource `json:"targetListener,omitempty"` 3254 // TargetURL - Url to redirect the request to. 3255 TargetURL *string `json:"targetUrl,omitempty"` 3256 // IncludePath - Include path in the redirected url. 3257 IncludePath *bool `json:"includePath,omitempty"` 3258 // IncludeQueryString - Include query string in the redirected url. 3259 IncludeQueryString *bool `json:"includeQueryString,omitempty"` 3260 // RequestRoutingRules - Request routing specifying redirect configuration. 3261 RequestRoutingRules *[]SubResource `json:"requestRoutingRules,omitempty"` 3262 // URLPathMaps - Url path maps specifying default redirect configuration. 3263 URLPathMaps *[]SubResource `json:"urlPathMaps,omitempty"` 3264 // PathRules - Path rules specifying redirect configuration. 3265 PathRules *[]SubResource `json:"pathRules,omitempty"` 3266} 3267 3268// ApplicationGatewayRequestRoutingRule request routing rule of an application gateway. 3269type ApplicationGatewayRequestRoutingRule struct { 3270 *ApplicationGatewayRequestRoutingRulePropertiesFormat `json:"properties,omitempty"` 3271 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 3272 Name *string `json:"name,omitempty"` 3273 // Etag - A unique read-only string that changes whenever the resource is updated. 3274 Etag *string `json:"etag,omitempty"` 3275 // Type - Type of the resource. 3276 Type *string `json:"type,omitempty"` 3277 // ID - Resource ID. 3278 ID *string `json:"id,omitempty"` 3279} 3280 3281// MarshalJSON is the custom marshaler for ApplicationGatewayRequestRoutingRule. 3282func (agrrr ApplicationGatewayRequestRoutingRule) MarshalJSON() ([]byte, error) { 3283 objectMap := make(map[string]interface{}) 3284 if agrrr.ApplicationGatewayRequestRoutingRulePropertiesFormat != nil { 3285 objectMap["properties"] = agrrr.ApplicationGatewayRequestRoutingRulePropertiesFormat 3286 } 3287 if agrrr.Name != nil { 3288 objectMap["name"] = agrrr.Name 3289 } 3290 if agrrr.Etag != nil { 3291 objectMap["etag"] = agrrr.Etag 3292 } 3293 if agrrr.Type != nil { 3294 objectMap["type"] = agrrr.Type 3295 } 3296 if agrrr.ID != nil { 3297 objectMap["id"] = agrrr.ID 3298 } 3299 return json.Marshal(objectMap) 3300} 3301 3302// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayRequestRoutingRule struct. 3303func (agrrr *ApplicationGatewayRequestRoutingRule) UnmarshalJSON(body []byte) error { 3304 var m map[string]*json.RawMessage 3305 err := json.Unmarshal(body, &m) 3306 if err != nil { 3307 return err 3308 } 3309 for k, v := range m { 3310 switch k { 3311 case "properties": 3312 if v != nil { 3313 var applicationGatewayRequestRoutingRulePropertiesFormat ApplicationGatewayRequestRoutingRulePropertiesFormat 3314 err = json.Unmarshal(*v, &applicationGatewayRequestRoutingRulePropertiesFormat) 3315 if err != nil { 3316 return err 3317 } 3318 agrrr.ApplicationGatewayRequestRoutingRulePropertiesFormat = &applicationGatewayRequestRoutingRulePropertiesFormat 3319 } 3320 case "name": 3321 if v != nil { 3322 var name string 3323 err = json.Unmarshal(*v, &name) 3324 if err != nil { 3325 return err 3326 } 3327 agrrr.Name = &name 3328 } 3329 case "etag": 3330 if v != nil { 3331 var etag string 3332 err = json.Unmarshal(*v, &etag) 3333 if err != nil { 3334 return err 3335 } 3336 agrrr.Etag = &etag 3337 } 3338 case "type": 3339 if v != nil { 3340 var typeVar string 3341 err = json.Unmarshal(*v, &typeVar) 3342 if err != nil { 3343 return err 3344 } 3345 agrrr.Type = &typeVar 3346 } 3347 case "id": 3348 if v != nil { 3349 var ID string 3350 err = json.Unmarshal(*v, &ID) 3351 if err != nil { 3352 return err 3353 } 3354 agrrr.ID = &ID 3355 } 3356 } 3357 } 3358 3359 return nil 3360} 3361 3362// ApplicationGatewayRequestRoutingRulePropertiesFormat properties of request routing rule of the 3363// application gateway. 3364type ApplicationGatewayRequestRoutingRulePropertiesFormat struct { 3365 // RuleType - Rule type. Possible values include: 'Basic', 'PathBasedRouting' 3366 RuleType ApplicationGatewayRequestRoutingRuleType `json:"ruleType,omitempty"` 3367 // BackendAddressPool - Backend address pool resource of the application gateway. 3368 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 3369 // BackendHTTPSettings - Frontend port resource of the application gateway. 3370 BackendHTTPSettings *SubResource `json:"backendHttpSettings,omitempty"` 3371 // HTTPListener - Http listener resource of the application gateway. 3372 HTTPListener *SubResource `json:"httpListener,omitempty"` 3373 // URLPathMap - URL path map resource of the application gateway. 3374 URLPathMap *SubResource `json:"urlPathMap,omitempty"` 3375 // RedirectConfiguration - Redirect configuration resource of the application gateway. 3376 RedirectConfiguration *SubResource `json:"redirectConfiguration,omitempty"` 3377 // ProvisioningState - Provisioning state of the request routing rule resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 3378 ProvisioningState *string `json:"provisioningState,omitempty"` 3379} 3380 3381// ApplicationGatewaysBackendHealthFuture an abstraction for monitoring and retrieving the results of a 3382// long-running operation. 3383type ApplicationGatewaysBackendHealthFuture struct { 3384 azure.Future 3385} 3386 3387// Result returns the result of the asynchronous operation. 3388// If the operation has not completed it will return an error. 3389func (future *ApplicationGatewaysBackendHealthFuture) Result(client ApplicationGatewaysClient) (agbh ApplicationGatewayBackendHealth, err error) { 3390 var done bool 3391 done, err = future.DoneWithContext(context.Background(), client) 3392 if err != nil { 3393 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysBackendHealthFuture", "Result", future.Response(), "Polling failure") 3394 return 3395 } 3396 if !done { 3397 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysBackendHealthFuture") 3398 return 3399 } 3400 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3401 if agbh.Response.Response, err = future.GetResult(sender); err == nil && agbh.Response.Response.StatusCode != http.StatusNoContent { 3402 agbh, err = client.BackendHealthResponder(agbh.Response.Response) 3403 if err != nil { 3404 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysBackendHealthFuture", "Result", agbh.Response.Response, "Failure responding to request") 3405 } 3406 } 3407 return 3408} 3409 3410// ApplicationGatewaysCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 3411// long-running operation. 3412type ApplicationGatewaysCreateOrUpdateFuture struct { 3413 azure.Future 3414} 3415 3416// Result returns the result of the asynchronous operation. 3417// If the operation has not completed it will return an error. 3418func (future *ApplicationGatewaysCreateOrUpdateFuture) Result(client ApplicationGatewaysClient) (ag ApplicationGateway, err error) { 3419 var done bool 3420 done, err = future.DoneWithContext(context.Background(), client) 3421 if err != nil { 3422 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 3423 return 3424 } 3425 if !done { 3426 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysCreateOrUpdateFuture") 3427 return 3428 } 3429 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3430 if ag.Response.Response, err = future.GetResult(sender); err == nil && ag.Response.Response.StatusCode != http.StatusNoContent { 3431 ag, err = client.CreateOrUpdateResponder(ag.Response.Response) 3432 if err != nil { 3433 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysCreateOrUpdateFuture", "Result", ag.Response.Response, "Failure responding to request") 3434 } 3435 } 3436 return 3437} 3438 3439// ApplicationGatewaysDeleteFuture an abstraction for monitoring and retrieving the results of a 3440// long-running operation. 3441type ApplicationGatewaysDeleteFuture struct { 3442 azure.Future 3443} 3444 3445// Result returns the result of the asynchronous operation. 3446// If the operation has not completed it will return an error. 3447func (future *ApplicationGatewaysDeleteFuture) Result(client ApplicationGatewaysClient) (ar autorest.Response, err error) { 3448 var done bool 3449 done, err = future.DoneWithContext(context.Background(), client) 3450 if err != nil { 3451 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysDeleteFuture", "Result", future.Response(), "Polling failure") 3452 return 3453 } 3454 if !done { 3455 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysDeleteFuture") 3456 return 3457 } 3458 ar.Response = future.Response() 3459 return 3460} 3461 3462// ApplicationGatewaySku SKU of an application gateway 3463type ApplicationGatewaySku struct { 3464 // Name - Name of an application gateway SKU. Possible values include: 'StandardSmall', 'StandardMedium', 'StandardLarge', 'WAFMedium', 'WAFLarge' 3465 Name ApplicationGatewaySkuName `json:"name,omitempty"` 3466 // Tier - Tier of an application gateway. Possible values include: 'Standard', 'WAF' 3467 Tier ApplicationGatewayTier `json:"tier,omitempty"` 3468 // Capacity - Capacity (instance count) of an application gateway. 3469 Capacity *int32 `json:"capacity,omitempty"` 3470} 3471 3472// ApplicationGatewaySslCertificate SSL certificates of an application gateway. 3473type ApplicationGatewaySslCertificate struct { 3474 *ApplicationGatewaySslCertificatePropertiesFormat `json:"properties,omitempty"` 3475 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 3476 Name *string `json:"name,omitempty"` 3477 // Etag - A unique read-only string that changes whenever the resource is updated. 3478 Etag *string `json:"etag,omitempty"` 3479 // Type - Type of the resource. 3480 Type *string `json:"type,omitempty"` 3481 // ID - Resource ID. 3482 ID *string `json:"id,omitempty"` 3483} 3484 3485// MarshalJSON is the custom marshaler for ApplicationGatewaySslCertificate. 3486func (agsc ApplicationGatewaySslCertificate) MarshalJSON() ([]byte, error) { 3487 objectMap := make(map[string]interface{}) 3488 if agsc.ApplicationGatewaySslCertificatePropertiesFormat != nil { 3489 objectMap["properties"] = agsc.ApplicationGatewaySslCertificatePropertiesFormat 3490 } 3491 if agsc.Name != nil { 3492 objectMap["name"] = agsc.Name 3493 } 3494 if agsc.Etag != nil { 3495 objectMap["etag"] = agsc.Etag 3496 } 3497 if agsc.Type != nil { 3498 objectMap["type"] = agsc.Type 3499 } 3500 if agsc.ID != nil { 3501 objectMap["id"] = agsc.ID 3502 } 3503 return json.Marshal(objectMap) 3504} 3505 3506// UnmarshalJSON is the custom unmarshaler for ApplicationGatewaySslCertificate struct. 3507func (agsc *ApplicationGatewaySslCertificate) UnmarshalJSON(body []byte) error { 3508 var m map[string]*json.RawMessage 3509 err := json.Unmarshal(body, &m) 3510 if err != nil { 3511 return err 3512 } 3513 for k, v := range m { 3514 switch k { 3515 case "properties": 3516 if v != nil { 3517 var applicationGatewaySslCertificatePropertiesFormat ApplicationGatewaySslCertificatePropertiesFormat 3518 err = json.Unmarshal(*v, &applicationGatewaySslCertificatePropertiesFormat) 3519 if err != nil { 3520 return err 3521 } 3522 agsc.ApplicationGatewaySslCertificatePropertiesFormat = &applicationGatewaySslCertificatePropertiesFormat 3523 } 3524 case "name": 3525 if v != nil { 3526 var name string 3527 err = json.Unmarshal(*v, &name) 3528 if err != nil { 3529 return err 3530 } 3531 agsc.Name = &name 3532 } 3533 case "etag": 3534 if v != nil { 3535 var etag string 3536 err = json.Unmarshal(*v, &etag) 3537 if err != nil { 3538 return err 3539 } 3540 agsc.Etag = &etag 3541 } 3542 case "type": 3543 if v != nil { 3544 var typeVar string 3545 err = json.Unmarshal(*v, &typeVar) 3546 if err != nil { 3547 return err 3548 } 3549 agsc.Type = &typeVar 3550 } 3551 case "id": 3552 if v != nil { 3553 var ID string 3554 err = json.Unmarshal(*v, &ID) 3555 if err != nil { 3556 return err 3557 } 3558 agsc.ID = &ID 3559 } 3560 } 3561 } 3562 3563 return nil 3564} 3565 3566// ApplicationGatewaySslCertificatePropertiesFormat properties of SSL certificates of an application 3567// gateway. 3568type ApplicationGatewaySslCertificatePropertiesFormat struct { 3569 // Data - Base-64 encoded pfx certificate. Only applicable in PUT Request. 3570 Data *string `json:"data,omitempty"` 3571 // Password - Password for the pfx file specified in data. Only applicable in PUT request. 3572 Password *string `json:"password,omitempty"` 3573 // PublicCertData - Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request. 3574 PublicCertData *string `json:"publicCertData,omitempty"` 3575 // ProvisioningState - Provisioning state of the SSL certificate resource Possible values are: 'Updating', 'Deleting', and 'Failed'. 3576 ProvisioningState *string `json:"provisioningState,omitempty"` 3577} 3578 3579// ApplicationGatewaySslPolicy application Gateway Ssl policy. 3580type ApplicationGatewaySslPolicy struct { 3581 // DisabledSslProtocols - Ssl protocols to be disabled on application gateway. 3582 DisabledSslProtocols *[]ApplicationGatewaySslProtocol `json:"disabledSslProtocols,omitempty"` 3583 // PolicyType - Type of Ssl Policy. Possible values include: 'Predefined', 'Custom' 3584 PolicyType ApplicationGatewaySslPolicyType `json:"policyType,omitempty"` 3585 // PolicyName - Name of Ssl predefined policy. Possible values include: 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S' 3586 PolicyName ApplicationGatewaySslPolicyName `json:"policyName,omitempty"` 3587 // CipherSuites - Ssl cipher suites to be enabled in the specified order to application gateway. 3588 CipherSuites *[]ApplicationGatewaySslCipherSuite `json:"cipherSuites,omitempty"` 3589 // MinProtocolVersion - Minimum version of Ssl protocol to be supported on application gateway. Possible values include: 'TLSv10', 'TLSv11', 'TLSv12' 3590 MinProtocolVersion ApplicationGatewaySslProtocol `json:"minProtocolVersion,omitempty"` 3591} 3592 3593// ApplicationGatewaySslPredefinedPolicy an Ssl predefined policy 3594type ApplicationGatewaySslPredefinedPolicy struct { 3595 autorest.Response `json:"-"` 3596 // Name - Name of Ssl predefined policy. 3597 Name *string `json:"name,omitempty"` 3598 *ApplicationGatewaySslPredefinedPolicyPropertiesFormat `json:"properties,omitempty"` 3599 // ID - Resource ID. 3600 ID *string `json:"id,omitempty"` 3601} 3602 3603// MarshalJSON is the custom marshaler for ApplicationGatewaySslPredefinedPolicy. 3604func (agspp ApplicationGatewaySslPredefinedPolicy) MarshalJSON() ([]byte, error) { 3605 objectMap := make(map[string]interface{}) 3606 if agspp.Name != nil { 3607 objectMap["name"] = agspp.Name 3608 } 3609 if agspp.ApplicationGatewaySslPredefinedPolicyPropertiesFormat != nil { 3610 objectMap["properties"] = agspp.ApplicationGatewaySslPredefinedPolicyPropertiesFormat 3611 } 3612 if agspp.ID != nil { 3613 objectMap["id"] = agspp.ID 3614 } 3615 return json.Marshal(objectMap) 3616} 3617 3618// UnmarshalJSON is the custom unmarshaler for ApplicationGatewaySslPredefinedPolicy struct. 3619func (agspp *ApplicationGatewaySslPredefinedPolicy) UnmarshalJSON(body []byte) error { 3620 var m map[string]*json.RawMessage 3621 err := json.Unmarshal(body, &m) 3622 if err != nil { 3623 return err 3624 } 3625 for k, v := range m { 3626 switch k { 3627 case "name": 3628 if v != nil { 3629 var name string 3630 err = json.Unmarshal(*v, &name) 3631 if err != nil { 3632 return err 3633 } 3634 agspp.Name = &name 3635 } 3636 case "properties": 3637 if v != nil { 3638 var applicationGatewaySslPredefinedPolicyPropertiesFormat ApplicationGatewaySslPredefinedPolicyPropertiesFormat 3639 err = json.Unmarshal(*v, &applicationGatewaySslPredefinedPolicyPropertiesFormat) 3640 if err != nil { 3641 return err 3642 } 3643 agspp.ApplicationGatewaySslPredefinedPolicyPropertiesFormat = &applicationGatewaySslPredefinedPolicyPropertiesFormat 3644 } 3645 case "id": 3646 if v != nil { 3647 var ID string 3648 err = json.Unmarshal(*v, &ID) 3649 if err != nil { 3650 return err 3651 } 3652 agspp.ID = &ID 3653 } 3654 } 3655 } 3656 3657 return nil 3658} 3659 3660// ApplicationGatewaySslPredefinedPolicyPropertiesFormat properties of 3661// ApplicationGatewaySslPredefinedPolicy 3662type ApplicationGatewaySslPredefinedPolicyPropertiesFormat struct { 3663 // CipherSuites - Ssl cipher suites to be enabled in the specified order for application gateway. 3664 CipherSuites *[]ApplicationGatewaySslCipherSuite `json:"cipherSuites,omitempty"` 3665 // MinProtocolVersion - Minimum version of Ssl protocol to be supported on application gateway. Possible values include: 'TLSv10', 'TLSv11', 'TLSv12' 3666 MinProtocolVersion ApplicationGatewaySslProtocol `json:"minProtocolVersion,omitempty"` 3667} 3668 3669// ApplicationGatewaysStartFuture an abstraction for monitoring and retrieving the results of a 3670// long-running operation. 3671type ApplicationGatewaysStartFuture struct { 3672 azure.Future 3673} 3674 3675// Result returns the result of the asynchronous operation. 3676// If the operation has not completed it will return an error. 3677func (future *ApplicationGatewaysStartFuture) Result(client ApplicationGatewaysClient) (ar autorest.Response, err error) { 3678 var done bool 3679 done, err = future.DoneWithContext(context.Background(), client) 3680 if err != nil { 3681 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysStartFuture", "Result", future.Response(), "Polling failure") 3682 return 3683 } 3684 if !done { 3685 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysStartFuture") 3686 return 3687 } 3688 ar.Response = future.Response() 3689 return 3690} 3691 3692// ApplicationGatewaysStopFuture an abstraction for monitoring and retrieving the results of a long-running 3693// operation. 3694type ApplicationGatewaysStopFuture struct { 3695 azure.Future 3696} 3697 3698// Result returns the result of the asynchronous operation. 3699// If the operation has not completed it will return an error. 3700func (future *ApplicationGatewaysStopFuture) Result(client ApplicationGatewaysClient) (ar autorest.Response, err error) { 3701 var done bool 3702 done, err = future.DoneWithContext(context.Background(), client) 3703 if err != nil { 3704 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysStopFuture", "Result", future.Response(), "Polling failure") 3705 return 3706 } 3707 if !done { 3708 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysStopFuture") 3709 return 3710 } 3711 ar.Response = future.Response() 3712 return 3713} 3714 3715// ApplicationGatewaysUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 3716// long-running operation. 3717type ApplicationGatewaysUpdateTagsFuture struct { 3718 azure.Future 3719} 3720 3721// Result returns the result of the asynchronous operation. 3722// If the operation has not completed it will return an error. 3723func (future *ApplicationGatewaysUpdateTagsFuture) Result(client ApplicationGatewaysClient) (ag ApplicationGateway, err error) { 3724 var done bool 3725 done, err = future.DoneWithContext(context.Background(), client) 3726 if err != nil { 3727 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysUpdateTagsFuture", "Result", future.Response(), "Polling failure") 3728 return 3729 } 3730 if !done { 3731 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysUpdateTagsFuture") 3732 return 3733 } 3734 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3735 if ag.Response.Response, err = future.GetResult(sender); err == nil && ag.Response.Response.StatusCode != http.StatusNoContent { 3736 ag, err = client.UpdateTagsResponder(ag.Response.Response) 3737 if err != nil { 3738 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysUpdateTagsFuture", "Result", ag.Response.Response, "Failure responding to request") 3739 } 3740 } 3741 return 3742} 3743 3744// ApplicationGatewayURLPathMap urlPathMaps give a url path to the backend mapping information for 3745// PathBasedRouting. 3746type ApplicationGatewayURLPathMap struct { 3747 *ApplicationGatewayURLPathMapPropertiesFormat `json:"properties,omitempty"` 3748 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 3749 Name *string `json:"name,omitempty"` 3750 // Etag - A unique read-only string that changes whenever the resource is updated. 3751 Etag *string `json:"etag,omitempty"` 3752 // Type - Type of the resource. 3753 Type *string `json:"type,omitempty"` 3754 // ID - Resource ID. 3755 ID *string `json:"id,omitempty"` 3756} 3757 3758// MarshalJSON is the custom marshaler for ApplicationGatewayURLPathMap. 3759func (agupm ApplicationGatewayURLPathMap) MarshalJSON() ([]byte, error) { 3760 objectMap := make(map[string]interface{}) 3761 if agupm.ApplicationGatewayURLPathMapPropertiesFormat != nil { 3762 objectMap["properties"] = agupm.ApplicationGatewayURLPathMapPropertiesFormat 3763 } 3764 if agupm.Name != nil { 3765 objectMap["name"] = agupm.Name 3766 } 3767 if agupm.Etag != nil { 3768 objectMap["etag"] = agupm.Etag 3769 } 3770 if agupm.Type != nil { 3771 objectMap["type"] = agupm.Type 3772 } 3773 if agupm.ID != nil { 3774 objectMap["id"] = agupm.ID 3775 } 3776 return json.Marshal(objectMap) 3777} 3778 3779// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayURLPathMap struct. 3780func (agupm *ApplicationGatewayURLPathMap) UnmarshalJSON(body []byte) error { 3781 var m map[string]*json.RawMessage 3782 err := json.Unmarshal(body, &m) 3783 if err != nil { 3784 return err 3785 } 3786 for k, v := range m { 3787 switch k { 3788 case "properties": 3789 if v != nil { 3790 var applicationGatewayURLPathMapPropertiesFormat ApplicationGatewayURLPathMapPropertiesFormat 3791 err = json.Unmarshal(*v, &applicationGatewayURLPathMapPropertiesFormat) 3792 if err != nil { 3793 return err 3794 } 3795 agupm.ApplicationGatewayURLPathMapPropertiesFormat = &applicationGatewayURLPathMapPropertiesFormat 3796 } 3797 case "name": 3798 if v != nil { 3799 var name string 3800 err = json.Unmarshal(*v, &name) 3801 if err != nil { 3802 return err 3803 } 3804 agupm.Name = &name 3805 } 3806 case "etag": 3807 if v != nil { 3808 var etag string 3809 err = json.Unmarshal(*v, &etag) 3810 if err != nil { 3811 return err 3812 } 3813 agupm.Etag = &etag 3814 } 3815 case "type": 3816 if v != nil { 3817 var typeVar string 3818 err = json.Unmarshal(*v, &typeVar) 3819 if err != nil { 3820 return err 3821 } 3822 agupm.Type = &typeVar 3823 } 3824 case "id": 3825 if v != nil { 3826 var ID string 3827 err = json.Unmarshal(*v, &ID) 3828 if err != nil { 3829 return err 3830 } 3831 agupm.ID = &ID 3832 } 3833 } 3834 } 3835 3836 return nil 3837} 3838 3839// ApplicationGatewayURLPathMapPropertiesFormat properties of UrlPathMap of the application gateway. 3840type ApplicationGatewayURLPathMapPropertiesFormat struct { 3841 // DefaultBackendAddressPool - Default backend address pool resource of URL path map. 3842 DefaultBackendAddressPool *SubResource `json:"defaultBackendAddressPool,omitempty"` 3843 // DefaultBackendHTTPSettings - Default backend http settings resource of URL path map. 3844 DefaultBackendHTTPSettings *SubResource `json:"defaultBackendHttpSettings,omitempty"` 3845 // DefaultRedirectConfiguration - Default redirect configuration resource of URL path map. 3846 DefaultRedirectConfiguration *SubResource `json:"defaultRedirectConfiguration,omitempty"` 3847 // PathRules - Path rule of URL path map resource. 3848 PathRules *[]ApplicationGatewayPathRule `json:"pathRules,omitempty"` 3849 // ProvisioningState - Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 3850 ProvisioningState *string `json:"provisioningState,omitempty"` 3851} 3852 3853// ApplicationGatewayWebApplicationFirewallConfiguration application gateway web application firewall 3854// configuration. 3855type ApplicationGatewayWebApplicationFirewallConfiguration struct { 3856 // Enabled - Whether the web application firewall is enabled or not. 3857 Enabled *bool `json:"enabled,omitempty"` 3858 // FirewallMode - Web application firewall mode. Possible values include: 'Detection', 'Prevention' 3859 FirewallMode ApplicationGatewayFirewallMode `json:"firewallMode,omitempty"` 3860 // RuleSetType - The type of the web application firewall rule set. Possible values are: 'OWASP'. 3861 RuleSetType *string `json:"ruleSetType,omitempty"` 3862 // RuleSetVersion - The version of the rule set type. 3863 RuleSetVersion *string `json:"ruleSetVersion,omitempty"` 3864 // DisabledRuleGroups - The disabled rule groups. 3865 DisabledRuleGroups *[]ApplicationGatewayFirewallDisabledRuleGroup `json:"disabledRuleGroups,omitempty"` 3866 // RequestBodyCheck - Whether allow WAF to check request Body. 3867 RequestBodyCheck *bool `json:"requestBodyCheck,omitempty"` 3868 // MaxRequestBodySize - Maximum request body size for WAF. 3869 MaxRequestBodySize *int32 `json:"maxRequestBodySize,omitempty"` 3870} 3871 3872// ApplicationSecurityGroup an application security group in a resource group. 3873type ApplicationSecurityGroup struct { 3874 autorest.Response `json:"-"` 3875 // ApplicationSecurityGroupPropertiesFormat - Properties of the application security group. 3876 *ApplicationSecurityGroupPropertiesFormat `json:"properties,omitempty"` 3877 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 3878 Etag *string `json:"etag,omitempty"` 3879 // ID - Resource ID. 3880 ID *string `json:"id,omitempty"` 3881 // Name - READ-ONLY; Resource name. 3882 Name *string `json:"name,omitempty"` 3883 // Type - READ-ONLY; Resource type. 3884 Type *string `json:"type,omitempty"` 3885 // Location - Resource location. 3886 Location *string `json:"location,omitempty"` 3887 // Tags - Resource tags. 3888 Tags map[string]*string `json:"tags"` 3889} 3890 3891// MarshalJSON is the custom marshaler for ApplicationSecurityGroup. 3892func (asg ApplicationSecurityGroup) MarshalJSON() ([]byte, error) { 3893 objectMap := make(map[string]interface{}) 3894 if asg.ApplicationSecurityGroupPropertiesFormat != nil { 3895 objectMap["properties"] = asg.ApplicationSecurityGroupPropertiesFormat 3896 } 3897 if asg.ID != nil { 3898 objectMap["id"] = asg.ID 3899 } 3900 if asg.Location != nil { 3901 objectMap["location"] = asg.Location 3902 } 3903 if asg.Tags != nil { 3904 objectMap["tags"] = asg.Tags 3905 } 3906 return json.Marshal(objectMap) 3907} 3908 3909// UnmarshalJSON is the custom unmarshaler for ApplicationSecurityGroup struct. 3910func (asg *ApplicationSecurityGroup) UnmarshalJSON(body []byte) error { 3911 var m map[string]*json.RawMessage 3912 err := json.Unmarshal(body, &m) 3913 if err != nil { 3914 return err 3915 } 3916 for k, v := range m { 3917 switch k { 3918 case "properties": 3919 if v != nil { 3920 var applicationSecurityGroupPropertiesFormat ApplicationSecurityGroupPropertiesFormat 3921 err = json.Unmarshal(*v, &applicationSecurityGroupPropertiesFormat) 3922 if err != nil { 3923 return err 3924 } 3925 asg.ApplicationSecurityGroupPropertiesFormat = &applicationSecurityGroupPropertiesFormat 3926 } 3927 case "etag": 3928 if v != nil { 3929 var etag string 3930 err = json.Unmarshal(*v, &etag) 3931 if err != nil { 3932 return err 3933 } 3934 asg.Etag = &etag 3935 } 3936 case "id": 3937 if v != nil { 3938 var ID string 3939 err = json.Unmarshal(*v, &ID) 3940 if err != nil { 3941 return err 3942 } 3943 asg.ID = &ID 3944 } 3945 case "name": 3946 if v != nil { 3947 var name string 3948 err = json.Unmarshal(*v, &name) 3949 if err != nil { 3950 return err 3951 } 3952 asg.Name = &name 3953 } 3954 case "type": 3955 if v != nil { 3956 var typeVar string 3957 err = json.Unmarshal(*v, &typeVar) 3958 if err != nil { 3959 return err 3960 } 3961 asg.Type = &typeVar 3962 } 3963 case "location": 3964 if v != nil { 3965 var location string 3966 err = json.Unmarshal(*v, &location) 3967 if err != nil { 3968 return err 3969 } 3970 asg.Location = &location 3971 } 3972 case "tags": 3973 if v != nil { 3974 var tags map[string]*string 3975 err = json.Unmarshal(*v, &tags) 3976 if err != nil { 3977 return err 3978 } 3979 asg.Tags = tags 3980 } 3981 } 3982 } 3983 3984 return nil 3985} 3986 3987// ApplicationSecurityGroupListResult a list of application security groups. 3988type ApplicationSecurityGroupListResult struct { 3989 autorest.Response `json:"-"` 3990 // Value - A list of application security groups. 3991 Value *[]ApplicationSecurityGroup `json:"value,omitempty"` 3992 // NextLink - READ-ONLY; The URL to get the next set of results. 3993 NextLink *string `json:"nextLink,omitempty"` 3994} 3995 3996// ApplicationSecurityGroupListResultIterator provides access to a complete listing of 3997// ApplicationSecurityGroup values. 3998type ApplicationSecurityGroupListResultIterator struct { 3999 i int 4000 page ApplicationSecurityGroupListResultPage 4001} 4002 4003// NextWithContext advances to the next value. If there was an error making 4004// the request the iterator does not advance and the error is returned. 4005func (iter *ApplicationSecurityGroupListResultIterator) NextWithContext(ctx context.Context) (err error) { 4006 if tracing.IsEnabled() { 4007 ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationSecurityGroupListResultIterator.NextWithContext") 4008 defer func() { 4009 sc := -1 4010 if iter.Response().Response.Response != nil { 4011 sc = iter.Response().Response.Response.StatusCode 4012 } 4013 tracing.EndSpan(ctx, sc, err) 4014 }() 4015 } 4016 iter.i++ 4017 if iter.i < len(iter.page.Values()) { 4018 return nil 4019 } 4020 err = iter.page.NextWithContext(ctx) 4021 if err != nil { 4022 iter.i-- 4023 return err 4024 } 4025 iter.i = 0 4026 return nil 4027} 4028 4029// Next advances to the next value. If there was an error making 4030// the request the iterator does not advance and the error is returned. 4031// Deprecated: Use NextWithContext() instead. 4032func (iter *ApplicationSecurityGroupListResultIterator) Next() error { 4033 return iter.NextWithContext(context.Background()) 4034} 4035 4036// NotDone returns true if the enumeration should be started or is not yet complete. 4037func (iter ApplicationSecurityGroupListResultIterator) NotDone() bool { 4038 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 4039} 4040 4041// Response returns the raw server response from the last page request. 4042func (iter ApplicationSecurityGroupListResultIterator) Response() ApplicationSecurityGroupListResult { 4043 return iter.page.Response() 4044} 4045 4046// Value returns the current value or a zero-initialized value if the 4047// iterator has advanced beyond the end of the collection. 4048func (iter ApplicationSecurityGroupListResultIterator) Value() ApplicationSecurityGroup { 4049 if !iter.page.NotDone() { 4050 return ApplicationSecurityGroup{} 4051 } 4052 return iter.page.Values()[iter.i] 4053} 4054 4055// Creates a new instance of the ApplicationSecurityGroupListResultIterator type. 4056func NewApplicationSecurityGroupListResultIterator(page ApplicationSecurityGroupListResultPage) ApplicationSecurityGroupListResultIterator { 4057 return ApplicationSecurityGroupListResultIterator{page: page} 4058} 4059 4060// IsEmpty returns true if the ListResult contains no values. 4061func (asglr ApplicationSecurityGroupListResult) IsEmpty() bool { 4062 return asglr.Value == nil || len(*asglr.Value) == 0 4063} 4064 4065// applicationSecurityGroupListResultPreparer prepares a request to retrieve the next set of results. 4066// It returns nil if no more results exist. 4067func (asglr ApplicationSecurityGroupListResult) applicationSecurityGroupListResultPreparer(ctx context.Context) (*http.Request, error) { 4068 if asglr.NextLink == nil || len(to.String(asglr.NextLink)) < 1 { 4069 return nil, nil 4070 } 4071 return autorest.Prepare((&http.Request{}).WithContext(ctx), 4072 autorest.AsJSON(), 4073 autorest.AsGet(), 4074 autorest.WithBaseURL(to.String(asglr.NextLink))) 4075} 4076 4077// ApplicationSecurityGroupListResultPage contains a page of ApplicationSecurityGroup values. 4078type ApplicationSecurityGroupListResultPage struct { 4079 fn func(context.Context, ApplicationSecurityGroupListResult) (ApplicationSecurityGroupListResult, error) 4080 asglr ApplicationSecurityGroupListResult 4081} 4082 4083// NextWithContext advances to the next page of values. If there was an error making 4084// the request the page does not advance and the error is returned. 4085func (page *ApplicationSecurityGroupListResultPage) NextWithContext(ctx context.Context) (err error) { 4086 if tracing.IsEnabled() { 4087 ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationSecurityGroupListResultPage.NextWithContext") 4088 defer func() { 4089 sc := -1 4090 if page.Response().Response.Response != nil { 4091 sc = page.Response().Response.Response.StatusCode 4092 } 4093 tracing.EndSpan(ctx, sc, err) 4094 }() 4095 } 4096 next, err := page.fn(ctx, page.asglr) 4097 if err != nil { 4098 return err 4099 } 4100 page.asglr = next 4101 return nil 4102} 4103 4104// Next advances to the next page of values. If there was an error making 4105// the request the page does not advance and the error is returned. 4106// Deprecated: Use NextWithContext() instead. 4107func (page *ApplicationSecurityGroupListResultPage) Next() error { 4108 return page.NextWithContext(context.Background()) 4109} 4110 4111// NotDone returns true if the page enumeration should be started or is not yet complete. 4112func (page ApplicationSecurityGroupListResultPage) NotDone() bool { 4113 return !page.asglr.IsEmpty() 4114} 4115 4116// Response returns the raw server response from the last page request. 4117func (page ApplicationSecurityGroupListResultPage) Response() ApplicationSecurityGroupListResult { 4118 return page.asglr 4119} 4120 4121// Values returns the slice of values for the current page or nil if there are no values. 4122func (page ApplicationSecurityGroupListResultPage) Values() []ApplicationSecurityGroup { 4123 if page.asglr.IsEmpty() { 4124 return nil 4125 } 4126 return *page.asglr.Value 4127} 4128 4129// Creates a new instance of the ApplicationSecurityGroupListResultPage type. 4130func NewApplicationSecurityGroupListResultPage(getNextPage func(context.Context, ApplicationSecurityGroupListResult) (ApplicationSecurityGroupListResult, error)) ApplicationSecurityGroupListResultPage { 4131 return ApplicationSecurityGroupListResultPage{fn: getNextPage} 4132} 4133 4134// ApplicationSecurityGroupPropertiesFormat application security group properties. 4135type ApplicationSecurityGroupPropertiesFormat struct { 4136 // ResourceGUID - READ-ONLY; The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. 4137 ResourceGUID *string `json:"resourceGuid,omitempty"` 4138 // ProvisioningState - READ-ONLY; The provisioning state of the application security group resource. Possible values are: 'Succeeded', 'Updating', 'Deleting', and 'Failed'. 4139 ProvisioningState *string `json:"provisioningState,omitempty"` 4140} 4141 4142// ApplicationSecurityGroupsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results 4143// of a long-running operation. 4144type ApplicationSecurityGroupsCreateOrUpdateFuture struct { 4145 azure.Future 4146} 4147 4148// Result returns the result of the asynchronous operation. 4149// If the operation has not completed it will return an error. 4150func (future *ApplicationSecurityGroupsCreateOrUpdateFuture) Result(client ApplicationSecurityGroupsClient) (asg ApplicationSecurityGroup, err error) { 4151 var done bool 4152 done, err = future.DoneWithContext(context.Background(), client) 4153 if err != nil { 4154 err = autorest.NewErrorWithError(err, "network.ApplicationSecurityGroupsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 4155 return 4156 } 4157 if !done { 4158 err = azure.NewAsyncOpIncompleteError("network.ApplicationSecurityGroupsCreateOrUpdateFuture") 4159 return 4160 } 4161 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 4162 if asg.Response.Response, err = future.GetResult(sender); err == nil && asg.Response.Response.StatusCode != http.StatusNoContent { 4163 asg, err = client.CreateOrUpdateResponder(asg.Response.Response) 4164 if err != nil { 4165 err = autorest.NewErrorWithError(err, "network.ApplicationSecurityGroupsCreateOrUpdateFuture", "Result", asg.Response.Response, "Failure responding to request") 4166 } 4167 } 4168 return 4169} 4170 4171// ApplicationSecurityGroupsDeleteFuture an abstraction for monitoring and retrieving the results of a 4172// long-running operation. 4173type ApplicationSecurityGroupsDeleteFuture struct { 4174 azure.Future 4175} 4176 4177// Result returns the result of the asynchronous operation. 4178// If the operation has not completed it will return an error. 4179func (future *ApplicationSecurityGroupsDeleteFuture) Result(client ApplicationSecurityGroupsClient) (ar autorest.Response, err error) { 4180 var done bool 4181 done, err = future.DoneWithContext(context.Background(), client) 4182 if err != nil { 4183 err = autorest.NewErrorWithError(err, "network.ApplicationSecurityGroupsDeleteFuture", "Result", future.Response(), "Polling failure") 4184 return 4185 } 4186 if !done { 4187 err = azure.NewAsyncOpIncompleteError("network.ApplicationSecurityGroupsDeleteFuture") 4188 return 4189 } 4190 ar.Response = future.Response() 4191 return 4192} 4193 4194// AuthorizationListResult response for ListAuthorizations API service call retrieves all authorizations 4195// that belongs to an ExpressRouteCircuit. 4196type AuthorizationListResult struct { 4197 autorest.Response `json:"-"` 4198 // Value - The authorizations in an ExpressRoute Circuit. 4199 Value *[]ExpressRouteCircuitAuthorization `json:"value,omitempty"` 4200 // NextLink - The URL to get the next set of results. 4201 NextLink *string `json:"nextLink,omitempty"` 4202} 4203 4204// AuthorizationListResultIterator provides access to a complete listing of 4205// ExpressRouteCircuitAuthorization values. 4206type AuthorizationListResultIterator struct { 4207 i int 4208 page AuthorizationListResultPage 4209} 4210 4211// NextWithContext advances to the next value. If there was an error making 4212// the request the iterator does not advance and the error is returned. 4213func (iter *AuthorizationListResultIterator) NextWithContext(ctx context.Context) (err error) { 4214 if tracing.IsEnabled() { 4215 ctx = tracing.StartSpan(ctx, fqdn+"/AuthorizationListResultIterator.NextWithContext") 4216 defer func() { 4217 sc := -1 4218 if iter.Response().Response.Response != nil { 4219 sc = iter.Response().Response.Response.StatusCode 4220 } 4221 tracing.EndSpan(ctx, sc, err) 4222 }() 4223 } 4224 iter.i++ 4225 if iter.i < len(iter.page.Values()) { 4226 return nil 4227 } 4228 err = iter.page.NextWithContext(ctx) 4229 if err != nil { 4230 iter.i-- 4231 return err 4232 } 4233 iter.i = 0 4234 return nil 4235} 4236 4237// Next advances to the next value. If there was an error making 4238// the request the iterator does not advance and the error is returned. 4239// Deprecated: Use NextWithContext() instead. 4240func (iter *AuthorizationListResultIterator) Next() error { 4241 return iter.NextWithContext(context.Background()) 4242} 4243 4244// NotDone returns true if the enumeration should be started or is not yet complete. 4245func (iter AuthorizationListResultIterator) NotDone() bool { 4246 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 4247} 4248 4249// Response returns the raw server response from the last page request. 4250func (iter AuthorizationListResultIterator) Response() AuthorizationListResult { 4251 return iter.page.Response() 4252} 4253 4254// Value returns the current value or a zero-initialized value if the 4255// iterator has advanced beyond the end of the collection. 4256func (iter AuthorizationListResultIterator) Value() ExpressRouteCircuitAuthorization { 4257 if !iter.page.NotDone() { 4258 return ExpressRouteCircuitAuthorization{} 4259 } 4260 return iter.page.Values()[iter.i] 4261} 4262 4263// Creates a new instance of the AuthorizationListResultIterator type. 4264func NewAuthorizationListResultIterator(page AuthorizationListResultPage) AuthorizationListResultIterator { 4265 return AuthorizationListResultIterator{page: page} 4266} 4267 4268// IsEmpty returns true if the ListResult contains no values. 4269func (alr AuthorizationListResult) IsEmpty() bool { 4270 return alr.Value == nil || len(*alr.Value) == 0 4271} 4272 4273// authorizationListResultPreparer prepares a request to retrieve the next set of results. 4274// It returns nil if no more results exist. 4275func (alr AuthorizationListResult) authorizationListResultPreparer(ctx context.Context) (*http.Request, error) { 4276 if alr.NextLink == nil || len(to.String(alr.NextLink)) < 1 { 4277 return nil, nil 4278 } 4279 return autorest.Prepare((&http.Request{}).WithContext(ctx), 4280 autorest.AsJSON(), 4281 autorest.AsGet(), 4282 autorest.WithBaseURL(to.String(alr.NextLink))) 4283} 4284 4285// AuthorizationListResultPage contains a page of ExpressRouteCircuitAuthorization values. 4286type AuthorizationListResultPage struct { 4287 fn func(context.Context, AuthorizationListResult) (AuthorizationListResult, error) 4288 alr AuthorizationListResult 4289} 4290 4291// NextWithContext advances to the next page of values. If there was an error making 4292// the request the page does not advance and the error is returned. 4293func (page *AuthorizationListResultPage) NextWithContext(ctx context.Context) (err error) { 4294 if tracing.IsEnabled() { 4295 ctx = tracing.StartSpan(ctx, fqdn+"/AuthorizationListResultPage.NextWithContext") 4296 defer func() { 4297 sc := -1 4298 if page.Response().Response.Response != nil { 4299 sc = page.Response().Response.Response.StatusCode 4300 } 4301 tracing.EndSpan(ctx, sc, err) 4302 }() 4303 } 4304 next, err := page.fn(ctx, page.alr) 4305 if err != nil { 4306 return err 4307 } 4308 page.alr = next 4309 return nil 4310} 4311 4312// Next advances to the next page of values. If there was an error making 4313// the request the page does not advance and the error is returned. 4314// Deprecated: Use NextWithContext() instead. 4315func (page *AuthorizationListResultPage) Next() error { 4316 return page.NextWithContext(context.Background()) 4317} 4318 4319// NotDone returns true if the page enumeration should be started or is not yet complete. 4320func (page AuthorizationListResultPage) NotDone() bool { 4321 return !page.alr.IsEmpty() 4322} 4323 4324// Response returns the raw server response from the last page request. 4325func (page AuthorizationListResultPage) Response() AuthorizationListResult { 4326 return page.alr 4327} 4328 4329// Values returns the slice of values for the current page or nil if there are no values. 4330func (page AuthorizationListResultPage) Values() []ExpressRouteCircuitAuthorization { 4331 if page.alr.IsEmpty() { 4332 return nil 4333 } 4334 return *page.alr.Value 4335} 4336 4337// Creates a new instance of the AuthorizationListResultPage type. 4338func NewAuthorizationListResultPage(getNextPage func(context.Context, AuthorizationListResult) (AuthorizationListResult, error)) AuthorizationListResultPage { 4339 return AuthorizationListResultPage{fn: getNextPage} 4340} 4341 4342// AuthorizationPropertiesFormat ... 4343type AuthorizationPropertiesFormat struct { 4344 // AuthorizationKey - The authorization key. 4345 AuthorizationKey *string `json:"authorizationKey,omitempty"` 4346 // AuthorizationUseStatus - AuthorizationUseStatus. Possible values are: 'Available' and 'InUse'. Possible values include: 'Available', 'InUse' 4347 AuthorizationUseStatus AuthorizationUseStatus `json:"authorizationUseStatus,omitempty"` 4348 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 4349 ProvisioningState *string `json:"provisioningState,omitempty"` 4350} 4351 4352// Availability availability of the metric. 4353type Availability struct { 4354 // TimeGrain - The time grain of the availability. 4355 TimeGrain *string `json:"timeGrain,omitempty"` 4356 // Retention - The retention of the availability. 4357 Retention *string `json:"retention,omitempty"` 4358 // BlobDuration - Duration of the availability blob. 4359 BlobDuration *string `json:"blobDuration,omitempty"` 4360} 4361 4362// AvailableProvidersList list of available countries with details. 4363type AvailableProvidersList struct { 4364 autorest.Response `json:"-"` 4365 // Countries - List of available countries. 4366 Countries *[]AvailableProvidersListCountry `json:"countries,omitempty"` 4367} 4368 4369// AvailableProvidersListCity city or town details. 4370type AvailableProvidersListCity struct { 4371 // CityName - The city or town name. 4372 CityName *string `json:"cityName,omitempty"` 4373 // Providers - A list of Internet service providers. 4374 Providers *[]string `json:"providers,omitempty"` 4375} 4376 4377// AvailableProvidersListCountry country details. 4378type AvailableProvidersListCountry struct { 4379 // CountryName - The country name. 4380 CountryName *string `json:"countryName,omitempty"` 4381 // Providers - A list of Internet service providers. 4382 Providers *[]string `json:"providers,omitempty"` 4383 // States - List of available states in the country. 4384 States *[]AvailableProvidersListState `json:"states,omitempty"` 4385} 4386 4387// AvailableProvidersListParameters constraints that determine the list of available Internet service 4388// providers. 4389type AvailableProvidersListParameters struct { 4390 // AzureLocations - A list of Azure regions. 4391 AzureLocations *[]string `json:"azureLocations,omitempty"` 4392 // Country - The country for available providers list. 4393 Country *string `json:"country,omitempty"` 4394 // State - The state for available providers list. 4395 State *string `json:"state,omitempty"` 4396 // City - The city or town for available providers list. 4397 City *string `json:"city,omitempty"` 4398} 4399 4400// AvailableProvidersListState state details. 4401type AvailableProvidersListState struct { 4402 // StateName - The state name. 4403 StateName *string `json:"stateName,omitempty"` 4404 // Providers - A list of Internet service providers. 4405 Providers *[]string `json:"providers,omitempty"` 4406 // Cities - List of available cities or towns in the state. 4407 Cities *[]AvailableProvidersListCity `json:"cities,omitempty"` 4408} 4409 4410// AzureAsyncOperationResult the response body contains the status of the specified asynchronous operation, 4411// indicating whether it has succeeded, is in progress, or has failed. Note that this status is distinct 4412// from the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous 4413// operation succeeded, the response body includes the HTTP status code for the successful request. If the 4414// asynchronous operation failed, the response body includes the HTTP status code for the failed request 4415// and error information regarding the failure. 4416type AzureAsyncOperationResult struct { 4417 // Status - Status of the Azure async operation. Possible values are: 'InProgress', 'Succeeded', and 'Failed'. Possible values include: 'OperationStatusInProgress', 'OperationStatusSucceeded', 'OperationStatusFailed' 4418 Status OperationStatus `json:"status,omitempty"` 4419 Error *Error `json:"error,omitempty"` 4420} 4421 4422// AzureReachabilityReport azure reachability report details. 4423type AzureReachabilityReport struct { 4424 autorest.Response `json:"-"` 4425 // AggregationLevel - The aggregation level of Azure reachability report. Can be Country, State or City. 4426 AggregationLevel *string `json:"aggregationLevel,omitempty"` 4427 ProviderLocation *AzureReachabilityReportLocation `json:"providerLocation,omitempty"` 4428 // ReachabilityReport - List of Azure reachability report items. 4429 ReachabilityReport *[]AzureReachabilityReportItem `json:"reachabilityReport,omitempty"` 4430} 4431 4432// AzureReachabilityReportItem azure reachability report details for a given provider location. 4433type AzureReachabilityReportItem struct { 4434 // Provider - The Internet service provider. 4435 Provider *string `json:"provider,omitempty"` 4436 // AzureLocation - The Azure region. 4437 AzureLocation *string `json:"azureLocation,omitempty"` 4438 // Latencies - List of latency details for each of the time series. 4439 Latencies *[]AzureReachabilityReportLatencyInfo `json:"latencies,omitempty"` 4440} 4441 4442// AzureReachabilityReportLatencyInfo details on latency for a time series. 4443type AzureReachabilityReportLatencyInfo struct { 4444 // TimeStamp - The time stamp. 4445 TimeStamp *date.Time `json:"timeStamp,omitempty"` 4446 // Score - The relative latency score between 1 and 100, higher values indicating a faster connection. 4447 Score *int32 `json:"score,omitempty"` 4448} 4449 4450// AzureReachabilityReportLocation parameters that define a geographic location. 4451type AzureReachabilityReportLocation struct { 4452 // Country - The name of the country. 4453 Country *string `json:"country,omitempty"` 4454 // State - The name of the state. 4455 State *string `json:"state,omitempty"` 4456 // City - The name of the city or town. 4457 City *string `json:"city,omitempty"` 4458} 4459 4460// AzureReachabilityReportParameters geographic and time constraints for Azure reachability report. 4461type AzureReachabilityReportParameters struct { 4462 ProviderLocation *AzureReachabilityReportLocation `json:"providerLocation,omitempty"` 4463 // Providers - List of Internet service providers. 4464 Providers *[]string `json:"providers,omitempty"` 4465 // AzureLocations - Optional Azure regions to scope the query to. 4466 AzureLocations *[]string `json:"azureLocations,omitempty"` 4467 // StartTime - The start time for the Azure reachability report. 4468 StartTime *date.Time `json:"startTime,omitempty"` 4469 // EndTime - The end time for the Azure reachability report. 4470 EndTime *date.Time `json:"endTime,omitempty"` 4471} 4472 4473// BackendAddressPool pool of backend IP addresses. 4474type BackendAddressPool struct { 4475 autorest.Response `json:"-"` 4476 // BackendAddressPoolPropertiesFormat - Properties of load balancer backend address pool. 4477 *BackendAddressPoolPropertiesFormat `json:"properties,omitempty"` 4478 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 4479 Name *string `json:"name,omitempty"` 4480 // Etag - A unique read-only string that changes whenever the resource is updated. 4481 Etag *string `json:"etag,omitempty"` 4482 // ID - Resource ID. 4483 ID *string `json:"id,omitempty"` 4484} 4485 4486// MarshalJSON is the custom marshaler for BackendAddressPool. 4487func (bap BackendAddressPool) MarshalJSON() ([]byte, error) { 4488 objectMap := make(map[string]interface{}) 4489 if bap.BackendAddressPoolPropertiesFormat != nil { 4490 objectMap["properties"] = bap.BackendAddressPoolPropertiesFormat 4491 } 4492 if bap.Name != nil { 4493 objectMap["name"] = bap.Name 4494 } 4495 if bap.Etag != nil { 4496 objectMap["etag"] = bap.Etag 4497 } 4498 if bap.ID != nil { 4499 objectMap["id"] = bap.ID 4500 } 4501 return json.Marshal(objectMap) 4502} 4503 4504// UnmarshalJSON is the custom unmarshaler for BackendAddressPool struct. 4505func (bap *BackendAddressPool) UnmarshalJSON(body []byte) error { 4506 var m map[string]*json.RawMessage 4507 err := json.Unmarshal(body, &m) 4508 if err != nil { 4509 return err 4510 } 4511 for k, v := range m { 4512 switch k { 4513 case "properties": 4514 if v != nil { 4515 var backendAddressPoolPropertiesFormat BackendAddressPoolPropertiesFormat 4516 err = json.Unmarshal(*v, &backendAddressPoolPropertiesFormat) 4517 if err != nil { 4518 return err 4519 } 4520 bap.BackendAddressPoolPropertiesFormat = &backendAddressPoolPropertiesFormat 4521 } 4522 case "name": 4523 if v != nil { 4524 var name string 4525 err = json.Unmarshal(*v, &name) 4526 if err != nil { 4527 return err 4528 } 4529 bap.Name = &name 4530 } 4531 case "etag": 4532 if v != nil { 4533 var etag string 4534 err = json.Unmarshal(*v, &etag) 4535 if err != nil { 4536 return err 4537 } 4538 bap.Etag = &etag 4539 } 4540 case "id": 4541 if v != nil { 4542 var ID string 4543 err = json.Unmarshal(*v, &ID) 4544 if err != nil { 4545 return err 4546 } 4547 bap.ID = &ID 4548 } 4549 } 4550 } 4551 4552 return nil 4553} 4554 4555// BackendAddressPoolPropertiesFormat properties of the backend address pool. 4556type BackendAddressPoolPropertiesFormat struct { 4557 // BackendIPConfigurations - READ-ONLY; Gets collection of references to IP addresses defined in network interfaces. 4558 BackendIPConfigurations *[]InterfaceIPConfiguration `json:"backendIPConfigurations,omitempty"` 4559 // LoadBalancingRules - READ-ONLY; Gets load balancing rules that use this backend address pool. 4560 LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty"` 4561 // OutboundNatRule - READ-ONLY; Gets outbound rules that use this backend address pool. 4562 OutboundNatRule *SubResource `json:"outboundNatRule,omitempty"` 4563 // ProvisioningState - Get provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 4564 ProvisioningState *string `json:"provisioningState,omitempty"` 4565} 4566 4567// BGPCommunity contains bgp community information offered in Service Community resources. 4568type BGPCommunity struct { 4569 // ServiceSupportedRegion - The region which the service support. e.g. For O365, region is Global. 4570 ServiceSupportedRegion *string `json:"serviceSupportedRegion,omitempty"` 4571 // CommunityName - The name of the bgp community. e.g. Skype. 4572 CommunityName *string `json:"communityName,omitempty"` 4573 // CommunityValue - The value of the bgp community. For more information: https://docs.microsoft.com/en-us/azure/expressroute/expressroute-routing. 4574 CommunityValue *string `json:"communityValue,omitempty"` 4575 // CommunityPrefixes - The prefixes that the bgp community contains. 4576 CommunityPrefixes *[]string `json:"communityPrefixes,omitempty"` 4577 // IsAuthorizedToUse - Customer is authorized to use bgp community or not. 4578 IsAuthorizedToUse *bool `json:"isAuthorizedToUse,omitempty"` 4579 // ServiceGroup - The service group of the bgp community contains. 4580 ServiceGroup *string `json:"serviceGroup,omitempty"` 4581} 4582 4583// BgpPeerStatus BGP peer status details 4584type BgpPeerStatus struct { 4585 // LocalAddress - READ-ONLY; The virtual network gateway's local address 4586 LocalAddress *string `json:"localAddress,omitempty"` 4587 // Neighbor - READ-ONLY; The remote BGP peer 4588 Neighbor *string `json:"neighbor,omitempty"` 4589 // Asn - READ-ONLY; The autonomous system number of the remote BGP peer 4590 Asn *int32 `json:"asn,omitempty"` 4591 // State - READ-ONLY; The BGP peer state. Possible values include: 'BgpPeerStateUnknown', 'BgpPeerStateStopped', 'BgpPeerStateIdle', 'BgpPeerStateConnecting', 'BgpPeerStateConnected' 4592 State BgpPeerState `json:"state,omitempty"` 4593 // ConnectedDuration - READ-ONLY; For how long the peering has been up 4594 ConnectedDuration *string `json:"connectedDuration,omitempty"` 4595 // RoutesReceived - READ-ONLY; The number of routes learned from this peer 4596 RoutesReceived *int64 `json:"routesReceived,omitempty"` 4597 // MessagesSent - READ-ONLY; The number of BGP messages sent 4598 MessagesSent *int64 `json:"messagesSent,omitempty"` 4599 // MessagesReceived - READ-ONLY; The number of BGP messages received 4600 MessagesReceived *int64 `json:"messagesReceived,omitempty"` 4601} 4602 4603// BgpPeerStatusListResult response for list BGP peer status API service call 4604type BgpPeerStatusListResult struct { 4605 autorest.Response `json:"-"` 4606 // Value - List of BGP peers 4607 Value *[]BgpPeerStatus `json:"value,omitempty"` 4608} 4609 4610// BgpServiceCommunity service Community Properties. 4611type BgpServiceCommunity struct { 4612 *BgpServiceCommunityPropertiesFormat `json:"properties,omitempty"` 4613 // ID - Resource ID. 4614 ID *string `json:"id,omitempty"` 4615 // Name - READ-ONLY; Resource name. 4616 Name *string `json:"name,omitempty"` 4617 // Type - READ-ONLY; Resource type. 4618 Type *string `json:"type,omitempty"` 4619 // Location - Resource location. 4620 Location *string `json:"location,omitempty"` 4621 // Tags - Resource tags. 4622 Tags map[string]*string `json:"tags"` 4623} 4624 4625// MarshalJSON is the custom marshaler for BgpServiceCommunity. 4626func (bsc BgpServiceCommunity) MarshalJSON() ([]byte, error) { 4627 objectMap := make(map[string]interface{}) 4628 if bsc.BgpServiceCommunityPropertiesFormat != nil { 4629 objectMap["properties"] = bsc.BgpServiceCommunityPropertiesFormat 4630 } 4631 if bsc.ID != nil { 4632 objectMap["id"] = bsc.ID 4633 } 4634 if bsc.Location != nil { 4635 objectMap["location"] = bsc.Location 4636 } 4637 if bsc.Tags != nil { 4638 objectMap["tags"] = bsc.Tags 4639 } 4640 return json.Marshal(objectMap) 4641} 4642 4643// UnmarshalJSON is the custom unmarshaler for BgpServiceCommunity struct. 4644func (bsc *BgpServiceCommunity) UnmarshalJSON(body []byte) error { 4645 var m map[string]*json.RawMessage 4646 err := json.Unmarshal(body, &m) 4647 if err != nil { 4648 return err 4649 } 4650 for k, v := range m { 4651 switch k { 4652 case "properties": 4653 if v != nil { 4654 var bgpServiceCommunityPropertiesFormat BgpServiceCommunityPropertiesFormat 4655 err = json.Unmarshal(*v, &bgpServiceCommunityPropertiesFormat) 4656 if err != nil { 4657 return err 4658 } 4659 bsc.BgpServiceCommunityPropertiesFormat = &bgpServiceCommunityPropertiesFormat 4660 } 4661 case "id": 4662 if v != nil { 4663 var ID string 4664 err = json.Unmarshal(*v, &ID) 4665 if err != nil { 4666 return err 4667 } 4668 bsc.ID = &ID 4669 } 4670 case "name": 4671 if v != nil { 4672 var name string 4673 err = json.Unmarshal(*v, &name) 4674 if err != nil { 4675 return err 4676 } 4677 bsc.Name = &name 4678 } 4679 case "type": 4680 if v != nil { 4681 var typeVar string 4682 err = json.Unmarshal(*v, &typeVar) 4683 if err != nil { 4684 return err 4685 } 4686 bsc.Type = &typeVar 4687 } 4688 case "location": 4689 if v != nil { 4690 var location string 4691 err = json.Unmarshal(*v, &location) 4692 if err != nil { 4693 return err 4694 } 4695 bsc.Location = &location 4696 } 4697 case "tags": 4698 if v != nil { 4699 var tags map[string]*string 4700 err = json.Unmarshal(*v, &tags) 4701 if err != nil { 4702 return err 4703 } 4704 bsc.Tags = tags 4705 } 4706 } 4707 } 4708 4709 return nil 4710} 4711 4712// BgpServiceCommunityListResult response for the ListServiceCommunity API service call. 4713type BgpServiceCommunityListResult struct { 4714 autorest.Response `json:"-"` 4715 // Value - A list of service community resources. 4716 Value *[]BgpServiceCommunity `json:"value,omitempty"` 4717 // NextLink - The URL to get the next set of results. 4718 NextLink *string `json:"nextLink,omitempty"` 4719} 4720 4721// BgpServiceCommunityListResultIterator provides access to a complete listing of BgpServiceCommunity 4722// values. 4723type BgpServiceCommunityListResultIterator struct { 4724 i int 4725 page BgpServiceCommunityListResultPage 4726} 4727 4728// NextWithContext advances to the next value. If there was an error making 4729// the request the iterator does not advance and the error is returned. 4730func (iter *BgpServiceCommunityListResultIterator) NextWithContext(ctx context.Context) (err error) { 4731 if tracing.IsEnabled() { 4732 ctx = tracing.StartSpan(ctx, fqdn+"/BgpServiceCommunityListResultIterator.NextWithContext") 4733 defer func() { 4734 sc := -1 4735 if iter.Response().Response.Response != nil { 4736 sc = iter.Response().Response.Response.StatusCode 4737 } 4738 tracing.EndSpan(ctx, sc, err) 4739 }() 4740 } 4741 iter.i++ 4742 if iter.i < len(iter.page.Values()) { 4743 return nil 4744 } 4745 err = iter.page.NextWithContext(ctx) 4746 if err != nil { 4747 iter.i-- 4748 return err 4749 } 4750 iter.i = 0 4751 return nil 4752} 4753 4754// Next advances to the next value. If there was an error making 4755// the request the iterator does not advance and the error is returned. 4756// Deprecated: Use NextWithContext() instead. 4757func (iter *BgpServiceCommunityListResultIterator) Next() error { 4758 return iter.NextWithContext(context.Background()) 4759} 4760 4761// NotDone returns true if the enumeration should be started or is not yet complete. 4762func (iter BgpServiceCommunityListResultIterator) NotDone() bool { 4763 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 4764} 4765 4766// Response returns the raw server response from the last page request. 4767func (iter BgpServiceCommunityListResultIterator) Response() BgpServiceCommunityListResult { 4768 return iter.page.Response() 4769} 4770 4771// Value returns the current value or a zero-initialized value if the 4772// iterator has advanced beyond the end of the collection. 4773func (iter BgpServiceCommunityListResultIterator) Value() BgpServiceCommunity { 4774 if !iter.page.NotDone() { 4775 return BgpServiceCommunity{} 4776 } 4777 return iter.page.Values()[iter.i] 4778} 4779 4780// Creates a new instance of the BgpServiceCommunityListResultIterator type. 4781func NewBgpServiceCommunityListResultIterator(page BgpServiceCommunityListResultPage) BgpServiceCommunityListResultIterator { 4782 return BgpServiceCommunityListResultIterator{page: page} 4783} 4784 4785// IsEmpty returns true if the ListResult contains no values. 4786func (bsclr BgpServiceCommunityListResult) IsEmpty() bool { 4787 return bsclr.Value == nil || len(*bsclr.Value) == 0 4788} 4789 4790// bgpServiceCommunityListResultPreparer prepares a request to retrieve the next set of results. 4791// It returns nil if no more results exist. 4792func (bsclr BgpServiceCommunityListResult) bgpServiceCommunityListResultPreparer(ctx context.Context) (*http.Request, error) { 4793 if bsclr.NextLink == nil || len(to.String(bsclr.NextLink)) < 1 { 4794 return nil, nil 4795 } 4796 return autorest.Prepare((&http.Request{}).WithContext(ctx), 4797 autorest.AsJSON(), 4798 autorest.AsGet(), 4799 autorest.WithBaseURL(to.String(bsclr.NextLink))) 4800} 4801 4802// BgpServiceCommunityListResultPage contains a page of BgpServiceCommunity values. 4803type BgpServiceCommunityListResultPage struct { 4804 fn func(context.Context, BgpServiceCommunityListResult) (BgpServiceCommunityListResult, error) 4805 bsclr BgpServiceCommunityListResult 4806} 4807 4808// NextWithContext advances to the next page of values. If there was an error making 4809// the request the page does not advance and the error is returned. 4810func (page *BgpServiceCommunityListResultPage) NextWithContext(ctx context.Context) (err error) { 4811 if tracing.IsEnabled() { 4812 ctx = tracing.StartSpan(ctx, fqdn+"/BgpServiceCommunityListResultPage.NextWithContext") 4813 defer func() { 4814 sc := -1 4815 if page.Response().Response.Response != nil { 4816 sc = page.Response().Response.Response.StatusCode 4817 } 4818 tracing.EndSpan(ctx, sc, err) 4819 }() 4820 } 4821 next, err := page.fn(ctx, page.bsclr) 4822 if err != nil { 4823 return err 4824 } 4825 page.bsclr = next 4826 return nil 4827} 4828 4829// Next advances to the next page of values. If there was an error making 4830// the request the page does not advance and the error is returned. 4831// Deprecated: Use NextWithContext() instead. 4832func (page *BgpServiceCommunityListResultPage) Next() error { 4833 return page.NextWithContext(context.Background()) 4834} 4835 4836// NotDone returns true if the page enumeration should be started or is not yet complete. 4837func (page BgpServiceCommunityListResultPage) NotDone() bool { 4838 return !page.bsclr.IsEmpty() 4839} 4840 4841// Response returns the raw server response from the last page request. 4842func (page BgpServiceCommunityListResultPage) Response() BgpServiceCommunityListResult { 4843 return page.bsclr 4844} 4845 4846// Values returns the slice of values for the current page or nil if there are no values. 4847func (page BgpServiceCommunityListResultPage) Values() []BgpServiceCommunity { 4848 if page.bsclr.IsEmpty() { 4849 return nil 4850 } 4851 return *page.bsclr.Value 4852} 4853 4854// Creates a new instance of the BgpServiceCommunityListResultPage type. 4855func NewBgpServiceCommunityListResultPage(getNextPage func(context.Context, BgpServiceCommunityListResult) (BgpServiceCommunityListResult, error)) BgpServiceCommunityListResultPage { 4856 return BgpServiceCommunityListResultPage{fn: getNextPage} 4857} 4858 4859// BgpServiceCommunityPropertiesFormat properties of Service Community. 4860type BgpServiceCommunityPropertiesFormat struct { 4861 // ServiceName - The name of the bgp community. e.g. Skype. 4862 ServiceName *string `json:"serviceName,omitempty"` 4863 // BgpCommunities - Get a list of bgp communities. 4864 BgpCommunities *[]BGPCommunity `json:"bgpCommunities,omitempty"` 4865} 4866 4867// BgpSettings BGP settings details 4868type BgpSettings struct { 4869 // Asn - The BGP speaker's ASN. 4870 Asn *int64 `json:"asn,omitempty"` 4871 // BgpPeeringAddress - The BGP peering address and BGP identifier of this BGP speaker. 4872 BgpPeeringAddress *string `json:"bgpPeeringAddress,omitempty"` 4873 // PeerWeight - The weight added to routes learned from this BGP speaker. 4874 PeerWeight *int32 `json:"peerWeight,omitempty"` 4875} 4876 4877// ConnectionMonitor parameters that define the operation to create a connection monitor. 4878type ConnectionMonitor struct { 4879 // Location - Connection monitor location. 4880 Location *string `json:"location,omitempty"` 4881 // Tags - Connection monitor tags. 4882 Tags map[string]*string `json:"tags"` 4883 *ConnectionMonitorParameters `json:"properties,omitempty"` 4884} 4885 4886// MarshalJSON is the custom marshaler for ConnectionMonitor. 4887func (cm ConnectionMonitor) MarshalJSON() ([]byte, error) { 4888 objectMap := make(map[string]interface{}) 4889 if cm.Location != nil { 4890 objectMap["location"] = cm.Location 4891 } 4892 if cm.Tags != nil { 4893 objectMap["tags"] = cm.Tags 4894 } 4895 if cm.ConnectionMonitorParameters != nil { 4896 objectMap["properties"] = cm.ConnectionMonitorParameters 4897 } 4898 return json.Marshal(objectMap) 4899} 4900 4901// UnmarshalJSON is the custom unmarshaler for ConnectionMonitor struct. 4902func (cm *ConnectionMonitor) UnmarshalJSON(body []byte) error { 4903 var m map[string]*json.RawMessage 4904 err := json.Unmarshal(body, &m) 4905 if err != nil { 4906 return err 4907 } 4908 for k, v := range m { 4909 switch k { 4910 case "location": 4911 if v != nil { 4912 var location string 4913 err = json.Unmarshal(*v, &location) 4914 if err != nil { 4915 return err 4916 } 4917 cm.Location = &location 4918 } 4919 case "tags": 4920 if v != nil { 4921 var tags map[string]*string 4922 err = json.Unmarshal(*v, &tags) 4923 if err != nil { 4924 return err 4925 } 4926 cm.Tags = tags 4927 } 4928 case "properties": 4929 if v != nil { 4930 var connectionMonitorParameters ConnectionMonitorParameters 4931 err = json.Unmarshal(*v, &connectionMonitorParameters) 4932 if err != nil { 4933 return err 4934 } 4935 cm.ConnectionMonitorParameters = &connectionMonitorParameters 4936 } 4937 } 4938 } 4939 4940 return nil 4941} 4942 4943// ConnectionMonitorDestination describes the destination of connection monitor. 4944type ConnectionMonitorDestination struct { 4945 // ResourceID - The ID of the resource used as the destination by connection monitor. 4946 ResourceID *string `json:"resourceId,omitempty"` 4947 // Address - Address of the connection monitor destination (IP or domain name). 4948 Address *string `json:"address,omitempty"` 4949 // Port - The destination port used by connection monitor. 4950 Port *int32 `json:"port,omitempty"` 4951} 4952 4953// ConnectionMonitorListResult list of connection monitors. 4954type ConnectionMonitorListResult struct { 4955 autorest.Response `json:"-"` 4956 // Value - Information about connection monitors. 4957 Value *[]ConnectionMonitorResult `json:"value,omitempty"` 4958} 4959 4960// ConnectionMonitorParameters parameters that define the operation to create a connection monitor. 4961type ConnectionMonitorParameters struct { 4962 Source *ConnectionMonitorSource `json:"source,omitempty"` 4963 Destination *ConnectionMonitorDestination `json:"destination,omitempty"` 4964 // AutoStart - Determines if the connection monitor will start automatically once created. 4965 AutoStart *bool `json:"autoStart,omitempty"` 4966 // MonitoringIntervalInSeconds - Monitoring interval in seconds. 4967 MonitoringIntervalInSeconds *int32 `json:"monitoringIntervalInSeconds,omitempty"` 4968} 4969 4970// ConnectionMonitorQueryResult list of connection states snapshots. 4971type ConnectionMonitorQueryResult struct { 4972 autorest.Response `json:"-"` 4973 // SourceStatus - Status of connection monitor source. Possible values include: 'Uknown', 'Active', 'Inactive' 4974 SourceStatus ConnectionMonitorSourceStatus `json:"sourceStatus,omitempty"` 4975 // States - Information about connection states. 4976 States *[]ConnectionStateSnapshot `json:"states,omitempty"` 4977} 4978 4979// ConnectionMonitorResult information about the connection monitor. 4980type ConnectionMonitorResult struct { 4981 autorest.Response `json:"-"` 4982 // Name - READ-ONLY; Name of the connection monitor. 4983 Name *string `json:"name,omitempty"` 4984 // ID - READ-ONLY; ID of the connection monitor. 4985 ID *string `json:"id,omitempty"` 4986 Etag *string `json:"etag,omitempty"` 4987 // Type - READ-ONLY; Connection monitor type. 4988 Type *string `json:"type,omitempty"` 4989 // Location - Connection monitor location. 4990 Location *string `json:"location,omitempty"` 4991 // Tags - Connection monitor tags. 4992 Tags map[string]*string `json:"tags"` 4993 *ConnectionMonitorResultProperties `json:"properties,omitempty"` 4994} 4995 4996// MarshalJSON is the custom marshaler for ConnectionMonitorResult. 4997func (cmr ConnectionMonitorResult) MarshalJSON() ([]byte, error) { 4998 objectMap := make(map[string]interface{}) 4999 if cmr.Etag != nil { 5000 objectMap["etag"] = cmr.Etag 5001 } 5002 if cmr.Location != nil { 5003 objectMap["location"] = cmr.Location 5004 } 5005 if cmr.Tags != nil { 5006 objectMap["tags"] = cmr.Tags 5007 } 5008 if cmr.ConnectionMonitorResultProperties != nil { 5009 objectMap["properties"] = cmr.ConnectionMonitorResultProperties 5010 } 5011 return json.Marshal(objectMap) 5012} 5013 5014// UnmarshalJSON is the custom unmarshaler for ConnectionMonitorResult struct. 5015func (cmr *ConnectionMonitorResult) UnmarshalJSON(body []byte) error { 5016 var m map[string]*json.RawMessage 5017 err := json.Unmarshal(body, &m) 5018 if err != nil { 5019 return err 5020 } 5021 for k, v := range m { 5022 switch k { 5023 case "name": 5024 if v != nil { 5025 var name string 5026 err = json.Unmarshal(*v, &name) 5027 if err != nil { 5028 return err 5029 } 5030 cmr.Name = &name 5031 } 5032 case "id": 5033 if v != nil { 5034 var ID string 5035 err = json.Unmarshal(*v, &ID) 5036 if err != nil { 5037 return err 5038 } 5039 cmr.ID = &ID 5040 } 5041 case "etag": 5042 if v != nil { 5043 var etag string 5044 err = json.Unmarshal(*v, &etag) 5045 if err != nil { 5046 return err 5047 } 5048 cmr.Etag = &etag 5049 } 5050 case "type": 5051 if v != nil { 5052 var typeVar string 5053 err = json.Unmarshal(*v, &typeVar) 5054 if err != nil { 5055 return err 5056 } 5057 cmr.Type = &typeVar 5058 } 5059 case "location": 5060 if v != nil { 5061 var location string 5062 err = json.Unmarshal(*v, &location) 5063 if err != nil { 5064 return err 5065 } 5066 cmr.Location = &location 5067 } 5068 case "tags": 5069 if v != nil { 5070 var tags map[string]*string 5071 err = json.Unmarshal(*v, &tags) 5072 if err != nil { 5073 return err 5074 } 5075 cmr.Tags = tags 5076 } 5077 case "properties": 5078 if v != nil { 5079 var connectionMonitorResultProperties ConnectionMonitorResultProperties 5080 err = json.Unmarshal(*v, &connectionMonitorResultProperties) 5081 if err != nil { 5082 return err 5083 } 5084 cmr.ConnectionMonitorResultProperties = &connectionMonitorResultProperties 5085 } 5086 } 5087 } 5088 5089 return nil 5090} 5091 5092// ConnectionMonitorResultProperties describes the properties of a connection monitor. 5093type ConnectionMonitorResultProperties struct { 5094 // ProvisioningState - The provisioning state of the connection monitor. Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' 5095 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 5096 // StartTime - The date and time when the connection monitor was started. 5097 StartTime *date.Time `json:"startTime,omitempty"` 5098 // MonitoringStatus - The monitoring status of the connection monitor. 5099 MonitoringStatus *string `json:"monitoringStatus,omitempty"` 5100 Source *ConnectionMonitorSource `json:"source,omitempty"` 5101 Destination *ConnectionMonitorDestination `json:"destination,omitempty"` 5102 // AutoStart - Determines if the connection monitor will start automatically once created. 5103 AutoStart *bool `json:"autoStart,omitempty"` 5104 // MonitoringIntervalInSeconds - Monitoring interval in seconds. 5105 MonitoringIntervalInSeconds *int32 `json:"monitoringIntervalInSeconds,omitempty"` 5106} 5107 5108// ConnectionMonitorsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 5109// long-running operation. 5110type ConnectionMonitorsCreateOrUpdateFuture struct { 5111 azure.Future 5112} 5113 5114// Result returns the result of the asynchronous operation. 5115// If the operation has not completed it will return an error. 5116func (future *ConnectionMonitorsCreateOrUpdateFuture) Result(client ConnectionMonitorsClient) (cmr ConnectionMonitorResult, err error) { 5117 var done bool 5118 done, err = future.DoneWithContext(context.Background(), client) 5119 if err != nil { 5120 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 5121 return 5122 } 5123 if !done { 5124 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsCreateOrUpdateFuture") 5125 return 5126 } 5127 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5128 if cmr.Response.Response, err = future.GetResult(sender); err == nil && cmr.Response.Response.StatusCode != http.StatusNoContent { 5129 cmr, err = client.CreateOrUpdateResponder(cmr.Response.Response) 5130 if err != nil { 5131 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsCreateOrUpdateFuture", "Result", cmr.Response.Response, "Failure responding to request") 5132 } 5133 } 5134 return 5135} 5136 5137// ConnectionMonitorsDeleteFuture an abstraction for monitoring and retrieving the results of a 5138// long-running operation. 5139type ConnectionMonitorsDeleteFuture struct { 5140 azure.Future 5141} 5142 5143// Result returns the result of the asynchronous operation. 5144// If the operation has not completed it will return an error. 5145func (future *ConnectionMonitorsDeleteFuture) Result(client ConnectionMonitorsClient) (ar autorest.Response, err error) { 5146 var done bool 5147 done, err = future.DoneWithContext(context.Background(), client) 5148 if err != nil { 5149 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsDeleteFuture", "Result", future.Response(), "Polling failure") 5150 return 5151 } 5152 if !done { 5153 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsDeleteFuture") 5154 return 5155 } 5156 ar.Response = future.Response() 5157 return 5158} 5159 5160// ConnectionMonitorSource describes the source of connection monitor. 5161type ConnectionMonitorSource struct { 5162 // ResourceID - The ID of the resource used as the source by connection monitor. 5163 ResourceID *string `json:"resourceId,omitempty"` 5164 // Port - The source port used by connection monitor. 5165 Port *int32 `json:"port,omitempty"` 5166} 5167 5168// ConnectionMonitorsQueryFuture an abstraction for monitoring and retrieving the results of a long-running 5169// operation. 5170type ConnectionMonitorsQueryFuture struct { 5171 azure.Future 5172} 5173 5174// Result returns the result of the asynchronous operation. 5175// If the operation has not completed it will return an error. 5176func (future *ConnectionMonitorsQueryFuture) Result(client ConnectionMonitorsClient) (cmqr ConnectionMonitorQueryResult, err error) { 5177 var done bool 5178 done, err = future.DoneWithContext(context.Background(), client) 5179 if err != nil { 5180 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsQueryFuture", "Result", future.Response(), "Polling failure") 5181 return 5182 } 5183 if !done { 5184 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsQueryFuture") 5185 return 5186 } 5187 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5188 if cmqr.Response.Response, err = future.GetResult(sender); err == nil && cmqr.Response.Response.StatusCode != http.StatusNoContent { 5189 cmqr, err = client.QueryResponder(cmqr.Response.Response) 5190 if err != nil { 5191 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsQueryFuture", "Result", cmqr.Response.Response, "Failure responding to request") 5192 } 5193 } 5194 return 5195} 5196 5197// ConnectionMonitorsStartFuture an abstraction for monitoring and retrieving the results of a long-running 5198// operation. 5199type ConnectionMonitorsStartFuture struct { 5200 azure.Future 5201} 5202 5203// Result returns the result of the asynchronous operation. 5204// If the operation has not completed it will return an error. 5205func (future *ConnectionMonitorsStartFuture) Result(client ConnectionMonitorsClient) (ar autorest.Response, err error) { 5206 var done bool 5207 done, err = future.DoneWithContext(context.Background(), client) 5208 if err != nil { 5209 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsStartFuture", "Result", future.Response(), "Polling failure") 5210 return 5211 } 5212 if !done { 5213 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsStartFuture") 5214 return 5215 } 5216 ar.Response = future.Response() 5217 return 5218} 5219 5220// ConnectionMonitorsStopFuture an abstraction for monitoring and retrieving the results of a long-running 5221// operation. 5222type ConnectionMonitorsStopFuture struct { 5223 azure.Future 5224} 5225 5226// Result returns the result of the asynchronous operation. 5227// If the operation has not completed it will return an error. 5228func (future *ConnectionMonitorsStopFuture) Result(client ConnectionMonitorsClient) (ar autorest.Response, err error) { 5229 var done bool 5230 done, err = future.DoneWithContext(context.Background(), client) 5231 if err != nil { 5232 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsStopFuture", "Result", future.Response(), "Polling failure") 5233 return 5234 } 5235 if !done { 5236 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsStopFuture") 5237 return 5238 } 5239 ar.Response = future.Response() 5240 return 5241} 5242 5243// ConnectionResetSharedKey the virtual network connection reset shared key 5244type ConnectionResetSharedKey struct { 5245 autorest.Response `json:"-"` 5246 // KeyLength - The virtual network connection reset shared key length, should between 1 and 128. 5247 KeyLength *int32 `json:"keyLength,omitempty"` 5248} 5249 5250// ConnectionSharedKey response for GetConnectionSharedKey API service call 5251type ConnectionSharedKey struct { 5252 autorest.Response `json:"-"` 5253 // Value - The virtual network connection shared key value. 5254 Value *string `json:"value,omitempty"` 5255} 5256 5257// ConnectionStateSnapshot connection state snapshot. 5258type ConnectionStateSnapshot struct { 5259 // ConnectionState - The connection state. Possible values include: 'ConnectionStateReachable', 'ConnectionStateUnreachable', 'ConnectionStateUnknown' 5260 ConnectionState ConnectionState `json:"connectionState,omitempty"` 5261 // StartTime - The start time of the connection snapshot. 5262 StartTime *date.Time `json:"startTime,omitempty"` 5263 // EndTime - The end time of the connection snapshot. 5264 EndTime *date.Time `json:"endTime,omitempty"` 5265 // EvaluationState - Connectivity analysis evaluation state. Possible values include: 'NotStarted', 'InProgress', 'Completed' 5266 EvaluationState EvaluationState `json:"evaluationState,omitempty"` 5267 // Hops - READ-ONLY; List of hops between the source and the destination. 5268 Hops *[]ConnectivityHop `json:"hops,omitempty"` 5269} 5270 5271// ConnectivityDestination parameters that define destination of connection. 5272type ConnectivityDestination struct { 5273 // ResourceID - The ID of the resource to which a connection attempt will be made. 5274 ResourceID *string `json:"resourceId,omitempty"` 5275 // Address - The IP address or URI the resource to which a connection attempt will be made. 5276 Address *string `json:"address,omitempty"` 5277 // Port - Port on which check connectivity will be performed. 5278 Port *int32 `json:"port,omitempty"` 5279} 5280 5281// ConnectivityHop information about a hop between the source and the destination. 5282type ConnectivityHop struct { 5283 // Type - READ-ONLY; The type of the hop. 5284 Type *string `json:"type,omitempty"` 5285 // ID - READ-ONLY; The ID of the hop. 5286 ID *string `json:"id,omitempty"` 5287 // Address - READ-ONLY; The IP address of the hop. 5288 Address *string `json:"address,omitempty"` 5289 // ResourceID - READ-ONLY; The ID of the resource corresponding to this hop. 5290 ResourceID *string `json:"resourceId,omitempty"` 5291 // NextHopIds - READ-ONLY; List of next hop identifiers. 5292 NextHopIds *[]string `json:"nextHopIds,omitempty"` 5293 // Issues - READ-ONLY; List of issues. 5294 Issues *[]ConnectivityIssue `json:"issues,omitempty"` 5295} 5296 5297// ConnectivityInformation information on the connectivity status. 5298type ConnectivityInformation struct { 5299 autorest.Response `json:"-"` 5300 // Hops - READ-ONLY; List of hops between the source and the destination. 5301 Hops *[]ConnectivityHop `json:"hops,omitempty"` 5302 // ConnectionStatus - READ-ONLY; The connection status. Possible values include: 'ConnectionStatusUnknown', 'ConnectionStatusConnected', 'ConnectionStatusDisconnected', 'ConnectionStatusDegraded' 5303 ConnectionStatus ConnectionStatus `json:"connectionStatus,omitempty"` 5304 // AvgLatencyInMs - READ-ONLY; Average latency in milliseconds. 5305 AvgLatencyInMs *int32 `json:"avgLatencyInMs,omitempty"` 5306 // MinLatencyInMs - READ-ONLY; Minimum latency in milliseconds. 5307 MinLatencyInMs *int32 `json:"minLatencyInMs,omitempty"` 5308 // MaxLatencyInMs - READ-ONLY; Maximum latency in milliseconds. 5309 MaxLatencyInMs *int32 `json:"maxLatencyInMs,omitempty"` 5310 // ProbesSent - READ-ONLY; Total number of probes sent. 5311 ProbesSent *int32 `json:"probesSent,omitempty"` 5312 // ProbesFailed - READ-ONLY; Number of failed probes. 5313 ProbesFailed *int32 `json:"probesFailed,omitempty"` 5314} 5315 5316// ConnectivityIssue information about an issue encountered in the process of checking for connectivity. 5317type ConnectivityIssue struct { 5318 // Origin - READ-ONLY; The origin of the issue. Possible values include: 'OriginLocal', 'OriginInbound', 'OriginOutbound' 5319 Origin Origin `json:"origin,omitempty"` 5320 // Severity - READ-ONLY; The severity of the issue. Possible values include: 'SeverityError', 'SeverityWarning' 5321 Severity Severity `json:"severity,omitempty"` 5322 // Type - READ-ONLY; The type of issue. Possible values include: 'IssueTypeUnknown', 'IssueTypeAgentStopped', 'IssueTypeGuestFirewall', 'IssueTypeDNSResolution', 'IssueTypeSocketBind', 'IssueTypeNetworkSecurityRule', 'IssueTypeUserDefinedRoute', 'IssueTypePortThrottled', 'IssueTypePlatform' 5323 Type IssueType `json:"type,omitempty"` 5324 // Context - READ-ONLY; Provides additional context on the issue. 5325 Context *[]map[string]*string `json:"context,omitempty"` 5326} 5327 5328// ConnectivityParameters parameters that determine how the connectivity check will be performed. 5329type ConnectivityParameters struct { 5330 Source *ConnectivitySource `json:"source,omitempty"` 5331 Destination *ConnectivityDestination `json:"destination,omitempty"` 5332 // Protocol - Network protocol. Possible values include: 'ProtocolTCP', 'ProtocolHTTP', 'ProtocolHTTPS', 'ProtocolIcmp' 5333 Protocol Protocol `json:"protocol,omitempty"` 5334 ProtocolConfiguration *ProtocolConfiguration `json:"protocolConfiguration,omitempty"` 5335} 5336 5337// ConnectivitySource parameters that define the source of the connection. 5338type ConnectivitySource struct { 5339 // ResourceID - The ID of the resource from which a connectivity check will be initiated. 5340 ResourceID *string `json:"resourceId,omitempty"` 5341 // Port - The source port from which a connectivity check will be performed. 5342 Port *int32 `json:"port,omitempty"` 5343} 5344 5345// DdosProtectionPlan a DDoS protection plan in a resource group. 5346type DdosProtectionPlan struct { 5347 autorest.Response `json:"-"` 5348 // DdosProtectionPlanPropertiesFormat - Properties of the DDoS protection plan. 5349 *DdosProtectionPlanPropertiesFormat `json:"properties,omitempty"` 5350 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 5351 Etag *string `json:"etag,omitempty"` 5352 // ID - Resource ID. 5353 ID *string `json:"id,omitempty"` 5354 // Name - READ-ONLY; Resource name. 5355 Name *string `json:"name,omitempty"` 5356 // Type - READ-ONLY; Resource type. 5357 Type *string `json:"type,omitempty"` 5358 // Location - Resource location. 5359 Location *string `json:"location,omitempty"` 5360 // Tags - Resource tags. 5361 Tags map[string]*string `json:"tags"` 5362} 5363 5364// MarshalJSON is the custom marshaler for DdosProtectionPlan. 5365func (dpp DdosProtectionPlan) MarshalJSON() ([]byte, error) { 5366 objectMap := make(map[string]interface{}) 5367 if dpp.DdosProtectionPlanPropertiesFormat != nil { 5368 objectMap["properties"] = dpp.DdosProtectionPlanPropertiesFormat 5369 } 5370 if dpp.ID != nil { 5371 objectMap["id"] = dpp.ID 5372 } 5373 if dpp.Location != nil { 5374 objectMap["location"] = dpp.Location 5375 } 5376 if dpp.Tags != nil { 5377 objectMap["tags"] = dpp.Tags 5378 } 5379 return json.Marshal(objectMap) 5380} 5381 5382// UnmarshalJSON is the custom unmarshaler for DdosProtectionPlan struct. 5383func (dpp *DdosProtectionPlan) UnmarshalJSON(body []byte) error { 5384 var m map[string]*json.RawMessage 5385 err := json.Unmarshal(body, &m) 5386 if err != nil { 5387 return err 5388 } 5389 for k, v := range m { 5390 switch k { 5391 case "properties": 5392 if v != nil { 5393 var ddosProtectionPlanPropertiesFormat DdosProtectionPlanPropertiesFormat 5394 err = json.Unmarshal(*v, &ddosProtectionPlanPropertiesFormat) 5395 if err != nil { 5396 return err 5397 } 5398 dpp.DdosProtectionPlanPropertiesFormat = &ddosProtectionPlanPropertiesFormat 5399 } 5400 case "etag": 5401 if v != nil { 5402 var etag string 5403 err = json.Unmarshal(*v, &etag) 5404 if err != nil { 5405 return err 5406 } 5407 dpp.Etag = &etag 5408 } 5409 case "id": 5410 if v != nil { 5411 var ID string 5412 err = json.Unmarshal(*v, &ID) 5413 if err != nil { 5414 return err 5415 } 5416 dpp.ID = &ID 5417 } 5418 case "name": 5419 if v != nil { 5420 var name string 5421 err = json.Unmarshal(*v, &name) 5422 if err != nil { 5423 return err 5424 } 5425 dpp.Name = &name 5426 } 5427 case "type": 5428 if v != nil { 5429 var typeVar string 5430 err = json.Unmarshal(*v, &typeVar) 5431 if err != nil { 5432 return err 5433 } 5434 dpp.Type = &typeVar 5435 } 5436 case "location": 5437 if v != nil { 5438 var location string 5439 err = json.Unmarshal(*v, &location) 5440 if err != nil { 5441 return err 5442 } 5443 dpp.Location = &location 5444 } 5445 case "tags": 5446 if v != nil { 5447 var tags map[string]*string 5448 err = json.Unmarshal(*v, &tags) 5449 if err != nil { 5450 return err 5451 } 5452 dpp.Tags = tags 5453 } 5454 } 5455 } 5456 5457 return nil 5458} 5459 5460// DdosProtectionPlanListResult a list of DDoS protection plans. 5461type DdosProtectionPlanListResult struct { 5462 autorest.Response `json:"-"` 5463 // Value - A list of DDoS protection plans. 5464 Value *[]DdosProtectionPlan `json:"value,omitempty"` 5465 // NextLink - READ-ONLY; The URL to get the next set of results. 5466 NextLink *string `json:"nextLink,omitempty"` 5467} 5468 5469// DdosProtectionPlanListResultIterator provides access to a complete listing of DdosProtectionPlan values. 5470type DdosProtectionPlanListResultIterator struct { 5471 i int 5472 page DdosProtectionPlanListResultPage 5473} 5474 5475// NextWithContext advances to the next value. If there was an error making 5476// the request the iterator does not advance and the error is returned. 5477func (iter *DdosProtectionPlanListResultIterator) NextWithContext(ctx context.Context) (err error) { 5478 if tracing.IsEnabled() { 5479 ctx = tracing.StartSpan(ctx, fqdn+"/DdosProtectionPlanListResultIterator.NextWithContext") 5480 defer func() { 5481 sc := -1 5482 if iter.Response().Response.Response != nil { 5483 sc = iter.Response().Response.Response.StatusCode 5484 } 5485 tracing.EndSpan(ctx, sc, err) 5486 }() 5487 } 5488 iter.i++ 5489 if iter.i < len(iter.page.Values()) { 5490 return nil 5491 } 5492 err = iter.page.NextWithContext(ctx) 5493 if err != nil { 5494 iter.i-- 5495 return err 5496 } 5497 iter.i = 0 5498 return nil 5499} 5500 5501// Next advances to the next value. If there was an error making 5502// the request the iterator does not advance and the error is returned. 5503// Deprecated: Use NextWithContext() instead. 5504func (iter *DdosProtectionPlanListResultIterator) Next() error { 5505 return iter.NextWithContext(context.Background()) 5506} 5507 5508// NotDone returns true if the enumeration should be started or is not yet complete. 5509func (iter DdosProtectionPlanListResultIterator) NotDone() bool { 5510 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 5511} 5512 5513// Response returns the raw server response from the last page request. 5514func (iter DdosProtectionPlanListResultIterator) Response() DdosProtectionPlanListResult { 5515 return iter.page.Response() 5516} 5517 5518// Value returns the current value or a zero-initialized value if the 5519// iterator has advanced beyond the end of the collection. 5520func (iter DdosProtectionPlanListResultIterator) Value() DdosProtectionPlan { 5521 if !iter.page.NotDone() { 5522 return DdosProtectionPlan{} 5523 } 5524 return iter.page.Values()[iter.i] 5525} 5526 5527// Creates a new instance of the DdosProtectionPlanListResultIterator type. 5528func NewDdosProtectionPlanListResultIterator(page DdosProtectionPlanListResultPage) DdosProtectionPlanListResultIterator { 5529 return DdosProtectionPlanListResultIterator{page: page} 5530} 5531 5532// IsEmpty returns true if the ListResult contains no values. 5533func (dpplr DdosProtectionPlanListResult) IsEmpty() bool { 5534 return dpplr.Value == nil || len(*dpplr.Value) == 0 5535} 5536 5537// ddosProtectionPlanListResultPreparer prepares a request to retrieve the next set of results. 5538// It returns nil if no more results exist. 5539func (dpplr DdosProtectionPlanListResult) ddosProtectionPlanListResultPreparer(ctx context.Context) (*http.Request, error) { 5540 if dpplr.NextLink == nil || len(to.String(dpplr.NextLink)) < 1 { 5541 return nil, nil 5542 } 5543 return autorest.Prepare((&http.Request{}).WithContext(ctx), 5544 autorest.AsJSON(), 5545 autorest.AsGet(), 5546 autorest.WithBaseURL(to.String(dpplr.NextLink))) 5547} 5548 5549// DdosProtectionPlanListResultPage contains a page of DdosProtectionPlan values. 5550type DdosProtectionPlanListResultPage struct { 5551 fn func(context.Context, DdosProtectionPlanListResult) (DdosProtectionPlanListResult, error) 5552 dpplr DdosProtectionPlanListResult 5553} 5554 5555// NextWithContext advances to the next page of values. If there was an error making 5556// the request the page does not advance and the error is returned. 5557func (page *DdosProtectionPlanListResultPage) NextWithContext(ctx context.Context) (err error) { 5558 if tracing.IsEnabled() { 5559 ctx = tracing.StartSpan(ctx, fqdn+"/DdosProtectionPlanListResultPage.NextWithContext") 5560 defer func() { 5561 sc := -1 5562 if page.Response().Response.Response != nil { 5563 sc = page.Response().Response.Response.StatusCode 5564 } 5565 tracing.EndSpan(ctx, sc, err) 5566 }() 5567 } 5568 next, err := page.fn(ctx, page.dpplr) 5569 if err != nil { 5570 return err 5571 } 5572 page.dpplr = next 5573 return nil 5574} 5575 5576// Next advances to the next page of values. If there was an error making 5577// the request the page does not advance and the error is returned. 5578// Deprecated: Use NextWithContext() instead. 5579func (page *DdosProtectionPlanListResultPage) Next() error { 5580 return page.NextWithContext(context.Background()) 5581} 5582 5583// NotDone returns true if the page enumeration should be started or is not yet complete. 5584func (page DdosProtectionPlanListResultPage) NotDone() bool { 5585 return !page.dpplr.IsEmpty() 5586} 5587 5588// Response returns the raw server response from the last page request. 5589func (page DdosProtectionPlanListResultPage) Response() DdosProtectionPlanListResult { 5590 return page.dpplr 5591} 5592 5593// Values returns the slice of values for the current page or nil if there are no values. 5594func (page DdosProtectionPlanListResultPage) Values() []DdosProtectionPlan { 5595 if page.dpplr.IsEmpty() { 5596 return nil 5597 } 5598 return *page.dpplr.Value 5599} 5600 5601// Creates a new instance of the DdosProtectionPlanListResultPage type. 5602func NewDdosProtectionPlanListResultPage(getNextPage func(context.Context, DdosProtectionPlanListResult) (DdosProtectionPlanListResult, error)) DdosProtectionPlanListResultPage { 5603 return DdosProtectionPlanListResultPage{fn: getNextPage} 5604} 5605 5606// DdosProtectionPlanPropertiesFormat dDoS protection plan properties. 5607type DdosProtectionPlanPropertiesFormat struct { 5608 // ResourceGUID - 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 migrate the resource across subscriptions or resource groups. 5609 ResourceGUID *string `json:"resourceGuid,omitempty"` 5610 // ProvisioningState - READ-ONLY; The provisioning state of the DDoS protection plan resource. Possible values are: 'Succeeded', 'Updating', 'Deleting', and 'Failed'. 5611 ProvisioningState *string `json:"provisioningState,omitempty"` 5612 // VirtualNetworks - READ-ONLY; The list of virtual networks associated with the DDoS protection plan resource. This list is read-only. 5613 VirtualNetworks *[]SubResource `json:"virtualNetworks,omitempty"` 5614} 5615 5616// DdosProtectionPlansCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 5617// long-running operation. 5618type DdosProtectionPlansCreateOrUpdateFuture struct { 5619 azure.Future 5620} 5621 5622// Result returns the result of the asynchronous operation. 5623// If the operation has not completed it will return an error. 5624func (future *DdosProtectionPlansCreateOrUpdateFuture) Result(client DdosProtectionPlansClient) (dpp DdosProtectionPlan, err error) { 5625 var done bool 5626 done, err = future.DoneWithContext(context.Background(), client) 5627 if err != nil { 5628 err = autorest.NewErrorWithError(err, "network.DdosProtectionPlansCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 5629 return 5630 } 5631 if !done { 5632 err = azure.NewAsyncOpIncompleteError("network.DdosProtectionPlansCreateOrUpdateFuture") 5633 return 5634 } 5635 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5636 if dpp.Response.Response, err = future.GetResult(sender); err == nil && dpp.Response.Response.StatusCode != http.StatusNoContent { 5637 dpp, err = client.CreateOrUpdateResponder(dpp.Response.Response) 5638 if err != nil { 5639 err = autorest.NewErrorWithError(err, "network.DdosProtectionPlansCreateOrUpdateFuture", "Result", dpp.Response.Response, "Failure responding to request") 5640 } 5641 } 5642 return 5643} 5644 5645// DdosProtectionPlansDeleteFuture an abstraction for monitoring and retrieving the results of a 5646// long-running operation. 5647type DdosProtectionPlansDeleteFuture struct { 5648 azure.Future 5649} 5650 5651// Result returns the result of the asynchronous operation. 5652// If the operation has not completed it will return an error. 5653func (future *DdosProtectionPlansDeleteFuture) Result(client DdosProtectionPlansClient) (ar autorest.Response, err error) { 5654 var done bool 5655 done, err = future.DoneWithContext(context.Background(), client) 5656 if err != nil { 5657 err = autorest.NewErrorWithError(err, "network.DdosProtectionPlansDeleteFuture", "Result", future.Response(), "Polling failure") 5658 return 5659 } 5660 if !done { 5661 err = azure.NewAsyncOpIncompleteError("network.DdosProtectionPlansDeleteFuture") 5662 return 5663 } 5664 ar.Response = future.Response() 5665 return 5666} 5667 5668// DhcpOptions dhcpOptions contains an array of DNS servers available to VMs deployed in the virtual 5669// network. Standard DHCP option for a subnet overrides VNET DHCP options. 5670type DhcpOptions struct { 5671 // DNSServers - The list of DNS servers IP addresses. 5672 DNSServers *[]string `json:"dnsServers,omitempty"` 5673} 5674 5675// Dimension dimension of the metric. 5676type Dimension struct { 5677 // Name - The name of the dimension. 5678 Name *string `json:"name,omitempty"` 5679 // DisplayName - The display name of the dimension. 5680 DisplayName *string `json:"displayName,omitempty"` 5681 // InternalName - The internal name of the dimension. 5682 InternalName *string `json:"internalName,omitempty"` 5683} 5684 5685// DNSNameAvailabilityResult response for the CheckDnsNameAvailability API service call. 5686type DNSNameAvailabilityResult struct { 5687 autorest.Response `json:"-"` 5688 // Available - Domain availability (True/False). 5689 Available *bool `json:"available,omitempty"` 5690} 5691 5692// EffectiveNetworkSecurityGroup effective network security group. 5693type EffectiveNetworkSecurityGroup struct { 5694 // NetworkSecurityGroup - The ID of network security group that is applied. 5695 NetworkSecurityGroup *SubResource `json:"networkSecurityGroup,omitempty"` 5696 // Association - Associated resources. 5697 Association *EffectiveNetworkSecurityGroupAssociation `json:"association,omitempty"` 5698 // EffectiveSecurityRules - A collection of effective security rules. 5699 EffectiveSecurityRules *[]EffectiveNetworkSecurityRule `json:"effectiveSecurityRules,omitempty"` 5700 // TagMap - Mapping of tags to list of IP Addresses included within the tag. 5701 TagMap map[string][]string `json:"tagMap"` 5702} 5703 5704// MarshalJSON is the custom marshaler for EffectiveNetworkSecurityGroup. 5705func (ensg EffectiveNetworkSecurityGroup) MarshalJSON() ([]byte, error) { 5706 objectMap := make(map[string]interface{}) 5707 if ensg.NetworkSecurityGroup != nil { 5708 objectMap["networkSecurityGroup"] = ensg.NetworkSecurityGroup 5709 } 5710 if ensg.Association != nil { 5711 objectMap["association"] = ensg.Association 5712 } 5713 if ensg.EffectiveSecurityRules != nil { 5714 objectMap["effectiveSecurityRules"] = ensg.EffectiveSecurityRules 5715 } 5716 if ensg.TagMap != nil { 5717 objectMap["tagMap"] = ensg.TagMap 5718 } 5719 return json.Marshal(objectMap) 5720} 5721 5722// EffectiveNetworkSecurityGroupAssociation the effective network security group association. 5723type EffectiveNetworkSecurityGroupAssociation struct { 5724 // Subnet - The ID of the subnet if assigned. 5725 Subnet *SubResource `json:"subnet,omitempty"` 5726 // NetworkInterface - The ID of the network interface if assigned. 5727 NetworkInterface *SubResource `json:"networkInterface,omitempty"` 5728} 5729 5730// EffectiveNetworkSecurityGroupListResult response for list effective network security groups API service 5731// call. 5732type EffectiveNetworkSecurityGroupListResult struct { 5733 autorest.Response `json:"-"` 5734 // Value - A list of effective network security groups. 5735 Value *[]EffectiveNetworkSecurityGroup `json:"value,omitempty"` 5736 // NextLink - READ-ONLY; The URL to get the next set of results. 5737 NextLink *string `json:"nextLink,omitempty"` 5738} 5739 5740// EffectiveNetworkSecurityRule effective network security rules. 5741type EffectiveNetworkSecurityRule struct { 5742 // Name - The name of the security rule specified by the user (if created by the user). 5743 Name *string `json:"name,omitempty"` 5744 // Protocol - The network protocol this rule applies to. Possible values are: 'Tcp', 'Udp', and 'All'. Possible values include: 'TCP', 'UDP', 'All' 5745 Protocol EffectiveSecurityRuleProtocol `json:"protocol,omitempty"` 5746 // SourcePortRange - The source port or range. 5747 SourcePortRange *string `json:"sourcePortRange,omitempty"` 5748 // DestinationPortRange - The destination port or range. 5749 DestinationPortRange *string `json:"destinationPortRange,omitempty"` 5750 // SourcePortRanges - 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 (*) 5751 SourcePortRanges *[]string `json:"sourcePortRanges,omitempty"` 5752 // DestinationPortRanges - 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 (*) 5753 DestinationPortRanges *[]string `json:"destinationPortRanges,omitempty"` 5754 // SourceAddressPrefix - The source address prefix. 5755 SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"` 5756 // DestinationAddressPrefix - The destination address prefix. 5757 DestinationAddressPrefix *string `json:"destinationAddressPrefix,omitempty"` 5758 // SourceAddressPrefixes - The source address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*). 5759 SourceAddressPrefixes *[]string `json:"sourceAddressPrefixes,omitempty"` 5760 // DestinationAddressPrefixes - The destination address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*). 5761 DestinationAddressPrefixes *[]string `json:"destinationAddressPrefixes,omitempty"` 5762 // ExpandedSourceAddressPrefix - The expanded source address prefix. 5763 ExpandedSourceAddressPrefix *[]string `json:"expandedSourceAddressPrefix,omitempty"` 5764 // ExpandedDestinationAddressPrefix - Expanded destination address prefix. 5765 ExpandedDestinationAddressPrefix *[]string `json:"expandedDestinationAddressPrefix,omitempty"` 5766 // Access - Whether network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'. Possible values include: 'SecurityRuleAccessAllow', 'SecurityRuleAccessDeny' 5767 Access SecurityRuleAccess `json:"access,omitempty"` 5768 // Priority - The priority of the rule. 5769 Priority *int32 `json:"priority,omitempty"` 5770 // Direction - The direction of the rule. Possible values are: 'Inbound and Outbound'. Possible values include: 'SecurityRuleDirectionInbound', 'SecurityRuleDirectionOutbound' 5771 Direction SecurityRuleDirection `json:"direction,omitempty"` 5772} 5773 5774// EffectiveRoute effective Route 5775type EffectiveRoute struct { 5776 // Name - The name of the user defined route. This is optional. 5777 Name *string `json:"name,omitempty"` 5778 // Source - Who created the route. Possible values are: 'Unknown', 'User', 'VirtualNetworkGateway', and 'Default'. Possible values include: 'EffectiveRouteSourceUnknown', 'EffectiveRouteSourceUser', 'EffectiveRouteSourceVirtualNetworkGateway', 'EffectiveRouteSourceDefault' 5779 Source EffectiveRouteSource `json:"source,omitempty"` 5780 // State - The value of effective route. Possible values are: 'Active' and 'Invalid'. Possible values include: 'EffectiveRouteStateActive', 'EffectiveRouteStateInvalid' 5781 State EffectiveRouteState `json:"state,omitempty"` 5782 // AddressPrefix - The address prefixes of the effective routes in CIDR notation. 5783 AddressPrefix *[]string `json:"addressPrefix,omitempty"` 5784 // NextHopIPAddress - The IP address of the next hop of the effective route. 5785 NextHopIPAddress *[]string `json:"nextHopIpAddress,omitempty"` 5786 // NextHopType - The type of Azure hop the packet should be sent to. Possible values are: 'VirtualNetworkGateway', 'VnetLocal', 'Internet', 'VirtualAppliance', and 'None'. Possible values include: 'RouteNextHopTypeVirtualNetworkGateway', 'RouteNextHopTypeVnetLocal', 'RouteNextHopTypeInternet', 'RouteNextHopTypeVirtualAppliance', 'RouteNextHopTypeNone' 5787 NextHopType RouteNextHopType `json:"nextHopType,omitempty"` 5788} 5789 5790// EffectiveRouteListResult response for list effective route API service call. 5791type EffectiveRouteListResult struct { 5792 autorest.Response `json:"-"` 5793 // Value - A list of effective routes. 5794 Value *[]EffectiveRoute `json:"value,omitempty"` 5795 // NextLink - READ-ONLY; The URL to get the next set of results. 5796 NextLink *string `json:"nextLink,omitempty"` 5797} 5798 5799// EndpointServiceResult endpoint service. 5800type EndpointServiceResult struct { 5801 // Name - READ-ONLY; Name of the endpoint service. 5802 Name *string `json:"name,omitempty"` 5803 // Type - READ-ONLY; Type of the endpoint service. 5804 Type *string `json:"type,omitempty"` 5805 // ID - Resource ID. 5806 ID *string `json:"id,omitempty"` 5807} 5808 5809// EndpointServicesListResult response for the ListAvailableEndpointServices API service call. 5810type EndpointServicesListResult struct { 5811 autorest.Response `json:"-"` 5812 // Value - List of available endpoint services in a region. 5813 Value *[]EndpointServiceResult `json:"value,omitempty"` 5814 // NextLink - The URL to get the next set of results. 5815 NextLink *string `json:"nextLink,omitempty"` 5816} 5817 5818// EndpointServicesListResultIterator provides access to a complete listing of EndpointServiceResult 5819// values. 5820type EndpointServicesListResultIterator struct { 5821 i int 5822 page EndpointServicesListResultPage 5823} 5824 5825// NextWithContext advances to the next value. If there was an error making 5826// the request the iterator does not advance and the error is returned. 5827func (iter *EndpointServicesListResultIterator) NextWithContext(ctx context.Context) (err error) { 5828 if tracing.IsEnabled() { 5829 ctx = tracing.StartSpan(ctx, fqdn+"/EndpointServicesListResultIterator.NextWithContext") 5830 defer func() { 5831 sc := -1 5832 if iter.Response().Response.Response != nil { 5833 sc = iter.Response().Response.Response.StatusCode 5834 } 5835 tracing.EndSpan(ctx, sc, err) 5836 }() 5837 } 5838 iter.i++ 5839 if iter.i < len(iter.page.Values()) { 5840 return nil 5841 } 5842 err = iter.page.NextWithContext(ctx) 5843 if err != nil { 5844 iter.i-- 5845 return err 5846 } 5847 iter.i = 0 5848 return nil 5849} 5850 5851// Next advances to the next value. If there was an error making 5852// the request the iterator does not advance and the error is returned. 5853// Deprecated: Use NextWithContext() instead. 5854func (iter *EndpointServicesListResultIterator) Next() error { 5855 return iter.NextWithContext(context.Background()) 5856} 5857 5858// NotDone returns true if the enumeration should be started or is not yet complete. 5859func (iter EndpointServicesListResultIterator) NotDone() bool { 5860 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 5861} 5862 5863// Response returns the raw server response from the last page request. 5864func (iter EndpointServicesListResultIterator) Response() EndpointServicesListResult { 5865 return iter.page.Response() 5866} 5867 5868// Value returns the current value or a zero-initialized value if the 5869// iterator has advanced beyond the end of the collection. 5870func (iter EndpointServicesListResultIterator) Value() EndpointServiceResult { 5871 if !iter.page.NotDone() { 5872 return EndpointServiceResult{} 5873 } 5874 return iter.page.Values()[iter.i] 5875} 5876 5877// Creates a new instance of the EndpointServicesListResultIterator type. 5878func NewEndpointServicesListResultIterator(page EndpointServicesListResultPage) EndpointServicesListResultIterator { 5879 return EndpointServicesListResultIterator{page: page} 5880} 5881 5882// IsEmpty returns true if the ListResult contains no values. 5883func (eslr EndpointServicesListResult) IsEmpty() bool { 5884 return eslr.Value == nil || len(*eslr.Value) == 0 5885} 5886 5887// endpointServicesListResultPreparer prepares a request to retrieve the next set of results. 5888// It returns nil if no more results exist. 5889func (eslr EndpointServicesListResult) endpointServicesListResultPreparer(ctx context.Context) (*http.Request, error) { 5890 if eslr.NextLink == nil || len(to.String(eslr.NextLink)) < 1 { 5891 return nil, nil 5892 } 5893 return autorest.Prepare((&http.Request{}).WithContext(ctx), 5894 autorest.AsJSON(), 5895 autorest.AsGet(), 5896 autorest.WithBaseURL(to.String(eslr.NextLink))) 5897} 5898 5899// EndpointServicesListResultPage contains a page of EndpointServiceResult values. 5900type EndpointServicesListResultPage struct { 5901 fn func(context.Context, EndpointServicesListResult) (EndpointServicesListResult, error) 5902 eslr EndpointServicesListResult 5903} 5904 5905// NextWithContext advances to the next page of values. If there was an error making 5906// the request the page does not advance and the error is returned. 5907func (page *EndpointServicesListResultPage) NextWithContext(ctx context.Context) (err error) { 5908 if tracing.IsEnabled() { 5909 ctx = tracing.StartSpan(ctx, fqdn+"/EndpointServicesListResultPage.NextWithContext") 5910 defer func() { 5911 sc := -1 5912 if page.Response().Response.Response != nil { 5913 sc = page.Response().Response.Response.StatusCode 5914 } 5915 tracing.EndSpan(ctx, sc, err) 5916 }() 5917 } 5918 next, err := page.fn(ctx, page.eslr) 5919 if err != nil { 5920 return err 5921 } 5922 page.eslr = next 5923 return nil 5924} 5925 5926// Next advances to the next page of values. If there was an error making 5927// the request the page does not advance and the error is returned. 5928// Deprecated: Use NextWithContext() instead. 5929func (page *EndpointServicesListResultPage) Next() error { 5930 return page.NextWithContext(context.Background()) 5931} 5932 5933// NotDone returns true if the page enumeration should be started or is not yet complete. 5934func (page EndpointServicesListResultPage) NotDone() bool { 5935 return !page.eslr.IsEmpty() 5936} 5937 5938// Response returns the raw server response from the last page request. 5939func (page EndpointServicesListResultPage) Response() EndpointServicesListResult { 5940 return page.eslr 5941} 5942 5943// Values returns the slice of values for the current page or nil if there are no values. 5944func (page EndpointServicesListResultPage) Values() []EndpointServiceResult { 5945 if page.eslr.IsEmpty() { 5946 return nil 5947 } 5948 return *page.eslr.Value 5949} 5950 5951// Creates a new instance of the EndpointServicesListResultPage type. 5952func NewEndpointServicesListResultPage(getNextPage func(context.Context, EndpointServicesListResult) (EndpointServicesListResult, error)) EndpointServicesListResultPage { 5953 return EndpointServicesListResultPage{fn: getNextPage} 5954} 5955 5956// Error ... 5957type Error struct { 5958 Code *string `json:"code,omitempty"` 5959 Message *string `json:"message,omitempty"` 5960 Target *string `json:"target,omitempty"` 5961 Details *[]ErrorDetails `json:"details,omitempty"` 5962 InnerError *string `json:"innerError,omitempty"` 5963} 5964 5965// ErrorDetails ... 5966type ErrorDetails struct { 5967 Code *string `json:"code,omitempty"` 5968 Target *string `json:"target,omitempty"` 5969 Message *string `json:"message,omitempty"` 5970} 5971 5972// ExpressRouteCircuit expressRouteCircuit resource 5973type ExpressRouteCircuit struct { 5974 autorest.Response `json:"-"` 5975 // Sku - The SKU. 5976 Sku *ExpressRouteCircuitSku `json:"sku,omitempty"` 5977 *ExpressRouteCircuitPropertiesFormat `json:"properties,omitempty"` 5978 // Etag - READ-ONLY; Gets a unique read-only string that changes whenever the resource is updated. 5979 Etag *string `json:"etag,omitempty"` 5980 // ID - Resource ID. 5981 ID *string `json:"id,omitempty"` 5982 // Name - READ-ONLY; Resource name. 5983 Name *string `json:"name,omitempty"` 5984 // Type - READ-ONLY; Resource type. 5985 Type *string `json:"type,omitempty"` 5986 // Location - Resource location. 5987 Location *string `json:"location,omitempty"` 5988 // Tags - Resource tags. 5989 Tags map[string]*string `json:"tags"` 5990} 5991 5992// MarshalJSON is the custom marshaler for ExpressRouteCircuit. 5993func (erc ExpressRouteCircuit) MarshalJSON() ([]byte, error) { 5994 objectMap := make(map[string]interface{}) 5995 if erc.Sku != nil { 5996 objectMap["sku"] = erc.Sku 5997 } 5998 if erc.ExpressRouteCircuitPropertiesFormat != nil { 5999 objectMap["properties"] = erc.ExpressRouteCircuitPropertiesFormat 6000 } 6001 if erc.ID != nil { 6002 objectMap["id"] = erc.ID 6003 } 6004 if erc.Location != nil { 6005 objectMap["location"] = erc.Location 6006 } 6007 if erc.Tags != nil { 6008 objectMap["tags"] = erc.Tags 6009 } 6010 return json.Marshal(objectMap) 6011} 6012 6013// UnmarshalJSON is the custom unmarshaler for ExpressRouteCircuit struct. 6014func (erc *ExpressRouteCircuit) UnmarshalJSON(body []byte) error { 6015 var m map[string]*json.RawMessage 6016 err := json.Unmarshal(body, &m) 6017 if err != nil { 6018 return err 6019 } 6020 for k, v := range m { 6021 switch k { 6022 case "sku": 6023 if v != nil { 6024 var sku ExpressRouteCircuitSku 6025 err = json.Unmarshal(*v, &sku) 6026 if err != nil { 6027 return err 6028 } 6029 erc.Sku = &sku 6030 } 6031 case "properties": 6032 if v != nil { 6033 var expressRouteCircuitPropertiesFormat ExpressRouteCircuitPropertiesFormat 6034 err = json.Unmarshal(*v, &expressRouteCircuitPropertiesFormat) 6035 if err != nil { 6036 return err 6037 } 6038 erc.ExpressRouteCircuitPropertiesFormat = &expressRouteCircuitPropertiesFormat 6039 } 6040 case "etag": 6041 if v != nil { 6042 var etag string 6043 err = json.Unmarshal(*v, &etag) 6044 if err != nil { 6045 return err 6046 } 6047 erc.Etag = &etag 6048 } 6049 case "id": 6050 if v != nil { 6051 var ID string 6052 err = json.Unmarshal(*v, &ID) 6053 if err != nil { 6054 return err 6055 } 6056 erc.ID = &ID 6057 } 6058 case "name": 6059 if v != nil { 6060 var name string 6061 err = json.Unmarshal(*v, &name) 6062 if err != nil { 6063 return err 6064 } 6065 erc.Name = &name 6066 } 6067 case "type": 6068 if v != nil { 6069 var typeVar string 6070 err = json.Unmarshal(*v, &typeVar) 6071 if err != nil { 6072 return err 6073 } 6074 erc.Type = &typeVar 6075 } 6076 case "location": 6077 if v != nil { 6078 var location string 6079 err = json.Unmarshal(*v, &location) 6080 if err != nil { 6081 return err 6082 } 6083 erc.Location = &location 6084 } 6085 case "tags": 6086 if v != nil { 6087 var tags map[string]*string 6088 err = json.Unmarshal(*v, &tags) 6089 if err != nil { 6090 return err 6091 } 6092 erc.Tags = tags 6093 } 6094 } 6095 } 6096 6097 return nil 6098} 6099 6100// ExpressRouteCircuitArpTable the ARP table associated with the ExpressRouteCircuit. 6101type ExpressRouteCircuitArpTable struct { 6102 // Age - Age 6103 Age *int32 `json:"age,omitempty"` 6104 // Interface - Interface 6105 Interface *string `json:"interface,omitempty"` 6106 // IPAddress - The IP address. 6107 IPAddress *string `json:"ipAddress,omitempty"` 6108 // MacAddress - The MAC address. 6109 MacAddress *string `json:"macAddress,omitempty"` 6110} 6111 6112// ExpressRouteCircuitAuthorization authorization in an ExpressRouteCircuit resource. 6113type ExpressRouteCircuitAuthorization struct { 6114 autorest.Response `json:"-"` 6115 *AuthorizationPropertiesFormat `json:"properties,omitempty"` 6116 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 6117 Name *string `json:"name,omitempty"` 6118 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 6119 Etag *string `json:"etag,omitempty"` 6120 // ID - Resource ID. 6121 ID *string `json:"id,omitempty"` 6122} 6123 6124// MarshalJSON is the custom marshaler for ExpressRouteCircuitAuthorization. 6125func (erca ExpressRouteCircuitAuthorization) MarshalJSON() ([]byte, error) { 6126 objectMap := make(map[string]interface{}) 6127 if erca.AuthorizationPropertiesFormat != nil { 6128 objectMap["properties"] = erca.AuthorizationPropertiesFormat 6129 } 6130 if erca.Name != nil { 6131 objectMap["name"] = erca.Name 6132 } 6133 if erca.ID != nil { 6134 objectMap["id"] = erca.ID 6135 } 6136 return json.Marshal(objectMap) 6137} 6138 6139// UnmarshalJSON is the custom unmarshaler for ExpressRouteCircuitAuthorization struct. 6140func (erca *ExpressRouteCircuitAuthorization) UnmarshalJSON(body []byte) error { 6141 var m map[string]*json.RawMessage 6142 err := json.Unmarshal(body, &m) 6143 if err != nil { 6144 return err 6145 } 6146 for k, v := range m { 6147 switch k { 6148 case "properties": 6149 if v != nil { 6150 var authorizationPropertiesFormat AuthorizationPropertiesFormat 6151 err = json.Unmarshal(*v, &authorizationPropertiesFormat) 6152 if err != nil { 6153 return err 6154 } 6155 erca.AuthorizationPropertiesFormat = &authorizationPropertiesFormat 6156 } 6157 case "name": 6158 if v != nil { 6159 var name string 6160 err = json.Unmarshal(*v, &name) 6161 if err != nil { 6162 return err 6163 } 6164 erca.Name = &name 6165 } 6166 case "etag": 6167 if v != nil { 6168 var etag string 6169 err = json.Unmarshal(*v, &etag) 6170 if err != nil { 6171 return err 6172 } 6173 erca.Etag = &etag 6174 } 6175 case "id": 6176 if v != nil { 6177 var ID string 6178 err = json.Unmarshal(*v, &ID) 6179 if err != nil { 6180 return err 6181 } 6182 erca.ID = &ID 6183 } 6184 } 6185 } 6186 6187 return nil 6188} 6189 6190// ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture an abstraction for monitoring and retrieving the 6191// results of a long-running operation. 6192type ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture struct { 6193 azure.Future 6194} 6195 6196// Result returns the result of the asynchronous operation. 6197// If the operation has not completed it will return an error. 6198func (future *ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture) Result(client ExpressRouteCircuitAuthorizationsClient) (erca ExpressRouteCircuitAuthorization, err error) { 6199 var done bool 6200 done, err = future.DoneWithContext(context.Background(), client) 6201 if err != nil { 6202 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 6203 return 6204 } 6205 if !done { 6206 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture") 6207 return 6208 } 6209 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6210 if erca.Response.Response, err = future.GetResult(sender); err == nil && erca.Response.Response.StatusCode != http.StatusNoContent { 6211 erca, err = client.CreateOrUpdateResponder(erca.Response.Response) 6212 if err != nil { 6213 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture", "Result", erca.Response.Response, "Failure responding to request") 6214 } 6215 } 6216 return 6217} 6218 6219// ExpressRouteCircuitAuthorizationsDeleteFuture an abstraction for monitoring and retrieving the results 6220// of a long-running operation. 6221type ExpressRouteCircuitAuthorizationsDeleteFuture struct { 6222 azure.Future 6223} 6224 6225// Result returns the result of the asynchronous operation. 6226// If the operation has not completed it will return an error. 6227func (future *ExpressRouteCircuitAuthorizationsDeleteFuture) Result(client ExpressRouteCircuitAuthorizationsClient) (ar autorest.Response, err error) { 6228 var done bool 6229 done, err = future.DoneWithContext(context.Background(), client) 6230 if err != nil { 6231 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitAuthorizationsDeleteFuture", "Result", future.Response(), "Polling failure") 6232 return 6233 } 6234 if !done { 6235 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitAuthorizationsDeleteFuture") 6236 return 6237 } 6238 ar.Response = future.Response() 6239 return 6240} 6241 6242// ExpressRouteCircuitConnection express Route Circuit Connection in an ExpressRouteCircuitPeering 6243// resource. 6244type ExpressRouteCircuitConnection struct { 6245 autorest.Response `json:"-"` 6246 *ExpressRouteCircuitConnectionPropertiesFormat `json:"properties,omitempty"` 6247 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 6248 Name *string `json:"name,omitempty"` 6249 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 6250 Etag *string `json:"etag,omitempty"` 6251 // ID - Resource ID. 6252 ID *string `json:"id,omitempty"` 6253} 6254 6255// MarshalJSON is the custom marshaler for ExpressRouteCircuitConnection. 6256func (ercc ExpressRouteCircuitConnection) MarshalJSON() ([]byte, error) { 6257 objectMap := make(map[string]interface{}) 6258 if ercc.ExpressRouteCircuitConnectionPropertiesFormat != nil { 6259 objectMap["properties"] = ercc.ExpressRouteCircuitConnectionPropertiesFormat 6260 } 6261 if ercc.Name != nil { 6262 objectMap["name"] = ercc.Name 6263 } 6264 if ercc.ID != nil { 6265 objectMap["id"] = ercc.ID 6266 } 6267 return json.Marshal(objectMap) 6268} 6269 6270// UnmarshalJSON is the custom unmarshaler for ExpressRouteCircuitConnection struct. 6271func (ercc *ExpressRouteCircuitConnection) UnmarshalJSON(body []byte) error { 6272 var m map[string]*json.RawMessage 6273 err := json.Unmarshal(body, &m) 6274 if err != nil { 6275 return err 6276 } 6277 for k, v := range m { 6278 switch k { 6279 case "properties": 6280 if v != nil { 6281 var expressRouteCircuitConnectionPropertiesFormat ExpressRouteCircuitConnectionPropertiesFormat 6282 err = json.Unmarshal(*v, &expressRouteCircuitConnectionPropertiesFormat) 6283 if err != nil { 6284 return err 6285 } 6286 ercc.ExpressRouteCircuitConnectionPropertiesFormat = &expressRouteCircuitConnectionPropertiesFormat 6287 } 6288 case "name": 6289 if v != nil { 6290 var name string 6291 err = json.Unmarshal(*v, &name) 6292 if err != nil { 6293 return err 6294 } 6295 ercc.Name = &name 6296 } 6297 case "etag": 6298 if v != nil { 6299 var etag string 6300 err = json.Unmarshal(*v, &etag) 6301 if err != nil { 6302 return err 6303 } 6304 ercc.Etag = &etag 6305 } 6306 case "id": 6307 if v != nil { 6308 var ID string 6309 err = json.Unmarshal(*v, &ID) 6310 if err != nil { 6311 return err 6312 } 6313 ercc.ID = &ID 6314 } 6315 } 6316 } 6317 6318 return nil 6319} 6320 6321// ExpressRouteCircuitConnectionPropertiesFormat ... 6322type ExpressRouteCircuitConnectionPropertiesFormat struct { 6323 // ExpressRouteCircuitPeering - Reference to Express Route Circuit Private Peering Resource of the circuit initiating connection. 6324 ExpressRouteCircuitPeering *SubResource `json:"expressRouteCircuitPeering,omitempty"` 6325 // PeerExpressRouteCircuitPeering - Reference to Express Route Circuit Private Peering Resource of the peered circuit. 6326 PeerExpressRouteCircuitPeering *SubResource `json:"peerExpressRouteCircuitPeering,omitempty"` 6327 // AddressPrefix - /29 IP address space to carve out Customer addresses for tunnels. 6328 AddressPrefix *string `json:"addressPrefix,omitempty"` 6329 // AuthorizationKey - The authorization key. 6330 AuthorizationKey *string `json:"authorizationKey,omitempty"` 6331 // CircuitConnectionStatus - READ-ONLY; Express Route Circuit Connection State. Possible values are: 'Connected' and 'Disconnected'. Possible values include: 'Connected', 'Connecting', 'Disconnected' 6332 CircuitConnectionStatus CircuitConnectionStatus `json:"circuitConnectionStatus,omitempty"` 6333 // ProvisioningState - READ-ONLY; Provisioning state of the circuit connection resource. Possible values are: 'Succeeded', 'Updating', 'Deleting', and 'Failed'. 6334 ProvisioningState *string `json:"provisioningState,omitempty"` 6335} 6336 6337// ExpressRouteCircuitConnectionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the 6338// results of a long-running operation. 6339type ExpressRouteCircuitConnectionsCreateOrUpdateFuture struct { 6340 azure.Future 6341} 6342 6343// Result returns the result of the asynchronous operation. 6344// If the operation has not completed it will return an error. 6345func (future *ExpressRouteCircuitConnectionsCreateOrUpdateFuture) Result(client ExpressRouteCircuitConnectionsClient) (ercc ExpressRouteCircuitConnection, err error) { 6346 var done bool 6347 done, err = future.DoneWithContext(context.Background(), client) 6348 if err != nil { 6349 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitConnectionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 6350 return 6351 } 6352 if !done { 6353 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitConnectionsCreateOrUpdateFuture") 6354 return 6355 } 6356 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6357 if ercc.Response.Response, err = future.GetResult(sender); err == nil && ercc.Response.Response.StatusCode != http.StatusNoContent { 6358 ercc, err = client.CreateOrUpdateResponder(ercc.Response.Response) 6359 if err != nil { 6360 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitConnectionsCreateOrUpdateFuture", "Result", ercc.Response.Response, "Failure responding to request") 6361 } 6362 } 6363 return 6364} 6365 6366// ExpressRouteCircuitConnectionsDeleteFuture an abstraction for monitoring and retrieving the results of a 6367// long-running operation. 6368type ExpressRouteCircuitConnectionsDeleteFuture struct { 6369 azure.Future 6370} 6371 6372// Result returns the result of the asynchronous operation. 6373// If the operation has not completed it will return an error. 6374func (future *ExpressRouteCircuitConnectionsDeleteFuture) Result(client ExpressRouteCircuitConnectionsClient) (ar autorest.Response, err error) { 6375 var done bool 6376 done, err = future.DoneWithContext(context.Background(), client) 6377 if err != nil { 6378 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitConnectionsDeleteFuture", "Result", future.Response(), "Polling failure") 6379 return 6380 } 6381 if !done { 6382 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitConnectionsDeleteFuture") 6383 return 6384 } 6385 ar.Response = future.Response() 6386 return 6387} 6388 6389// ExpressRouteCircuitListResult response for ListExpressRouteCircuit API service call. 6390type ExpressRouteCircuitListResult struct { 6391 autorest.Response `json:"-"` 6392 // Value - A list of ExpressRouteCircuits in a resource group. 6393 Value *[]ExpressRouteCircuit `json:"value,omitempty"` 6394 // NextLink - The URL to get the next set of results. 6395 NextLink *string `json:"nextLink,omitempty"` 6396} 6397 6398// ExpressRouteCircuitListResultIterator provides access to a complete listing of ExpressRouteCircuit 6399// values. 6400type ExpressRouteCircuitListResultIterator struct { 6401 i int 6402 page ExpressRouteCircuitListResultPage 6403} 6404 6405// NextWithContext advances to the next value. If there was an error making 6406// the request the iterator does not advance and the error is returned. 6407func (iter *ExpressRouteCircuitListResultIterator) NextWithContext(ctx context.Context) (err error) { 6408 if tracing.IsEnabled() { 6409 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCircuitListResultIterator.NextWithContext") 6410 defer func() { 6411 sc := -1 6412 if iter.Response().Response.Response != nil { 6413 sc = iter.Response().Response.Response.StatusCode 6414 } 6415 tracing.EndSpan(ctx, sc, err) 6416 }() 6417 } 6418 iter.i++ 6419 if iter.i < len(iter.page.Values()) { 6420 return nil 6421 } 6422 err = iter.page.NextWithContext(ctx) 6423 if err != nil { 6424 iter.i-- 6425 return err 6426 } 6427 iter.i = 0 6428 return nil 6429} 6430 6431// Next advances to the next value. If there was an error making 6432// the request the iterator does not advance and the error is returned. 6433// Deprecated: Use NextWithContext() instead. 6434func (iter *ExpressRouteCircuitListResultIterator) Next() error { 6435 return iter.NextWithContext(context.Background()) 6436} 6437 6438// NotDone returns true if the enumeration should be started or is not yet complete. 6439func (iter ExpressRouteCircuitListResultIterator) NotDone() bool { 6440 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 6441} 6442 6443// Response returns the raw server response from the last page request. 6444func (iter ExpressRouteCircuitListResultIterator) Response() ExpressRouteCircuitListResult { 6445 return iter.page.Response() 6446} 6447 6448// Value returns the current value or a zero-initialized value if the 6449// iterator has advanced beyond the end of the collection. 6450func (iter ExpressRouteCircuitListResultIterator) Value() ExpressRouteCircuit { 6451 if !iter.page.NotDone() { 6452 return ExpressRouteCircuit{} 6453 } 6454 return iter.page.Values()[iter.i] 6455} 6456 6457// Creates a new instance of the ExpressRouteCircuitListResultIterator type. 6458func NewExpressRouteCircuitListResultIterator(page ExpressRouteCircuitListResultPage) ExpressRouteCircuitListResultIterator { 6459 return ExpressRouteCircuitListResultIterator{page: page} 6460} 6461 6462// IsEmpty returns true if the ListResult contains no values. 6463func (erclr ExpressRouteCircuitListResult) IsEmpty() bool { 6464 return erclr.Value == nil || len(*erclr.Value) == 0 6465} 6466 6467// expressRouteCircuitListResultPreparer prepares a request to retrieve the next set of results. 6468// It returns nil if no more results exist. 6469func (erclr ExpressRouteCircuitListResult) expressRouteCircuitListResultPreparer(ctx context.Context) (*http.Request, error) { 6470 if erclr.NextLink == nil || len(to.String(erclr.NextLink)) < 1 { 6471 return nil, nil 6472 } 6473 return autorest.Prepare((&http.Request{}).WithContext(ctx), 6474 autorest.AsJSON(), 6475 autorest.AsGet(), 6476 autorest.WithBaseURL(to.String(erclr.NextLink))) 6477} 6478 6479// ExpressRouteCircuitListResultPage contains a page of ExpressRouteCircuit values. 6480type ExpressRouteCircuitListResultPage struct { 6481 fn func(context.Context, ExpressRouteCircuitListResult) (ExpressRouteCircuitListResult, error) 6482 erclr ExpressRouteCircuitListResult 6483} 6484 6485// NextWithContext advances to the next page of values. If there was an error making 6486// the request the page does not advance and the error is returned. 6487func (page *ExpressRouteCircuitListResultPage) NextWithContext(ctx context.Context) (err error) { 6488 if tracing.IsEnabled() { 6489 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCircuitListResultPage.NextWithContext") 6490 defer func() { 6491 sc := -1 6492 if page.Response().Response.Response != nil { 6493 sc = page.Response().Response.Response.StatusCode 6494 } 6495 tracing.EndSpan(ctx, sc, err) 6496 }() 6497 } 6498 next, err := page.fn(ctx, page.erclr) 6499 if err != nil { 6500 return err 6501 } 6502 page.erclr = next 6503 return nil 6504} 6505 6506// Next advances to the next page of values. If there was an error making 6507// the request the page does not advance and the error is returned. 6508// Deprecated: Use NextWithContext() instead. 6509func (page *ExpressRouteCircuitListResultPage) Next() error { 6510 return page.NextWithContext(context.Background()) 6511} 6512 6513// NotDone returns true if the page enumeration should be started or is not yet complete. 6514func (page ExpressRouteCircuitListResultPage) NotDone() bool { 6515 return !page.erclr.IsEmpty() 6516} 6517 6518// Response returns the raw server response from the last page request. 6519func (page ExpressRouteCircuitListResultPage) Response() ExpressRouteCircuitListResult { 6520 return page.erclr 6521} 6522 6523// Values returns the slice of values for the current page or nil if there are no values. 6524func (page ExpressRouteCircuitListResultPage) Values() []ExpressRouteCircuit { 6525 if page.erclr.IsEmpty() { 6526 return nil 6527 } 6528 return *page.erclr.Value 6529} 6530 6531// Creates a new instance of the ExpressRouteCircuitListResultPage type. 6532func NewExpressRouteCircuitListResultPage(getNextPage func(context.Context, ExpressRouteCircuitListResult) (ExpressRouteCircuitListResult, error)) ExpressRouteCircuitListResultPage { 6533 return ExpressRouteCircuitListResultPage{fn: getNextPage} 6534} 6535 6536// ExpressRouteCircuitPeering peering in an ExpressRouteCircuit resource. 6537type ExpressRouteCircuitPeering struct { 6538 autorest.Response `json:"-"` 6539 *ExpressRouteCircuitPeeringPropertiesFormat `json:"properties,omitempty"` 6540 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 6541 Name *string `json:"name,omitempty"` 6542 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 6543 Etag *string `json:"etag,omitempty"` 6544 // ID - Resource ID. 6545 ID *string `json:"id,omitempty"` 6546} 6547 6548// MarshalJSON is the custom marshaler for ExpressRouteCircuitPeering. 6549func (ercp ExpressRouteCircuitPeering) MarshalJSON() ([]byte, error) { 6550 objectMap := make(map[string]interface{}) 6551 if ercp.ExpressRouteCircuitPeeringPropertiesFormat != nil { 6552 objectMap["properties"] = ercp.ExpressRouteCircuitPeeringPropertiesFormat 6553 } 6554 if ercp.Name != nil { 6555 objectMap["name"] = ercp.Name 6556 } 6557 if ercp.ID != nil { 6558 objectMap["id"] = ercp.ID 6559 } 6560 return json.Marshal(objectMap) 6561} 6562 6563// UnmarshalJSON is the custom unmarshaler for ExpressRouteCircuitPeering struct. 6564func (ercp *ExpressRouteCircuitPeering) UnmarshalJSON(body []byte) error { 6565 var m map[string]*json.RawMessage 6566 err := json.Unmarshal(body, &m) 6567 if err != nil { 6568 return err 6569 } 6570 for k, v := range m { 6571 switch k { 6572 case "properties": 6573 if v != nil { 6574 var expressRouteCircuitPeeringPropertiesFormat ExpressRouteCircuitPeeringPropertiesFormat 6575 err = json.Unmarshal(*v, &expressRouteCircuitPeeringPropertiesFormat) 6576 if err != nil { 6577 return err 6578 } 6579 ercp.ExpressRouteCircuitPeeringPropertiesFormat = &expressRouteCircuitPeeringPropertiesFormat 6580 } 6581 case "name": 6582 if v != nil { 6583 var name string 6584 err = json.Unmarshal(*v, &name) 6585 if err != nil { 6586 return err 6587 } 6588 ercp.Name = &name 6589 } 6590 case "etag": 6591 if v != nil { 6592 var etag string 6593 err = json.Unmarshal(*v, &etag) 6594 if err != nil { 6595 return err 6596 } 6597 ercp.Etag = &etag 6598 } 6599 case "id": 6600 if v != nil { 6601 var ID string 6602 err = json.Unmarshal(*v, &ID) 6603 if err != nil { 6604 return err 6605 } 6606 ercp.ID = &ID 6607 } 6608 } 6609 } 6610 6611 return nil 6612} 6613 6614// ExpressRouteCircuitPeeringConfig specifies the peering configuration. 6615type ExpressRouteCircuitPeeringConfig struct { 6616 // AdvertisedPublicPrefixes - The reference of AdvertisedPublicPrefixes. 6617 AdvertisedPublicPrefixes *[]string `json:"advertisedPublicPrefixes,omitempty"` 6618 // AdvertisedCommunities - The communities of bgp peering. Specified for microsoft peering 6619 AdvertisedCommunities *[]string `json:"advertisedCommunities,omitempty"` 6620 // AdvertisedPublicPrefixesState - AdvertisedPublicPrefixState of the Peering resource. Possible values are 'NotConfigured', 'Configuring', 'Configured', and 'ValidationNeeded'. Possible values include: 'NotConfigured', 'Configuring', 'Configured', 'ValidationNeeded' 6621 AdvertisedPublicPrefixesState ExpressRouteCircuitPeeringAdvertisedPublicPrefixState `json:"advertisedPublicPrefixesState,omitempty"` 6622 // LegacyMode - The legacy mode of the peering. 6623 LegacyMode *int32 `json:"legacyMode,omitempty"` 6624 // CustomerASN - The CustomerASN of the peering. 6625 CustomerASN *int32 `json:"customerASN,omitempty"` 6626 // RoutingRegistryName - The RoutingRegistryName of the configuration. 6627 RoutingRegistryName *string `json:"routingRegistryName,omitempty"` 6628} 6629 6630// ExpressRouteCircuitPeeringListResult response for ListPeering API service call retrieves all peerings 6631// that belong to an ExpressRouteCircuit. 6632type ExpressRouteCircuitPeeringListResult struct { 6633 autorest.Response `json:"-"` 6634 // Value - The peerings in an express route circuit. 6635 Value *[]ExpressRouteCircuitPeering `json:"value,omitempty"` 6636 // NextLink - The URL to get the next set of results. 6637 NextLink *string `json:"nextLink,omitempty"` 6638} 6639 6640// ExpressRouteCircuitPeeringListResultIterator provides access to a complete listing of 6641// ExpressRouteCircuitPeering values. 6642type ExpressRouteCircuitPeeringListResultIterator struct { 6643 i int 6644 page ExpressRouteCircuitPeeringListResultPage 6645} 6646 6647// NextWithContext advances to the next value. If there was an error making 6648// the request the iterator does not advance and the error is returned. 6649func (iter *ExpressRouteCircuitPeeringListResultIterator) NextWithContext(ctx context.Context) (err error) { 6650 if tracing.IsEnabled() { 6651 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCircuitPeeringListResultIterator.NextWithContext") 6652 defer func() { 6653 sc := -1 6654 if iter.Response().Response.Response != nil { 6655 sc = iter.Response().Response.Response.StatusCode 6656 } 6657 tracing.EndSpan(ctx, sc, err) 6658 }() 6659 } 6660 iter.i++ 6661 if iter.i < len(iter.page.Values()) { 6662 return nil 6663 } 6664 err = iter.page.NextWithContext(ctx) 6665 if err != nil { 6666 iter.i-- 6667 return err 6668 } 6669 iter.i = 0 6670 return nil 6671} 6672 6673// Next advances to the next value. If there was an error making 6674// the request the iterator does not advance and the error is returned. 6675// Deprecated: Use NextWithContext() instead. 6676func (iter *ExpressRouteCircuitPeeringListResultIterator) Next() error { 6677 return iter.NextWithContext(context.Background()) 6678} 6679 6680// NotDone returns true if the enumeration should be started or is not yet complete. 6681func (iter ExpressRouteCircuitPeeringListResultIterator) NotDone() bool { 6682 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 6683} 6684 6685// Response returns the raw server response from the last page request. 6686func (iter ExpressRouteCircuitPeeringListResultIterator) Response() ExpressRouteCircuitPeeringListResult { 6687 return iter.page.Response() 6688} 6689 6690// Value returns the current value or a zero-initialized value if the 6691// iterator has advanced beyond the end of the collection. 6692func (iter ExpressRouteCircuitPeeringListResultIterator) Value() ExpressRouteCircuitPeering { 6693 if !iter.page.NotDone() { 6694 return ExpressRouteCircuitPeering{} 6695 } 6696 return iter.page.Values()[iter.i] 6697} 6698 6699// Creates a new instance of the ExpressRouteCircuitPeeringListResultIterator type. 6700func NewExpressRouteCircuitPeeringListResultIterator(page ExpressRouteCircuitPeeringListResultPage) ExpressRouteCircuitPeeringListResultIterator { 6701 return ExpressRouteCircuitPeeringListResultIterator{page: page} 6702} 6703 6704// IsEmpty returns true if the ListResult contains no values. 6705func (ercplr ExpressRouteCircuitPeeringListResult) IsEmpty() bool { 6706 return ercplr.Value == nil || len(*ercplr.Value) == 0 6707} 6708 6709// expressRouteCircuitPeeringListResultPreparer prepares a request to retrieve the next set of results. 6710// It returns nil if no more results exist. 6711func (ercplr ExpressRouteCircuitPeeringListResult) expressRouteCircuitPeeringListResultPreparer(ctx context.Context) (*http.Request, error) { 6712 if ercplr.NextLink == nil || len(to.String(ercplr.NextLink)) < 1 { 6713 return nil, nil 6714 } 6715 return autorest.Prepare((&http.Request{}).WithContext(ctx), 6716 autorest.AsJSON(), 6717 autorest.AsGet(), 6718 autorest.WithBaseURL(to.String(ercplr.NextLink))) 6719} 6720 6721// ExpressRouteCircuitPeeringListResultPage contains a page of ExpressRouteCircuitPeering values. 6722type ExpressRouteCircuitPeeringListResultPage struct { 6723 fn func(context.Context, ExpressRouteCircuitPeeringListResult) (ExpressRouteCircuitPeeringListResult, error) 6724 ercplr ExpressRouteCircuitPeeringListResult 6725} 6726 6727// NextWithContext advances to the next page of values. If there was an error making 6728// the request the page does not advance and the error is returned. 6729func (page *ExpressRouteCircuitPeeringListResultPage) NextWithContext(ctx context.Context) (err error) { 6730 if tracing.IsEnabled() { 6731 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCircuitPeeringListResultPage.NextWithContext") 6732 defer func() { 6733 sc := -1 6734 if page.Response().Response.Response != nil { 6735 sc = page.Response().Response.Response.StatusCode 6736 } 6737 tracing.EndSpan(ctx, sc, err) 6738 }() 6739 } 6740 next, err := page.fn(ctx, page.ercplr) 6741 if err != nil { 6742 return err 6743 } 6744 page.ercplr = next 6745 return nil 6746} 6747 6748// Next advances to the next page of values. If there was an error making 6749// the request the page does not advance and the error is returned. 6750// Deprecated: Use NextWithContext() instead. 6751func (page *ExpressRouteCircuitPeeringListResultPage) Next() error { 6752 return page.NextWithContext(context.Background()) 6753} 6754 6755// NotDone returns true if the page enumeration should be started or is not yet complete. 6756func (page ExpressRouteCircuitPeeringListResultPage) NotDone() bool { 6757 return !page.ercplr.IsEmpty() 6758} 6759 6760// Response returns the raw server response from the last page request. 6761func (page ExpressRouteCircuitPeeringListResultPage) Response() ExpressRouteCircuitPeeringListResult { 6762 return page.ercplr 6763} 6764 6765// Values returns the slice of values for the current page or nil if there are no values. 6766func (page ExpressRouteCircuitPeeringListResultPage) Values() []ExpressRouteCircuitPeering { 6767 if page.ercplr.IsEmpty() { 6768 return nil 6769 } 6770 return *page.ercplr.Value 6771} 6772 6773// Creates a new instance of the ExpressRouteCircuitPeeringListResultPage type. 6774func NewExpressRouteCircuitPeeringListResultPage(getNextPage func(context.Context, ExpressRouteCircuitPeeringListResult) (ExpressRouteCircuitPeeringListResult, error)) ExpressRouteCircuitPeeringListResultPage { 6775 return ExpressRouteCircuitPeeringListResultPage{fn: getNextPage} 6776} 6777 6778// ExpressRouteCircuitPeeringPropertiesFormat ... 6779type ExpressRouteCircuitPeeringPropertiesFormat struct { 6780 // PeeringType - The peering type. Possible values include: 'AzurePublicPeering', 'AzurePrivatePeering', 'MicrosoftPeering' 6781 PeeringType ExpressRoutePeeringType `json:"peeringType,omitempty"` 6782 // State - The peering state. Possible values include: 'ExpressRoutePeeringStateDisabled', 'ExpressRoutePeeringStateEnabled' 6783 State ExpressRoutePeeringState `json:"state,omitempty"` 6784 // AzureASN - The Azure ASN. 6785 AzureASN *int32 `json:"azureASN,omitempty"` 6786 // PeerASN - The peer ASN. 6787 PeerASN *int64 `json:"peerASN,omitempty"` 6788 // PrimaryPeerAddressPrefix - The primary address prefix. 6789 PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"` 6790 // SecondaryPeerAddressPrefix - The secondary address prefix. 6791 SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"` 6792 // PrimaryAzurePort - The primary port. 6793 PrimaryAzurePort *string `json:"primaryAzurePort,omitempty"` 6794 // SecondaryAzurePort - The secondary port. 6795 SecondaryAzurePort *string `json:"secondaryAzurePort,omitempty"` 6796 // SharedKey - The shared key. 6797 SharedKey *string `json:"sharedKey,omitempty"` 6798 // VlanID - The VLAN ID. 6799 VlanID *int32 `json:"vlanId,omitempty"` 6800 // MicrosoftPeeringConfig - The Microsoft peering configuration. 6801 MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"` 6802 // Stats - Gets peering stats. 6803 Stats *ExpressRouteCircuitStats `json:"stats,omitempty"` 6804 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 6805 ProvisioningState *string `json:"provisioningState,omitempty"` 6806 // GatewayManagerEtag - The GatewayManager Etag. 6807 GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"` 6808 // LastModifiedBy - Gets whether the provider or the customer last modified the peering. 6809 LastModifiedBy *string `json:"lastModifiedBy,omitempty"` 6810 // RouteFilter - The reference of the RouteFilter resource. 6811 RouteFilter *RouteFilter `json:"routeFilter,omitempty"` 6812 // Ipv6PeeringConfig - The IPv6 peering configuration. 6813 Ipv6PeeringConfig *Ipv6ExpressRouteCircuitPeeringConfig `json:"ipv6PeeringConfig,omitempty"` 6814 // Connections - The list of circuit connections associated with Azure Private Peering for this circuit. 6815 Connections *[]ExpressRouteCircuitConnection `json:"connections,omitempty"` 6816} 6817 6818// ExpressRouteCircuitPeeringsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results 6819// of a long-running operation. 6820type ExpressRouteCircuitPeeringsCreateOrUpdateFuture struct { 6821 azure.Future 6822} 6823 6824// Result returns the result of the asynchronous operation. 6825// If the operation has not completed it will return an error. 6826func (future *ExpressRouteCircuitPeeringsCreateOrUpdateFuture) Result(client ExpressRouteCircuitPeeringsClient) (ercp ExpressRouteCircuitPeering, err error) { 6827 var done bool 6828 done, err = future.DoneWithContext(context.Background(), client) 6829 if err != nil { 6830 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitPeeringsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 6831 return 6832 } 6833 if !done { 6834 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitPeeringsCreateOrUpdateFuture") 6835 return 6836 } 6837 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6838 if ercp.Response.Response, err = future.GetResult(sender); err == nil && ercp.Response.Response.StatusCode != http.StatusNoContent { 6839 ercp, err = client.CreateOrUpdateResponder(ercp.Response.Response) 6840 if err != nil { 6841 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitPeeringsCreateOrUpdateFuture", "Result", ercp.Response.Response, "Failure responding to request") 6842 } 6843 } 6844 return 6845} 6846 6847// ExpressRouteCircuitPeeringsDeleteFuture an abstraction for monitoring and retrieving the results of a 6848// long-running operation. 6849type ExpressRouteCircuitPeeringsDeleteFuture struct { 6850 azure.Future 6851} 6852 6853// Result returns the result of the asynchronous operation. 6854// If the operation has not completed it will return an error. 6855func (future *ExpressRouteCircuitPeeringsDeleteFuture) Result(client ExpressRouteCircuitPeeringsClient) (ar autorest.Response, err error) { 6856 var done bool 6857 done, err = future.DoneWithContext(context.Background(), client) 6858 if err != nil { 6859 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitPeeringsDeleteFuture", "Result", future.Response(), "Polling failure") 6860 return 6861 } 6862 if !done { 6863 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitPeeringsDeleteFuture") 6864 return 6865 } 6866 ar.Response = future.Response() 6867 return 6868} 6869 6870// ExpressRouteCircuitPropertiesFormat properties of ExpressRouteCircuit. 6871type ExpressRouteCircuitPropertiesFormat struct { 6872 // AllowClassicOperations - Allow classic operations 6873 AllowClassicOperations *bool `json:"allowClassicOperations,omitempty"` 6874 // CircuitProvisioningState - The CircuitProvisioningState state of the resource. 6875 CircuitProvisioningState *string `json:"circuitProvisioningState,omitempty"` 6876 // ServiceProviderProvisioningState - The ServiceProviderProvisioningState state of the resource. Possible values are 'NotProvisioned', 'Provisioning', 'Provisioned', and 'Deprovisioning'. Possible values include: 'NotProvisioned', 'Provisioning', 'Provisioned', 'Deprovisioning' 6877 ServiceProviderProvisioningState ServiceProviderProvisioningState `json:"serviceProviderProvisioningState,omitempty"` 6878 // Authorizations - The list of authorizations. 6879 Authorizations *[]ExpressRouteCircuitAuthorization `json:"authorizations,omitempty"` 6880 // Peerings - The list of peerings. 6881 Peerings *[]ExpressRouteCircuitPeering `json:"peerings,omitempty"` 6882 // ServiceKey - The ServiceKey. 6883 ServiceKey *string `json:"serviceKey,omitempty"` 6884 // ServiceProviderNotes - The ServiceProviderNotes. 6885 ServiceProviderNotes *string `json:"serviceProviderNotes,omitempty"` 6886 // ServiceProviderProperties - The ServiceProviderProperties. 6887 ServiceProviderProperties *ExpressRouteCircuitServiceProviderProperties `json:"serviceProviderProperties,omitempty"` 6888 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 6889 ProvisioningState *string `json:"provisioningState,omitempty"` 6890 // GatewayManagerEtag - The GatewayManager Etag. 6891 GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"` 6892} 6893 6894// ExpressRouteCircuitReference ... 6895type ExpressRouteCircuitReference struct { 6896 // ID - Corresponding Express Route Circuit Id. 6897 ID *string `json:"id,omitempty"` 6898} 6899 6900// ExpressRouteCircuitRoutesTable the routes table associated with the ExpressRouteCircuit 6901type ExpressRouteCircuitRoutesTable struct { 6902 // NetworkProperty - network 6903 NetworkProperty *string `json:"network,omitempty"` 6904 // NextHop - nextHop 6905 NextHop *string `json:"nextHop,omitempty"` 6906 // LocPrf - locPrf 6907 LocPrf *string `json:"locPrf,omitempty"` 6908 // Weight - weight. 6909 Weight *int32 `json:"weight,omitempty"` 6910 // Path - path 6911 Path *string `json:"path,omitempty"` 6912} 6913 6914// ExpressRouteCircuitRoutesTableSummary the routes table associated with the ExpressRouteCircuit. 6915type ExpressRouteCircuitRoutesTableSummary struct { 6916 // Neighbor - Neighbor 6917 Neighbor *string `json:"neighbor,omitempty"` 6918 // V - BGP version number spoken to the neighbor. 6919 V *int32 `json:"v,omitempty"` 6920 // As - Autonomous system number. 6921 As *int32 `json:"as,omitempty"` 6922 // UpDown - The length of time that the BGP session has been in the Established state, or the current status if not in the Established state. 6923 UpDown *string `json:"upDown,omitempty"` 6924 // StatePfxRcd - Current state of the BGP session, and the number of prefixes that have been received from a neighbor or peer group. 6925 StatePfxRcd *string `json:"statePfxRcd,omitempty"` 6926} 6927 6928// ExpressRouteCircuitsArpTableListResult response for ListArpTable associated with the Express Route 6929// Circuits API. 6930type ExpressRouteCircuitsArpTableListResult struct { 6931 autorest.Response `json:"-"` 6932 // Value - Gets list of the ARP table. 6933 Value *[]ExpressRouteCircuitArpTable `json:"value,omitempty"` 6934 // NextLink - The URL to get the next set of results. 6935 NextLink *string `json:"nextLink,omitempty"` 6936} 6937 6938// ExpressRouteCircuitsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 6939// long-running operation. 6940type ExpressRouteCircuitsCreateOrUpdateFuture struct { 6941 azure.Future 6942} 6943 6944// Result returns the result of the asynchronous operation. 6945// If the operation has not completed it will return an error. 6946func (future *ExpressRouteCircuitsCreateOrUpdateFuture) Result(client ExpressRouteCircuitsClient) (erc ExpressRouteCircuit, err error) { 6947 var done bool 6948 done, err = future.DoneWithContext(context.Background(), client) 6949 if err != nil { 6950 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 6951 return 6952 } 6953 if !done { 6954 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsCreateOrUpdateFuture") 6955 return 6956 } 6957 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6958 if erc.Response.Response, err = future.GetResult(sender); err == nil && erc.Response.Response.StatusCode != http.StatusNoContent { 6959 erc, err = client.CreateOrUpdateResponder(erc.Response.Response) 6960 if err != nil { 6961 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsCreateOrUpdateFuture", "Result", erc.Response.Response, "Failure responding to request") 6962 } 6963 } 6964 return 6965} 6966 6967// ExpressRouteCircuitsDeleteFuture an abstraction for monitoring and retrieving the results of a 6968// long-running operation. 6969type ExpressRouteCircuitsDeleteFuture struct { 6970 azure.Future 6971} 6972 6973// Result returns the result of the asynchronous operation. 6974// If the operation has not completed it will return an error. 6975func (future *ExpressRouteCircuitsDeleteFuture) Result(client ExpressRouteCircuitsClient) (ar autorest.Response, err error) { 6976 var done bool 6977 done, err = future.DoneWithContext(context.Background(), client) 6978 if err != nil { 6979 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsDeleteFuture", "Result", future.Response(), "Polling failure") 6980 return 6981 } 6982 if !done { 6983 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsDeleteFuture") 6984 return 6985 } 6986 ar.Response = future.Response() 6987 return 6988} 6989 6990// ExpressRouteCircuitServiceProviderProperties contains ServiceProviderProperties in an 6991// ExpressRouteCircuit. 6992type ExpressRouteCircuitServiceProviderProperties struct { 6993 // ServiceProviderName - The serviceProviderName. 6994 ServiceProviderName *string `json:"serviceProviderName,omitempty"` 6995 // PeeringLocation - The peering location. 6996 PeeringLocation *string `json:"peeringLocation,omitempty"` 6997 // BandwidthInMbps - The BandwidthInMbps. 6998 BandwidthInMbps *int32 `json:"bandwidthInMbps,omitempty"` 6999} 7000 7001// ExpressRouteCircuitSku contains SKU in an ExpressRouteCircuit. 7002type ExpressRouteCircuitSku struct { 7003 // Name - The name of the SKU. 7004 Name *string `json:"name,omitempty"` 7005 // Tier - The tier of the SKU. Possible values are 'Standard' and 'Premium'. Possible values include: 'ExpressRouteCircuitSkuTierStandard', 'ExpressRouteCircuitSkuTierPremium' 7006 Tier ExpressRouteCircuitSkuTier `json:"tier,omitempty"` 7007 // Family - The family of the SKU. Possible values are: 'UnlimitedData' and 'MeteredData'. Possible values include: 'UnlimitedData', 'MeteredData' 7008 Family ExpressRouteCircuitSkuFamily `json:"family,omitempty"` 7009} 7010 7011// ExpressRouteCircuitsListArpTableFuture an abstraction for monitoring and retrieving the results of a 7012// long-running operation. 7013type ExpressRouteCircuitsListArpTableFuture struct { 7014 azure.Future 7015} 7016 7017// Result returns the result of the asynchronous operation. 7018// If the operation has not completed it will return an error. 7019func (future *ExpressRouteCircuitsListArpTableFuture) Result(client ExpressRouteCircuitsClient) (ercatlr ExpressRouteCircuitsArpTableListResult, err error) { 7020 var done bool 7021 done, err = future.DoneWithContext(context.Background(), client) 7022 if err != nil { 7023 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListArpTableFuture", "Result", future.Response(), "Polling failure") 7024 return 7025 } 7026 if !done { 7027 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsListArpTableFuture") 7028 return 7029 } 7030 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7031 if ercatlr.Response.Response, err = future.GetResult(sender); err == nil && ercatlr.Response.Response.StatusCode != http.StatusNoContent { 7032 ercatlr, err = client.ListArpTableResponder(ercatlr.Response.Response) 7033 if err != nil { 7034 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListArpTableFuture", "Result", ercatlr.Response.Response, "Failure responding to request") 7035 } 7036 } 7037 return 7038} 7039 7040// ExpressRouteCircuitsListRoutesTableFuture an abstraction for monitoring and retrieving the results of a 7041// long-running operation. 7042type ExpressRouteCircuitsListRoutesTableFuture struct { 7043 azure.Future 7044} 7045 7046// Result returns the result of the asynchronous operation. 7047// If the operation has not completed it will return an error. 7048func (future *ExpressRouteCircuitsListRoutesTableFuture) Result(client ExpressRouteCircuitsClient) (ercrtlr ExpressRouteCircuitsRoutesTableListResult, err error) { 7049 var done bool 7050 done, err = future.DoneWithContext(context.Background(), client) 7051 if err != nil { 7052 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableFuture", "Result", future.Response(), "Polling failure") 7053 return 7054 } 7055 if !done { 7056 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsListRoutesTableFuture") 7057 return 7058 } 7059 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7060 if ercrtlr.Response.Response, err = future.GetResult(sender); err == nil && ercrtlr.Response.Response.StatusCode != http.StatusNoContent { 7061 ercrtlr, err = client.ListRoutesTableResponder(ercrtlr.Response.Response) 7062 if err != nil { 7063 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableFuture", "Result", ercrtlr.Response.Response, "Failure responding to request") 7064 } 7065 } 7066 return 7067} 7068 7069// ExpressRouteCircuitsListRoutesTableSummaryFuture an abstraction for monitoring and retrieving the 7070// results of a long-running operation. 7071type ExpressRouteCircuitsListRoutesTableSummaryFuture struct { 7072 azure.Future 7073} 7074 7075// Result returns the result of the asynchronous operation. 7076// If the operation has not completed it will return an error. 7077func (future *ExpressRouteCircuitsListRoutesTableSummaryFuture) Result(client ExpressRouteCircuitsClient) (ercrtslr ExpressRouteCircuitsRoutesTableSummaryListResult, err error) { 7078 var done bool 7079 done, err = future.DoneWithContext(context.Background(), client) 7080 if err != nil { 7081 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableSummaryFuture", "Result", future.Response(), "Polling failure") 7082 return 7083 } 7084 if !done { 7085 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsListRoutesTableSummaryFuture") 7086 return 7087 } 7088 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7089 if ercrtslr.Response.Response, err = future.GetResult(sender); err == nil && ercrtslr.Response.Response.StatusCode != http.StatusNoContent { 7090 ercrtslr, err = client.ListRoutesTableSummaryResponder(ercrtslr.Response.Response) 7091 if err != nil { 7092 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableSummaryFuture", "Result", ercrtslr.Response.Response, "Failure responding to request") 7093 } 7094 } 7095 return 7096} 7097 7098// ExpressRouteCircuitsRoutesTableListResult response for ListRoutesTable associated with the Express Route 7099// Circuits API. 7100type ExpressRouteCircuitsRoutesTableListResult struct { 7101 autorest.Response `json:"-"` 7102 // Value - The list of routes table. 7103 Value *[]ExpressRouteCircuitRoutesTable `json:"value,omitempty"` 7104 // NextLink - The URL to get the next set of results. 7105 NextLink *string `json:"nextLink,omitempty"` 7106} 7107 7108// ExpressRouteCircuitsRoutesTableSummaryListResult response for ListRoutesTable associated with the 7109// Express Route Circuits API. 7110type ExpressRouteCircuitsRoutesTableSummaryListResult struct { 7111 autorest.Response `json:"-"` 7112 // Value - A list of the routes table. 7113 Value *[]ExpressRouteCircuitRoutesTableSummary `json:"value,omitempty"` 7114 // NextLink - The URL to get the next set of results. 7115 NextLink *string `json:"nextLink,omitempty"` 7116} 7117 7118// ExpressRouteCircuitStats contains stats associated with the peering. 7119type ExpressRouteCircuitStats struct { 7120 autorest.Response `json:"-"` 7121 // PrimarybytesIn - Gets BytesIn of the peering. 7122 PrimarybytesIn *int64 `json:"primarybytesIn,omitempty"` 7123 // PrimarybytesOut - Gets BytesOut of the peering. 7124 PrimarybytesOut *int64 `json:"primarybytesOut,omitempty"` 7125 // SecondarybytesIn - Gets BytesIn of the peering. 7126 SecondarybytesIn *int64 `json:"secondarybytesIn,omitempty"` 7127 // SecondarybytesOut - Gets BytesOut of the peering. 7128 SecondarybytesOut *int64 `json:"secondarybytesOut,omitempty"` 7129} 7130 7131// ExpressRouteCircuitsUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 7132// long-running operation. 7133type ExpressRouteCircuitsUpdateTagsFuture struct { 7134 azure.Future 7135} 7136 7137// Result returns the result of the asynchronous operation. 7138// If the operation has not completed it will return an error. 7139func (future *ExpressRouteCircuitsUpdateTagsFuture) Result(client ExpressRouteCircuitsClient) (erc ExpressRouteCircuit, err error) { 7140 var done bool 7141 done, err = future.DoneWithContext(context.Background(), client) 7142 if err != nil { 7143 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsUpdateTagsFuture", "Result", future.Response(), "Polling failure") 7144 return 7145 } 7146 if !done { 7147 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsUpdateTagsFuture") 7148 return 7149 } 7150 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7151 if erc.Response.Response, err = future.GetResult(sender); err == nil && erc.Response.Response.StatusCode != http.StatusNoContent { 7152 erc, err = client.UpdateTagsResponder(erc.Response.Response) 7153 if err != nil { 7154 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsUpdateTagsFuture", "Result", erc.Response.Response, "Failure responding to request") 7155 } 7156 } 7157 return 7158} 7159 7160// ExpressRouteCrossConnection expressRouteCrossConnection resource 7161type ExpressRouteCrossConnection struct { 7162 autorest.Response `json:"-"` 7163 *ExpressRouteCrossConnectionProperties `json:"properties,omitempty"` 7164 // Etag - READ-ONLY; Gets a unique read-only string that changes whenever the resource is updated. 7165 Etag *string `json:"etag,omitempty"` 7166 // ID - Resource ID. 7167 ID *string `json:"id,omitempty"` 7168 // Name - READ-ONLY; Resource name. 7169 Name *string `json:"name,omitempty"` 7170 // Type - READ-ONLY; Resource type. 7171 Type *string `json:"type,omitempty"` 7172 // Location - Resource location. 7173 Location *string `json:"location,omitempty"` 7174 // Tags - Resource tags. 7175 Tags map[string]*string `json:"tags"` 7176} 7177 7178// MarshalJSON is the custom marshaler for ExpressRouteCrossConnection. 7179func (ercc ExpressRouteCrossConnection) MarshalJSON() ([]byte, error) { 7180 objectMap := make(map[string]interface{}) 7181 if ercc.ExpressRouteCrossConnectionProperties != nil { 7182 objectMap["properties"] = ercc.ExpressRouteCrossConnectionProperties 7183 } 7184 if ercc.ID != nil { 7185 objectMap["id"] = ercc.ID 7186 } 7187 if ercc.Location != nil { 7188 objectMap["location"] = ercc.Location 7189 } 7190 if ercc.Tags != nil { 7191 objectMap["tags"] = ercc.Tags 7192 } 7193 return json.Marshal(objectMap) 7194} 7195 7196// UnmarshalJSON is the custom unmarshaler for ExpressRouteCrossConnection struct. 7197func (ercc *ExpressRouteCrossConnection) UnmarshalJSON(body []byte) error { 7198 var m map[string]*json.RawMessage 7199 err := json.Unmarshal(body, &m) 7200 if err != nil { 7201 return err 7202 } 7203 for k, v := range m { 7204 switch k { 7205 case "properties": 7206 if v != nil { 7207 var expressRouteCrossConnectionProperties ExpressRouteCrossConnectionProperties 7208 err = json.Unmarshal(*v, &expressRouteCrossConnectionProperties) 7209 if err != nil { 7210 return err 7211 } 7212 ercc.ExpressRouteCrossConnectionProperties = &expressRouteCrossConnectionProperties 7213 } 7214 case "etag": 7215 if v != nil { 7216 var etag string 7217 err = json.Unmarshal(*v, &etag) 7218 if err != nil { 7219 return err 7220 } 7221 ercc.Etag = &etag 7222 } 7223 case "id": 7224 if v != nil { 7225 var ID string 7226 err = json.Unmarshal(*v, &ID) 7227 if err != nil { 7228 return err 7229 } 7230 ercc.ID = &ID 7231 } 7232 case "name": 7233 if v != nil { 7234 var name string 7235 err = json.Unmarshal(*v, &name) 7236 if err != nil { 7237 return err 7238 } 7239 ercc.Name = &name 7240 } 7241 case "type": 7242 if v != nil { 7243 var typeVar string 7244 err = json.Unmarshal(*v, &typeVar) 7245 if err != nil { 7246 return err 7247 } 7248 ercc.Type = &typeVar 7249 } 7250 case "location": 7251 if v != nil { 7252 var location string 7253 err = json.Unmarshal(*v, &location) 7254 if err != nil { 7255 return err 7256 } 7257 ercc.Location = &location 7258 } 7259 case "tags": 7260 if v != nil { 7261 var tags map[string]*string 7262 err = json.Unmarshal(*v, &tags) 7263 if err != nil { 7264 return err 7265 } 7266 ercc.Tags = tags 7267 } 7268 } 7269 } 7270 7271 return nil 7272} 7273 7274// ExpressRouteCrossConnectionListResult response for ListExpressRouteCrossConnection API service call. 7275type ExpressRouteCrossConnectionListResult struct { 7276 autorest.Response `json:"-"` 7277 // Value - A list of ExpressRouteCrossConnection resources. 7278 Value *[]ExpressRouteCrossConnection `json:"value,omitempty"` 7279 // NextLink - READ-ONLY; The URL to get the next set of results. 7280 NextLink *string `json:"nextLink,omitempty"` 7281} 7282 7283// ExpressRouteCrossConnectionListResultIterator provides access to a complete listing of 7284// ExpressRouteCrossConnection values. 7285type ExpressRouteCrossConnectionListResultIterator struct { 7286 i int 7287 page ExpressRouteCrossConnectionListResultPage 7288} 7289 7290// NextWithContext advances to the next value. If there was an error making 7291// the request the iterator does not advance and the error is returned. 7292func (iter *ExpressRouteCrossConnectionListResultIterator) NextWithContext(ctx context.Context) (err error) { 7293 if tracing.IsEnabled() { 7294 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCrossConnectionListResultIterator.NextWithContext") 7295 defer func() { 7296 sc := -1 7297 if iter.Response().Response.Response != nil { 7298 sc = iter.Response().Response.Response.StatusCode 7299 } 7300 tracing.EndSpan(ctx, sc, err) 7301 }() 7302 } 7303 iter.i++ 7304 if iter.i < len(iter.page.Values()) { 7305 return nil 7306 } 7307 err = iter.page.NextWithContext(ctx) 7308 if err != nil { 7309 iter.i-- 7310 return err 7311 } 7312 iter.i = 0 7313 return nil 7314} 7315 7316// Next advances to the next value. If there was an error making 7317// the request the iterator does not advance and the error is returned. 7318// Deprecated: Use NextWithContext() instead. 7319func (iter *ExpressRouteCrossConnectionListResultIterator) Next() error { 7320 return iter.NextWithContext(context.Background()) 7321} 7322 7323// NotDone returns true if the enumeration should be started or is not yet complete. 7324func (iter ExpressRouteCrossConnectionListResultIterator) NotDone() bool { 7325 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7326} 7327 7328// Response returns the raw server response from the last page request. 7329func (iter ExpressRouteCrossConnectionListResultIterator) Response() ExpressRouteCrossConnectionListResult { 7330 return iter.page.Response() 7331} 7332 7333// Value returns the current value or a zero-initialized value if the 7334// iterator has advanced beyond the end of the collection. 7335func (iter ExpressRouteCrossConnectionListResultIterator) Value() ExpressRouteCrossConnection { 7336 if !iter.page.NotDone() { 7337 return ExpressRouteCrossConnection{} 7338 } 7339 return iter.page.Values()[iter.i] 7340} 7341 7342// Creates a new instance of the ExpressRouteCrossConnectionListResultIterator type. 7343func NewExpressRouteCrossConnectionListResultIterator(page ExpressRouteCrossConnectionListResultPage) ExpressRouteCrossConnectionListResultIterator { 7344 return ExpressRouteCrossConnectionListResultIterator{page: page} 7345} 7346 7347// IsEmpty returns true if the ListResult contains no values. 7348func (ercclr ExpressRouteCrossConnectionListResult) IsEmpty() bool { 7349 return ercclr.Value == nil || len(*ercclr.Value) == 0 7350} 7351 7352// expressRouteCrossConnectionListResultPreparer prepares a request to retrieve the next set of results. 7353// It returns nil if no more results exist. 7354func (ercclr ExpressRouteCrossConnectionListResult) expressRouteCrossConnectionListResultPreparer(ctx context.Context) (*http.Request, error) { 7355 if ercclr.NextLink == nil || len(to.String(ercclr.NextLink)) < 1 { 7356 return nil, nil 7357 } 7358 return autorest.Prepare((&http.Request{}).WithContext(ctx), 7359 autorest.AsJSON(), 7360 autorest.AsGet(), 7361 autorest.WithBaseURL(to.String(ercclr.NextLink))) 7362} 7363 7364// ExpressRouteCrossConnectionListResultPage contains a page of ExpressRouteCrossConnection values. 7365type ExpressRouteCrossConnectionListResultPage struct { 7366 fn func(context.Context, ExpressRouteCrossConnectionListResult) (ExpressRouteCrossConnectionListResult, error) 7367 ercclr ExpressRouteCrossConnectionListResult 7368} 7369 7370// NextWithContext advances to the next page of values. If there was an error making 7371// the request the page does not advance and the error is returned. 7372func (page *ExpressRouteCrossConnectionListResultPage) NextWithContext(ctx context.Context) (err error) { 7373 if tracing.IsEnabled() { 7374 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCrossConnectionListResultPage.NextWithContext") 7375 defer func() { 7376 sc := -1 7377 if page.Response().Response.Response != nil { 7378 sc = page.Response().Response.Response.StatusCode 7379 } 7380 tracing.EndSpan(ctx, sc, err) 7381 }() 7382 } 7383 next, err := page.fn(ctx, page.ercclr) 7384 if err != nil { 7385 return err 7386 } 7387 page.ercclr = next 7388 return nil 7389} 7390 7391// Next advances to the next page of values. If there was an error making 7392// the request the page does not advance and the error is returned. 7393// Deprecated: Use NextWithContext() instead. 7394func (page *ExpressRouteCrossConnectionListResultPage) Next() error { 7395 return page.NextWithContext(context.Background()) 7396} 7397 7398// NotDone returns true if the page enumeration should be started or is not yet complete. 7399func (page ExpressRouteCrossConnectionListResultPage) NotDone() bool { 7400 return !page.ercclr.IsEmpty() 7401} 7402 7403// Response returns the raw server response from the last page request. 7404func (page ExpressRouteCrossConnectionListResultPage) Response() ExpressRouteCrossConnectionListResult { 7405 return page.ercclr 7406} 7407 7408// Values returns the slice of values for the current page or nil if there are no values. 7409func (page ExpressRouteCrossConnectionListResultPage) Values() []ExpressRouteCrossConnection { 7410 if page.ercclr.IsEmpty() { 7411 return nil 7412 } 7413 return *page.ercclr.Value 7414} 7415 7416// Creates a new instance of the ExpressRouteCrossConnectionListResultPage type. 7417func NewExpressRouteCrossConnectionListResultPage(getNextPage func(context.Context, ExpressRouteCrossConnectionListResult) (ExpressRouteCrossConnectionListResult, error)) ExpressRouteCrossConnectionListResultPage { 7418 return ExpressRouteCrossConnectionListResultPage{fn: getNextPage} 7419} 7420 7421// ExpressRouteCrossConnectionPeering peering in an ExpressRoute Cross Connection resource. 7422type ExpressRouteCrossConnectionPeering struct { 7423 autorest.Response `json:"-"` 7424 *ExpressRouteCrossConnectionPeeringProperties `json:"properties,omitempty"` 7425 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 7426 Name *string `json:"name,omitempty"` 7427 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 7428 Etag *string `json:"etag,omitempty"` 7429 // ID - Resource ID. 7430 ID *string `json:"id,omitempty"` 7431} 7432 7433// MarshalJSON is the custom marshaler for ExpressRouteCrossConnectionPeering. 7434func (erccp ExpressRouteCrossConnectionPeering) MarshalJSON() ([]byte, error) { 7435 objectMap := make(map[string]interface{}) 7436 if erccp.ExpressRouteCrossConnectionPeeringProperties != nil { 7437 objectMap["properties"] = erccp.ExpressRouteCrossConnectionPeeringProperties 7438 } 7439 if erccp.Name != nil { 7440 objectMap["name"] = erccp.Name 7441 } 7442 if erccp.ID != nil { 7443 objectMap["id"] = erccp.ID 7444 } 7445 return json.Marshal(objectMap) 7446} 7447 7448// UnmarshalJSON is the custom unmarshaler for ExpressRouteCrossConnectionPeering struct. 7449func (erccp *ExpressRouteCrossConnectionPeering) UnmarshalJSON(body []byte) error { 7450 var m map[string]*json.RawMessage 7451 err := json.Unmarshal(body, &m) 7452 if err != nil { 7453 return err 7454 } 7455 for k, v := range m { 7456 switch k { 7457 case "properties": 7458 if v != nil { 7459 var expressRouteCrossConnectionPeeringProperties ExpressRouteCrossConnectionPeeringProperties 7460 err = json.Unmarshal(*v, &expressRouteCrossConnectionPeeringProperties) 7461 if err != nil { 7462 return err 7463 } 7464 erccp.ExpressRouteCrossConnectionPeeringProperties = &expressRouteCrossConnectionPeeringProperties 7465 } 7466 case "name": 7467 if v != nil { 7468 var name string 7469 err = json.Unmarshal(*v, &name) 7470 if err != nil { 7471 return err 7472 } 7473 erccp.Name = &name 7474 } 7475 case "etag": 7476 if v != nil { 7477 var etag string 7478 err = json.Unmarshal(*v, &etag) 7479 if err != nil { 7480 return err 7481 } 7482 erccp.Etag = &etag 7483 } 7484 case "id": 7485 if v != nil { 7486 var ID string 7487 err = json.Unmarshal(*v, &ID) 7488 if err != nil { 7489 return err 7490 } 7491 erccp.ID = &ID 7492 } 7493 } 7494 } 7495 7496 return nil 7497} 7498 7499// ExpressRouteCrossConnectionPeeringList response for ListPeering API service call retrieves all peerings 7500// that belong to an ExpressRouteCrossConnection. 7501type ExpressRouteCrossConnectionPeeringList struct { 7502 autorest.Response `json:"-"` 7503 // Value - The peerings in an express route cross connection. 7504 Value *[]ExpressRouteCrossConnectionPeering `json:"value,omitempty"` 7505 // NextLink - READ-ONLY; The URL to get the next set of results. 7506 NextLink *string `json:"nextLink,omitempty"` 7507} 7508 7509// ExpressRouteCrossConnectionPeeringListIterator provides access to a complete listing of 7510// ExpressRouteCrossConnectionPeering values. 7511type ExpressRouteCrossConnectionPeeringListIterator struct { 7512 i int 7513 page ExpressRouteCrossConnectionPeeringListPage 7514} 7515 7516// NextWithContext advances to the next value. If there was an error making 7517// the request the iterator does not advance and the error is returned. 7518func (iter *ExpressRouteCrossConnectionPeeringListIterator) NextWithContext(ctx context.Context) (err error) { 7519 if tracing.IsEnabled() { 7520 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCrossConnectionPeeringListIterator.NextWithContext") 7521 defer func() { 7522 sc := -1 7523 if iter.Response().Response.Response != nil { 7524 sc = iter.Response().Response.Response.StatusCode 7525 } 7526 tracing.EndSpan(ctx, sc, err) 7527 }() 7528 } 7529 iter.i++ 7530 if iter.i < len(iter.page.Values()) { 7531 return nil 7532 } 7533 err = iter.page.NextWithContext(ctx) 7534 if err != nil { 7535 iter.i-- 7536 return err 7537 } 7538 iter.i = 0 7539 return nil 7540} 7541 7542// Next advances to the next value. If there was an error making 7543// the request the iterator does not advance and the error is returned. 7544// Deprecated: Use NextWithContext() instead. 7545func (iter *ExpressRouteCrossConnectionPeeringListIterator) Next() error { 7546 return iter.NextWithContext(context.Background()) 7547} 7548 7549// NotDone returns true if the enumeration should be started or is not yet complete. 7550func (iter ExpressRouteCrossConnectionPeeringListIterator) NotDone() bool { 7551 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7552} 7553 7554// Response returns the raw server response from the last page request. 7555func (iter ExpressRouteCrossConnectionPeeringListIterator) Response() ExpressRouteCrossConnectionPeeringList { 7556 return iter.page.Response() 7557} 7558 7559// Value returns the current value or a zero-initialized value if the 7560// iterator has advanced beyond the end of the collection. 7561func (iter ExpressRouteCrossConnectionPeeringListIterator) Value() ExpressRouteCrossConnectionPeering { 7562 if !iter.page.NotDone() { 7563 return ExpressRouteCrossConnectionPeering{} 7564 } 7565 return iter.page.Values()[iter.i] 7566} 7567 7568// Creates a new instance of the ExpressRouteCrossConnectionPeeringListIterator type. 7569func NewExpressRouteCrossConnectionPeeringListIterator(page ExpressRouteCrossConnectionPeeringListPage) ExpressRouteCrossConnectionPeeringListIterator { 7570 return ExpressRouteCrossConnectionPeeringListIterator{page: page} 7571} 7572 7573// IsEmpty returns true if the ListResult contains no values. 7574func (erccpl ExpressRouteCrossConnectionPeeringList) IsEmpty() bool { 7575 return erccpl.Value == nil || len(*erccpl.Value) == 0 7576} 7577 7578// expressRouteCrossConnectionPeeringListPreparer prepares a request to retrieve the next set of results. 7579// It returns nil if no more results exist. 7580func (erccpl ExpressRouteCrossConnectionPeeringList) expressRouteCrossConnectionPeeringListPreparer(ctx context.Context) (*http.Request, error) { 7581 if erccpl.NextLink == nil || len(to.String(erccpl.NextLink)) < 1 { 7582 return nil, nil 7583 } 7584 return autorest.Prepare((&http.Request{}).WithContext(ctx), 7585 autorest.AsJSON(), 7586 autorest.AsGet(), 7587 autorest.WithBaseURL(to.String(erccpl.NextLink))) 7588} 7589 7590// ExpressRouteCrossConnectionPeeringListPage contains a page of ExpressRouteCrossConnectionPeering values. 7591type ExpressRouteCrossConnectionPeeringListPage struct { 7592 fn func(context.Context, ExpressRouteCrossConnectionPeeringList) (ExpressRouteCrossConnectionPeeringList, error) 7593 erccpl ExpressRouteCrossConnectionPeeringList 7594} 7595 7596// NextWithContext advances to the next page of values. If there was an error making 7597// the request the page does not advance and the error is returned. 7598func (page *ExpressRouteCrossConnectionPeeringListPage) NextWithContext(ctx context.Context) (err error) { 7599 if tracing.IsEnabled() { 7600 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteCrossConnectionPeeringListPage.NextWithContext") 7601 defer func() { 7602 sc := -1 7603 if page.Response().Response.Response != nil { 7604 sc = page.Response().Response.Response.StatusCode 7605 } 7606 tracing.EndSpan(ctx, sc, err) 7607 }() 7608 } 7609 next, err := page.fn(ctx, page.erccpl) 7610 if err != nil { 7611 return err 7612 } 7613 page.erccpl = next 7614 return nil 7615} 7616 7617// Next advances to the next page of values. If there was an error making 7618// the request the page does not advance and the error is returned. 7619// Deprecated: Use NextWithContext() instead. 7620func (page *ExpressRouteCrossConnectionPeeringListPage) Next() error { 7621 return page.NextWithContext(context.Background()) 7622} 7623 7624// NotDone returns true if the page enumeration should be started or is not yet complete. 7625func (page ExpressRouteCrossConnectionPeeringListPage) NotDone() bool { 7626 return !page.erccpl.IsEmpty() 7627} 7628 7629// Response returns the raw server response from the last page request. 7630func (page ExpressRouteCrossConnectionPeeringListPage) Response() ExpressRouteCrossConnectionPeeringList { 7631 return page.erccpl 7632} 7633 7634// Values returns the slice of values for the current page or nil if there are no values. 7635func (page ExpressRouteCrossConnectionPeeringListPage) Values() []ExpressRouteCrossConnectionPeering { 7636 if page.erccpl.IsEmpty() { 7637 return nil 7638 } 7639 return *page.erccpl.Value 7640} 7641 7642// Creates a new instance of the ExpressRouteCrossConnectionPeeringListPage type. 7643func NewExpressRouteCrossConnectionPeeringListPage(getNextPage func(context.Context, ExpressRouteCrossConnectionPeeringList) (ExpressRouteCrossConnectionPeeringList, error)) ExpressRouteCrossConnectionPeeringListPage { 7644 return ExpressRouteCrossConnectionPeeringListPage{fn: getNextPage} 7645} 7646 7647// ExpressRouteCrossConnectionPeeringProperties ... 7648type ExpressRouteCrossConnectionPeeringProperties struct { 7649 // PeeringType - The peering type. Possible values include: 'AzurePublicPeering', 'AzurePrivatePeering', 'MicrosoftPeering' 7650 PeeringType ExpressRoutePeeringType `json:"peeringType,omitempty"` 7651 // State - The peering state. Possible values include: 'ExpressRoutePeeringStateDisabled', 'ExpressRoutePeeringStateEnabled' 7652 State ExpressRoutePeeringState `json:"state,omitempty"` 7653 // AzureASN - READ-ONLY; The Azure ASN. 7654 AzureASN *int32 `json:"azureASN,omitempty"` 7655 // PeerASN - The peer ASN. 7656 PeerASN *int64 `json:"peerASN,omitempty"` 7657 // PrimaryPeerAddressPrefix - The primary address prefix. 7658 PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"` 7659 // SecondaryPeerAddressPrefix - The secondary address prefix. 7660 SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"` 7661 // PrimaryAzurePort - READ-ONLY; The primary port. 7662 PrimaryAzurePort *string `json:"primaryAzurePort,omitempty"` 7663 // SecondaryAzurePort - READ-ONLY; The secondary port. 7664 SecondaryAzurePort *string `json:"secondaryAzurePort,omitempty"` 7665 // SharedKey - The shared key. 7666 SharedKey *string `json:"sharedKey,omitempty"` 7667 // VlanID - The VLAN ID. 7668 VlanID *int32 `json:"vlanId,omitempty"` 7669 // MicrosoftPeeringConfig - The Microsoft peering configuration. 7670 MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"` 7671 // ProvisioningState - READ-ONLY; Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 7672 ProvisioningState *string `json:"provisioningState,omitempty"` 7673 // GatewayManagerEtag - The GatewayManager Etag. 7674 GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"` 7675 // LastModifiedBy - Gets whether the provider or the customer last modified the peering. 7676 LastModifiedBy *string `json:"lastModifiedBy,omitempty"` 7677 // Ipv6PeeringConfig - The IPv6 peering configuration. 7678 Ipv6PeeringConfig *Ipv6ExpressRouteCircuitPeeringConfig `json:"ipv6PeeringConfig,omitempty"` 7679} 7680 7681// ExpressRouteCrossConnectionPeeringsCreateOrUpdateFuture an abstraction for monitoring and retrieving the 7682// results of a long-running operation. 7683type ExpressRouteCrossConnectionPeeringsCreateOrUpdateFuture struct { 7684 azure.Future 7685} 7686 7687// Result returns the result of the asynchronous operation. 7688// If the operation has not completed it will return an error. 7689func (future *ExpressRouteCrossConnectionPeeringsCreateOrUpdateFuture) Result(client ExpressRouteCrossConnectionPeeringsClient) (erccp ExpressRouteCrossConnectionPeering, err error) { 7690 var done bool 7691 done, err = future.DoneWithContext(context.Background(), client) 7692 if err != nil { 7693 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionPeeringsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 7694 return 7695 } 7696 if !done { 7697 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCrossConnectionPeeringsCreateOrUpdateFuture") 7698 return 7699 } 7700 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7701 if erccp.Response.Response, err = future.GetResult(sender); err == nil && erccp.Response.Response.StatusCode != http.StatusNoContent { 7702 erccp, err = client.CreateOrUpdateResponder(erccp.Response.Response) 7703 if err != nil { 7704 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionPeeringsCreateOrUpdateFuture", "Result", erccp.Response.Response, "Failure responding to request") 7705 } 7706 } 7707 return 7708} 7709 7710// ExpressRouteCrossConnectionPeeringsDeleteFuture an abstraction for monitoring and retrieving the results 7711// of a long-running operation. 7712type ExpressRouteCrossConnectionPeeringsDeleteFuture struct { 7713 azure.Future 7714} 7715 7716// Result returns the result of the asynchronous operation. 7717// If the operation has not completed it will return an error. 7718func (future *ExpressRouteCrossConnectionPeeringsDeleteFuture) Result(client ExpressRouteCrossConnectionPeeringsClient) (ar autorest.Response, err error) { 7719 var done bool 7720 done, err = future.DoneWithContext(context.Background(), client) 7721 if err != nil { 7722 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionPeeringsDeleteFuture", "Result", future.Response(), "Polling failure") 7723 return 7724 } 7725 if !done { 7726 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCrossConnectionPeeringsDeleteFuture") 7727 return 7728 } 7729 ar.Response = future.Response() 7730 return 7731} 7732 7733// ExpressRouteCrossConnectionProperties properties of ExpressRouteCrossConnection. 7734type ExpressRouteCrossConnectionProperties struct { 7735 // PrimaryAzurePort - READ-ONLY; The name of the primary port. 7736 PrimaryAzurePort *string `json:"primaryAzurePort,omitempty"` 7737 // SecondaryAzurePort - READ-ONLY; The name of the secondary port. 7738 SecondaryAzurePort *string `json:"secondaryAzurePort,omitempty"` 7739 // STag - READ-ONLY; The identifier of the circuit traffic. 7740 STag *int32 `json:"sTag,omitempty"` 7741 // PeeringLocation - The peering location of the ExpressRoute circuit. 7742 PeeringLocation *string `json:"peeringLocation,omitempty"` 7743 // BandwidthInMbps - The circuit bandwidth In Mbps. 7744 BandwidthInMbps *int32 `json:"bandwidthInMbps,omitempty"` 7745 // ExpressRouteCircuit - The ExpressRouteCircuit 7746 ExpressRouteCircuit *ExpressRouteCircuitReference `json:"expressRouteCircuit,omitempty"` 7747 // ServiceProviderProvisioningState - The provisioning state of the circuit in the connectivity provider system. Possible values are 'NotProvisioned', 'Provisioning', 'Provisioned'. Possible values include: 'NotProvisioned', 'Provisioning', 'Provisioned', 'Deprovisioning' 7748 ServiceProviderProvisioningState ServiceProviderProvisioningState `json:"serviceProviderProvisioningState,omitempty"` 7749 // ServiceProviderNotes - Additional read only notes set by the connectivity provider. 7750 ServiceProviderNotes *string `json:"serviceProviderNotes,omitempty"` 7751 // ProvisioningState - READ-ONLY; Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 7752 ProvisioningState *string `json:"provisioningState,omitempty"` 7753 // Peerings - The list of peerings. 7754 Peerings *[]ExpressRouteCrossConnectionPeering `json:"peerings,omitempty"` 7755} 7756 7757// ExpressRouteCrossConnectionRoutesTableSummary the routes table associated with the ExpressRouteCircuit. 7758type ExpressRouteCrossConnectionRoutesTableSummary struct { 7759 // Neighbor - IP address of Neighbor router 7760 Neighbor *string `json:"neighbor,omitempty"` 7761 // Asn - Autonomous system number. 7762 Asn *int32 `json:"asn,omitempty"` 7763 // UpDown - The length of time that the BGP session has been in the Established state, or the current status if not in the Established state. 7764 UpDown *string `json:"upDown,omitempty"` 7765 // StateOrPrefixesReceived - Current state of the BGP session, and the number of prefixes that have been received from a neighbor or peer group. 7766 StateOrPrefixesReceived *string `json:"stateOrPrefixesReceived,omitempty"` 7767} 7768 7769// ExpressRouteCrossConnectionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the 7770// results of a long-running operation. 7771type ExpressRouteCrossConnectionsCreateOrUpdateFuture struct { 7772 azure.Future 7773} 7774 7775// Result returns the result of the asynchronous operation. 7776// If the operation has not completed it will return an error. 7777func (future *ExpressRouteCrossConnectionsCreateOrUpdateFuture) Result(client ExpressRouteCrossConnectionsClient) (ercc ExpressRouteCrossConnection, err error) { 7778 var done bool 7779 done, err = future.DoneWithContext(context.Background(), client) 7780 if err != nil { 7781 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 7782 return 7783 } 7784 if !done { 7785 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCrossConnectionsCreateOrUpdateFuture") 7786 return 7787 } 7788 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7789 if ercc.Response.Response, err = future.GetResult(sender); err == nil && ercc.Response.Response.StatusCode != http.StatusNoContent { 7790 ercc, err = client.CreateOrUpdateResponder(ercc.Response.Response) 7791 if err != nil { 7792 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsCreateOrUpdateFuture", "Result", ercc.Response.Response, "Failure responding to request") 7793 } 7794 } 7795 return 7796} 7797 7798// ExpressRouteCrossConnectionsListArpTableFuture an abstraction for monitoring and retrieving the results 7799// of a long-running operation. 7800type ExpressRouteCrossConnectionsListArpTableFuture struct { 7801 azure.Future 7802} 7803 7804// Result returns the result of the asynchronous operation. 7805// If the operation has not completed it will return an error. 7806func (future *ExpressRouteCrossConnectionsListArpTableFuture) Result(client ExpressRouteCrossConnectionsClient) (ercatlr ExpressRouteCircuitsArpTableListResult, err error) { 7807 var done bool 7808 done, err = future.DoneWithContext(context.Background(), client) 7809 if err != nil { 7810 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsListArpTableFuture", "Result", future.Response(), "Polling failure") 7811 return 7812 } 7813 if !done { 7814 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCrossConnectionsListArpTableFuture") 7815 return 7816 } 7817 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7818 if ercatlr.Response.Response, err = future.GetResult(sender); err == nil && ercatlr.Response.Response.StatusCode != http.StatusNoContent { 7819 ercatlr, err = client.ListArpTableResponder(ercatlr.Response.Response) 7820 if err != nil { 7821 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsListArpTableFuture", "Result", ercatlr.Response.Response, "Failure responding to request") 7822 } 7823 } 7824 return 7825} 7826 7827// ExpressRouteCrossConnectionsListRoutesTableFuture an abstraction for monitoring and retrieving the 7828// results of a long-running operation. 7829type ExpressRouteCrossConnectionsListRoutesTableFuture struct { 7830 azure.Future 7831} 7832 7833// Result returns the result of the asynchronous operation. 7834// If the operation has not completed it will return an error. 7835func (future *ExpressRouteCrossConnectionsListRoutesTableFuture) Result(client ExpressRouteCrossConnectionsClient) (ercrtlr ExpressRouteCircuitsRoutesTableListResult, err error) { 7836 var done bool 7837 done, err = future.DoneWithContext(context.Background(), client) 7838 if err != nil { 7839 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsListRoutesTableFuture", "Result", future.Response(), "Polling failure") 7840 return 7841 } 7842 if !done { 7843 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCrossConnectionsListRoutesTableFuture") 7844 return 7845 } 7846 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7847 if ercrtlr.Response.Response, err = future.GetResult(sender); err == nil && ercrtlr.Response.Response.StatusCode != http.StatusNoContent { 7848 ercrtlr, err = client.ListRoutesTableResponder(ercrtlr.Response.Response) 7849 if err != nil { 7850 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsListRoutesTableFuture", "Result", ercrtlr.Response.Response, "Failure responding to request") 7851 } 7852 } 7853 return 7854} 7855 7856// ExpressRouteCrossConnectionsListRoutesTableSummaryFuture an abstraction for monitoring and retrieving 7857// the results of a long-running operation. 7858type ExpressRouteCrossConnectionsListRoutesTableSummaryFuture struct { 7859 azure.Future 7860} 7861 7862// Result returns the result of the asynchronous operation. 7863// If the operation has not completed it will return an error. 7864func (future *ExpressRouteCrossConnectionsListRoutesTableSummaryFuture) Result(client ExpressRouteCrossConnectionsClient) (erccrtslr ExpressRouteCrossConnectionsRoutesTableSummaryListResult, err error) { 7865 var done bool 7866 done, err = future.DoneWithContext(context.Background(), client) 7867 if err != nil { 7868 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsListRoutesTableSummaryFuture", "Result", future.Response(), "Polling failure") 7869 return 7870 } 7871 if !done { 7872 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCrossConnectionsListRoutesTableSummaryFuture") 7873 return 7874 } 7875 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7876 if erccrtslr.Response.Response, err = future.GetResult(sender); err == nil && erccrtslr.Response.Response.StatusCode != http.StatusNoContent { 7877 erccrtslr, err = client.ListRoutesTableSummaryResponder(erccrtslr.Response.Response) 7878 if err != nil { 7879 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsListRoutesTableSummaryFuture", "Result", erccrtslr.Response.Response, "Failure responding to request") 7880 } 7881 } 7882 return 7883} 7884 7885// ExpressRouteCrossConnectionsRoutesTableSummaryListResult response for ListRoutesTable associated with 7886// the Express Route Cross Connections. 7887type ExpressRouteCrossConnectionsRoutesTableSummaryListResult struct { 7888 autorest.Response `json:"-"` 7889 // Value - A list of the routes table. 7890 Value *[]ExpressRouteCrossConnectionRoutesTableSummary `json:"value,omitempty"` 7891 // NextLink - READ-ONLY; The URL to get the next set of results. 7892 NextLink *string `json:"nextLink,omitempty"` 7893} 7894 7895// ExpressRouteCrossConnectionsUpdateTagsFuture an abstraction for monitoring and retrieving the results of 7896// a long-running operation. 7897type ExpressRouteCrossConnectionsUpdateTagsFuture struct { 7898 azure.Future 7899} 7900 7901// Result returns the result of the asynchronous operation. 7902// If the operation has not completed it will return an error. 7903func (future *ExpressRouteCrossConnectionsUpdateTagsFuture) Result(client ExpressRouteCrossConnectionsClient) (ercc ExpressRouteCrossConnection, err error) { 7904 var done bool 7905 done, err = future.DoneWithContext(context.Background(), client) 7906 if err != nil { 7907 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsUpdateTagsFuture", "Result", future.Response(), "Polling failure") 7908 return 7909 } 7910 if !done { 7911 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCrossConnectionsUpdateTagsFuture") 7912 return 7913 } 7914 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7915 if ercc.Response.Response, err = future.GetResult(sender); err == nil && ercc.Response.Response.StatusCode != http.StatusNoContent { 7916 ercc, err = client.UpdateTagsResponder(ercc.Response.Response) 7917 if err != nil { 7918 err = autorest.NewErrorWithError(err, "network.ExpressRouteCrossConnectionsUpdateTagsFuture", "Result", ercc.Response.Response, "Failure responding to request") 7919 } 7920 } 7921 return 7922} 7923 7924// ExpressRouteServiceProvider a ExpressRouteResourceProvider object. 7925type ExpressRouteServiceProvider struct { 7926 *ExpressRouteServiceProviderPropertiesFormat `json:"properties,omitempty"` 7927 // ID - Resource ID. 7928 ID *string `json:"id,omitempty"` 7929 // Name - READ-ONLY; Resource name. 7930 Name *string `json:"name,omitempty"` 7931 // Type - READ-ONLY; Resource type. 7932 Type *string `json:"type,omitempty"` 7933 // Location - Resource location. 7934 Location *string `json:"location,omitempty"` 7935 // Tags - Resource tags. 7936 Tags map[string]*string `json:"tags"` 7937} 7938 7939// MarshalJSON is the custom marshaler for ExpressRouteServiceProvider. 7940func (ersp ExpressRouteServiceProvider) MarshalJSON() ([]byte, error) { 7941 objectMap := make(map[string]interface{}) 7942 if ersp.ExpressRouteServiceProviderPropertiesFormat != nil { 7943 objectMap["properties"] = ersp.ExpressRouteServiceProviderPropertiesFormat 7944 } 7945 if ersp.ID != nil { 7946 objectMap["id"] = ersp.ID 7947 } 7948 if ersp.Location != nil { 7949 objectMap["location"] = ersp.Location 7950 } 7951 if ersp.Tags != nil { 7952 objectMap["tags"] = ersp.Tags 7953 } 7954 return json.Marshal(objectMap) 7955} 7956 7957// UnmarshalJSON is the custom unmarshaler for ExpressRouteServiceProvider struct. 7958func (ersp *ExpressRouteServiceProvider) UnmarshalJSON(body []byte) error { 7959 var m map[string]*json.RawMessage 7960 err := json.Unmarshal(body, &m) 7961 if err != nil { 7962 return err 7963 } 7964 for k, v := range m { 7965 switch k { 7966 case "properties": 7967 if v != nil { 7968 var expressRouteServiceProviderPropertiesFormat ExpressRouteServiceProviderPropertiesFormat 7969 err = json.Unmarshal(*v, &expressRouteServiceProviderPropertiesFormat) 7970 if err != nil { 7971 return err 7972 } 7973 ersp.ExpressRouteServiceProviderPropertiesFormat = &expressRouteServiceProviderPropertiesFormat 7974 } 7975 case "id": 7976 if v != nil { 7977 var ID string 7978 err = json.Unmarshal(*v, &ID) 7979 if err != nil { 7980 return err 7981 } 7982 ersp.ID = &ID 7983 } 7984 case "name": 7985 if v != nil { 7986 var name string 7987 err = json.Unmarshal(*v, &name) 7988 if err != nil { 7989 return err 7990 } 7991 ersp.Name = &name 7992 } 7993 case "type": 7994 if v != nil { 7995 var typeVar string 7996 err = json.Unmarshal(*v, &typeVar) 7997 if err != nil { 7998 return err 7999 } 8000 ersp.Type = &typeVar 8001 } 8002 case "location": 8003 if v != nil { 8004 var location string 8005 err = json.Unmarshal(*v, &location) 8006 if err != nil { 8007 return err 8008 } 8009 ersp.Location = &location 8010 } 8011 case "tags": 8012 if v != nil { 8013 var tags map[string]*string 8014 err = json.Unmarshal(*v, &tags) 8015 if err != nil { 8016 return err 8017 } 8018 ersp.Tags = tags 8019 } 8020 } 8021 } 8022 8023 return nil 8024} 8025 8026// ExpressRouteServiceProviderBandwidthsOffered contains bandwidths offered in ExpressRouteServiceProvider 8027// resources. 8028type ExpressRouteServiceProviderBandwidthsOffered struct { 8029 // OfferName - The OfferName. 8030 OfferName *string `json:"offerName,omitempty"` 8031 // ValueInMbps - The ValueInMbps. 8032 ValueInMbps *int32 `json:"valueInMbps,omitempty"` 8033} 8034 8035// ExpressRouteServiceProviderListResult response for the ListExpressRouteServiceProvider API service call. 8036type ExpressRouteServiceProviderListResult struct { 8037 autorest.Response `json:"-"` 8038 // Value - A list of ExpressRouteResourceProvider resources. 8039 Value *[]ExpressRouteServiceProvider `json:"value,omitempty"` 8040 // NextLink - The URL to get the next set of results. 8041 NextLink *string `json:"nextLink,omitempty"` 8042} 8043 8044// ExpressRouteServiceProviderListResultIterator provides access to a complete listing of 8045// ExpressRouteServiceProvider values. 8046type ExpressRouteServiceProviderListResultIterator struct { 8047 i int 8048 page ExpressRouteServiceProviderListResultPage 8049} 8050 8051// NextWithContext advances to the next value. If there was an error making 8052// the request the iterator does not advance and the error is returned. 8053func (iter *ExpressRouteServiceProviderListResultIterator) NextWithContext(ctx context.Context) (err error) { 8054 if tracing.IsEnabled() { 8055 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteServiceProviderListResultIterator.NextWithContext") 8056 defer func() { 8057 sc := -1 8058 if iter.Response().Response.Response != nil { 8059 sc = iter.Response().Response.Response.StatusCode 8060 } 8061 tracing.EndSpan(ctx, sc, err) 8062 }() 8063 } 8064 iter.i++ 8065 if iter.i < len(iter.page.Values()) { 8066 return nil 8067 } 8068 err = iter.page.NextWithContext(ctx) 8069 if err != nil { 8070 iter.i-- 8071 return err 8072 } 8073 iter.i = 0 8074 return nil 8075} 8076 8077// Next advances to the next value. If there was an error making 8078// the request the iterator does not advance and the error is returned. 8079// Deprecated: Use NextWithContext() instead. 8080func (iter *ExpressRouteServiceProviderListResultIterator) Next() error { 8081 return iter.NextWithContext(context.Background()) 8082} 8083 8084// NotDone returns true if the enumeration should be started or is not yet complete. 8085func (iter ExpressRouteServiceProviderListResultIterator) NotDone() bool { 8086 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8087} 8088 8089// Response returns the raw server response from the last page request. 8090func (iter ExpressRouteServiceProviderListResultIterator) Response() ExpressRouteServiceProviderListResult { 8091 return iter.page.Response() 8092} 8093 8094// Value returns the current value or a zero-initialized value if the 8095// iterator has advanced beyond the end of the collection. 8096func (iter ExpressRouteServiceProviderListResultIterator) Value() ExpressRouteServiceProvider { 8097 if !iter.page.NotDone() { 8098 return ExpressRouteServiceProvider{} 8099 } 8100 return iter.page.Values()[iter.i] 8101} 8102 8103// Creates a new instance of the ExpressRouteServiceProviderListResultIterator type. 8104func NewExpressRouteServiceProviderListResultIterator(page ExpressRouteServiceProviderListResultPage) ExpressRouteServiceProviderListResultIterator { 8105 return ExpressRouteServiceProviderListResultIterator{page: page} 8106} 8107 8108// IsEmpty returns true if the ListResult contains no values. 8109func (ersplr ExpressRouteServiceProviderListResult) IsEmpty() bool { 8110 return ersplr.Value == nil || len(*ersplr.Value) == 0 8111} 8112 8113// expressRouteServiceProviderListResultPreparer prepares a request to retrieve the next set of results. 8114// It returns nil if no more results exist. 8115func (ersplr ExpressRouteServiceProviderListResult) expressRouteServiceProviderListResultPreparer(ctx context.Context) (*http.Request, error) { 8116 if ersplr.NextLink == nil || len(to.String(ersplr.NextLink)) < 1 { 8117 return nil, nil 8118 } 8119 return autorest.Prepare((&http.Request{}).WithContext(ctx), 8120 autorest.AsJSON(), 8121 autorest.AsGet(), 8122 autorest.WithBaseURL(to.String(ersplr.NextLink))) 8123} 8124 8125// ExpressRouteServiceProviderListResultPage contains a page of ExpressRouteServiceProvider values. 8126type ExpressRouteServiceProviderListResultPage struct { 8127 fn func(context.Context, ExpressRouteServiceProviderListResult) (ExpressRouteServiceProviderListResult, error) 8128 ersplr ExpressRouteServiceProviderListResult 8129} 8130 8131// NextWithContext advances to the next page of values. If there was an error making 8132// the request the page does not advance and the error is returned. 8133func (page *ExpressRouteServiceProviderListResultPage) NextWithContext(ctx context.Context) (err error) { 8134 if tracing.IsEnabled() { 8135 ctx = tracing.StartSpan(ctx, fqdn+"/ExpressRouteServiceProviderListResultPage.NextWithContext") 8136 defer func() { 8137 sc := -1 8138 if page.Response().Response.Response != nil { 8139 sc = page.Response().Response.Response.StatusCode 8140 } 8141 tracing.EndSpan(ctx, sc, err) 8142 }() 8143 } 8144 next, err := page.fn(ctx, page.ersplr) 8145 if err != nil { 8146 return err 8147 } 8148 page.ersplr = next 8149 return nil 8150} 8151 8152// Next advances to the next page of values. If there was an error making 8153// the request the page does not advance and the error is returned. 8154// Deprecated: Use NextWithContext() instead. 8155func (page *ExpressRouteServiceProviderListResultPage) Next() error { 8156 return page.NextWithContext(context.Background()) 8157} 8158 8159// NotDone returns true if the page enumeration should be started or is not yet complete. 8160func (page ExpressRouteServiceProviderListResultPage) NotDone() bool { 8161 return !page.ersplr.IsEmpty() 8162} 8163 8164// Response returns the raw server response from the last page request. 8165func (page ExpressRouteServiceProviderListResultPage) Response() ExpressRouteServiceProviderListResult { 8166 return page.ersplr 8167} 8168 8169// Values returns the slice of values for the current page or nil if there are no values. 8170func (page ExpressRouteServiceProviderListResultPage) Values() []ExpressRouteServiceProvider { 8171 if page.ersplr.IsEmpty() { 8172 return nil 8173 } 8174 return *page.ersplr.Value 8175} 8176 8177// Creates a new instance of the ExpressRouteServiceProviderListResultPage type. 8178func NewExpressRouteServiceProviderListResultPage(getNextPage func(context.Context, ExpressRouteServiceProviderListResult) (ExpressRouteServiceProviderListResult, error)) ExpressRouteServiceProviderListResultPage { 8179 return ExpressRouteServiceProviderListResultPage{fn: getNextPage} 8180} 8181 8182// ExpressRouteServiceProviderPropertiesFormat properties of ExpressRouteServiceProvider. 8183type ExpressRouteServiceProviderPropertiesFormat struct { 8184 // PeeringLocations - Get a list of peering locations. 8185 PeeringLocations *[]string `json:"peeringLocations,omitempty"` 8186 // BandwidthsOffered - Gets bandwidths offered. 8187 BandwidthsOffered *[]ExpressRouteServiceProviderBandwidthsOffered `json:"bandwidthsOffered,omitempty"` 8188 // ProvisioningState - Gets the provisioning state of the resource. 8189 ProvisioningState *string `json:"provisioningState,omitempty"` 8190} 8191 8192// FlowLogInformation information on the configuration of flow log. 8193type FlowLogInformation struct { 8194 autorest.Response `json:"-"` 8195 // TargetResourceID - The ID of the resource to configure for flow logging. 8196 TargetResourceID *string `json:"targetResourceId,omitempty"` 8197 *FlowLogProperties `json:"properties,omitempty"` 8198} 8199 8200// MarshalJSON is the custom marshaler for FlowLogInformation. 8201func (fli FlowLogInformation) MarshalJSON() ([]byte, error) { 8202 objectMap := make(map[string]interface{}) 8203 if fli.TargetResourceID != nil { 8204 objectMap["targetResourceId"] = fli.TargetResourceID 8205 } 8206 if fli.FlowLogProperties != nil { 8207 objectMap["properties"] = fli.FlowLogProperties 8208 } 8209 return json.Marshal(objectMap) 8210} 8211 8212// UnmarshalJSON is the custom unmarshaler for FlowLogInformation struct. 8213func (fli *FlowLogInformation) UnmarshalJSON(body []byte) error { 8214 var m map[string]*json.RawMessage 8215 err := json.Unmarshal(body, &m) 8216 if err != nil { 8217 return err 8218 } 8219 for k, v := range m { 8220 switch k { 8221 case "targetResourceId": 8222 if v != nil { 8223 var targetResourceID string 8224 err = json.Unmarshal(*v, &targetResourceID) 8225 if err != nil { 8226 return err 8227 } 8228 fli.TargetResourceID = &targetResourceID 8229 } 8230 case "properties": 8231 if v != nil { 8232 var flowLogProperties FlowLogProperties 8233 err = json.Unmarshal(*v, &flowLogProperties) 8234 if err != nil { 8235 return err 8236 } 8237 fli.FlowLogProperties = &flowLogProperties 8238 } 8239 } 8240 } 8241 8242 return nil 8243} 8244 8245// FlowLogProperties parameters that define the configuration of flow log. 8246type FlowLogProperties struct { 8247 // StorageID - ID of the storage account which is used to store the flow log. 8248 StorageID *string `json:"storageId,omitempty"` 8249 // Enabled - Flag to enable/disable flow logging. 8250 Enabled *bool `json:"enabled,omitempty"` 8251 RetentionPolicy *RetentionPolicyParameters `json:"retentionPolicy,omitempty"` 8252} 8253 8254// FlowLogStatusParameters parameters that define a resource to query flow log status. 8255type FlowLogStatusParameters struct { 8256 // TargetResourceID - The target resource where getting the flow logging status. 8257 TargetResourceID *string `json:"targetResourceId,omitempty"` 8258} 8259 8260// FrontendIPConfiguration frontend IP address of the load balancer. 8261type FrontendIPConfiguration struct { 8262 autorest.Response `json:"-"` 8263 // FrontendIPConfigurationPropertiesFormat - Properties of the load balancer probe. 8264 *FrontendIPConfigurationPropertiesFormat `json:"properties,omitempty"` 8265 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 8266 Name *string `json:"name,omitempty"` 8267 // Etag - A unique read-only string that changes whenever the resource is updated. 8268 Etag *string `json:"etag,omitempty"` 8269 // Zones - A list of availability zones denoting the IP allocated for the resource needs to come from. 8270 Zones *[]string `json:"zones,omitempty"` 8271 // ID - Resource ID. 8272 ID *string `json:"id,omitempty"` 8273} 8274 8275// MarshalJSON is the custom marshaler for FrontendIPConfiguration. 8276func (fic FrontendIPConfiguration) MarshalJSON() ([]byte, error) { 8277 objectMap := make(map[string]interface{}) 8278 if fic.FrontendIPConfigurationPropertiesFormat != nil { 8279 objectMap["properties"] = fic.FrontendIPConfigurationPropertiesFormat 8280 } 8281 if fic.Name != nil { 8282 objectMap["name"] = fic.Name 8283 } 8284 if fic.Etag != nil { 8285 objectMap["etag"] = fic.Etag 8286 } 8287 if fic.Zones != nil { 8288 objectMap["zones"] = fic.Zones 8289 } 8290 if fic.ID != nil { 8291 objectMap["id"] = fic.ID 8292 } 8293 return json.Marshal(objectMap) 8294} 8295 8296// UnmarshalJSON is the custom unmarshaler for FrontendIPConfiguration struct. 8297func (fic *FrontendIPConfiguration) UnmarshalJSON(body []byte) error { 8298 var m map[string]*json.RawMessage 8299 err := json.Unmarshal(body, &m) 8300 if err != nil { 8301 return err 8302 } 8303 for k, v := range m { 8304 switch k { 8305 case "properties": 8306 if v != nil { 8307 var frontendIPConfigurationPropertiesFormat FrontendIPConfigurationPropertiesFormat 8308 err = json.Unmarshal(*v, &frontendIPConfigurationPropertiesFormat) 8309 if err != nil { 8310 return err 8311 } 8312 fic.FrontendIPConfigurationPropertiesFormat = &frontendIPConfigurationPropertiesFormat 8313 } 8314 case "name": 8315 if v != nil { 8316 var name string 8317 err = json.Unmarshal(*v, &name) 8318 if err != nil { 8319 return err 8320 } 8321 fic.Name = &name 8322 } 8323 case "etag": 8324 if v != nil { 8325 var etag string 8326 err = json.Unmarshal(*v, &etag) 8327 if err != nil { 8328 return err 8329 } 8330 fic.Etag = &etag 8331 } 8332 case "zones": 8333 if v != nil { 8334 var zones []string 8335 err = json.Unmarshal(*v, &zones) 8336 if err != nil { 8337 return err 8338 } 8339 fic.Zones = &zones 8340 } 8341 case "id": 8342 if v != nil { 8343 var ID string 8344 err = json.Unmarshal(*v, &ID) 8345 if err != nil { 8346 return err 8347 } 8348 fic.ID = &ID 8349 } 8350 } 8351 } 8352 8353 return nil 8354} 8355 8356// FrontendIPConfigurationPropertiesFormat properties of Frontend IP Configuration of the load balancer. 8357type FrontendIPConfigurationPropertiesFormat struct { 8358 // InboundNatRules - READ-ONLY; Read only. Inbound rules URIs that use this frontend IP. 8359 InboundNatRules *[]SubResource `json:"inboundNatRules,omitempty"` 8360 // InboundNatPools - READ-ONLY; Read only. Inbound pools URIs that use this frontend IP. 8361 InboundNatPools *[]SubResource `json:"inboundNatPools,omitempty"` 8362 // OutboundNatRules - READ-ONLY; Read only. Outbound rules URIs that use this frontend IP. 8363 OutboundNatRules *[]SubResource `json:"outboundNatRules,omitempty"` 8364 // LoadBalancingRules - READ-ONLY; Gets load balancing rules URIs that use this frontend IP. 8365 LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty"` 8366 // PrivateIPAddress - The private IP address of the IP configuration. 8367 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 8368 // PrivateIPAllocationMethod - The Private IP allocation method. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 8369 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 8370 // Subnet - The reference of the subnet resource. 8371 Subnet *Subnet `json:"subnet,omitempty"` 8372 // PublicIPAddress - The reference of the Public IP resource. 8373 PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"` 8374 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 8375 ProvisioningState *string `json:"provisioningState,omitempty"` 8376} 8377 8378// GatewayRoute gateway routing details 8379type GatewayRoute struct { 8380 // LocalAddress - READ-ONLY; The gateway's local address 8381 LocalAddress *string `json:"localAddress,omitempty"` 8382 // NetworkProperty - READ-ONLY; The route's network prefix 8383 NetworkProperty *string `json:"network,omitempty"` 8384 // NextHop - READ-ONLY; The route's next hop 8385 NextHop *string `json:"nextHop,omitempty"` 8386 // SourcePeer - READ-ONLY; The peer this route was learned from 8387 SourcePeer *string `json:"sourcePeer,omitempty"` 8388 // Origin - READ-ONLY; The source this route was learned from 8389 Origin *string `json:"origin,omitempty"` 8390 // AsPath - READ-ONLY; The route's AS path sequence 8391 AsPath *string `json:"asPath,omitempty"` 8392 // Weight - READ-ONLY; The route's weight 8393 Weight *int32 `json:"weight,omitempty"` 8394} 8395 8396// GatewayRouteListResult list of virtual network gateway routes 8397type GatewayRouteListResult struct { 8398 autorest.Response `json:"-"` 8399 // Value - List of gateway routes 8400 Value *[]GatewayRoute `json:"value,omitempty"` 8401} 8402 8403// HTTPConfiguration HTTP configuration of the connectivity check. 8404type HTTPConfiguration struct { 8405 // Method - HTTP method. Possible values include: 'Get' 8406 Method HTTPMethod `json:"method,omitempty"` 8407 // Headers - List of HTTP headers. 8408 Headers *[]HTTPHeader `json:"headers,omitempty"` 8409 // ValidStatusCodes - Valid status codes. 8410 ValidStatusCodes *[]int32 `json:"validStatusCodes,omitempty"` 8411} 8412 8413// HTTPHeader describes the HTTP header. 8414type HTTPHeader struct { 8415 // Name - The name in HTTP header. 8416 Name *string `json:"name,omitempty"` 8417 // Value - The value in HTTP header. 8418 Value *string `json:"value,omitempty"` 8419} 8420 8421// InboundNatPool inbound NAT pool of the load balancer. 8422type InboundNatPool struct { 8423 // InboundNatPoolPropertiesFormat - Properties of load balancer inbound nat pool. 8424 *InboundNatPoolPropertiesFormat `json:"properties,omitempty"` 8425 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 8426 Name *string `json:"name,omitempty"` 8427 // Etag - A unique read-only string that changes whenever the resource is updated. 8428 Etag *string `json:"etag,omitempty"` 8429 // ID - Resource ID. 8430 ID *string `json:"id,omitempty"` 8431} 8432 8433// MarshalJSON is the custom marshaler for InboundNatPool. 8434func (inp InboundNatPool) MarshalJSON() ([]byte, error) { 8435 objectMap := make(map[string]interface{}) 8436 if inp.InboundNatPoolPropertiesFormat != nil { 8437 objectMap["properties"] = inp.InboundNatPoolPropertiesFormat 8438 } 8439 if inp.Name != nil { 8440 objectMap["name"] = inp.Name 8441 } 8442 if inp.Etag != nil { 8443 objectMap["etag"] = inp.Etag 8444 } 8445 if inp.ID != nil { 8446 objectMap["id"] = inp.ID 8447 } 8448 return json.Marshal(objectMap) 8449} 8450 8451// UnmarshalJSON is the custom unmarshaler for InboundNatPool struct. 8452func (inp *InboundNatPool) UnmarshalJSON(body []byte) error { 8453 var m map[string]*json.RawMessage 8454 err := json.Unmarshal(body, &m) 8455 if err != nil { 8456 return err 8457 } 8458 for k, v := range m { 8459 switch k { 8460 case "properties": 8461 if v != nil { 8462 var inboundNatPoolPropertiesFormat InboundNatPoolPropertiesFormat 8463 err = json.Unmarshal(*v, &inboundNatPoolPropertiesFormat) 8464 if err != nil { 8465 return err 8466 } 8467 inp.InboundNatPoolPropertiesFormat = &inboundNatPoolPropertiesFormat 8468 } 8469 case "name": 8470 if v != nil { 8471 var name string 8472 err = json.Unmarshal(*v, &name) 8473 if err != nil { 8474 return err 8475 } 8476 inp.Name = &name 8477 } 8478 case "etag": 8479 if v != nil { 8480 var etag string 8481 err = json.Unmarshal(*v, &etag) 8482 if err != nil { 8483 return err 8484 } 8485 inp.Etag = &etag 8486 } 8487 case "id": 8488 if v != nil { 8489 var ID string 8490 err = json.Unmarshal(*v, &ID) 8491 if err != nil { 8492 return err 8493 } 8494 inp.ID = &ID 8495 } 8496 } 8497 } 8498 8499 return nil 8500} 8501 8502// InboundNatPoolPropertiesFormat properties of Inbound NAT pool. 8503type InboundNatPoolPropertiesFormat struct { 8504 // FrontendIPConfiguration - A reference to frontend IP addresses. 8505 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 8506 // Protocol - Possible values include: 'TransportProtocolUDP', 'TransportProtocolTCP', 'TransportProtocolAll' 8507 Protocol TransportProtocol `json:"protocol,omitempty"` 8508 // FrontendPortRangeStart - 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 range between 1 and 65534. 8509 FrontendPortRangeStart *int32 `json:"frontendPortRangeStart,omitempty"` 8510 // FrontendPortRangeEnd - 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 range between 1 and 65535. 8511 FrontendPortRangeEnd *int32 `json:"frontendPortRangeEnd,omitempty"` 8512 // BackendPort - The port used for internal connections on the endpoint. Acceptable values are between 1 and 65535. 8513 BackendPort *int32 `json:"backendPort,omitempty"` 8514 // IdleTimeoutInMinutes - 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 the protocol is set to TCP. 8515 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 8516 // EnableFloatingIP - Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint. 8517 EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"` 8518 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 8519 ProvisioningState *string `json:"provisioningState,omitempty"` 8520} 8521 8522// InboundNatRule inbound NAT rule of the load balancer. 8523type InboundNatRule struct { 8524 autorest.Response `json:"-"` 8525 // InboundNatRulePropertiesFormat - Properties of load balancer inbound nat rule. 8526 *InboundNatRulePropertiesFormat `json:"properties,omitempty"` 8527 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 8528 Name *string `json:"name,omitempty"` 8529 // Etag - A unique read-only string that changes whenever the resource is updated. 8530 Etag *string `json:"etag,omitempty"` 8531 // ID - Resource ID. 8532 ID *string `json:"id,omitempty"` 8533} 8534 8535// MarshalJSON is the custom marshaler for InboundNatRule. 8536func (inr InboundNatRule) MarshalJSON() ([]byte, error) { 8537 objectMap := make(map[string]interface{}) 8538 if inr.InboundNatRulePropertiesFormat != nil { 8539 objectMap["properties"] = inr.InboundNatRulePropertiesFormat 8540 } 8541 if inr.Name != nil { 8542 objectMap["name"] = inr.Name 8543 } 8544 if inr.Etag != nil { 8545 objectMap["etag"] = inr.Etag 8546 } 8547 if inr.ID != nil { 8548 objectMap["id"] = inr.ID 8549 } 8550 return json.Marshal(objectMap) 8551} 8552 8553// UnmarshalJSON is the custom unmarshaler for InboundNatRule struct. 8554func (inr *InboundNatRule) UnmarshalJSON(body []byte) error { 8555 var m map[string]*json.RawMessage 8556 err := json.Unmarshal(body, &m) 8557 if err != nil { 8558 return err 8559 } 8560 for k, v := range m { 8561 switch k { 8562 case "properties": 8563 if v != nil { 8564 var inboundNatRulePropertiesFormat InboundNatRulePropertiesFormat 8565 err = json.Unmarshal(*v, &inboundNatRulePropertiesFormat) 8566 if err != nil { 8567 return err 8568 } 8569 inr.InboundNatRulePropertiesFormat = &inboundNatRulePropertiesFormat 8570 } 8571 case "name": 8572 if v != nil { 8573 var name string 8574 err = json.Unmarshal(*v, &name) 8575 if err != nil { 8576 return err 8577 } 8578 inr.Name = &name 8579 } 8580 case "etag": 8581 if v != nil { 8582 var etag string 8583 err = json.Unmarshal(*v, &etag) 8584 if err != nil { 8585 return err 8586 } 8587 inr.Etag = &etag 8588 } 8589 case "id": 8590 if v != nil { 8591 var ID string 8592 err = json.Unmarshal(*v, &ID) 8593 if err != nil { 8594 return err 8595 } 8596 inr.ID = &ID 8597 } 8598 } 8599 } 8600 8601 return nil 8602} 8603 8604// InboundNatRuleListResult response for ListInboundNatRule API service call. 8605type InboundNatRuleListResult struct { 8606 autorest.Response `json:"-"` 8607 // Value - A list of inbound nat rules in a load balancer. 8608 Value *[]InboundNatRule `json:"value,omitempty"` 8609 // NextLink - READ-ONLY; The URL to get the next set of results. 8610 NextLink *string `json:"nextLink,omitempty"` 8611} 8612 8613// InboundNatRuleListResultIterator provides access to a complete listing of InboundNatRule values. 8614type InboundNatRuleListResultIterator struct { 8615 i int 8616 page InboundNatRuleListResultPage 8617} 8618 8619// NextWithContext advances to the next value. If there was an error making 8620// the request the iterator does not advance and the error is returned. 8621func (iter *InboundNatRuleListResultIterator) NextWithContext(ctx context.Context) (err error) { 8622 if tracing.IsEnabled() { 8623 ctx = tracing.StartSpan(ctx, fqdn+"/InboundNatRuleListResultIterator.NextWithContext") 8624 defer func() { 8625 sc := -1 8626 if iter.Response().Response.Response != nil { 8627 sc = iter.Response().Response.Response.StatusCode 8628 } 8629 tracing.EndSpan(ctx, sc, err) 8630 }() 8631 } 8632 iter.i++ 8633 if iter.i < len(iter.page.Values()) { 8634 return nil 8635 } 8636 err = iter.page.NextWithContext(ctx) 8637 if err != nil { 8638 iter.i-- 8639 return err 8640 } 8641 iter.i = 0 8642 return nil 8643} 8644 8645// Next advances to the next value. If there was an error making 8646// the request the iterator does not advance and the error is returned. 8647// Deprecated: Use NextWithContext() instead. 8648func (iter *InboundNatRuleListResultIterator) Next() error { 8649 return iter.NextWithContext(context.Background()) 8650} 8651 8652// NotDone returns true if the enumeration should be started or is not yet complete. 8653func (iter InboundNatRuleListResultIterator) NotDone() bool { 8654 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8655} 8656 8657// Response returns the raw server response from the last page request. 8658func (iter InboundNatRuleListResultIterator) Response() InboundNatRuleListResult { 8659 return iter.page.Response() 8660} 8661 8662// Value returns the current value or a zero-initialized value if the 8663// iterator has advanced beyond the end of the collection. 8664func (iter InboundNatRuleListResultIterator) Value() InboundNatRule { 8665 if !iter.page.NotDone() { 8666 return InboundNatRule{} 8667 } 8668 return iter.page.Values()[iter.i] 8669} 8670 8671// Creates a new instance of the InboundNatRuleListResultIterator type. 8672func NewInboundNatRuleListResultIterator(page InboundNatRuleListResultPage) InboundNatRuleListResultIterator { 8673 return InboundNatRuleListResultIterator{page: page} 8674} 8675 8676// IsEmpty returns true if the ListResult contains no values. 8677func (inrlr InboundNatRuleListResult) IsEmpty() bool { 8678 return inrlr.Value == nil || len(*inrlr.Value) == 0 8679} 8680 8681// inboundNatRuleListResultPreparer prepares a request to retrieve the next set of results. 8682// It returns nil if no more results exist. 8683func (inrlr InboundNatRuleListResult) inboundNatRuleListResultPreparer(ctx context.Context) (*http.Request, error) { 8684 if inrlr.NextLink == nil || len(to.String(inrlr.NextLink)) < 1 { 8685 return nil, nil 8686 } 8687 return autorest.Prepare((&http.Request{}).WithContext(ctx), 8688 autorest.AsJSON(), 8689 autorest.AsGet(), 8690 autorest.WithBaseURL(to.String(inrlr.NextLink))) 8691} 8692 8693// InboundNatRuleListResultPage contains a page of InboundNatRule values. 8694type InboundNatRuleListResultPage struct { 8695 fn func(context.Context, InboundNatRuleListResult) (InboundNatRuleListResult, error) 8696 inrlr InboundNatRuleListResult 8697} 8698 8699// NextWithContext advances to the next page of values. If there was an error making 8700// the request the page does not advance and the error is returned. 8701func (page *InboundNatRuleListResultPage) NextWithContext(ctx context.Context) (err error) { 8702 if tracing.IsEnabled() { 8703 ctx = tracing.StartSpan(ctx, fqdn+"/InboundNatRuleListResultPage.NextWithContext") 8704 defer func() { 8705 sc := -1 8706 if page.Response().Response.Response != nil { 8707 sc = page.Response().Response.Response.StatusCode 8708 } 8709 tracing.EndSpan(ctx, sc, err) 8710 }() 8711 } 8712 next, err := page.fn(ctx, page.inrlr) 8713 if err != nil { 8714 return err 8715 } 8716 page.inrlr = next 8717 return nil 8718} 8719 8720// Next advances to the next page of values. If there was an error making 8721// the request the page does not advance and the error is returned. 8722// Deprecated: Use NextWithContext() instead. 8723func (page *InboundNatRuleListResultPage) Next() error { 8724 return page.NextWithContext(context.Background()) 8725} 8726 8727// NotDone returns true if the page enumeration should be started or is not yet complete. 8728func (page InboundNatRuleListResultPage) NotDone() bool { 8729 return !page.inrlr.IsEmpty() 8730} 8731 8732// Response returns the raw server response from the last page request. 8733func (page InboundNatRuleListResultPage) Response() InboundNatRuleListResult { 8734 return page.inrlr 8735} 8736 8737// Values returns the slice of values for the current page or nil if there are no values. 8738func (page InboundNatRuleListResultPage) Values() []InboundNatRule { 8739 if page.inrlr.IsEmpty() { 8740 return nil 8741 } 8742 return *page.inrlr.Value 8743} 8744 8745// Creates a new instance of the InboundNatRuleListResultPage type. 8746func NewInboundNatRuleListResultPage(getNextPage func(context.Context, InboundNatRuleListResult) (InboundNatRuleListResult, error)) InboundNatRuleListResultPage { 8747 return InboundNatRuleListResultPage{fn: getNextPage} 8748} 8749 8750// InboundNatRulePropertiesFormat properties of the inbound NAT rule. 8751type InboundNatRulePropertiesFormat struct { 8752 // FrontendIPConfiguration - A reference to frontend IP addresses. 8753 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 8754 // BackendIPConfiguration - 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 is forwarded to the backend IP. 8755 BackendIPConfiguration *InterfaceIPConfiguration `json:"backendIPConfiguration,omitempty"` 8756 // Protocol - Possible values include: 'TransportProtocolUDP', 'TransportProtocolTCP', 'TransportProtocolAll' 8757 Protocol TransportProtocol `json:"protocol,omitempty"` 8758 // FrontendPort - 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. 8759 FrontendPort *int32 `json:"frontendPort,omitempty"` 8760 // BackendPort - The port used for the internal endpoint. Acceptable values range from 1 to 65535. 8761 BackendPort *int32 `json:"backendPort,omitempty"` 8762 // IdleTimeoutInMinutes - 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 the protocol is set to TCP. 8763 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 8764 // EnableFloatingIP - Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint. 8765 EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"` 8766 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 8767 ProvisioningState *string `json:"provisioningState,omitempty"` 8768} 8769 8770// InboundNatRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 8771// long-running operation. 8772type InboundNatRulesCreateOrUpdateFuture struct { 8773 azure.Future 8774} 8775 8776// Result returns the result of the asynchronous operation. 8777// If the operation has not completed it will return an error. 8778func (future *InboundNatRulesCreateOrUpdateFuture) Result(client InboundNatRulesClient) (inr InboundNatRule, err error) { 8779 var done bool 8780 done, err = future.DoneWithContext(context.Background(), client) 8781 if err != nil { 8782 err = autorest.NewErrorWithError(err, "network.InboundNatRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 8783 return 8784 } 8785 if !done { 8786 err = azure.NewAsyncOpIncompleteError("network.InboundNatRulesCreateOrUpdateFuture") 8787 return 8788 } 8789 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 8790 if inr.Response.Response, err = future.GetResult(sender); err == nil && inr.Response.Response.StatusCode != http.StatusNoContent { 8791 inr, err = client.CreateOrUpdateResponder(inr.Response.Response) 8792 if err != nil { 8793 err = autorest.NewErrorWithError(err, "network.InboundNatRulesCreateOrUpdateFuture", "Result", inr.Response.Response, "Failure responding to request") 8794 } 8795 } 8796 return 8797} 8798 8799// InboundNatRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 8800// operation. 8801type InboundNatRulesDeleteFuture struct { 8802 azure.Future 8803} 8804 8805// Result returns the result of the asynchronous operation. 8806// If the operation has not completed it will return an error. 8807func (future *InboundNatRulesDeleteFuture) Result(client InboundNatRulesClient) (ar autorest.Response, err error) { 8808 var done bool 8809 done, err = future.DoneWithContext(context.Background(), client) 8810 if err != nil { 8811 err = autorest.NewErrorWithError(err, "network.InboundNatRulesDeleteFuture", "Result", future.Response(), "Polling failure") 8812 return 8813 } 8814 if !done { 8815 err = azure.NewAsyncOpIncompleteError("network.InboundNatRulesDeleteFuture") 8816 return 8817 } 8818 ar.Response = future.Response() 8819 return 8820} 8821 8822// Interface a network interface in a resource group. 8823type Interface struct { 8824 autorest.Response `json:"-"` 8825 // InterfacePropertiesFormat - Properties of the network interface. 8826 *InterfacePropertiesFormat `json:"properties,omitempty"` 8827 // Etag - A unique read-only string that changes whenever the resource is updated. 8828 Etag *string `json:"etag,omitempty"` 8829 // ID - Resource ID. 8830 ID *string `json:"id,omitempty"` 8831 // Name - READ-ONLY; Resource name. 8832 Name *string `json:"name,omitempty"` 8833 // Type - READ-ONLY; Resource type. 8834 Type *string `json:"type,omitempty"` 8835 // Location - Resource location. 8836 Location *string `json:"location,omitempty"` 8837 // Tags - Resource tags. 8838 Tags map[string]*string `json:"tags"` 8839} 8840 8841// MarshalJSON is the custom marshaler for Interface. 8842func (i Interface) MarshalJSON() ([]byte, error) { 8843 objectMap := make(map[string]interface{}) 8844 if i.InterfacePropertiesFormat != nil { 8845 objectMap["properties"] = i.InterfacePropertiesFormat 8846 } 8847 if i.Etag != nil { 8848 objectMap["etag"] = i.Etag 8849 } 8850 if i.ID != nil { 8851 objectMap["id"] = i.ID 8852 } 8853 if i.Location != nil { 8854 objectMap["location"] = i.Location 8855 } 8856 if i.Tags != nil { 8857 objectMap["tags"] = i.Tags 8858 } 8859 return json.Marshal(objectMap) 8860} 8861 8862// UnmarshalJSON is the custom unmarshaler for Interface struct. 8863func (i *Interface) UnmarshalJSON(body []byte) error { 8864 var m map[string]*json.RawMessage 8865 err := json.Unmarshal(body, &m) 8866 if err != nil { 8867 return err 8868 } 8869 for k, v := range m { 8870 switch k { 8871 case "properties": 8872 if v != nil { 8873 var interfacePropertiesFormat InterfacePropertiesFormat 8874 err = json.Unmarshal(*v, &interfacePropertiesFormat) 8875 if err != nil { 8876 return err 8877 } 8878 i.InterfacePropertiesFormat = &interfacePropertiesFormat 8879 } 8880 case "etag": 8881 if v != nil { 8882 var etag string 8883 err = json.Unmarshal(*v, &etag) 8884 if err != nil { 8885 return err 8886 } 8887 i.Etag = &etag 8888 } 8889 case "id": 8890 if v != nil { 8891 var ID string 8892 err = json.Unmarshal(*v, &ID) 8893 if err != nil { 8894 return err 8895 } 8896 i.ID = &ID 8897 } 8898 case "name": 8899 if v != nil { 8900 var name string 8901 err = json.Unmarshal(*v, &name) 8902 if err != nil { 8903 return err 8904 } 8905 i.Name = &name 8906 } 8907 case "type": 8908 if v != nil { 8909 var typeVar string 8910 err = json.Unmarshal(*v, &typeVar) 8911 if err != nil { 8912 return err 8913 } 8914 i.Type = &typeVar 8915 } 8916 case "location": 8917 if v != nil { 8918 var location string 8919 err = json.Unmarshal(*v, &location) 8920 if err != nil { 8921 return err 8922 } 8923 i.Location = &location 8924 } 8925 case "tags": 8926 if v != nil { 8927 var tags map[string]*string 8928 err = json.Unmarshal(*v, &tags) 8929 if err != nil { 8930 return err 8931 } 8932 i.Tags = tags 8933 } 8934 } 8935 } 8936 8937 return nil 8938} 8939 8940// InterfaceAssociation network interface and its custom security rules. 8941type InterfaceAssociation struct { 8942 // ID - READ-ONLY; Network interface ID. 8943 ID *string `json:"id,omitempty"` 8944 // SecurityRules - Collection of custom security rules. 8945 SecurityRules *[]SecurityRule `json:"securityRules,omitempty"` 8946} 8947 8948// InterfaceDNSSettings DNS settings of a network interface. 8949type InterfaceDNSSettings struct { 8950 // DNSServers - List of DNS servers IP addresses. Use 'AzureProvidedDNS' to switch to azure provided DNS resolution. 'AzureProvidedDNS' value cannot be combined with other IPs, it must be the only value in dnsServers collection. 8951 DNSServers *[]string `json:"dnsServers,omitempty"` 8952 // AppliedDNSServers - 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 part of the Availability Set. This property is what is configured on each of those VMs. 8953 AppliedDNSServers *[]string `json:"appliedDnsServers,omitempty"` 8954 // InternalDNSNameLabel - Relative DNS name for this NIC used for internal communications between VMs in the same virtual network. 8955 InternalDNSNameLabel *string `json:"internalDnsNameLabel,omitempty"` 8956 // InternalFqdn - Fully qualified DNS name supporting internal communications between VMs in the same virtual network. 8957 InternalFqdn *string `json:"internalFqdn,omitempty"` 8958 // InternalDomainNameSuffix - 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 the VM name with the value of internalDomainNameSuffix. 8959 InternalDomainNameSuffix *string `json:"internalDomainNameSuffix,omitempty"` 8960} 8961 8962// InterfaceIPConfiguration iPConfiguration in a network interface. 8963type InterfaceIPConfiguration struct { 8964 autorest.Response `json:"-"` 8965 // InterfaceIPConfigurationPropertiesFormat - Network interface IP configuration properties. 8966 *InterfaceIPConfigurationPropertiesFormat `json:"properties,omitempty"` 8967 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 8968 Name *string `json:"name,omitempty"` 8969 // Etag - A unique read-only string that changes whenever the resource is updated. 8970 Etag *string `json:"etag,omitempty"` 8971 // ID - Resource ID. 8972 ID *string `json:"id,omitempty"` 8973} 8974 8975// MarshalJSON is the custom marshaler for InterfaceIPConfiguration. 8976func (iic InterfaceIPConfiguration) MarshalJSON() ([]byte, error) { 8977 objectMap := make(map[string]interface{}) 8978 if iic.InterfaceIPConfigurationPropertiesFormat != nil { 8979 objectMap["properties"] = iic.InterfaceIPConfigurationPropertiesFormat 8980 } 8981 if iic.Name != nil { 8982 objectMap["name"] = iic.Name 8983 } 8984 if iic.Etag != nil { 8985 objectMap["etag"] = iic.Etag 8986 } 8987 if iic.ID != nil { 8988 objectMap["id"] = iic.ID 8989 } 8990 return json.Marshal(objectMap) 8991} 8992 8993// UnmarshalJSON is the custom unmarshaler for InterfaceIPConfiguration struct. 8994func (iic *InterfaceIPConfiguration) UnmarshalJSON(body []byte) error { 8995 var m map[string]*json.RawMessage 8996 err := json.Unmarshal(body, &m) 8997 if err != nil { 8998 return err 8999 } 9000 for k, v := range m { 9001 switch k { 9002 case "properties": 9003 if v != nil { 9004 var interfaceIPConfigurationPropertiesFormat InterfaceIPConfigurationPropertiesFormat 9005 err = json.Unmarshal(*v, &interfaceIPConfigurationPropertiesFormat) 9006 if err != nil { 9007 return err 9008 } 9009 iic.InterfaceIPConfigurationPropertiesFormat = &interfaceIPConfigurationPropertiesFormat 9010 } 9011 case "name": 9012 if v != nil { 9013 var name string 9014 err = json.Unmarshal(*v, &name) 9015 if err != nil { 9016 return err 9017 } 9018 iic.Name = &name 9019 } 9020 case "etag": 9021 if v != nil { 9022 var etag string 9023 err = json.Unmarshal(*v, &etag) 9024 if err != nil { 9025 return err 9026 } 9027 iic.Etag = &etag 9028 } 9029 case "id": 9030 if v != nil { 9031 var ID string 9032 err = json.Unmarshal(*v, &ID) 9033 if err != nil { 9034 return err 9035 } 9036 iic.ID = &ID 9037 } 9038 } 9039 } 9040 9041 return nil 9042} 9043 9044// InterfaceIPConfigurationListResult response for list ip configurations API service call. 9045type InterfaceIPConfigurationListResult struct { 9046 autorest.Response `json:"-"` 9047 // Value - A list of ip configurations. 9048 Value *[]InterfaceIPConfiguration `json:"value,omitempty"` 9049 // NextLink - READ-ONLY; The URL to get the next set of results. 9050 NextLink *string `json:"nextLink,omitempty"` 9051} 9052 9053// InterfaceIPConfigurationListResultIterator provides access to a complete listing of 9054// InterfaceIPConfiguration values. 9055type InterfaceIPConfigurationListResultIterator struct { 9056 i int 9057 page InterfaceIPConfigurationListResultPage 9058} 9059 9060// NextWithContext advances to the next value. If there was an error making 9061// the request the iterator does not advance and the error is returned. 9062func (iter *InterfaceIPConfigurationListResultIterator) NextWithContext(ctx context.Context) (err error) { 9063 if tracing.IsEnabled() { 9064 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceIPConfigurationListResultIterator.NextWithContext") 9065 defer func() { 9066 sc := -1 9067 if iter.Response().Response.Response != nil { 9068 sc = iter.Response().Response.Response.StatusCode 9069 } 9070 tracing.EndSpan(ctx, sc, err) 9071 }() 9072 } 9073 iter.i++ 9074 if iter.i < len(iter.page.Values()) { 9075 return nil 9076 } 9077 err = iter.page.NextWithContext(ctx) 9078 if err != nil { 9079 iter.i-- 9080 return err 9081 } 9082 iter.i = 0 9083 return nil 9084} 9085 9086// Next advances to the next value. If there was an error making 9087// the request the iterator does not advance and the error is returned. 9088// Deprecated: Use NextWithContext() instead. 9089func (iter *InterfaceIPConfigurationListResultIterator) Next() error { 9090 return iter.NextWithContext(context.Background()) 9091} 9092 9093// NotDone returns true if the enumeration should be started or is not yet complete. 9094func (iter InterfaceIPConfigurationListResultIterator) NotDone() bool { 9095 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 9096} 9097 9098// Response returns the raw server response from the last page request. 9099func (iter InterfaceIPConfigurationListResultIterator) Response() InterfaceIPConfigurationListResult { 9100 return iter.page.Response() 9101} 9102 9103// Value returns the current value or a zero-initialized value if the 9104// iterator has advanced beyond the end of the collection. 9105func (iter InterfaceIPConfigurationListResultIterator) Value() InterfaceIPConfiguration { 9106 if !iter.page.NotDone() { 9107 return InterfaceIPConfiguration{} 9108 } 9109 return iter.page.Values()[iter.i] 9110} 9111 9112// Creates a new instance of the InterfaceIPConfigurationListResultIterator type. 9113func NewInterfaceIPConfigurationListResultIterator(page InterfaceIPConfigurationListResultPage) InterfaceIPConfigurationListResultIterator { 9114 return InterfaceIPConfigurationListResultIterator{page: page} 9115} 9116 9117// IsEmpty returns true if the ListResult contains no values. 9118func (iiclr InterfaceIPConfigurationListResult) IsEmpty() bool { 9119 return iiclr.Value == nil || len(*iiclr.Value) == 0 9120} 9121 9122// interfaceIPConfigurationListResultPreparer prepares a request to retrieve the next set of results. 9123// It returns nil if no more results exist. 9124func (iiclr InterfaceIPConfigurationListResult) interfaceIPConfigurationListResultPreparer(ctx context.Context) (*http.Request, error) { 9125 if iiclr.NextLink == nil || len(to.String(iiclr.NextLink)) < 1 { 9126 return nil, nil 9127 } 9128 return autorest.Prepare((&http.Request{}).WithContext(ctx), 9129 autorest.AsJSON(), 9130 autorest.AsGet(), 9131 autorest.WithBaseURL(to.String(iiclr.NextLink))) 9132} 9133 9134// InterfaceIPConfigurationListResultPage contains a page of InterfaceIPConfiguration values. 9135type InterfaceIPConfigurationListResultPage struct { 9136 fn func(context.Context, InterfaceIPConfigurationListResult) (InterfaceIPConfigurationListResult, error) 9137 iiclr InterfaceIPConfigurationListResult 9138} 9139 9140// NextWithContext advances to the next page of values. If there was an error making 9141// the request the page does not advance and the error is returned. 9142func (page *InterfaceIPConfigurationListResultPage) NextWithContext(ctx context.Context) (err error) { 9143 if tracing.IsEnabled() { 9144 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceIPConfigurationListResultPage.NextWithContext") 9145 defer func() { 9146 sc := -1 9147 if page.Response().Response.Response != nil { 9148 sc = page.Response().Response.Response.StatusCode 9149 } 9150 tracing.EndSpan(ctx, sc, err) 9151 }() 9152 } 9153 next, err := page.fn(ctx, page.iiclr) 9154 if err != nil { 9155 return err 9156 } 9157 page.iiclr = next 9158 return nil 9159} 9160 9161// Next advances to the next page of values. If there was an error making 9162// the request the page does not advance and the error is returned. 9163// Deprecated: Use NextWithContext() instead. 9164func (page *InterfaceIPConfigurationListResultPage) Next() error { 9165 return page.NextWithContext(context.Background()) 9166} 9167 9168// NotDone returns true if the page enumeration should be started or is not yet complete. 9169func (page InterfaceIPConfigurationListResultPage) NotDone() bool { 9170 return !page.iiclr.IsEmpty() 9171} 9172 9173// Response returns the raw server response from the last page request. 9174func (page InterfaceIPConfigurationListResultPage) Response() InterfaceIPConfigurationListResult { 9175 return page.iiclr 9176} 9177 9178// Values returns the slice of values for the current page or nil if there are no values. 9179func (page InterfaceIPConfigurationListResultPage) Values() []InterfaceIPConfiguration { 9180 if page.iiclr.IsEmpty() { 9181 return nil 9182 } 9183 return *page.iiclr.Value 9184} 9185 9186// Creates a new instance of the InterfaceIPConfigurationListResultPage type. 9187func NewInterfaceIPConfigurationListResultPage(getNextPage func(context.Context, InterfaceIPConfigurationListResult) (InterfaceIPConfigurationListResult, error)) InterfaceIPConfigurationListResultPage { 9188 return InterfaceIPConfigurationListResultPage{fn: getNextPage} 9189} 9190 9191// InterfaceIPConfigurationPropertiesFormat properties of IP configuration. 9192type InterfaceIPConfigurationPropertiesFormat struct { 9193 // ApplicationGatewayBackendAddressPools - The reference of ApplicationGatewayBackendAddressPool resource. 9194 ApplicationGatewayBackendAddressPools *[]ApplicationGatewayBackendAddressPool `json:"applicationGatewayBackendAddressPools,omitempty"` 9195 // LoadBalancerBackendAddressPools - The reference of LoadBalancerBackendAddressPool resource. 9196 LoadBalancerBackendAddressPools *[]BackendAddressPool `json:"loadBalancerBackendAddressPools,omitempty"` 9197 // LoadBalancerInboundNatRules - A list of references of LoadBalancerInboundNatRules. 9198 LoadBalancerInboundNatRules *[]InboundNatRule `json:"loadBalancerInboundNatRules,omitempty"` 9199 // PrivateIPAddress - Private IP address of the IP configuration. 9200 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 9201 // PrivateIPAllocationMethod - Defines how a private IP address is assigned. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 9202 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 9203 // PrivateIPAddressVersion - Available from Api-Version 2016-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'. Possible values include: 'IPv4', 'IPv6' 9204 PrivateIPAddressVersion IPVersion `json:"privateIPAddressVersion,omitempty"` 9205 // Subnet - Subnet bound to the IP configuration. 9206 Subnet *Subnet `json:"subnet,omitempty"` 9207 // Primary - Gets whether this is a primary customer address on the network interface. 9208 Primary *bool `json:"primary,omitempty"` 9209 // PublicIPAddress - Public IP address bound to the IP configuration. 9210 PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"` 9211 // ApplicationSecurityGroups - Application security groups in which the IP configuration is included. 9212 ApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"applicationSecurityGroups,omitempty"` 9213 // ProvisioningState - The provisioning state of the network interface IP configuration. Possible values are: 'Updating', 'Deleting', and 'Failed'. 9214 ProvisioningState *string `json:"provisioningState,omitempty"` 9215} 9216 9217// InterfaceListResult response for the ListNetworkInterface API service call. 9218type InterfaceListResult struct { 9219 autorest.Response `json:"-"` 9220 // Value - A list of network interfaces in a resource group. 9221 Value *[]Interface `json:"value,omitempty"` 9222 // NextLink - READ-ONLY; The URL to get the next set of results. 9223 NextLink *string `json:"nextLink,omitempty"` 9224} 9225 9226// InterfaceListResultIterator provides access to a complete listing of Interface values. 9227type InterfaceListResultIterator struct { 9228 i int 9229 page InterfaceListResultPage 9230} 9231 9232// NextWithContext advances to the next value. If there was an error making 9233// the request the iterator does not advance and the error is returned. 9234func (iter *InterfaceListResultIterator) NextWithContext(ctx context.Context) (err error) { 9235 if tracing.IsEnabled() { 9236 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceListResultIterator.NextWithContext") 9237 defer func() { 9238 sc := -1 9239 if iter.Response().Response.Response != nil { 9240 sc = iter.Response().Response.Response.StatusCode 9241 } 9242 tracing.EndSpan(ctx, sc, err) 9243 }() 9244 } 9245 iter.i++ 9246 if iter.i < len(iter.page.Values()) { 9247 return nil 9248 } 9249 err = iter.page.NextWithContext(ctx) 9250 if err != nil { 9251 iter.i-- 9252 return err 9253 } 9254 iter.i = 0 9255 return nil 9256} 9257 9258// Next advances to the next value. If there was an error making 9259// the request the iterator does not advance and the error is returned. 9260// Deprecated: Use NextWithContext() instead. 9261func (iter *InterfaceListResultIterator) Next() error { 9262 return iter.NextWithContext(context.Background()) 9263} 9264 9265// NotDone returns true if the enumeration should be started or is not yet complete. 9266func (iter InterfaceListResultIterator) NotDone() bool { 9267 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 9268} 9269 9270// Response returns the raw server response from the last page request. 9271func (iter InterfaceListResultIterator) Response() InterfaceListResult { 9272 return iter.page.Response() 9273} 9274 9275// Value returns the current value or a zero-initialized value if the 9276// iterator has advanced beyond the end of the collection. 9277func (iter InterfaceListResultIterator) Value() Interface { 9278 if !iter.page.NotDone() { 9279 return Interface{} 9280 } 9281 return iter.page.Values()[iter.i] 9282} 9283 9284// Creates a new instance of the InterfaceListResultIterator type. 9285func NewInterfaceListResultIterator(page InterfaceListResultPage) InterfaceListResultIterator { 9286 return InterfaceListResultIterator{page: page} 9287} 9288 9289// IsEmpty returns true if the ListResult contains no values. 9290func (ilr InterfaceListResult) IsEmpty() bool { 9291 return ilr.Value == nil || len(*ilr.Value) == 0 9292} 9293 9294// interfaceListResultPreparer prepares a request to retrieve the next set of results. 9295// It returns nil if no more results exist. 9296func (ilr InterfaceListResult) interfaceListResultPreparer(ctx context.Context) (*http.Request, error) { 9297 if ilr.NextLink == nil || len(to.String(ilr.NextLink)) < 1 { 9298 return nil, nil 9299 } 9300 return autorest.Prepare((&http.Request{}).WithContext(ctx), 9301 autorest.AsJSON(), 9302 autorest.AsGet(), 9303 autorest.WithBaseURL(to.String(ilr.NextLink))) 9304} 9305 9306// InterfaceListResultPage contains a page of Interface values. 9307type InterfaceListResultPage struct { 9308 fn func(context.Context, InterfaceListResult) (InterfaceListResult, error) 9309 ilr InterfaceListResult 9310} 9311 9312// NextWithContext advances to the next page of values. If there was an error making 9313// the request the page does not advance and the error is returned. 9314func (page *InterfaceListResultPage) NextWithContext(ctx context.Context) (err error) { 9315 if tracing.IsEnabled() { 9316 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceListResultPage.NextWithContext") 9317 defer func() { 9318 sc := -1 9319 if page.Response().Response.Response != nil { 9320 sc = page.Response().Response.Response.StatusCode 9321 } 9322 tracing.EndSpan(ctx, sc, err) 9323 }() 9324 } 9325 next, err := page.fn(ctx, page.ilr) 9326 if err != nil { 9327 return err 9328 } 9329 page.ilr = next 9330 return nil 9331} 9332 9333// Next advances to the next page of values. If there was an error making 9334// the request the page does not advance and the error is returned. 9335// Deprecated: Use NextWithContext() instead. 9336func (page *InterfaceListResultPage) Next() error { 9337 return page.NextWithContext(context.Background()) 9338} 9339 9340// NotDone returns true if the page enumeration should be started or is not yet complete. 9341func (page InterfaceListResultPage) NotDone() bool { 9342 return !page.ilr.IsEmpty() 9343} 9344 9345// Response returns the raw server response from the last page request. 9346func (page InterfaceListResultPage) Response() InterfaceListResult { 9347 return page.ilr 9348} 9349 9350// Values returns the slice of values for the current page or nil if there are no values. 9351func (page InterfaceListResultPage) Values() []Interface { 9352 if page.ilr.IsEmpty() { 9353 return nil 9354 } 9355 return *page.ilr.Value 9356} 9357 9358// Creates a new instance of the InterfaceListResultPage type. 9359func NewInterfaceListResultPage(getNextPage func(context.Context, InterfaceListResult) (InterfaceListResult, error)) InterfaceListResultPage { 9360 return InterfaceListResultPage{fn: getNextPage} 9361} 9362 9363// InterfaceLoadBalancerListResult response for list ip configurations API service call. 9364type InterfaceLoadBalancerListResult struct { 9365 autorest.Response `json:"-"` 9366 // Value - A list of load balancers. 9367 Value *[]LoadBalancer `json:"value,omitempty"` 9368 // NextLink - READ-ONLY; The URL to get the next set of results. 9369 NextLink *string `json:"nextLink,omitempty"` 9370} 9371 9372// InterfaceLoadBalancerListResultIterator provides access to a complete listing of LoadBalancer values. 9373type InterfaceLoadBalancerListResultIterator struct { 9374 i int 9375 page InterfaceLoadBalancerListResultPage 9376} 9377 9378// NextWithContext advances to the next value. If there was an error making 9379// the request the iterator does not advance and the error is returned. 9380func (iter *InterfaceLoadBalancerListResultIterator) NextWithContext(ctx context.Context) (err error) { 9381 if tracing.IsEnabled() { 9382 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceLoadBalancerListResultIterator.NextWithContext") 9383 defer func() { 9384 sc := -1 9385 if iter.Response().Response.Response != nil { 9386 sc = iter.Response().Response.Response.StatusCode 9387 } 9388 tracing.EndSpan(ctx, sc, err) 9389 }() 9390 } 9391 iter.i++ 9392 if iter.i < len(iter.page.Values()) { 9393 return nil 9394 } 9395 err = iter.page.NextWithContext(ctx) 9396 if err != nil { 9397 iter.i-- 9398 return err 9399 } 9400 iter.i = 0 9401 return nil 9402} 9403 9404// Next advances to the next value. If there was an error making 9405// the request the iterator does not advance and the error is returned. 9406// Deprecated: Use NextWithContext() instead. 9407func (iter *InterfaceLoadBalancerListResultIterator) Next() error { 9408 return iter.NextWithContext(context.Background()) 9409} 9410 9411// NotDone returns true if the enumeration should be started or is not yet complete. 9412func (iter InterfaceLoadBalancerListResultIterator) NotDone() bool { 9413 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 9414} 9415 9416// Response returns the raw server response from the last page request. 9417func (iter InterfaceLoadBalancerListResultIterator) Response() InterfaceLoadBalancerListResult { 9418 return iter.page.Response() 9419} 9420 9421// Value returns the current value or a zero-initialized value if the 9422// iterator has advanced beyond the end of the collection. 9423func (iter InterfaceLoadBalancerListResultIterator) Value() LoadBalancer { 9424 if !iter.page.NotDone() { 9425 return LoadBalancer{} 9426 } 9427 return iter.page.Values()[iter.i] 9428} 9429 9430// Creates a new instance of the InterfaceLoadBalancerListResultIterator type. 9431func NewInterfaceLoadBalancerListResultIterator(page InterfaceLoadBalancerListResultPage) InterfaceLoadBalancerListResultIterator { 9432 return InterfaceLoadBalancerListResultIterator{page: page} 9433} 9434 9435// IsEmpty returns true if the ListResult contains no values. 9436func (ilblr InterfaceLoadBalancerListResult) IsEmpty() bool { 9437 return ilblr.Value == nil || len(*ilblr.Value) == 0 9438} 9439 9440// interfaceLoadBalancerListResultPreparer prepares a request to retrieve the next set of results. 9441// It returns nil if no more results exist. 9442func (ilblr InterfaceLoadBalancerListResult) interfaceLoadBalancerListResultPreparer(ctx context.Context) (*http.Request, error) { 9443 if ilblr.NextLink == nil || len(to.String(ilblr.NextLink)) < 1 { 9444 return nil, nil 9445 } 9446 return autorest.Prepare((&http.Request{}).WithContext(ctx), 9447 autorest.AsJSON(), 9448 autorest.AsGet(), 9449 autorest.WithBaseURL(to.String(ilblr.NextLink))) 9450} 9451 9452// InterfaceLoadBalancerListResultPage contains a page of LoadBalancer values. 9453type InterfaceLoadBalancerListResultPage struct { 9454 fn func(context.Context, InterfaceLoadBalancerListResult) (InterfaceLoadBalancerListResult, error) 9455 ilblr InterfaceLoadBalancerListResult 9456} 9457 9458// NextWithContext advances to the next page of values. If there was an error making 9459// the request the page does not advance and the error is returned. 9460func (page *InterfaceLoadBalancerListResultPage) NextWithContext(ctx context.Context) (err error) { 9461 if tracing.IsEnabled() { 9462 ctx = tracing.StartSpan(ctx, fqdn+"/InterfaceLoadBalancerListResultPage.NextWithContext") 9463 defer func() { 9464 sc := -1 9465 if page.Response().Response.Response != nil { 9466 sc = page.Response().Response.Response.StatusCode 9467 } 9468 tracing.EndSpan(ctx, sc, err) 9469 }() 9470 } 9471 next, err := page.fn(ctx, page.ilblr) 9472 if err != nil { 9473 return err 9474 } 9475 page.ilblr = next 9476 return nil 9477} 9478 9479// Next advances to the next page of values. If there was an error making 9480// the request the page does not advance and the error is returned. 9481// Deprecated: Use NextWithContext() instead. 9482func (page *InterfaceLoadBalancerListResultPage) Next() error { 9483 return page.NextWithContext(context.Background()) 9484} 9485 9486// NotDone returns true if the page enumeration should be started or is not yet complete. 9487func (page InterfaceLoadBalancerListResultPage) NotDone() bool { 9488 return !page.ilblr.IsEmpty() 9489} 9490 9491// Response returns the raw server response from the last page request. 9492func (page InterfaceLoadBalancerListResultPage) Response() InterfaceLoadBalancerListResult { 9493 return page.ilblr 9494} 9495 9496// Values returns the slice of values for the current page or nil if there are no values. 9497func (page InterfaceLoadBalancerListResultPage) Values() []LoadBalancer { 9498 if page.ilblr.IsEmpty() { 9499 return nil 9500 } 9501 return *page.ilblr.Value 9502} 9503 9504// Creates a new instance of the InterfaceLoadBalancerListResultPage type. 9505func NewInterfaceLoadBalancerListResultPage(getNextPage func(context.Context, InterfaceLoadBalancerListResult) (InterfaceLoadBalancerListResult, error)) InterfaceLoadBalancerListResultPage { 9506 return InterfaceLoadBalancerListResultPage{fn: getNextPage} 9507} 9508 9509// InterfacePropertiesFormat networkInterface properties. 9510type InterfacePropertiesFormat struct { 9511 // VirtualMachine - The reference of a virtual machine. 9512 VirtualMachine *SubResource `json:"virtualMachine,omitempty"` 9513 // NetworkSecurityGroup - The reference of the NetworkSecurityGroup resource. 9514 NetworkSecurityGroup *SecurityGroup `json:"networkSecurityGroup,omitempty"` 9515 // IPConfigurations - A list of IPConfigurations of the network interface. 9516 IPConfigurations *[]InterfaceIPConfiguration `json:"ipConfigurations,omitempty"` 9517 // DNSSettings - The DNS settings in network interface. 9518 DNSSettings *InterfaceDNSSettings `json:"dnsSettings,omitempty"` 9519 // MacAddress - The MAC address of the network interface. 9520 MacAddress *string `json:"macAddress,omitempty"` 9521 // Primary - Gets whether this is a primary network interface on a virtual machine. 9522 Primary *bool `json:"primary,omitempty"` 9523 // EnableAcceleratedNetworking - If the network interface is accelerated networking enabled. 9524 EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"` 9525 // EnableIPForwarding - Indicates whether IP forwarding is enabled on this network interface. 9526 EnableIPForwarding *bool `json:"enableIPForwarding,omitempty"` 9527 // ResourceGUID - The resource GUID property of the network interface resource. 9528 ResourceGUID *string `json:"resourceGuid,omitempty"` 9529 // ProvisioningState - The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 9530 ProvisioningState *string `json:"provisioningState,omitempty"` 9531} 9532 9533// InterfacesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 9534// long-running operation. 9535type InterfacesCreateOrUpdateFuture struct { 9536 azure.Future 9537} 9538 9539// Result returns the result of the asynchronous operation. 9540// If the operation has not completed it will return an error. 9541func (future *InterfacesCreateOrUpdateFuture) Result(client InterfacesClient) (i Interface, err error) { 9542 var done bool 9543 done, err = future.DoneWithContext(context.Background(), client) 9544 if err != nil { 9545 err = autorest.NewErrorWithError(err, "network.InterfacesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 9546 return 9547 } 9548 if !done { 9549 err = azure.NewAsyncOpIncompleteError("network.InterfacesCreateOrUpdateFuture") 9550 return 9551 } 9552 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9553 if i.Response.Response, err = future.GetResult(sender); err == nil && i.Response.Response.StatusCode != http.StatusNoContent { 9554 i, err = client.CreateOrUpdateResponder(i.Response.Response) 9555 if err != nil { 9556 err = autorest.NewErrorWithError(err, "network.InterfacesCreateOrUpdateFuture", "Result", i.Response.Response, "Failure responding to request") 9557 } 9558 } 9559 return 9560} 9561 9562// InterfacesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 9563// operation. 9564type InterfacesDeleteFuture struct { 9565 azure.Future 9566} 9567 9568// Result returns the result of the asynchronous operation. 9569// If the operation has not completed it will return an error. 9570func (future *InterfacesDeleteFuture) Result(client InterfacesClient) (ar autorest.Response, err error) { 9571 var done bool 9572 done, err = future.DoneWithContext(context.Background(), client) 9573 if err != nil { 9574 err = autorest.NewErrorWithError(err, "network.InterfacesDeleteFuture", "Result", future.Response(), "Polling failure") 9575 return 9576 } 9577 if !done { 9578 err = azure.NewAsyncOpIncompleteError("network.InterfacesDeleteFuture") 9579 return 9580 } 9581 ar.Response = future.Response() 9582 return 9583} 9584 9585// InterfacesGetEffectiveRouteTableFuture an abstraction for monitoring and retrieving the results of a 9586// long-running operation. 9587type InterfacesGetEffectiveRouteTableFuture struct { 9588 azure.Future 9589} 9590 9591// Result returns the result of the asynchronous operation. 9592// If the operation has not completed it will return an error. 9593func (future *InterfacesGetEffectiveRouteTableFuture) Result(client InterfacesClient) (erlr EffectiveRouteListResult, err error) { 9594 var done bool 9595 done, err = future.DoneWithContext(context.Background(), client) 9596 if err != nil { 9597 err = autorest.NewErrorWithError(err, "network.InterfacesGetEffectiveRouteTableFuture", "Result", future.Response(), "Polling failure") 9598 return 9599 } 9600 if !done { 9601 err = azure.NewAsyncOpIncompleteError("network.InterfacesGetEffectiveRouteTableFuture") 9602 return 9603 } 9604 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9605 if erlr.Response.Response, err = future.GetResult(sender); err == nil && erlr.Response.Response.StatusCode != http.StatusNoContent { 9606 erlr, err = client.GetEffectiveRouteTableResponder(erlr.Response.Response) 9607 if err != nil { 9608 err = autorest.NewErrorWithError(err, "network.InterfacesGetEffectiveRouteTableFuture", "Result", erlr.Response.Response, "Failure responding to request") 9609 } 9610 } 9611 return 9612} 9613 9614// InterfacesListEffectiveNetworkSecurityGroupsFuture an abstraction for monitoring and retrieving the 9615// results of a long-running operation. 9616type InterfacesListEffectiveNetworkSecurityGroupsFuture struct { 9617 azure.Future 9618} 9619 9620// Result returns the result of the asynchronous operation. 9621// If the operation has not completed it will return an error. 9622func (future *InterfacesListEffectiveNetworkSecurityGroupsFuture) Result(client InterfacesClient) (ensglr EffectiveNetworkSecurityGroupListResult, err error) { 9623 var done bool 9624 done, err = future.DoneWithContext(context.Background(), client) 9625 if err != nil { 9626 err = autorest.NewErrorWithError(err, "network.InterfacesListEffectiveNetworkSecurityGroupsFuture", "Result", future.Response(), "Polling failure") 9627 return 9628 } 9629 if !done { 9630 err = azure.NewAsyncOpIncompleteError("network.InterfacesListEffectiveNetworkSecurityGroupsFuture") 9631 return 9632 } 9633 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9634 if ensglr.Response.Response, err = future.GetResult(sender); err == nil && ensglr.Response.Response.StatusCode != http.StatusNoContent { 9635 ensglr, err = client.ListEffectiveNetworkSecurityGroupsResponder(ensglr.Response.Response) 9636 if err != nil { 9637 err = autorest.NewErrorWithError(err, "network.InterfacesListEffectiveNetworkSecurityGroupsFuture", "Result", ensglr.Response.Response, "Failure responding to request") 9638 } 9639 } 9640 return 9641} 9642 9643// InterfacesUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 9644// operation. 9645type InterfacesUpdateTagsFuture struct { 9646 azure.Future 9647} 9648 9649// Result returns the result of the asynchronous operation. 9650// If the operation has not completed it will return an error. 9651func (future *InterfacesUpdateTagsFuture) Result(client InterfacesClient) (i Interface, err error) { 9652 var done bool 9653 done, err = future.DoneWithContext(context.Background(), client) 9654 if err != nil { 9655 err = autorest.NewErrorWithError(err, "network.InterfacesUpdateTagsFuture", "Result", future.Response(), "Polling failure") 9656 return 9657 } 9658 if !done { 9659 err = azure.NewAsyncOpIncompleteError("network.InterfacesUpdateTagsFuture") 9660 return 9661 } 9662 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9663 if i.Response.Response, err = future.GetResult(sender); err == nil && i.Response.Response.StatusCode != http.StatusNoContent { 9664 i, err = client.UpdateTagsResponder(i.Response.Response) 9665 if err != nil { 9666 err = autorest.NewErrorWithError(err, "network.InterfacesUpdateTagsFuture", "Result", i.Response.Response, "Failure responding to request") 9667 } 9668 } 9669 return 9670} 9671 9672// IPAddressAvailabilityResult response for CheckIPAddressAvailability API service call 9673type IPAddressAvailabilityResult struct { 9674 autorest.Response `json:"-"` 9675 // Available - Private IP address availability. 9676 Available *bool `json:"available,omitempty"` 9677 // AvailableIPAddresses - Contains other available private IP addresses if the asked for address is taken. 9678 AvailableIPAddresses *[]string `json:"availableIPAddresses,omitempty"` 9679} 9680 9681// IPConfiguration IP configuration 9682type IPConfiguration struct { 9683 // IPConfigurationPropertiesFormat - Properties of the IP configuration 9684 *IPConfigurationPropertiesFormat `json:"properties,omitempty"` 9685 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 9686 Name *string `json:"name,omitempty"` 9687 // Etag - A unique read-only string that changes whenever the resource is updated. 9688 Etag *string `json:"etag,omitempty"` 9689 // ID - Resource ID. 9690 ID *string `json:"id,omitempty"` 9691} 9692 9693// MarshalJSON is the custom marshaler for IPConfiguration. 9694func (ic IPConfiguration) MarshalJSON() ([]byte, error) { 9695 objectMap := make(map[string]interface{}) 9696 if ic.IPConfigurationPropertiesFormat != nil { 9697 objectMap["properties"] = ic.IPConfigurationPropertiesFormat 9698 } 9699 if ic.Name != nil { 9700 objectMap["name"] = ic.Name 9701 } 9702 if ic.Etag != nil { 9703 objectMap["etag"] = ic.Etag 9704 } 9705 if ic.ID != nil { 9706 objectMap["id"] = ic.ID 9707 } 9708 return json.Marshal(objectMap) 9709} 9710 9711// UnmarshalJSON is the custom unmarshaler for IPConfiguration struct. 9712func (ic *IPConfiguration) UnmarshalJSON(body []byte) error { 9713 var m map[string]*json.RawMessage 9714 err := json.Unmarshal(body, &m) 9715 if err != nil { 9716 return err 9717 } 9718 for k, v := range m { 9719 switch k { 9720 case "properties": 9721 if v != nil { 9722 var IPConfigurationPropertiesFormat IPConfigurationPropertiesFormat 9723 err = json.Unmarshal(*v, &IPConfigurationPropertiesFormat) 9724 if err != nil { 9725 return err 9726 } 9727 ic.IPConfigurationPropertiesFormat = &IPConfigurationPropertiesFormat 9728 } 9729 case "name": 9730 if v != nil { 9731 var name string 9732 err = json.Unmarshal(*v, &name) 9733 if err != nil { 9734 return err 9735 } 9736 ic.Name = &name 9737 } 9738 case "etag": 9739 if v != nil { 9740 var etag string 9741 err = json.Unmarshal(*v, &etag) 9742 if err != nil { 9743 return err 9744 } 9745 ic.Etag = &etag 9746 } 9747 case "id": 9748 if v != nil { 9749 var ID string 9750 err = json.Unmarshal(*v, &ID) 9751 if err != nil { 9752 return err 9753 } 9754 ic.ID = &ID 9755 } 9756 } 9757 } 9758 9759 return nil 9760} 9761 9762// IPConfigurationPropertiesFormat properties of IP configuration. 9763type IPConfigurationPropertiesFormat struct { 9764 // PrivateIPAddress - The private IP address of the IP configuration. 9765 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 9766 // PrivateIPAllocationMethod - The private IP allocation method. Possible values are 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 9767 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 9768 // Subnet - The reference of the subnet resource. 9769 Subnet *Subnet `json:"subnet,omitempty"` 9770 // PublicIPAddress - The reference of the public IP resource. 9771 PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"` 9772 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 9773 ProvisioningState *string `json:"provisioningState,omitempty"` 9774} 9775 9776// IpsecPolicy an IPSec Policy configuration for a virtual network gateway connection 9777type IpsecPolicy struct { 9778 // SaLifeTimeSeconds - The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel. 9779 SaLifeTimeSeconds *int32 `json:"saLifeTimeSeconds,omitempty"` 9780 // SaDataSizeKilobytes - The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel. 9781 SaDataSizeKilobytes *int32 `json:"saDataSizeKilobytes,omitempty"` 9782 // IpsecEncryption - The IPSec encryption algorithm (IKE phase 1). Possible values include: 'IpsecEncryptionNone', 'IpsecEncryptionDES', 'IpsecEncryptionDES3', 'IpsecEncryptionAES128', 'IpsecEncryptionAES192', 'IpsecEncryptionAES256', 'IpsecEncryptionGCMAES128', 'IpsecEncryptionGCMAES192', 'IpsecEncryptionGCMAES256' 9783 IpsecEncryption IpsecEncryption `json:"ipsecEncryption,omitempty"` 9784 // IpsecIntegrity - The IPSec integrity algorithm (IKE phase 1). Possible values include: 'IpsecIntegrityMD5', 'IpsecIntegritySHA1', 'IpsecIntegritySHA256', 'IpsecIntegrityGCMAES128', 'IpsecIntegrityGCMAES192', 'IpsecIntegrityGCMAES256' 9785 IpsecIntegrity IpsecIntegrity `json:"ipsecIntegrity,omitempty"` 9786 // IkeEncryption - The IKE encryption algorithm (IKE phase 2). Possible values include: 'DES', 'DES3', 'AES128', 'AES192', 'AES256', 'GCMAES256', 'GCMAES128' 9787 IkeEncryption IkeEncryption `json:"ikeEncryption,omitempty"` 9788 // IkeIntegrity - The IKE integrity algorithm (IKE phase 2). Possible values include: 'IkeIntegrityMD5', 'IkeIntegritySHA1', 'IkeIntegritySHA256', 'IkeIntegritySHA384', 'IkeIntegrityGCMAES256', 'IkeIntegrityGCMAES128' 9789 IkeIntegrity IkeIntegrity `json:"ikeIntegrity,omitempty"` 9790 // DhGroup - The DH Groups used in IKE Phase 1 for initial SA. Possible values include: 'None', 'DHGroup1', 'DHGroup2', 'DHGroup14', 'DHGroup2048', 'ECP256', 'ECP384', 'DHGroup24' 9791 DhGroup DhGroup `json:"dhGroup,omitempty"` 9792 // PfsGroup - The Pfs Groups used in IKE Phase 2 for new child SA. Possible values include: 'PfsGroupNone', 'PfsGroupPFS1', 'PfsGroupPFS2', 'PfsGroupPFS2048', 'PfsGroupECP256', 'PfsGroupECP384', 'PfsGroupPFS24', 'PfsGroupPFS14', 'PfsGroupPFSMM' 9793 PfsGroup PfsGroup `json:"pfsGroup,omitempty"` 9794} 9795 9796// IPTag contains the IpTag associated with the public IP address 9797type IPTag struct { 9798 // IPTagType - Gets or sets the ipTag type: Example FirstPartyUsage. 9799 IPTagType *string `json:"ipTagType,omitempty"` 9800 // Tag - Gets or sets value of the IpTag associated with the public IP. Example SQL, Storage etc 9801 Tag *string `json:"tag,omitempty"` 9802} 9803 9804// Ipv6ExpressRouteCircuitPeeringConfig contains IPv6 peering config. 9805type Ipv6ExpressRouteCircuitPeeringConfig struct { 9806 // PrimaryPeerAddressPrefix - The primary address prefix. 9807 PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"` 9808 // SecondaryPeerAddressPrefix - The secondary address prefix. 9809 SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"` 9810 // MicrosoftPeeringConfig - The Microsoft peering configuration. 9811 MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"` 9812 // RouteFilter - The reference of the RouteFilter resource. 9813 RouteFilter *RouteFilter `json:"routeFilter,omitempty"` 9814 // State - The state of peering. Possible values are: 'Disabled' and 'Enabled'. Possible values include: 'ExpressRouteCircuitPeeringStateDisabled', 'ExpressRouteCircuitPeeringStateEnabled' 9815 State ExpressRouteCircuitPeeringState `json:"state,omitempty"` 9816} 9817 9818// LoadBalancer loadBalancer resource 9819type LoadBalancer struct { 9820 autorest.Response `json:"-"` 9821 // Sku - The load balancer SKU. 9822 Sku *LoadBalancerSku `json:"sku,omitempty"` 9823 // LoadBalancerPropertiesFormat - Properties of load balancer. 9824 *LoadBalancerPropertiesFormat `json:"properties,omitempty"` 9825 // Etag - A unique read-only string that changes whenever the resource is updated. 9826 Etag *string `json:"etag,omitempty"` 9827 // ID - Resource ID. 9828 ID *string `json:"id,omitempty"` 9829 // Name - READ-ONLY; Resource name. 9830 Name *string `json:"name,omitempty"` 9831 // Type - READ-ONLY; Resource type. 9832 Type *string `json:"type,omitempty"` 9833 // Location - Resource location. 9834 Location *string `json:"location,omitempty"` 9835 // Tags - Resource tags. 9836 Tags map[string]*string `json:"tags"` 9837} 9838 9839// MarshalJSON is the custom marshaler for LoadBalancer. 9840func (lb LoadBalancer) MarshalJSON() ([]byte, error) { 9841 objectMap := make(map[string]interface{}) 9842 if lb.Sku != nil { 9843 objectMap["sku"] = lb.Sku 9844 } 9845 if lb.LoadBalancerPropertiesFormat != nil { 9846 objectMap["properties"] = lb.LoadBalancerPropertiesFormat 9847 } 9848 if lb.Etag != nil { 9849 objectMap["etag"] = lb.Etag 9850 } 9851 if lb.ID != nil { 9852 objectMap["id"] = lb.ID 9853 } 9854 if lb.Location != nil { 9855 objectMap["location"] = lb.Location 9856 } 9857 if lb.Tags != nil { 9858 objectMap["tags"] = lb.Tags 9859 } 9860 return json.Marshal(objectMap) 9861} 9862 9863// UnmarshalJSON is the custom unmarshaler for LoadBalancer struct. 9864func (lb *LoadBalancer) UnmarshalJSON(body []byte) error { 9865 var m map[string]*json.RawMessage 9866 err := json.Unmarshal(body, &m) 9867 if err != nil { 9868 return err 9869 } 9870 for k, v := range m { 9871 switch k { 9872 case "sku": 9873 if v != nil { 9874 var sku LoadBalancerSku 9875 err = json.Unmarshal(*v, &sku) 9876 if err != nil { 9877 return err 9878 } 9879 lb.Sku = &sku 9880 } 9881 case "properties": 9882 if v != nil { 9883 var loadBalancerPropertiesFormat LoadBalancerPropertiesFormat 9884 err = json.Unmarshal(*v, &loadBalancerPropertiesFormat) 9885 if err != nil { 9886 return err 9887 } 9888 lb.LoadBalancerPropertiesFormat = &loadBalancerPropertiesFormat 9889 } 9890 case "etag": 9891 if v != nil { 9892 var etag string 9893 err = json.Unmarshal(*v, &etag) 9894 if err != nil { 9895 return err 9896 } 9897 lb.Etag = &etag 9898 } 9899 case "id": 9900 if v != nil { 9901 var ID string 9902 err = json.Unmarshal(*v, &ID) 9903 if err != nil { 9904 return err 9905 } 9906 lb.ID = &ID 9907 } 9908 case "name": 9909 if v != nil { 9910 var name string 9911 err = json.Unmarshal(*v, &name) 9912 if err != nil { 9913 return err 9914 } 9915 lb.Name = &name 9916 } 9917 case "type": 9918 if v != nil { 9919 var typeVar string 9920 err = json.Unmarshal(*v, &typeVar) 9921 if err != nil { 9922 return err 9923 } 9924 lb.Type = &typeVar 9925 } 9926 case "location": 9927 if v != nil { 9928 var location string 9929 err = json.Unmarshal(*v, &location) 9930 if err != nil { 9931 return err 9932 } 9933 lb.Location = &location 9934 } 9935 case "tags": 9936 if v != nil { 9937 var tags map[string]*string 9938 err = json.Unmarshal(*v, &tags) 9939 if err != nil { 9940 return err 9941 } 9942 lb.Tags = tags 9943 } 9944 } 9945 } 9946 9947 return nil 9948} 9949 9950// LoadBalancerBackendAddressPoolListResult response for ListBackendAddressPool API service call. 9951type LoadBalancerBackendAddressPoolListResult struct { 9952 autorest.Response `json:"-"` 9953 // Value - A list of backend address pools in a load balancer. 9954 Value *[]BackendAddressPool `json:"value,omitempty"` 9955 // NextLink - READ-ONLY; The URL to get the next set of results. 9956 NextLink *string `json:"nextLink,omitempty"` 9957} 9958 9959// LoadBalancerBackendAddressPoolListResultIterator provides access to a complete listing of 9960// BackendAddressPool values. 9961type LoadBalancerBackendAddressPoolListResultIterator struct { 9962 i int 9963 page LoadBalancerBackendAddressPoolListResultPage 9964} 9965 9966// NextWithContext advances to the next value. If there was an error making 9967// the request the iterator does not advance and the error is returned. 9968func (iter *LoadBalancerBackendAddressPoolListResultIterator) NextWithContext(ctx context.Context) (err error) { 9969 if tracing.IsEnabled() { 9970 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerBackendAddressPoolListResultIterator.NextWithContext") 9971 defer func() { 9972 sc := -1 9973 if iter.Response().Response.Response != nil { 9974 sc = iter.Response().Response.Response.StatusCode 9975 } 9976 tracing.EndSpan(ctx, sc, err) 9977 }() 9978 } 9979 iter.i++ 9980 if iter.i < len(iter.page.Values()) { 9981 return nil 9982 } 9983 err = iter.page.NextWithContext(ctx) 9984 if err != nil { 9985 iter.i-- 9986 return err 9987 } 9988 iter.i = 0 9989 return nil 9990} 9991 9992// Next advances to the next value. If there was an error making 9993// the request the iterator does not advance and the error is returned. 9994// Deprecated: Use NextWithContext() instead. 9995func (iter *LoadBalancerBackendAddressPoolListResultIterator) Next() error { 9996 return iter.NextWithContext(context.Background()) 9997} 9998 9999// NotDone returns true if the enumeration should be started or is not yet complete. 10000func (iter LoadBalancerBackendAddressPoolListResultIterator) NotDone() bool { 10001 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10002} 10003 10004// Response returns the raw server response from the last page request. 10005func (iter LoadBalancerBackendAddressPoolListResultIterator) Response() LoadBalancerBackendAddressPoolListResult { 10006 return iter.page.Response() 10007} 10008 10009// Value returns the current value or a zero-initialized value if the 10010// iterator has advanced beyond the end of the collection. 10011func (iter LoadBalancerBackendAddressPoolListResultIterator) Value() BackendAddressPool { 10012 if !iter.page.NotDone() { 10013 return BackendAddressPool{} 10014 } 10015 return iter.page.Values()[iter.i] 10016} 10017 10018// Creates a new instance of the LoadBalancerBackendAddressPoolListResultIterator type. 10019func NewLoadBalancerBackendAddressPoolListResultIterator(page LoadBalancerBackendAddressPoolListResultPage) LoadBalancerBackendAddressPoolListResultIterator { 10020 return LoadBalancerBackendAddressPoolListResultIterator{page: page} 10021} 10022 10023// IsEmpty returns true if the ListResult contains no values. 10024func (lbbaplr LoadBalancerBackendAddressPoolListResult) IsEmpty() bool { 10025 return lbbaplr.Value == nil || len(*lbbaplr.Value) == 0 10026} 10027 10028// loadBalancerBackendAddressPoolListResultPreparer prepares a request to retrieve the next set of results. 10029// It returns nil if no more results exist. 10030func (lbbaplr LoadBalancerBackendAddressPoolListResult) loadBalancerBackendAddressPoolListResultPreparer(ctx context.Context) (*http.Request, error) { 10031 if lbbaplr.NextLink == nil || len(to.String(lbbaplr.NextLink)) < 1 { 10032 return nil, nil 10033 } 10034 return autorest.Prepare((&http.Request{}).WithContext(ctx), 10035 autorest.AsJSON(), 10036 autorest.AsGet(), 10037 autorest.WithBaseURL(to.String(lbbaplr.NextLink))) 10038} 10039 10040// LoadBalancerBackendAddressPoolListResultPage contains a page of BackendAddressPool values. 10041type LoadBalancerBackendAddressPoolListResultPage struct { 10042 fn func(context.Context, LoadBalancerBackendAddressPoolListResult) (LoadBalancerBackendAddressPoolListResult, error) 10043 lbbaplr LoadBalancerBackendAddressPoolListResult 10044} 10045 10046// NextWithContext advances to the next page of values. If there was an error making 10047// the request the page does not advance and the error is returned. 10048func (page *LoadBalancerBackendAddressPoolListResultPage) NextWithContext(ctx context.Context) (err error) { 10049 if tracing.IsEnabled() { 10050 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerBackendAddressPoolListResultPage.NextWithContext") 10051 defer func() { 10052 sc := -1 10053 if page.Response().Response.Response != nil { 10054 sc = page.Response().Response.Response.StatusCode 10055 } 10056 tracing.EndSpan(ctx, sc, err) 10057 }() 10058 } 10059 next, err := page.fn(ctx, page.lbbaplr) 10060 if err != nil { 10061 return err 10062 } 10063 page.lbbaplr = next 10064 return nil 10065} 10066 10067// Next advances to the next page of values. If there was an error making 10068// the request the page does not advance and the error is returned. 10069// Deprecated: Use NextWithContext() instead. 10070func (page *LoadBalancerBackendAddressPoolListResultPage) Next() error { 10071 return page.NextWithContext(context.Background()) 10072} 10073 10074// NotDone returns true if the page enumeration should be started or is not yet complete. 10075func (page LoadBalancerBackendAddressPoolListResultPage) NotDone() bool { 10076 return !page.lbbaplr.IsEmpty() 10077} 10078 10079// Response returns the raw server response from the last page request. 10080func (page LoadBalancerBackendAddressPoolListResultPage) Response() LoadBalancerBackendAddressPoolListResult { 10081 return page.lbbaplr 10082} 10083 10084// Values returns the slice of values for the current page or nil if there are no values. 10085func (page LoadBalancerBackendAddressPoolListResultPage) Values() []BackendAddressPool { 10086 if page.lbbaplr.IsEmpty() { 10087 return nil 10088 } 10089 return *page.lbbaplr.Value 10090} 10091 10092// Creates a new instance of the LoadBalancerBackendAddressPoolListResultPage type. 10093func NewLoadBalancerBackendAddressPoolListResultPage(getNextPage func(context.Context, LoadBalancerBackendAddressPoolListResult) (LoadBalancerBackendAddressPoolListResult, error)) LoadBalancerBackendAddressPoolListResultPage { 10094 return LoadBalancerBackendAddressPoolListResultPage{fn: getNextPage} 10095} 10096 10097// LoadBalancerFrontendIPConfigurationListResult response for ListFrontendIPConfiguration API service call. 10098type LoadBalancerFrontendIPConfigurationListResult struct { 10099 autorest.Response `json:"-"` 10100 // Value - A list of frontend IP configurations in a load balancer. 10101 Value *[]FrontendIPConfiguration `json:"value,omitempty"` 10102 // NextLink - READ-ONLY; The URL to get the next set of results. 10103 NextLink *string `json:"nextLink,omitempty"` 10104} 10105 10106// LoadBalancerFrontendIPConfigurationListResultIterator provides access to a complete listing of 10107// FrontendIPConfiguration values. 10108type LoadBalancerFrontendIPConfigurationListResultIterator struct { 10109 i int 10110 page LoadBalancerFrontendIPConfigurationListResultPage 10111} 10112 10113// NextWithContext advances to the next value. If there was an error making 10114// the request the iterator does not advance and the error is returned. 10115func (iter *LoadBalancerFrontendIPConfigurationListResultIterator) NextWithContext(ctx context.Context) (err error) { 10116 if tracing.IsEnabled() { 10117 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerFrontendIPConfigurationListResultIterator.NextWithContext") 10118 defer func() { 10119 sc := -1 10120 if iter.Response().Response.Response != nil { 10121 sc = iter.Response().Response.Response.StatusCode 10122 } 10123 tracing.EndSpan(ctx, sc, err) 10124 }() 10125 } 10126 iter.i++ 10127 if iter.i < len(iter.page.Values()) { 10128 return nil 10129 } 10130 err = iter.page.NextWithContext(ctx) 10131 if err != nil { 10132 iter.i-- 10133 return err 10134 } 10135 iter.i = 0 10136 return nil 10137} 10138 10139// Next advances to the next value. If there was an error making 10140// the request the iterator does not advance and the error is returned. 10141// Deprecated: Use NextWithContext() instead. 10142func (iter *LoadBalancerFrontendIPConfigurationListResultIterator) Next() error { 10143 return iter.NextWithContext(context.Background()) 10144} 10145 10146// NotDone returns true if the enumeration should be started or is not yet complete. 10147func (iter LoadBalancerFrontendIPConfigurationListResultIterator) NotDone() bool { 10148 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10149} 10150 10151// Response returns the raw server response from the last page request. 10152func (iter LoadBalancerFrontendIPConfigurationListResultIterator) Response() LoadBalancerFrontendIPConfigurationListResult { 10153 return iter.page.Response() 10154} 10155 10156// Value returns the current value or a zero-initialized value if the 10157// iterator has advanced beyond the end of the collection. 10158func (iter LoadBalancerFrontendIPConfigurationListResultIterator) Value() FrontendIPConfiguration { 10159 if !iter.page.NotDone() { 10160 return FrontendIPConfiguration{} 10161 } 10162 return iter.page.Values()[iter.i] 10163} 10164 10165// Creates a new instance of the LoadBalancerFrontendIPConfigurationListResultIterator type. 10166func NewLoadBalancerFrontendIPConfigurationListResultIterator(page LoadBalancerFrontendIPConfigurationListResultPage) LoadBalancerFrontendIPConfigurationListResultIterator { 10167 return LoadBalancerFrontendIPConfigurationListResultIterator{page: page} 10168} 10169 10170// IsEmpty returns true if the ListResult contains no values. 10171func (lbficlr LoadBalancerFrontendIPConfigurationListResult) IsEmpty() bool { 10172 return lbficlr.Value == nil || len(*lbficlr.Value) == 0 10173} 10174 10175// loadBalancerFrontendIPConfigurationListResultPreparer prepares a request to retrieve the next set of results. 10176// It returns nil if no more results exist. 10177func (lbficlr LoadBalancerFrontendIPConfigurationListResult) loadBalancerFrontendIPConfigurationListResultPreparer(ctx context.Context) (*http.Request, error) { 10178 if lbficlr.NextLink == nil || len(to.String(lbficlr.NextLink)) < 1 { 10179 return nil, nil 10180 } 10181 return autorest.Prepare((&http.Request{}).WithContext(ctx), 10182 autorest.AsJSON(), 10183 autorest.AsGet(), 10184 autorest.WithBaseURL(to.String(lbficlr.NextLink))) 10185} 10186 10187// LoadBalancerFrontendIPConfigurationListResultPage contains a page of FrontendIPConfiguration values. 10188type LoadBalancerFrontendIPConfigurationListResultPage struct { 10189 fn func(context.Context, LoadBalancerFrontendIPConfigurationListResult) (LoadBalancerFrontendIPConfigurationListResult, error) 10190 lbficlr LoadBalancerFrontendIPConfigurationListResult 10191} 10192 10193// NextWithContext advances to the next page of values. If there was an error making 10194// the request the page does not advance and the error is returned. 10195func (page *LoadBalancerFrontendIPConfigurationListResultPage) NextWithContext(ctx context.Context) (err error) { 10196 if tracing.IsEnabled() { 10197 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerFrontendIPConfigurationListResultPage.NextWithContext") 10198 defer func() { 10199 sc := -1 10200 if page.Response().Response.Response != nil { 10201 sc = page.Response().Response.Response.StatusCode 10202 } 10203 tracing.EndSpan(ctx, sc, err) 10204 }() 10205 } 10206 next, err := page.fn(ctx, page.lbficlr) 10207 if err != nil { 10208 return err 10209 } 10210 page.lbficlr = next 10211 return nil 10212} 10213 10214// Next advances to the next page of values. If there was an error making 10215// the request the page does not advance and the error is returned. 10216// Deprecated: Use NextWithContext() instead. 10217func (page *LoadBalancerFrontendIPConfigurationListResultPage) Next() error { 10218 return page.NextWithContext(context.Background()) 10219} 10220 10221// NotDone returns true if the page enumeration should be started or is not yet complete. 10222func (page LoadBalancerFrontendIPConfigurationListResultPage) NotDone() bool { 10223 return !page.lbficlr.IsEmpty() 10224} 10225 10226// Response returns the raw server response from the last page request. 10227func (page LoadBalancerFrontendIPConfigurationListResultPage) Response() LoadBalancerFrontendIPConfigurationListResult { 10228 return page.lbficlr 10229} 10230 10231// Values returns the slice of values for the current page or nil if there are no values. 10232func (page LoadBalancerFrontendIPConfigurationListResultPage) Values() []FrontendIPConfiguration { 10233 if page.lbficlr.IsEmpty() { 10234 return nil 10235 } 10236 return *page.lbficlr.Value 10237} 10238 10239// Creates a new instance of the LoadBalancerFrontendIPConfigurationListResultPage type. 10240func NewLoadBalancerFrontendIPConfigurationListResultPage(getNextPage func(context.Context, LoadBalancerFrontendIPConfigurationListResult) (LoadBalancerFrontendIPConfigurationListResult, error)) LoadBalancerFrontendIPConfigurationListResultPage { 10241 return LoadBalancerFrontendIPConfigurationListResultPage{fn: getNextPage} 10242} 10243 10244// LoadBalancerListResult response for ListLoadBalancers API service call. 10245type LoadBalancerListResult struct { 10246 autorest.Response `json:"-"` 10247 // Value - A list of load balancers in a resource group. 10248 Value *[]LoadBalancer `json:"value,omitempty"` 10249 // NextLink - READ-ONLY; The URL to get the next set of results. 10250 NextLink *string `json:"nextLink,omitempty"` 10251} 10252 10253// LoadBalancerListResultIterator provides access to a complete listing of LoadBalancer values. 10254type LoadBalancerListResultIterator struct { 10255 i int 10256 page LoadBalancerListResultPage 10257} 10258 10259// NextWithContext advances to the next value. If there was an error making 10260// the request the iterator does not advance and the error is returned. 10261func (iter *LoadBalancerListResultIterator) NextWithContext(ctx context.Context) (err error) { 10262 if tracing.IsEnabled() { 10263 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerListResultIterator.NextWithContext") 10264 defer func() { 10265 sc := -1 10266 if iter.Response().Response.Response != nil { 10267 sc = iter.Response().Response.Response.StatusCode 10268 } 10269 tracing.EndSpan(ctx, sc, err) 10270 }() 10271 } 10272 iter.i++ 10273 if iter.i < len(iter.page.Values()) { 10274 return nil 10275 } 10276 err = iter.page.NextWithContext(ctx) 10277 if err != nil { 10278 iter.i-- 10279 return err 10280 } 10281 iter.i = 0 10282 return nil 10283} 10284 10285// Next advances to the next value. If there was an error making 10286// the request the iterator does not advance and the error is returned. 10287// Deprecated: Use NextWithContext() instead. 10288func (iter *LoadBalancerListResultIterator) Next() error { 10289 return iter.NextWithContext(context.Background()) 10290} 10291 10292// NotDone returns true if the enumeration should be started or is not yet complete. 10293func (iter LoadBalancerListResultIterator) NotDone() bool { 10294 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10295} 10296 10297// Response returns the raw server response from the last page request. 10298func (iter LoadBalancerListResultIterator) Response() LoadBalancerListResult { 10299 return iter.page.Response() 10300} 10301 10302// Value returns the current value or a zero-initialized value if the 10303// iterator has advanced beyond the end of the collection. 10304func (iter LoadBalancerListResultIterator) Value() LoadBalancer { 10305 if !iter.page.NotDone() { 10306 return LoadBalancer{} 10307 } 10308 return iter.page.Values()[iter.i] 10309} 10310 10311// Creates a new instance of the LoadBalancerListResultIterator type. 10312func NewLoadBalancerListResultIterator(page LoadBalancerListResultPage) LoadBalancerListResultIterator { 10313 return LoadBalancerListResultIterator{page: page} 10314} 10315 10316// IsEmpty returns true if the ListResult contains no values. 10317func (lblr LoadBalancerListResult) IsEmpty() bool { 10318 return lblr.Value == nil || len(*lblr.Value) == 0 10319} 10320 10321// loadBalancerListResultPreparer prepares a request to retrieve the next set of results. 10322// It returns nil if no more results exist. 10323func (lblr LoadBalancerListResult) loadBalancerListResultPreparer(ctx context.Context) (*http.Request, error) { 10324 if lblr.NextLink == nil || len(to.String(lblr.NextLink)) < 1 { 10325 return nil, nil 10326 } 10327 return autorest.Prepare((&http.Request{}).WithContext(ctx), 10328 autorest.AsJSON(), 10329 autorest.AsGet(), 10330 autorest.WithBaseURL(to.String(lblr.NextLink))) 10331} 10332 10333// LoadBalancerListResultPage contains a page of LoadBalancer values. 10334type LoadBalancerListResultPage struct { 10335 fn func(context.Context, LoadBalancerListResult) (LoadBalancerListResult, error) 10336 lblr LoadBalancerListResult 10337} 10338 10339// NextWithContext advances to the next page of values. If there was an error making 10340// the request the page does not advance and the error is returned. 10341func (page *LoadBalancerListResultPage) NextWithContext(ctx context.Context) (err error) { 10342 if tracing.IsEnabled() { 10343 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerListResultPage.NextWithContext") 10344 defer func() { 10345 sc := -1 10346 if page.Response().Response.Response != nil { 10347 sc = page.Response().Response.Response.StatusCode 10348 } 10349 tracing.EndSpan(ctx, sc, err) 10350 }() 10351 } 10352 next, err := page.fn(ctx, page.lblr) 10353 if err != nil { 10354 return err 10355 } 10356 page.lblr = next 10357 return nil 10358} 10359 10360// Next advances to the next page of values. If there was an error making 10361// the request the page does not advance and the error is returned. 10362// Deprecated: Use NextWithContext() instead. 10363func (page *LoadBalancerListResultPage) Next() error { 10364 return page.NextWithContext(context.Background()) 10365} 10366 10367// NotDone returns true if the page enumeration should be started or is not yet complete. 10368func (page LoadBalancerListResultPage) NotDone() bool { 10369 return !page.lblr.IsEmpty() 10370} 10371 10372// Response returns the raw server response from the last page request. 10373func (page LoadBalancerListResultPage) Response() LoadBalancerListResult { 10374 return page.lblr 10375} 10376 10377// Values returns the slice of values for the current page or nil if there are no values. 10378func (page LoadBalancerListResultPage) Values() []LoadBalancer { 10379 if page.lblr.IsEmpty() { 10380 return nil 10381 } 10382 return *page.lblr.Value 10383} 10384 10385// Creates a new instance of the LoadBalancerListResultPage type. 10386func NewLoadBalancerListResultPage(getNextPage func(context.Context, LoadBalancerListResult) (LoadBalancerListResult, error)) LoadBalancerListResultPage { 10387 return LoadBalancerListResultPage{fn: getNextPage} 10388} 10389 10390// LoadBalancerLoadBalancingRuleListResult response for ListLoadBalancingRule API service call. 10391type LoadBalancerLoadBalancingRuleListResult struct { 10392 autorest.Response `json:"-"` 10393 // Value - A list of load balancing rules in a load balancer. 10394 Value *[]LoadBalancingRule `json:"value,omitempty"` 10395 // NextLink - READ-ONLY; The URL to get the next set of results. 10396 NextLink *string `json:"nextLink,omitempty"` 10397} 10398 10399// LoadBalancerLoadBalancingRuleListResultIterator provides access to a complete listing of 10400// LoadBalancingRule values. 10401type LoadBalancerLoadBalancingRuleListResultIterator struct { 10402 i int 10403 page LoadBalancerLoadBalancingRuleListResultPage 10404} 10405 10406// NextWithContext advances to the next value. If there was an error making 10407// the request the iterator does not advance and the error is returned. 10408func (iter *LoadBalancerLoadBalancingRuleListResultIterator) NextWithContext(ctx context.Context) (err error) { 10409 if tracing.IsEnabled() { 10410 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerLoadBalancingRuleListResultIterator.NextWithContext") 10411 defer func() { 10412 sc := -1 10413 if iter.Response().Response.Response != nil { 10414 sc = iter.Response().Response.Response.StatusCode 10415 } 10416 tracing.EndSpan(ctx, sc, err) 10417 }() 10418 } 10419 iter.i++ 10420 if iter.i < len(iter.page.Values()) { 10421 return nil 10422 } 10423 err = iter.page.NextWithContext(ctx) 10424 if err != nil { 10425 iter.i-- 10426 return err 10427 } 10428 iter.i = 0 10429 return nil 10430} 10431 10432// Next advances to the next value. If there was an error making 10433// the request the iterator does not advance and the error is returned. 10434// Deprecated: Use NextWithContext() instead. 10435func (iter *LoadBalancerLoadBalancingRuleListResultIterator) Next() error { 10436 return iter.NextWithContext(context.Background()) 10437} 10438 10439// NotDone returns true if the enumeration should be started or is not yet complete. 10440func (iter LoadBalancerLoadBalancingRuleListResultIterator) NotDone() bool { 10441 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10442} 10443 10444// Response returns the raw server response from the last page request. 10445func (iter LoadBalancerLoadBalancingRuleListResultIterator) Response() LoadBalancerLoadBalancingRuleListResult { 10446 return iter.page.Response() 10447} 10448 10449// Value returns the current value or a zero-initialized value if the 10450// iterator has advanced beyond the end of the collection. 10451func (iter LoadBalancerLoadBalancingRuleListResultIterator) Value() LoadBalancingRule { 10452 if !iter.page.NotDone() { 10453 return LoadBalancingRule{} 10454 } 10455 return iter.page.Values()[iter.i] 10456} 10457 10458// Creates a new instance of the LoadBalancerLoadBalancingRuleListResultIterator type. 10459func NewLoadBalancerLoadBalancingRuleListResultIterator(page LoadBalancerLoadBalancingRuleListResultPage) LoadBalancerLoadBalancingRuleListResultIterator { 10460 return LoadBalancerLoadBalancingRuleListResultIterator{page: page} 10461} 10462 10463// IsEmpty returns true if the ListResult contains no values. 10464func (lblbrlr LoadBalancerLoadBalancingRuleListResult) IsEmpty() bool { 10465 return lblbrlr.Value == nil || len(*lblbrlr.Value) == 0 10466} 10467 10468// loadBalancerLoadBalancingRuleListResultPreparer prepares a request to retrieve the next set of results. 10469// It returns nil if no more results exist. 10470func (lblbrlr LoadBalancerLoadBalancingRuleListResult) loadBalancerLoadBalancingRuleListResultPreparer(ctx context.Context) (*http.Request, error) { 10471 if lblbrlr.NextLink == nil || len(to.String(lblbrlr.NextLink)) < 1 { 10472 return nil, nil 10473 } 10474 return autorest.Prepare((&http.Request{}).WithContext(ctx), 10475 autorest.AsJSON(), 10476 autorest.AsGet(), 10477 autorest.WithBaseURL(to.String(lblbrlr.NextLink))) 10478} 10479 10480// LoadBalancerLoadBalancingRuleListResultPage contains a page of LoadBalancingRule values. 10481type LoadBalancerLoadBalancingRuleListResultPage struct { 10482 fn func(context.Context, LoadBalancerLoadBalancingRuleListResult) (LoadBalancerLoadBalancingRuleListResult, error) 10483 lblbrlr LoadBalancerLoadBalancingRuleListResult 10484} 10485 10486// NextWithContext advances to the next page of values. If there was an error making 10487// the request the page does not advance and the error is returned. 10488func (page *LoadBalancerLoadBalancingRuleListResultPage) NextWithContext(ctx context.Context) (err error) { 10489 if tracing.IsEnabled() { 10490 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerLoadBalancingRuleListResultPage.NextWithContext") 10491 defer func() { 10492 sc := -1 10493 if page.Response().Response.Response != nil { 10494 sc = page.Response().Response.Response.StatusCode 10495 } 10496 tracing.EndSpan(ctx, sc, err) 10497 }() 10498 } 10499 next, err := page.fn(ctx, page.lblbrlr) 10500 if err != nil { 10501 return err 10502 } 10503 page.lblbrlr = next 10504 return nil 10505} 10506 10507// Next advances to the next page of values. If there was an error making 10508// the request the page does not advance and the error is returned. 10509// Deprecated: Use NextWithContext() instead. 10510func (page *LoadBalancerLoadBalancingRuleListResultPage) Next() error { 10511 return page.NextWithContext(context.Background()) 10512} 10513 10514// NotDone returns true if the page enumeration should be started or is not yet complete. 10515func (page LoadBalancerLoadBalancingRuleListResultPage) NotDone() bool { 10516 return !page.lblbrlr.IsEmpty() 10517} 10518 10519// Response returns the raw server response from the last page request. 10520func (page LoadBalancerLoadBalancingRuleListResultPage) Response() LoadBalancerLoadBalancingRuleListResult { 10521 return page.lblbrlr 10522} 10523 10524// Values returns the slice of values for the current page or nil if there are no values. 10525func (page LoadBalancerLoadBalancingRuleListResultPage) Values() []LoadBalancingRule { 10526 if page.lblbrlr.IsEmpty() { 10527 return nil 10528 } 10529 return *page.lblbrlr.Value 10530} 10531 10532// Creates a new instance of the LoadBalancerLoadBalancingRuleListResultPage type. 10533func NewLoadBalancerLoadBalancingRuleListResultPage(getNextPage func(context.Context, LoadBalancerLoadBalancingRuleListResult) (LoadBalancerLoadBalancingRuleListResult, error)) LoadBalancerLoadBalancingRuleListResultPage { 10534 return LoadBalancerLoadBalancingRuleListResultPage{fn: getNextPage} 10535} 10536 10537// LoadBalancerProbeListResult response for ListProbe API service call. 10538type LoadBalancerProbeListResult struct { 10539 autorest.Response `json:"-"` 10540 // Value - A list of probes in a load balancer. 10541 Value *[]Probe `json:"value,omitempty"` 10542 // NextLink - READ-ONLY; The URL to get the next set of results. 10543 NextLink *string `json:"nextLink,omitempty"` 10544} 10545 10546// LoadBalancerProbeListResultIterator provides access to a complete listing of Probe values. 10547type LoadBalancerProbeListResultIterator struct { 10548 i int 10549 page LoadBalancerProbeListResultPage 10550} 10551 10552// NextWithContext advances to the next value. If there was an error making 10553// the request the iterator does not advance and the error is returned. 10554func (iter *LoadBalancerProbeListResultIterator) NextWithContext(ctx context.Context) (err error) { 10555 if tracing.IsEnabled() { 10556 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerProbeListResultIterator.NextWithContext") 10557 defer func() { 10558 sc := -1 10559 if iter.Response().Response.Response != nil { 10560 sc = iter.Response().Response.Response.StatusCode 10561 } 10562 tracing.EndSpan(ctx, sc, err) 10563 }() 10564 } 10565 iter.i++ 10566 if iter.i < len(iter.page.Values()) { 10567 return nil 10568 } 10569 err = iter.page.NextWithContext(ctx) 10570 if err != nil { 10571 iter.i-- 10572 return err 10573 } 10574 iter.i = 0 10575 return nil 10576} 10577 10578// Next advances to the next value. If there was an error making 10579// the request the iterator does not advance and the error is returned. 10580// Deprecated: Use NextWithContext() instead. 10581func (iter *LoadBalancerProbeListResultIterator) Next() error { 10582 return iter.NextWithContext(context.Background()) 10583} 10584 10585// NotDone returns true if the enumeration should be started or is not yet complete. 10586func (iter LoadBalancerProbeListResultIterator) NotDone() bool { 10587 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10588} 10589 10590// Response returns the raw server response from the last page request. 10591func (iter LoadBalancerProbeListResultIterator) Response() LoadBalancerProbeListResult { 10592 return iter.page.Response() 10593} 10594 10595// Value returns the current value or a zero-initialized value if the 10596// iterator has advanced beyond the end of the collection. 10597func (iter LoadBalancerProbeListResultIterator) Value() Probe { 10598 if !iter.page.NotDone() { 10599 return Probe{} 10600 } 10601 return iter.page.Values()[iter.i] 10602} 10603 10604// Creates a new instance of the LoadBalancerProbeListResultIterator type. 10605func NewLoadBalancerProbeListResultIterator(page LoadBalancerProbeListResultPage) LoadBalancerProbeListResultIterator { 10606 return LoadBalancerProbeListResultIterator{page: page} 10607} 10608 10609// IsEmpty returns true if the ListResult contains no values. 10610func (lbplr LoadBalancerProbeListResult) IsEmpty() bool { 10611 return lbplr.Value == nil || len(*lbplr.Value) == 0 10612} 10613 10614// loadBalancerProbeListResultPreparer prepares a request to retrieve the next set of results. 10615// It returns nil if no more results exist. 10616func (lbplr LoadBalancerProbeListResult) loadBalancerProbeListResultPreparer(ctx context.Context) (*http.Request, error) { 10617 if lbplr.NextLink == nil || len(to.String(lbplr.NextLink)) < 1 { 10618 return nil, nil 10619 } 10620 return autorest.Prepare((&http.Request{}).WithContext(ctx), 10621 autorest.AsJSON(), 10622 autorest.AsGet(), 10623 autorest.WithBaseURL(to.String(lbplr.NextLink))) 10624} 10625 10626// LoadBalancerProbeListResultPage contains a page of Probe values. 10627type LoadBalancerProbeListResultPage struct { 10628 fn func(context.Context, LoadBalancerProbeListResult) (LoadBalancerProbeListResult, error) 10629 lbplr LoadBalancerProbeListResult 10630} 10631 10632// NextWithContext advances to the next page of values. If there was an error making 10633// the request the page does not advance and the error is returned. 10634func (page *LoadBalancerProbeListResultPage) NextWithContext(ctx context.Context) (err error) { 10635 if tracing.IsEnabled() { 10636 ctx = tracing.StartSpan(ctx, fqdn+"/LoadBalancerProbeListResultPage.NextWithContext") 10637 defer func() { 10638 sc := -1 10639 if page.Response().Response.Response != nil { 10640 sc = page.Response().Response.Response.StatusCode 10641 } 10642 tracing.EndSpan(ctx, sc, err) 10643 }() 10644 } 10645 next, err := page.fn(ctx, page.lbplr) 10646 if err != nil { 10647 return err 10648 } 10649 page.lbplr = next 10650 return nil 10651} 10652 10653// Next advances to the next page of values. If there was an error making 10654// the request the page does not advance and the error is returned. 10655// Deprecated: Use NextWithContext() instead. 10656func (page *LoadBalancerProbeListResultPage) Next() error { 10657 return page.NextWithContext(context.Background()) 10658} 10659 10660// NotDone returns true if the page enumeration should be started or is not yet complete. 10661func (page LoadBalancerProbeListResultPage) NotDone() bool { 10662 return !page.lbplr.IsEmpty() 10663} 10664 10665// Response returns the raw server response from the last page request. 10666func (page LoadBalancerProbeListResultPage) Response() LoadBalancerProbeListResult { 10667 return page.lbplr 10668} 10669 10670// Values returns the slice of values for the current page or nil if there are no values. 10671func (page LoadBalancerProbeListResultPage) Values() []Probe { 10672 if page.lbplr.IsEmpty() { 10673 return nil 10674 } 10675 return *page.lbplr.Value 10676} 10677 10678// Creates a new instance of the LoadBalancerProbeListResultPage type. 10679func NewLoadBalancerProbeListResultPage(getNextPage func(context.Context, LoadBalancerProbeListResult) (LoadBalancerProbeListResult, error)) LoadBalancerProbeListResultPage { 10680 return LoadBalancerProbeListResultPage{fn: getNextPage} 10681} 10682 10683// LoadBalancerPropertiesFormat properties of the load balancer. 10684type LoadBalancerPropertiesFormat struct { 10685 // FrontendIPConfigurations - Object representing the frontend IPs to be used for the load balancer 10686 FrontendIPConfigurations *[]FrontendIPConfiguration `json:"frontendIPConfigurations,omitempty"` 10687 // BackendAddressPools - Collection of backend address pools used by a load balancer 10688 BackendAddressPools *[]BackendAddressPool `json:"backendAddressPools,omitempty"` 10689 // LoadBalancingRules - Object collection representing the load balancing rules Gets the provisioning 10690 LoadBalancingRules *[]LoadBalancingRule `json:"loadBalancingRules,omitempty"` 10691 // Probes - Collection of probe objects used in the load balancer 10692 Probes *[]Probe `json:"probes,omitempty"` 10693 // InboundNatRules - 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 NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules. 10694 InboundNatRules *[]InboundNatRule `json:"inboundNatRules,omitempty"` 10695 // InboundNatPools - 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 for each NIC associated with the Load 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. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. 10696 InboundNatPools *[]InboundNatPool `json:"inboundNatPools,omitempty"` 10697 // OutboundNatRules - The outbound NAT rules. 10698 OutboundNatRules *[]OutboundNatRule `json:"outboundNatRules,omitempty"` 10699 // ResourceGUID - The resource GUID property of the load balancer resource. 10700 ResourceGUID *string `json:"resourceGuid,omitempty"` 10701 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 10702 ProvisioningState *string `json:"provisioningState,omitempty"` 10703} 10704 10705// LoadBalancersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 10706// long-running operation. 10707type LoadBalancersCreateOrUpdateFuture struct { 10708 azure.Future 10709} 10710 10711// Result returns the result of the asynchronous operation. 10712// If the operation has not completed it will return an error. 10713func (future *LoadBalancersCreateOrUpdateFuture) Result(client LoadBalancersClient) (lb LoadBalancer, err error) { 10714 var done bool 10715 done, err = future.DoneWithContext(context.Background(), client) 10716 if err != nil { 10717 err = autorest.NewErrorWithError(err, "network.LoadBalancersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 10718 return 10719 } 10720 if !done { 10721 err = azure.NewAsyncOpIncompleteError("network.LoadBalancersCreateOrUpdateFuture") 10722 return 10723 } 10724 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 10725 if lb.Response.Response, err = future.GetResult(sender); err == nil && lb.Response.Response.StatusCode != http.StatusNoContent { 10726 lb, err = client.CreateOrUpdateResponder(lb.Response.Response) 10727 if err != nil { 10728 err = autorest.NewErrorWithError(err, "network.LoadBalancersCreateOrUpdateFuture", "Result", lb.Response.Response, "Failure responding to request") 10729 } 10730 } 10731 return 10732} 10733 10734// LoadBalancersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 10735// operation. 10736type LoadBalancersDeleteFuture struct { 10737 azure.Future 10738} 10739 10740// Result returns the result of the asynchronous operation. 10741// If the operation has not completed it will return an error. 10742func (future *LoadBalancersDeleteFuture) Result(client LoadBalancersClient) (ar autorest.Response, err error) { 10743 var done bool 10744 done, err = future.DoneWithContext(context.Background(), client) 10745 if err != nil { 10746 err = autorest.NewErrorWithError(err, "network.LoadBalancersDeleteFuture", "Result", future.Response(), "Polling failure") 10747 return 10748 } 10749 if !done { 10750 err = azure.NewAsyncOpIncompleteError("network.LoadBalancersDeleteFuture") 10751 return 10752 } 10753 ar.Response = future.Response() 10754 return 10755} 10756 10757// LoadBalancerSku SKU of a load balancer 10758type LoadBalancerSku struct { 10759 // Name - Name of a load balancer SKU. Possible values include: 'LoadBalancerSkuNameBasic', 'LoadBalancerSkuNameStandard' 10760 Name LoadBalancerSkuName `json:"name,omitempty"` 10761} 10762 10763// LoadBalancersUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 10764// operation. 10765type LoadBalancersUpdateTagsFuture struct { 10766 azure.Future 10767} 10768 10769// Result returns the result of the asynchronous operation. 10770// If the operation has not completed it will return an error. 10771func (future *LoadBalancersUpdateTagsFuture) Result(client LoadBalancersClient) (lb LoadBalancer, err error) { 10772 var done bool 10773 done, err = future.DoneWithContext(context.Background(), client) 10774 if err != nil { 10775 err = autorest.NewErrorWithError(err, "network.LoadBalancersUpdateTagsFuture", "Result", future.Response(), "Polling failure") 10776 return 10777 } 10778 if !done { 10779 err = azure.NewAsyncOpIncompleteError("network.LoadBalancersUpdateTagsFuture") 10780 return 10781 } 10782 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 10783 if lb.Response.Response, err = future.GetResult(sender); err == nil && lb.Response.Response.StatusCode != http.StatusNoContent { 10784 lb, err = client.UpdateTagsResponder(lb.Response.Response) 10785 if err != nil { 10786 err = autorest.NewErrorWithError(err, "network.LoadBalancersUpdateTagsFuture", "Result", lb.Response.Response, "Failure responding to request") 10787 } 10788 } 10789 return 10790} 10791 10792// LoadBalancingRule a load balancing rule for a load balancer. 10793type LoadBalancingRule struct { 10794 autorest.Response `json:"-"` 10795 // LoadBalancingRulePropertiesFormat - Properties of load balancer load balancing rule. 10796 *LoadBalancingRulePropertiesFormat `json:"properties,omitempty"` 10797 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 10798 Name *string `json:"name,omitempty"` 10799 // Etag - A unique read-only string that changes whenever the resource is updated. 10800 Etag *string `json:"etag,omitempty"` 10801 // ID - Resource ID. 10802 ID *string `json:"id,omitempty"` 10803} 10804 10805// MarshalJSON is the custom marshaler for LoadBalancingRule. 10806func (lbr LoadBalancingRule) MarshalJSON() ([]byte, error) { 10807 objectMap := make(map[string]interface{}) 10808 if lbr.LoadBalancingRulePropertiesFormat != nil { 10809 objectMap["properties"] = lbr.LoadBalancingRulePropertiesFormat 10810 } 10811 if lbr.Name != nil { 10812 objectMap["name"] = lbr.Name 10813 } 10814 if lbr.Etag != nil { 10815 objectMap["etag"] = lbr.Etag 10816 } 10817 if lbr.ID != nil { 10818 objectMap["id"] = lbr.ID 10819 } 10820 return json.Marshal(objectMap) 10821} 10822 10823// UnmarshalJSON is the custom unmarshaler for LoadBalancingRule struct. 10824func (lbr *LoadBalancingRule) UnmarshalJSON(body []byte) error { 10825 var m map[string]*json.RawMessage 10826 err := json.Unmarshal(body, &m) 10827 if err != nil { 10828 return err 10829 } 10830 for k, v := range m { 10831 switch k { 10832 case "properties": 10833 if v != nil { 10834 var loadBalancingRulePropertiesFormat LoadBalancingRulePropertiesFormat 10835 err = json.Unmarshal(*v, &loadBalancingRulePropertiesFormat) 10836 if err != nil { 10837 return err 10838 } 10839 lbr.LoadBalancingRulePropertiesFormat = &loadBalancingRulePropertiesFormat 10840 } 10841 case "name": 10842 if v != nil { 10843 var name string 10844 err = json.Unmarshal(*v, &name) 10845 if err != nil { 10846 return err 10847 } 10848 lbr.Name = &name 10849 } 10850 case "etag": 10851 if v != nil { 10852 var etag string 10853 err = json.Unmarshal(*v, &etag) 10854 if err != nil { 10855 return err 10856 } 10857 lbr.Etag = &etag 10858 } 10859 case "id": 10860 if v != nil { 10861 var ID string 10862 err = json.Unmarshal(*v, &ID) 10863 if err != nil { 10864 return err 10865 } 10866 lbr.ID = &ID 10867 } 10868 } 10869 } 10870 10871 return nil 10872} 10873 10874// LoadBalancingRulePropertiesFormat properties of the load balancer. 10875type LoadBalancingRulePropertiesFormat struct { 10876 // FrontendIPConfiguration - A reference to frontend IP addresses. 10877 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 10878 // BackendAddressPool - A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs. 10879 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 10880 // Probe - The reference of the load balancer probe used by the load balancing rule. 10881 Probe *SubResource `json:"probe,omitempty"` 10882 // Protocol - Possible values include: 'TransportProtocolUDP', 'TransportProtocolTCP', 'TransportProtocolAll' 10883 Protocol TransportProtocol `json:"protocol,omitempty"` 10884 // LoadDistribution - The load distribution policy for this rule. Possible values are 'Default', 'SourceIP', and 'SourceIPProtocol'. Possible values include: 'Default', 'SourceIP', 'SourceIPProtocol' 10885 LoadDistribution LoadDistribution `json:"loadDistribution,omitempty"` 10886 // FrontendPort - 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 that value 0 enables "Any Port" 10887 FrontendPort *int32 `json:"frontendPort,omitempty"` 10888 // BackendPort - The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port" 10889 BackendPort *int32 `json:"backendPort,omitempty"` 10890 // IdleTimeoutInMinutes - 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 the protocol is set to TCP. 10891 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 10892 // EnableFloatingIP - Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint. 10893 EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"` 10894 // DisableOutboundSnat - Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the frontend of the load balancing rule. 10895 DisableOutboundSnat *bool `json:"disableOutboundSnat,omitempty"` 10896 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 10897 ProvisioningState *string `json:"provisioningState,omitempty"` 10898} 10899 10900// LocalNetworkGateway a common class for general resource information 10901type LocalNetworkGateway struct { 10902 autorest.Response `json:"-"` 10903 // LocalNetworkGatewayPropertiesFormat - Properties of the local network gateway. 10904 *LocalNetworkGatewayPropertiesFormat `json:"properties,omitempty"` 10905 // Etag - A unique read-only string that changes whenever the resource is updated. 10906 Etag *string `json:"etag,omitempty"` 10907 // ID - Resource ID. 10908 ID *string `json:"id,omitempty"` 10909 // Name - READ-ONLY; Resource name. 10910 Name *string `json:"name,omitempty"` 10911 // Type - READ-ONLY; Resource type. 10912 Type *string `json:"type,omitempty"` 10913 // Location - Resource location. 10914 Location *string `json:"location,omitempty"` 10915 // Tags - Resource tags. 10916 Tags map[string]*string `json:"tags"` 10917} 10918 10919// MarshalJSON is the custom marshaler for LocalNetworkGateway. 10920func (lng LocalNetworkGateway) MarshalJSON() ([]byte, error) { 10921 objectMap := make(map[string]interface{}) 10922 if lng.LocalNetworkGatewayPropertiesFormat != nil { 10923 objectMap["properties"] = lng.LocalNetworkGatewayPropertiesFormat 10924 } 10925 if lng.Etag != nil { 10926 objectMap["etag"] = lng.Etag 10927 } 10928 if lng.ID != nil { 10929 objectMap["id"] = lng.ID 10930 } 10931 if lng.Location != nil { 10932 objectMap["location"] = lng.Location 10933 } 10934 if lng.Tags != nil { 10935 objectMap["tags"] = lng.Tags 10936 } 10937 return json.Marshal(objectMap) 10938} 10939 10940// UnmarshalJSON is the custom unmarshaler for LocalNetworkGateway struct. 10941func (lng *LocalNetworkGateway) UnmarshalJSON(body []byte) error { 10942 var m map[string]*json.RawMessage 10943 err := json.Unmarshal(body, &m) 10944 if err != nil { 10945 return err 10946 } 10947 for k, v := range m { 10948 switch k { 10949 case "properties": 10950 if v != nil { 10951 var localNetworkGatewayPropertiesFormat LocalNetworkGatewayPropertiesFormat 10952 err = json.Unmarshal(*v, &localNetworkGatewayPropertiesFormat) 10953 if err != nil { 10954 return err 10955 } 10956 lng.LocalNetworkGatewayPropertiesFormat = &localNetworkGatewayPropertiesFormat 10957 } 10958 case "etag": 10959 if v != nil { 10960 var etag string 10961 err = json.Unmarshal(*v, &etag) 10962 if err != nil { 10963 return err 10964 } 10965 lng.Etag = &etag 10966 } 10967 case "id": 10968 if v != nil { 10969 var ID string 10970 err = json.Unmarshal(*v, &ID) 10971 if err != nil { 10972 return err 10973 } 10974 lng.ID = &ID 10975 } 10976 case "name": 10977 if v != nil { 10978 var name string 10979 err = json.Unmarshal(*v, &name) 10980 if err != nil { 10981 return err 10982 } 10983 lng.Name = &name 10984 } 10985 case "type": 10986 if v != nil { 10987 var typeVar string 10988 err = json.Unmarshal(*v, &typeVar) 10989 if err != nil { 10990 return err 10991 } 10992 lng.Type = &typeVar 10993 } 10994 case "location": 10995 if v != nil { 10996 var location string 10997 err = json.Unmarshal(*v, &location) 10998 if err != nil { 10999 return err 11000 } 11001 lng.Location = &location 11002 } 11003 case "tags": 11004 if v != nil { 11005 var tags map[string]*string 11006 err = json.Unmarshal(*v, &tags) 11007 if err != nil { 11008 return err 11009 } 11010 lng.Tags = tags 11011 } 11012 } 11013 } 11014 11015 return nil 11016} 11017 11018// LocalNetworkGatewayListResult response for ListLocalNetworkGateways API service call. 11019type LocalNetworkGatewayListResult struct { 11020 autorest.Response `json:"-"` 11021 // Value - A list of local network gateways that exists in a resource group. 11022 Value *[]LocalNetworkGateway `json:"value,omitempty"` 11023 // NextLink - READ-ONLY; The URL to get the next set of results. 11024 NextLink *string `json:"nextLink,omitempty"` 11025} 11026 11027// LocalNetworkGatewayListResultIterator provides access to a complete listing of LocalNetworkGateway 11028// values. 11029type LocalNetworkGatewayListResultIterator struct { 11030 i int 11031 page LocalNetworkGatewayListResultPage 11032} 11033 11034// NextWithContext advances to the next value. If there was an error making 11035// the request the iterator does not advance and the error is returned. 11036func (iter *LocalNetworkGatewayListResultIterator) NextWithContext(ctx context.Context) (err error) { 11037 if tracing.IsEnabled() { 11038 ctx = tracing.StartSpan(ctx, fqdn+"/LocalNetworkGatewayListResultIterator.NextWithContext") 11039 defer func() { 11040 sc := -1 11041 if iter.Response().Response.Response != nil { 11042 sc = iter.Response().Response.Response.StatusCode 11043 } 11044 tracing.EndSpan(ctx, sc, err) 11045 }() 11046 } 11047 iter.i++ 11048 if iter.i < len(iter.page.Values()) { 11049 return nil 11050 } 11051 err = iter.page.NextWithContext(ctx) 11052 if err != nil { 11053 iter.i-- 11054 return err 11055 } 11056 iter.i = 0 11057 return nil 11058} 11059 11060// Next advances to the next value. If there was an error making 11061// the request the iterator does not advance and the error is returned. 11062// Deprecated: Use NextWithContext() instead. 11063func (iter *LocalNetworkGatewayListResultIterator) Next() error { 11064 return iter.NextWithContext(context.Background()) 11065} 11066 11067// NotDone returns true if the enumeration should be started or is not yet complete. 11068func (iter LocalNetworkGatewayListResultIterator) NotDone() bool { 11069 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 11070} 11071 11072// Response returns the raw server response from the last page request. 11073func (iter LocalNetworkGatewayListResultIterator) Response() LocalNetworkGatewayListResult { 11074 return iter.page.Response() 11075} 11076 11077// Value returns the current value or a zero-initialized value if the 11078// iterator has advanced beyond the end of the collection. 11079func (iter LocalNetworkGatewayListResultIterator) Value() LocalNetworkGateway { 11080 if !iter.page.NotDone() { 11081 return LocalNetworkGateway{} 11082 } 11083 return iter.page.Values()[iter.i] 11084} 11085 11086// Creates a new instance of the LocalNetworkGatewayListResultIterator type. 11087func NewLocalNetworkGatewayListResultIterator(page LocalNetworkGatewayListResultPage) LocalNetworkGatewayListResultIterator { 11088 return LocalNetworkGatewayListResultIterator{page: page} 11089} 11090 11091// IsEmpty returns true if the ListResult contains no values. 11092func (lnglr LocalNetworkGatewayListResult) IsEmpty() bool { 11093 return lnglr.Value == nil || len(*lnglr.Value) == 0 11094} 11095 11096// localNetworkGatewayListResultPreparer prepares a request to retrieve the next set of results. 11097// It returns nil if no more results exist. 11098func (lnglr LocalNetworkGatewayListResult) localNetworkGatewayListResultPreparer(ctx context.Context) (*http.Request, error) { 11099 if lnglr.NextLink == nil || len(to.String(lnglr.NextLink)) < 1 { 11100 return nil, nil 11101 } 11102 return autorest.Prepare((&http.Request{}).WithContext(ctx), 11103 autorest.AsJSON(), 11104 autorest.AsGet(), 11105 autorest.WithBaseURL(to.String(lnglr.NextLink))) 11106} 11107 11108// LocalNetworkGatewayListResultPage contains a page of LocalNetworkGateway values. 11109type LocalNetworkGatewayListResultPage struct { 11110 fn func(context.Context, LocalNetworkGatewayListResult) (LocalNetworkGatewayListResult, error) 11111 lnglr LocalNetworkGatewayListResult 11112} 11113 11114// NextWithContext advances to the next page of values. If there was an error making 11115// the request the page does not advance and the error is returned. 11116func (page *LocalNetworkGatewayListResultPage) NextWithContext(ctx context.Context) (err error) { 11117 if tracing.IsEnabled() { 11118 ctx = tracing.StartSpan(ctx, fqdn+"/LocalNetworkGatewayListResultPage.NextWithContext") 11119 defer func() { 11120 sc := -1 11121 if page.Response().Response.Response != nil { 11122 sc = page.Response().Response.Response.StatusCode 11123 } 11124 tracing.EndSpan(ctx, sc, err) 11125 }() 11126 } 11127 next, err := page.fn(ctx, page.lnglr) 11128 if err != nil { 11129 return err 11130 } 11131 page.lnglr = next 11132 return nil 11133} 11134 11135// Next advances to the next page of values. If there was an error making 11136// the request the page does not advance and the error is returned. 11137// Deprecated: Use NextWithContext() instead. 11138func (page *LocalNetworkGatewayListResultPage) Next() error { 11139 return page.NextWithContext(context.Background()) 11140} 11141 11142// NotDone returns true if the page enumeration should be started or is not yet complete. 11143func (page LocalNetworkGatewayListResultPage) NotDone() bool { 11144 return !page.lnglr.IsEmpty() 11145} 11146 11147// Response returns the raw server response from the last page request. 11148func (page LocalNetworkGatewayListResultPage) Response() LocalNetworkGatewayListResult { 11149 return page.lnglr 11150} 11151 11152// Values returns the slice of values for the current page or nil if there are no values. 11153func (page LocalNetworkGatewayListResultPage) Values() []LocalNetworkGateway { 11154 if page.lnglr.IsEmpty() { 11155 return nil 11156 } 11157 return *page.lnglr.Value 11158} 11159 11160// Creates a new instance of the LocalNetworkGatewayListResultPage type. 11161func NewLocalNetworkGatewayListResultPage(getNextPage func(context.Context, LocalNetworkGatewayListResult) (LocalNetworkGatewayListResult, error)) LocalNetworkGatewayListResultPage { 11162 return LocalNetworkGatewayListResultPage{fn: getNextPage} 11163} 11164 11165// LocalNetworkGatewayPropertiesFormat localNetworkGateway properties 11166type LocalNetworkGatewayPropertiesFormat struct { 11167 // LocalNetworkAddressSpace - Local network site address space. 11168 LocalNetworkAddressSpace *AddressSpace `json:"localNetworkAddressSpace,omitempty"` 11169 // GatewayIPAddress - IP address of local network gateway. 11170 GatewayIPAddress *string `json:"gatewayIpAddress,omitempty"` 11171 // BgpSettings - Local network gateway's BGP speaker settings. 11172 BgpSettings *BgpSettings `json:"bgpSettings,omitempty"` 11173 // ResourceGUID - The resource GUID property of the LocalNetworkGateway resource. 11174 ResourceGUID *string `json:"resourceGuid,omitempty"` 11175 // ProvisioningState - READ-ONLY; The provisioning state of the LocalNetworkGateway resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 11176 ProvisioningState *string `json:"provisioningState,omitempty"` 11177} 11178 11179// LocalNetworkGatewaysCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 11180// long-running operation. 11181type LocalNetworkGatewaysCreateOrUpdateFuture struct { 11182 azure.Future 11183} 11184 11185// Result returns the result of the asynchronous operation. 11186// If the operation has not completed it will return an error. 11187func (future *LocalNetworkGatewaysCreateOrUpdateFuture) Result(client LocalNetworkGatewaysClient) (lng LocalNetworkGateway, err error) { 11188 var done bool 11189 done, err = future.DoneWithContext(context.Background(), client) 11190 if err != nil { 11191 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 11192 return 11193 } 11194 if !done { 11195 err = azure.NewAsyncOpIncompleteError("network.LocalNetworkGatewaysCreateOrUpdateFuture") 11196 return 11197 } 11198 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11199 if lng.Response.Response, err = future.GetResult(sender); err == nil && lng.Response.Response.StatusCode != http.StatusNoContent { 11200 lng, err = client.CreateOrUpdateResponder(lng.Response.Response) 11201 if err != nil { 11202 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysCreateOrUpdateFuture", "Result", lng.Response.Response, "Failure responding to request") 11203 } 11204 } 11205 return 11206} 11207 11208// LocalNetworkGatewaysDeleteFuture an abstraction for monitoring and retrieving the results of a 11209// long-running operation. 11210type LocalNetworkGatewaysDeleteFuture struct { 11211 azure.Future 11212} 11213 11214// Result returns the result of the asynchronous operation. 11215// If the operation has not completed it will return an error. 11216func (future *LocalNetworkGatewaysDeleteFuture) Result(client LocalNetworkGatewaysClient) (ar autorest.Response, err error) { 11217 var done bool 11218 done, err = future.DoneWithContext(context.Background(), client) 11219 if err != nil { 11220 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysDeleteFuture", "Result", future.Response(), "Polling failure") 11221 return 11222 } 11223 if !done { 11224 err = azure.NewAsyncOpIncompleteError("network.LocalNetworkGatewaysDeleteFuture") 11225 return 11226 } 11227 ar.Response = future.Response() 11228 return 11229} 11230 11231// LocalNetworkGatewaysUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 11232// long-running operation. 11233type LocalNetworkGatewaysUpdateTagsFuture struct { 11234 azure.Future 11235} 11236 11237// Result returns the result of the asynchronous operation. 11238// If the operation has not completed it will return an error. 11239func (future *LocalNetworkGatewaysUpdateTagsFuture) Result(client LocalNetworkGatewaysClient) (lng LocalNetworkGateway, err error) { 11240 var done bool 11241 done, err = future.DoneWithContext(context.Background(), client) 11242 if err != nil { 11243 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysUpdateTagsFuture", "Result", future.Response(), "Polling failure") 11244 return 11245 } 11246 if !done { 11247 err = azure.NewAsyncOpIncompleteError("network.LocalNetworkGatewaysUpdateTagsFuture") 11248 return 11249 } 11250 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11251 if lng.Response.Response, err = future.GetResult(sender); err == nil && lng.Response.Response.StatusCode != http.StatusNoContent { 11252 lng, err = client.UpdateTagsResponder(lng.Response.Response) 11253 if err != nil { 11254 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysUpdateTagsFuture", "Result", lng.Response.Response, "Failure responding to request") 11255 } 11256 } 11257 return 11258} 11259 11260// LogSpecification description of logging specification. 11261type LogSpecification struct { 11262 // Name - The name of the specification. 11263 Name *string `json:"name,omitempty"` 11264 // DisplayName - The display name of the specification. 11265 DisplayName *string `json:"displayName,omitempty"` 11266 // BlobDuration - Duration of the blob. 11267 BlobDuration *string `json:"blobDuration,omitempty"` 11268} 11269 11270// MetricSpecification description of metrics specification. 11271type MetricSpecification struct { 11272 // Name - The name of the metric. 11273 Name *string `json:"name,omitempty"` 11274 // DisplayName - The display name of the metric. 11275 DisplayName *string `json:"displayName,omitempty"` 11276 // DisplayDescription - The description of the metric. 11277 DisplayDescription *string `json:"displayDescription,omitempty"` 11278 // Unit - Units the metric to be displayed in. 11279 Unit *string `json:"unit,omitempty"` 11280 // AggregationType - The aggregation type. 11281 AggregationType *string `json:"aggregationType,omitempty"` 11282 // Availabilities - List of availability. 11283 Availabilities *[]Availability `json:"availabilities,omitempty"` 11284 // EnableRegionalMdmAccount - Whether regional MDM account enabled. 11285 EnableRegionalMdmAccount *bool `json:"enableRegionalMdmAccount,omitempty"` 11286 // FillGapWithZero - Whether gaps would be filled with zeros. 11287 FillGapWithZero *bool `json:"fillGapWithZero,omitempty"` 11288 // MetricFilterPattern - Pattern for the filter of the metric. 11289 MetricFilterPattern *string `json:"metricFilterPattern,omitempty"` 11290 // Dimensions - List of dimensions. 11291 Dimensions *[]Dimension `json:"dimensions,omitempty"` 11292 // IsInternal - Whether the metric is internal. 11293 IsInternal *bool `json:"isInternal,omitempty"` 11294 // SourceMdmAccount - The source MDM account. 11295 SourceMdmAccount *string `json:"sourceMdmAccount,omitempty"` 11296 // SourceMdmNamespace - The source MDM namespace. 11297 SourceMdmNamespace *string `json:"sourceMdmNamespace,omitempty"` 11298 // ResourceIDDimensionNameOverride - The resource Id dimension name override. 11299 ResourceIDDimensionNameOverride *string `json:"resourceIdDimensionNameOverride,omitempty"` 11300} 11301 11302// NextHopParameters parameters that define the source and destination endpoint. 11303type NextHopParameters struct { 11304 // TargetResourceID - The resource identifier of the target resource against which the action is to be performed. 11305 TargetResourceID *string `json:"targetResourceId,omitempty"` 11306 // SourceIPAddress - The source IP address. 11307 SourceIPAddress *string `json:"sourceIPAddress,omitempty"` 11308 // DestinationIPAddress - The destination IP address. 11309 DestinationIPAddress *string `json:"destinationIPAddress,omitempty"` 11310 // TargetNicResourceID - 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). 11311 TargetNicResourceID *string `json:"targetNicResourceId,omitempty"` 11312} 11313 11314// NextHopResult the information about next hop from the specified VM. 11315type NextHopResult struct { 11316 autorest.Response `json:"-"` 11317 // NextHopType - Next hop type. Possible values include: 'NextHopTypeInternet', 'NextHopTypeVirtualAppliance', 'NextHopTypeVirtualNetworkGateway', 'NextHopTypeVnetLocal', 'NextHopTypeHyperNetGateway', 'NextHopTypeNone' 11318 NextHopType NextHopType `json:"nextHopType,omitempty"` 11319 // NextHopIPAddress - Next hop IP Address 11320 NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"` 11321 // RouteTableID - 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 routes then this field will be the string 'System Route'. 11322 RouteTableID *string `json:"routeTableId,omitempty"` 11323} 11324 11325// Operation network REST API operation definition. 11326type Operation struct { 11327 // Name - Operation name: {provider}/{resource}/{operation} 11328 Name *string `json:"name,omitempty"` 11329 // Display - Display metadata associated with the operation. 11330 Display *OperationDisplay `json:"display,omitempty"` 11331 // Origin - Origin of the operation. 11332 Origin *string `json:"origin,omitempty"` 11333 // OperationPropertiesFormat - Operation properties format. 11334 *OperationPropertiesFormat `json:"properties,omitempty"` 11335} 11336 11337// MarshalJSON is the custom marshaler for Operation. 11338func (o Operation) MarshalJSON() ([]byte, error) { 11339 objectMap := make(map[string]interface{}) 11340 if o.Name != nil { 11341 objectMap["name"] = o.Name 11342 } 11343 if o.Display != nil { 11344 objectMap["display"] = o.Display 11345 } 11346 if o.Origin != nil { 11347 objectMap["origin"] = o.Origin 11348 } 11349 if o.OperationPropertiesFormat != nil { 11350 objectMap["properties"] = o.OperationPropertiesFormat 11351 } 11352 return json.Marshal(objectMap) 11353} 11354 11355// UnmarshalJSON is the custom unmarshaler for Operation struct. 11356func (o *Operation) UnmarshalJSON(body []byte) error { 11357 var m map[string]*json.RawMessage 11358 err := json.Unmarshal(body, &m) 11359 if err != nil { 11360 return err 11361 } 11362 for k, v := range m { 11363 switch k { 11364 case "name": 11365 if v != nil { 11366 var name string 11367 err = json.Unmarshal(*v, &name) 11368 if err != nil { 11369 return err 11370 } 11371 o.Name = &name 11372 } 11373 case "display": 11374 if v != nil { 11375 var display OperationDisplay 11376 err = json.Unmarshal(*v, &display) 11377 if err != nil { 11378 return err 11379 } 11380 o.Display = &display 11381 } 11382 case "origin": 11383 if v != nil { 11384 var origin string 11385 err = json.Unmarshal(*v, &origin) 11386 if err != nil { 11387 return err 11388 } 11389 o.Origin = &origin 11390 } 11391 case "properties": 11392 if v != nil { 11393 var operationPropertiesFormat OperationPropertiesFormat 11394 err = json.Unmarshal(*v, &operationPropertiesFormat) 11395 if err != nil { 11396 return err 11397 } 11398 o.OperationPropertiesFormat = &operationPropertiesFormat 11399 } 11400 } 11401 } 11402 11403 return nil 11404} 11405 11406// OperationDisplay display metadata associated with the operation. 11407type OperationDisplay struct { 11408 // Provider - Service provider: Microsoft Network. 11409 Provider *string `json:"provider,omitempty"` 11410 // Resource - Resource on which the operation is performed. 11411 Resource *string `json:"resource,omitempty"` 11412 // Operation - Type of the operation: get, read, delete, etc. 11413 Operation *string `json:"operation,omitempty"` 11414 // Description - Description of the operation. 11415 Description *string `json:"description,omitempty"` 11416} 11417 11418// OperationListResult result of the request to list Network operations. It contains a list of operations 11419// and a URL link to get the next set of results. 11420type OperationListResult struct { 11421 autorest.Response `json:"-"` 11422 // Value - List of Network operations supported by the Network resource provider. 11423 Value *[]Operation `json:"value,omitempty"` 11424 // NextLink - URL to get the next set of operation list results if there are any. 11425 NextLink *string `json:"nextLink,omitempty"` 11426} 11427 11428// OperationListResultIterator provides access to a complete listing of Operation values. 11429type OperationListResultIterator struct { 11430 i int 11431 page OperationListResultPage 11432} 11433 11434// NextWithContext advances to the next value. If there was an error making 11435// the request the iterator does not advance and the error is returned. 11436func (iter *OperationListResultIterator) NextWithContext(ctx context.Context) (err error) { 11437 if tracing.IsEnabled() { 11438 ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultIterator.NextWithContext") 11439 defer func() { 11440 sc := -1 11441 if iter.Response().Response.Response != nil { 11442 sc = iter.Response().Response.Response.StatusCode 11443 } 11444 tracing.EndSpan(ctx, sc, err) 11445 }() 11446 } 11447 iter.i++ 11448 if iter.i < len(iter.page.Values()) { 11449 return nil 11450 } 11451 err = iter.page.NextWithContext(ctx) 11452 if err != nil { 11453 iter.i-- 11454 return err 11455 } 11456 iter.i = 0 11457 return nil 11458} 11459 11460// Next advances to the next value. If there was an error making 11461// the request the iterator does not advance and the error is returned. 11462// Deprecated: Use NextWithContext() instead. 11463func (iter *OperationListResultIterator) Next() error { 11464 return iter.NextWithContext(context.Background()) 11465} 11466 11467// NotDone returns true if the enumeration should be started or is not yet complete. 11468func (iter OperationListResultIterator) NotDone() bool { 11469 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 11470} 11471 11472// Response returns the raw server response from the last page request. 11473func (iter OperationListResultIterator) Response() OperationListResult { 11474 return iter.page.Response() 11475} 11476 11477// Value returns the current value or a zero-initialized value if the 11478// iterator has advanced beyond the end of the collection. 11479func (iter OperationListResultIterator) Value() Operation { 11480 if !iter.page.NotDone() { 11481 return Operation{} 11482 } 11483 return iter.page.Values()[iter.i] 11484} 11485 11486// Creates a new instance of the OperationListResultIterator type. 11487func NewOperationListResultIterator(page OperationListResultPage) OperationListResultIterator { 11488 return OperationListResultIterator{page: page} 11489} 11490 11491// IsEmpty returns true if the ListResult contains no values. 11492func (olr OperationListResult) IsEmpty() bool { 11493 return olr.Value == nil || len(*olr.Value) == 0 11494} 11495 11496// operationListResultPreparer prepares a request to retrieve the next set of results. 11497// It returns nil if no more results exist. 11498func (olr OperationListResult) operationListResultPreparer(ctx context.Context) (*http.Request, error) { 11499 if olr.NextLink == nil || len(to.String(olr.NextLink)) < 1 { 11500 return nil, nil 11501 } 11502 return autorest.Prepare((&http.Request{}).WithContext(ctx), 11503 autorest.AsJSON(), 11504 autorest.AsGet(), 11505 autorest.WithBaseURL(to.String(olr.NextLink))) 11506} 11507 11508// OperationListResultPage contains a page of Operation values. 11509type OperationListResultPage struct { 11510 fn func(context.Context, OperationListResult) (OperationListResult, error) 11511 olr OperationListResult 11512} 11513 11514// NextWithContext advances to the next page of values. If there was an error making 11515// the request the page does not advance and the error is returned. 11516func (page *OperationListResultPage) NextWithContext(ctx context.Context) (err error) { 11517 if tracing.IsEnabled() { 11518 ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultPage.NextWithContext") 11519 defer func() { 11520 sc := -1 11521 if page.Response().Response.Response != nil { 11522 sc = page.Response().Response.Response.StatusCode 11523 } 11524 tracing.EndSpan(ctx, sc, err) 11525 }() 11526 } 11527 next, err := page.fn(ctx, page.olr) 11528 if err != nil { 11529 return err 11530 } 11531 page.olr = next 11532 return nil 11533} 11534 11535// Next advances to the next page of values. If there was an error making 11536// the request the page does not advance and the error is returned. 11537// Deprecated: Use NextWithContext() instead. 11538func (page *OperationListResultPage) Next() error { 11539 return page.NextWithContext(context.Background()) 11540} 11541 11542// NotDone returns true if the page enumeration should be started or is not yet complete. 11543func (page OperationListResultPage) NotDone() bool { 11544 return !page.olr.IsEmpty() 11545} 11546 11547// Response returns the raw server response from the last page request. 11548func (page OperationListResultPage) Response() OperationListResult { 11549 return page.olr 11550} 11551 11552// Values returns the slice of values for the current page or nil if there are no values. 11553func (page OperationListResultPage) Values() []Operation { 11554 if page.olr.IsEmpty() { 11555 return nil 11556 } 11557 return *page.olr.Value 11558} 11559 11560// Creates a new instance of the OperationListResultPage type. 11561func NewOperationListResultPage(getNextPage func(context.Context, OperationListResult) (OperationListResult, error)) OperationListResultPage { 11562 return OperationListResultPage{fn: getNextPage} 11563} 11564 11565// OperationPropertiesFormat description of operation properties format. 11566type OperationPropertiesFormat struct { 11567 // ServiceSpecification - Specification of the service. 11568 ServiceSpecification *OperationPropertiesFormatServiceSpecification `json:"serviceSpecification,omitempty"` 11569} 11570 11571// OperationPropertiesFormatServiceSpecification specification of the service. 11572type OperationPropertiesFormatServiceSpecification struct { 11573 // MetricSpecifications - Operation service specification. 11574 MetricSpecifications *[]MetricSpecification `json:"metricSpecifications,omitempty"` 11575 // LogSpecifications - Operation log specification. 11576 LogSpecifications *[]LogSpecification `json:"logSpecifications,omitempty"` 11577} 11578 11579// OutboundNatRule outbound NAT pool of the load balancer. 11580type OutboundNatRule struct { 11581 // OutboundNatRulePropertiesFormat - Properties of load balancer outbound nat rule. 11582 *OutboundNatRulePropertiesFormat `json:"properties,omitempty"` 11583 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 11584 Name *string `json:"name,omitempty"` 11585 // Etag - A unique read-only string that changes whenever the resource is updated. 11586 Etag *string `json:"etag,omitempty"` 11587 // ID - Resource ID. 11588 ID *string `json:"id,omitempty"` 11589} 11590 11591// MarshalJSON is the custom marshaler for OutboundNatRule. 11592func (onr OutboundNatRule) MarshalJSON() ([]byte, error) { 11593 objectMap := make(map[string]interface{}) 11594 if onr.OutboundNatRulePropertiesFormat != nil { 11595 objectMap["properties"] = onr.OutboundNatRulePropertiesFormat 11596 } 11597 if onr.Name != nil { 11598 objectMap["name"] = onr.Name 11599 } 11600 if onr.Etag != nil { 11601 objectMap["etag"] = onr.Etag 11602 } 11603 if onr.ID != nil { 11604 objectMap["id"] = onr.ID 11605 } 11606 return json.Marshal(objectMap) 11607} 11608 11609// UnmarshalJSON is the custom unmarshaler for OutboundNatRule struct. 11610func (onr *OutboundNatRule) UnmarshalJSON(body []byte) error { 11611 var m map[string]*json.RawMessage 11612 err := json.Unmarshal(body, &m) 11613 if err != nil { 11614 return err 11615 } 11616 for k, v := range m { 11617 switch k { 11618 case "properties": 11619 if v != nil { 11620 var outboundNatRulePropertiesFormat OutboundNatRulePropertiesFormat 11621 err = json.Unmarshal(*v, &outboundNatRulePropertiesFormat) 11622 if err != nil { 11623 return err 11624 } 11625 onr.OutboundNatRulePropertiesFormat = &outboundNatRulePropertiesFormat 11626 } 11627 case "name": 11628 if v != nil { 11629 var name string 11630 err = json.Unmarshal(*v, &name) 11631 if err != nil { 11632 return err 11633 } 11634 onr.Name = &name 11635 } 11636 case "etag": 11637 if v != nil { 11638 var etag string 11639 err = json.Unmarshal(*v, &etag) 11640 if err != nil { 11641 return err 11642 } 11643 onr.Etag = &etag 11644 } 11645 case "id": 11646 if v != nil { 11647 var ID string 11648 err = json.Unmarshal(*v, &ID) 11649 if err != nil { 11650 return err 11651 } 11652 onr.ID = &ID 11653 } 11654 } 11655 } 11656 11657 return nil 11658} 11659 11660// OutboundNatRulePropertiesFormat outbound NAT pool of the load balancer. 11661type OutboundNatRulePropertiesFormat struct { 11662 // AllocatedOutboundPorts - The number of outbound ports to be used for NAT. 11663 AllocatedOutboundPorts *int32 `json:"allocatedOutboundPorts,omitempty"` 11664 // FrontendIPConfigurations - The Frontend IP addresses of the load balancer. 11665 FrontendIPConfigurations *[]SubResource `json:"frontendIPConfigurations,omitempty"` 11666 // BackendAddressPool - A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. 11667 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 11668 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 11669 ProvisioningState *string `json:"provisioningState,omitempty"` 11670} 11671 11672// PacketCapture parameters that define the create packet capture operation. 11673type PacketCapture struct { 11674 *PacketCaptureParameters `json:"properties,omitempty"` 11675} 11676 11677// MarshalJSON is the custom marshaler for PacketCapture. 11678func (pc PacketCapture) MarshalJSON() ([]byte, error) { 11679 objectMap := make(map[string]interface{}) 11680 if pc.PacketCaptureParameters != nil { 11681 objectMap["properties"] = pc.PacketCaptureParameters 11682 } 11683 return json.Marshal(objectMap) 11684} 11685 11686// UnmarshalJSON is the custom unmarshaler for PacketCapture struct. 11687func (pc *PacketCapture) UnmarshalJSON(body []byte) error { 11688 var m map[string]*json.RawMessage 11689 err := json.Unmarshal(body, &m) 11690 if err != nil { 11691 return err 11692 } 11693 for k, v := range m { 11694 switch k { 11695 case "properties": 11696 if v != nil { 11697 var packetCaptureParameters PacketCaptureParameters 11698 err = json.Unmarshal(*v, &packetCaptureParameters) 11699 if err != nil { 11700 return err 11701 } 11702 pc.PacketCaptureParameters = &packetCaptureParameters 11703 } 11704 } 11705 } 11706 11707 return nil 11708} 11709 11710// PacketCaptureFilter filter that is applied to packet capture request. Multiple filters can be applied. 11711type PacketCaptureFilter struct { 11712 // Protocol - Protocol to be filtered on. Possible values include: 'PcProtocolTCP', 'PcProtocolUDP', 'PcProtocolAny' 11713 Protocol PcProtocol `json:"protocol,omitempty"` 11714 // LocalIPAddress - 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 entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. 11715 LocalIPAddress *string `json:"localIPAddress,omitempty"` 11716 // RemoteIPAddress - 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 entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. 11717 RemoteIPAddress *string `json:"remoteIPAddress,omitempty"` 11718 // LocalPort - 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. Mixing ranges with multiple entries not currently supported. Default = null. 11719 LocalPort *string `json:"localPort,omitempty"` 11720 // RemotePort - 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 supported. Mixing ranges with multiple entries not currently supported. Default = null. 11721 RemotePort *string `json:"remotePort,omitempty"` 11722} 11723 11724// PacketCaptureListResult list of packet capture sessions. 11725type PacketCaptureListResult struct { 11726 autorest.Response `json:"-"` 11727 // Value - Information about packet capture sessions. 11728 Value *[]PacketCaptureResult `json:"value,omitempty"` 11729} 11730 11731// PacketCaptureParameters parameters that define the create packet capture operation. 11732type PacketCaptureParameters struct { 11733 // Target - The ID of the targeted resource, only VM is currently supported. 11734 Target *string `json:"target,omitempty"` 11735 // BytesToCapturePerPacket - Number of bytes captured per packet, the remaining bytes are truncated. 11736 BytesToCapturePerPacket *int32 `json:"bytesToCapturePerPacket,omitempty"` 11737 // TotalBytesPerSession - Maximum size of the capture output. 11738 TotalBytesPerSession *int32 `json:"totalBytesPerSession,omitempty"` 11739 // TimeLimitInSeconds - Maximum duration of the capture session in seconds. 11740 TimeLimitInSeconds *int32 `json:"timeLimitInSeconds,omitempty"` 11741 StorageLocation *PacketCaptureStorageLocation `json:"storageLocation,omitempty"` 11742 Filters *[]PacketCaptureFilter `json:"filters,omitempty"` 11743} 11744 11745// PacketCaptureQueryStatusResult status of packet capture session. 11746type PacketCaptureQueryStatusResult struct { 11747 autorest.Response `json:"-"` 11748 // Name - The name of the packet capture resource. 11749 Name *string `json:"name,omitempty"` 11750 // ID - The ID of the packet capture resource. 11751 ID *string `json:"id,omitempty"` 11752 // CaptureStartTime - The start time of the packet capture session. 11753 CaptureStartTime *date.Time `json:"captureStartTime,omitempty"` 11754 // PacketCaptureStatus - The status of the packet capture session. Possible values include: 'PcStatusNotStarted', 'PcStatusRunning', 'PcStatusStopped', 'PcStatusError', 'PcStatusUnknown' 11755 PacketCaptureStatus PcStatus `json:"packetCaptureStatus,omitempty"` 11756 // StopReason - The reason the current packet capture session was stopped. 11757 StopReason *string `json:"stopReason,omitempty"` 11758 // PacketCaptureError - List of errors of packet capture session. 11759 PacketCaptureError *[]PcError `json:"packetCaptureError,omitempty"` 11760} 11761 11762// PacketCaptureResult information about packet capture session. 11763type PacketCaptureResult struct { 11764 autorest.Response `json:"-"` 11765 // Name - READ-ONLY; Name of the packet capture session. 11766 Name *string `json:"name,omitempty"` 11767 // ID - READ-ONLY; ID of the packet capture operation. 11768 ID *string `json:"id,omitempty"` 11769 Etag *string `json:"etag,omitempty"` 11770 *PacketCaptureResultProperties `json:"properties,omitempty"` 11771} 11772 11773// MarshalJSON is the custom marshaler for PacketCaptureResult. 11774func (pcr PacketCaptureResult) MarshalJSON() ([]byte, error) { 11775 objectMap := make(map[string]interface{}) 11776 if pcr.Etag != nil { 11777 objectMap["etag"] = pcr.Etag 11778 } 11779 if pcr.PacketCaptureResultProperties != nil { 11780 objectMap["properties"] = pcr.PacketCaptureResultProperties 11781 } 11782 return json.Marshal(objectMap) 11783} 11784 11785// UnmarshalJSON is the custom unmarshaler for PacketCaptureResult struct. 11786func (pcr *PacketCaptureResult) UnmarshalJSON(body []byte) error { 11787 var m map[string]*json.RawMessage 11788 err := json.Unmarshal(body, &m) 11789 if err != nil { 11790 return err 11791 } 11792 for k, v := range m { 11793 switch k { 11794 case "name": 11795 if v != nil { 11796 var name string 11797 err = json.Unmarshal(*v, &name) 11798 if err != nil { 11799 return err 11800 } 11801 pcr.Name = &name 11802 } 11803 case "id": 11804 if v != nil { 11805 var ID string 11806 err = json.Unmarshal(*v, &ID) 11807 if err != nil { 11808 return err 11809 } 11810 pcr.ID = &ID 11811 } 11812 case "etag": 11813 if v != nil { 11814 var etag string 11815 err = json.Unmarshal(*v, &etag) 11816 if err != nil { 11817 return err 11818 } 11819 pcr.Etag = &etag 11820 } 11821 case "properties": 11822 if v != nil { 11823 var packetCaptureResultProperties PacketCaptureResultProperties 11824 err = json.Unmarshal(*v, &packetCaptureResultProperties) 11825 if err != nil { 11826 return err 11827 } 11828 pcr.PacketCaptureResultProperties = &packetCaptureResultProperties 11829 } 11830 } 11831 } 11832 11833 return nil 11834} 11835 11836// PacketCaptureResultProperties describes the properties of a packet capture session. 11837type PacketCaptureResultProperties struct { 11838 // ProvisioningState - The provisioning state of the packet capture session. Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' 11839 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 11840 // Target - The ID of the targeted resource, only VM is currently supported. 11841 Target *string `json:"target,omitempty"` 11842 // BytesToCapturePerPacket - Number of bytes captured per packet, the remaining bytes are truncated. 11843 BytesToCapturePerPacket *int32 `json:"bytesToCapturePerPacket,omitempty"` 11844 // TotalBytesPerSession - Maximum size of the capture output. 11845 TotalBytesPerSession *int32 `json:"totalBytesPerSession,omitempty"` 11846 // TimeLimitInSeconds - Maximum duration of the capture session in seconds. 11847 TimeLimitInSeconds *int32 `json:"timeLimitInSeconds,omitempty"` 11848 StorageLocation *PacketCaptureStorageLocation `json:"storageLocation,omitempty"` 11849 Filters *[]PacketCaptureFilter `json:"filters,omitempty"` 11850} 11851 11852// PacketCapturesCreateFuture an abstraction for monitoring and retrieving the results of a long-running 11853// operation. 11854type PacketCapturesCreateFuture struct { 11855 azure.Future 11856} 11857 11858// Result returns the result of the asynchronous operation. 11859// If the operation has not completed it will return an error. 11860func (future *PacketCapturesCreateFuture) Result(client PacketCapturesClient) (pcr PacketCaptureResult, err error) { 11861 var done bool 11862 done, err = future.DoneWithContext(context.Background(), client) 11863 if err != nil { 11864 err = autorest.NewErrorWithError(err, "network.PacketCapturesCreateFuture", "Result", future.Response(), "Polling failure") 11865 return 11866 } 11867 if !done { 11868 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesCreateFuture") 11869 return 11870 } 11871 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11872 if pcr.Response.Response, err = future.GetResult(sender); err == nil && pcr.Response.Response.StatusCode != http.StatusNoContent { 11873 pcr, err = client.CreateResponder(pcr.Response.Response) 11874 if err != nil { 11875 err = autorest.NewErrorWithError(err, "network.PacketCapturesCreateFuture", "Result", pcr.Response.Response, "Failure responding to request") 11876 } 11877 } 11878 return 11879} 11880 11881// PacketCapturesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 11882// operation. 11883type PacketCapturesDeleteFuture struct { 11884 azure.Future 11885} 11886 11887// Result returns the result of the asynchronous operation. 11888// If the operation has not completed it will return an error. 11889func (future *PacketCapturesDeleteFuture) Result(client PacketCapturesClient) (ar autorest.Response, err error) { 11890 var done bool 11891 done, err = future.DoneWithContext(context.Background(), client) 11892 if err != nil { 11893 err = autorest.NewErrorWithError(err, "network.PacketCapturesDeleteFuture", "Result", future.Response(), "Polling failure") 11894 return 11895 } 11896 if !done { 11897 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesDeleteFuture") 11898 return 11899 } 11900 ar.Response = future.Response() 11901 return 11902} 11903 11904// PacketCapturesGetStatusFuture an abstraction for monitoring and retrieving the results of a long-running 11905// operation. 11906type PacketCapturesGetStatusFuture struct { 11907 azure.Future 11908} 11909 11910// Result returns the result of the asynchronous operation. 11911// If the operation has not completed it will return an error. 11912func (future *PacketCapturesGetStatusFuture) Result(client PacketCapturesClient) (pcqsr PacketCaptureQueryStatusResult, err error) { 11913 var done bool 11914 done, err = future.DoneWithContext(context.Background(), client) 11915 if err != nil { 11916 err = autorest.NewErrorWithError(err, "network.PacketCapturesGetStatusFuture", "Result", future.Response(), "Polling failure") 11917 return 11918 } 11919 if !done { 11920 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesGetStatusFuture") 11921 return 11922 } 11923 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11924 if pcqsr.Response.Response, err = future.GetResult(sender); err == nil && pcqsr.Response.Response.StatusCode != http.StatusNoContent { 11925 pcqsr, err = client.GetStatusResponder(pcqsr.Response.Response) 11926 if err != nil { 11927 err = autorest.NewErrorWithError(err, "network.PacketCapturesGetStatusFuture", "Result", pcqsr.Response.Response, "Failure responding to request") 11928 } 11929 } 11930 return 11931} 11932 11933// PacketCapturesStopFuture an abstraction for monitoring and retrieving the results of a long-running 11934// operation. 11935type PacketCapturesStopFuture struct { 11936 azure.Future 11937} 11938 11939// Result returns the result of the asynchronous operation. 11940// If the operation has not completed it will return an error. 11941func (future *PacketCapturesStopFuture) Result(client PacketCapturesClient) (ar autorest.Response, err error) { 11942 var done bool 11943 done, err = future.DoneWithContext(context.Background(), client) 11944 if err != nil { 11945 err = autorest.NewErrorWithError(err, "network.PacketCapturesStopFuture", "Result", future.Response(), "Polling failure") 11946 return 11947 } 11948 if !done { 11949 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesStopFuture") 11950 return 11951 } 11952 ar.Response = future.Response() 11953 return 11954} 11955 11956// PacketCaptureStorageLocation describes the storage location for a packet capture session. 11957type PacketCaptureStorageLocation struct { 11958 // StorageID - The ID of the storage account to save the packet capture session. Required if no local file path is provided. 11959 StorageID *string `json:"storageId,omitempty"` 11960 // StoragePath - 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. 11961 StoragePath *string `json:"storagePath,omitempty"` 11962 // FilePath - 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. Required if no storage ID is provided, otherwise optional. 11963 FilePath *string `json:"filePath,omitempty"` 11964} 11965 11966// PatchRouteFilter route Filter Resource. 11967type PatchRouteFilter struct { 11968 *RouteFilterPropertiesFormat `json:"properties,omitempty"` 11969 // Name - READ-ONLY; The name of the resource that is unique within a resource group. This name can be used to access the resource. 11970 Name *string `json:"name,omitempty"` 11971 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 11972 Etag *string `json:"etag,omitempty"` 11973 // Type - READ-ONLY; Resource type. 11974 Type *string `json:"type,omitempty"` 11975 // Tags - Resource tags. 11976 Tags map[string]*string `json:"tags"` 11977 // ID - Resource ID. 11978 ID *string `json:"id,omitempty"` 11979} 11980 11981// MarshalJSON is the custom marshaler for PatchRouteFilter. 11982func (prf PatchRouteFilter) MarshalJSON() ([]byte, error) { 11983 objectMap := make(map[string]interface{}) 11984 if prf.RouteFilterPropertiesFormat != nil { 11985 objectMap["properties"] = prf.RouteFilterPropertiesFormat 11986 } 11987 if prf.Tags != nil { 11988 objectMap["tags"] = prf.Tags 11989 } 11990 if prf.ID != nil { 11991 objectMap["id"] = prf.ID 11992 } 11993 return json.Marshal(objectMap) 11994} 11995 11996// UnmarshalJSON is the custom unmarshaler for PatchRouteFilter struct. 11997func (prf *PatchRouteFilter) UnmarshalJSON(body []byte) error { 11998 var m map[string]*json.RawMessage 11999 err := json.Unmarshal(body, &m) 12000 if err != nil { 12001 return err 12002 } 12003 for k, v := range m { 12004 switch k { 12005 case "properties": 12006 if v != nil { 12007 var routeFilterPropertiesFormat RouteFilterPropertiesFormat 12008 err = json.Unmarshal(*v, &routeFilterPropertiesFormat) 12009 if err != nil { 12010 return err 12011 } 12012 prf.RouteFilterPropertiesFormat = &routeFilterPropertiesFormat 12013 } 12014 case "name": 12015 if v != nil { 12016 var name string 12017 err = json.Unmarshal(*v, &name) 12018 if err != nil { 12019 return err 12020 } 12021 prf.Name = &name 12022 } 12023 case "etag": 12024 if v != nil { 12025 var etag string 12026 err = json.Unmarshal(*v, &etag) 12027 if err != nil { 12028 return err 12029 } 12030 prf.Etag = &etag 12031 } 12032 case "type": 12033 if v != nil { 12034 var typeVar string 12035 err = json.Unmarshal(*v, &typeVar) 12036 if err != nil { 12037 return err 12038 } 12039 prf.Type = &typeVar 12040 } 12041 case "tags": 12042 if v != nil { 12043 var tags map[string]*string 12044 err = json.Unmarshal(*v, &tags) 12045 if err != nil { 12046 return err 12047 } 12048 prf.Tags = tags 12049 } 12050 case "id": 12051 if v != nil { 12052 var ID string 12053 err = json.Unmarshal(*v, &ID) 12054 if err != nil { 12055 return err 12056 } 12057 prf.ID = &ID 12058 } 12059 } 12060 } 12061 12062 return nil 12063} 12064 12065// PatchRouteFilterRule route Filter Rule Resource 12066type PatchRouteFilterRule struct { 12067 *RouteFilterRulePropertiesFormat `json:"properties,omitempty"` 12068 // Name - READ-ONLY; The name of the resource that is unique within a resource group. This name can be used to access the resource. 12069 Name *string `json:"name,omitempty"` 12070 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 12071 Etag *string `json:"etag,omitempty"` 12072 // ID - Resource ID. 12073 ID *string `json:"id,omitempty"` 12074} 12075 12076// MarshalJSON is the custom marshaler for PatchRouteFilterRule. 12077func (prfr PatchRouteFilterRule) MarshalJSON() ([]byte, error) { 12078 objectMap := make(map[string]interface{}) 12079 if prfr.RouteFilterRulePropertiesFormat != nil { 12080 objectMap["properties"] = prfr.RouteFilterRulePropertiesFormat 12081 } 12082 if prfr.ID != nil { 12083 objectMap["id"] = prfr.ID 12084 } 12085 return json.Marshal(objectMap) 12086} 12087 12088// UnmarshalJSON is the custom unmarshaler for PatchRouteFilterRule struct. 12089func (prfr *PatchRouteFilterRule) UnmarshalJSON(body []byte) error { 12090 var m map[string]*json.RawMessage 12091 err := json.Unmarshal(body, &m) 12092 if err != nil { 12093 return err 12094 } 12095 for k, v := range m { 12096 switch k { 12097 case "properties": 12098 if v != nil { 12099 var routeFilterRulePropertiesFormat RouteFilterRulePropertiesFormat 12100 err = json.Unmarshal(*v, &routeFilterRulePropertiesFormat) 12101 if err != nil { 12102 return err 12103 } 12104 prfr.RouteFilterRulePropertiesFormat = &routeFilterRulePropertiesFormat 12105 } 12106 case "name": 12107 if v != nil { 12108 var name string 12109 err = json.Unmarshal(*v, &name) 12110 if err != nil { 12111 return err 12112 } 12113 prfr.Name = &name 12114 } 12115 case "etag": 12116 if v != nil { 12117 var etag string 12118 err = json.Unmarshal(*v, &etag) 12119 if err != nil { 12120 return err 12121 } 12122 prfr.Etag = &etag 12123 } 12124 case "id": 12125 if v != nil { 12126 var ID string 12127 err = json.Unmarshal(*v, &ID) 12128 if err != nil { 12129 return err 12130 } 12131 prfr.ID = &ID 12132 } 12133 } 12134 } 12135 12136 return nil 12137} 12138 12139// Probe a load balancer probe. 12140type Probe struct { 12141 autorest.Response `json:"-"` 12142 // ProbePropertiesFormat - Properties of load balancer probe. 12143 *ProbePropertiesFormat `json:"properties,omitempty"` 12144 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 12145 Name *string `json:"name,omitempty"` 12146 // Etag - A unique read-only string that changes whenever the resource is updated. 12147 Etag *string `json:"etag,omitempty"` 12148 // ID - Resource ID. 12149 ID *string `json:"id,omitempty"` 12150} 12151 12152// MarshalJSON is the custom marshaler for Probe. 12153func (p Probe) MarshalJSON() ([]byte, error) { 12154 objectMap := make(map[string]interface{}) 12155 if p.ProbePropertiesFormat != nil { 12156 objectMap["properties"] = p.ProbePropertiesFormat 12157 } 12158 if p.Name != nil { 12159 objectMap["name"] = p.Name 12160 } 12161 if p.Etag != nil { 12162 objectMap["etag"] = p.Etag 12163 } 12164 if p.ID != nil { 12165 objectMap["id"] = p.ID 12166 } 12167 return json.Marshal(objectMap) 12168} 12169 12170// UnmarshalJSON is the custom unmarshaler for Probe struct. 12171func (p *Probe) UnmarshalJSON(body []byte) error { 12172 var m map[string]*json.RawMessage 12173 err := json.Unmarshal(body, &m) 12174 if err != nil { 12175 return err 12176 } 12177 for k, v := range m { 12178 switch k { 12179 case "properties": 12180 if v != nil { 12181 var probePropertiesFormat ProbePropertiesFormat 12182 err = json.Unmarshal(*v, &probePropertiesFormat) 12183 if err != nil { 12184 return err 12185 } 12186 p.ProbePropertiesFormat = &probePropertiesFormat 12187 } 12188 case "name": 12189 if v != nil { 12190 var name string 12191 err = json.Unmarshal(*v, &name) 12192 if err != nil { 12193 return err 12194 } 12195 p.Name = &name 12196 } 12197 case "etag": 12198 if v != nil { 12199 var etag string 12200 err = json.Unmarshal(*v, &etag) 12201 if err != nil { 12202 return err 12203 } 12204 p.Etag = &etag 12205 } 12206 case "id": 12207 if v != nil { 12208 var ID string 12209 err = json.Unmarshal(*v, &ID) 12210 if err != nil { 12211 return err 12212 } 12213 p.ID = &ID 12214 } 12215 } 12216 } 12217 12218 return nil 12219} 12220 12221// ProbePropertiesFormat load balancer probe resource. 12222type ProbePropertiesFormat struct { 12223 // LoadBalancingRules - READ-ONLY; The load balancer rules that use this probe. 12224 LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty"` 12225 // Protocol - The protocol of the end point. Possible values are: 'Http', 'Tcp' or 'Https'. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. Possible values include: 'ProbeProtocolHTTP', 'ProbeProtocolTCP', 'ProbeProtocolHTTPS' 12226 Protocol ProbeProtocol `json:"protocol,omitempty"` 12227 // Port - The port for communicating the probe. Possible values range from 1 to 65535, inclusive. 12228 Port *int32 `json:"port,omitempty"` 12229 // IntervalInSeconds - The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. 12230 IntervalInSeconds *int32 `json:"intervalInSeconds,omitempty"` 12231 // NumberOfProbes - The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. 12232 NumberOfProbes *int32 `json:"numberOfProbes,omitempty"` 12233 // RequestPath - 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 value. 12234 RequestPath *string `json:"requestPath,omitempty"` 12235 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 12236 ProvisioningState *string `json:"provisioningState,omitempty"` 12237} 12238 12239// ProtocolConfiguration configuration of the protocol. 12240type ProtocolConfiguration struct { 12241 HTTPConfiguration *HTTPConfiguration `json:"HTTPConfiguration,omitempty"` 12242} 12243 12244// PublicIPAddress public IP address resource. 12245type PublicIPAddress struct { 12246 autorest.Response `json:"-"` 12247 // Sku - The public IP address SKU. 12248 Sku *PublicIPAddressSku `json:"sku,omitempty"` 12249 // PublicIPAddressPropertiesFormat - Public IP address properties. 12250 *PublicIPAddressPropertiesFormat `json:"properties,omitempty"` 12251 // Etag - A unique read-only string that changes whenever the resource is updated. 12252 Etag *string `json:"etag,omitempty"` 12253 // Zones - A list of availability zones denoting the IP allocated for the resource needs to come from. 12254 Zones *[]string `json:"zones,omitempty"` 12255 // ID - Resource ID. 12256 ID *string `json:"id,omitempty"` 12257 // Name - READ-ONLY; Resource name. 12258 Name *string `json:"name,omitempty"` 12259 // Type - READ-ONLY; Resource type. 12260 Type *string `json:"type,omitempty"` 12261 // Location - Resource location. 12262 Location *string `json:"location,omitempty"` 12263 // Tags - Resource tags. 12264 Tags map[string]*string `json:"tags"` 12265} 12266 12267// MarshalJSON is the custom marshaler for PublicIPAddress. 12268func (pia PublicIPAddress) MarshalJSON() ([]byte, error) { 12269 objectMap := make(map[string]interface{}) 12270 if pia.Sku != nil { 12271 objectMap["sku"] = pia.Sku 12272 } 12273 if pia.PublicIPAddressPropertiesFormat != nil { 12274 objectMap["properties"] = pia.PublicIPAddressPropertiesFormat 12275 } 12276 if pia.Etag != nil { 12277 objectMap["etag"] = pia.Etag 12278 } 12279 if pia.Zones != nil { 12280 objectMap["zones"] = pia.Zones 12281 } 12282 if pia.ID != nil { 12283 objectMap["id"] = pia.ID 12284 } 12285 if pia.Location != nil { 12286 objectMap["location"] = pia.Location 12287 } 12288 if pia.Tags != nil { 12289 objectMap["tags"] = pia.Tags 12290 } 12291 return json.Marshal(objectMap) 12292} 12293 12294// UnmarshalJSON is the custom unmarshaler for PublicIPAddress struct. 12295func (pia *PublicIPAddress) UnmarshalJSON(body []byte) error { 12296 var m map[string]*json.RawMessage 12297 err := json.Unmarshal(body, &m) 12298 if err != nil { 12299 return err 12300 } 12301 for k, v := range m { 12302 switch k { 12303 case "sku": 12304 if v != nil { 12305 var sku PublicIPAddressSku 12306 err = json.Unmarshal(*v, &sku) 12307 if err != nil { 12308 return err 12309 } 12310 pia.Sku = &sku 12311 } 12312 case "properties": 12313 if v != nil { 12314 var publicIPAddressPropertiesFormat PublicIPAddressPropertiesFormat 12315 err = json.Unmarshal(*v, &publicIPAddressPropertiesFormat) 12316 if err != nil { 12317 return err 12318 } 12319 pia.PublicIPAddressPropertiesFormat = &publicIPAddressPropertiesFormat 12320 } 12321 case "etag": 12322 if v != nil { 12323 var etag string 12324 err = json.Unmarshal(*v, &etag) 12325 if err != nil { 12326 return err 12327 } 12328 pia.Etag = &etag 12329 } 12330 case "zones": 12331 if v != nil { 12332 var zones []string 12333 err = json.Unmarshal(*v, &zones) 12334 if err != nil { 12335 return err 12336 } 12337 pia.Zones = &zones 12338 } 12339 case "id": 12340 if v != nil { 12341 var ID string 12342 err = json.Unmarshal(*v, &ID) 12343 if err != nil { 12344 return err 12345 } 12346 pia.ID = &ID 12347 } 12348 case "name": 12349 if v != nil { 12350 var name string 12351 err = json.Unmarshal(*v, &name) 12352 if err != nil { 12353 return err 12354 } 12355 pia.Name = &name 12356 } 12357 case "type": 12358 if v != nil { 12359 var typeVar string 12360 err = json.Unmarshal(*v, &typeVar) 12361 if err != nil { 12362 return err 12363 } 12364 pia.Type = &typeVar 12365 } 12366 case "location": 12367 if v != nil { 12368 var location string 12369 err = json.Unmarshal(*v, &location) 12370 if err != nil { 12371 return err 12372 } 12373 pia.Location = &location 12374 } 12375 case "tags": 12376 if v != nil { 12377 var tags map[string]*string 12378 err = json.Unmarshal(*v, &tags) 12379 if err != nil { 12380 return err 12381 } 12382 pia.Tags = tags 12383 } 12384 } 12385 } 12386 12387 return nil 12388} 12389 12390// PublicIPAddressDNSSettings contains FQDN of the DNS record associated with the public IP address 12391type PublicIPAddressDNSSettings struct { 12392 // DomainNameLabel - Gets or sets 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 the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. 12393 DomainNameLabel *string `json:"domainNameLabel,omitempty"` 12394 // Fqdn - Gets the FQDN, Fully qualified domain name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. 12395 Fqdn *string `json:"fqdn,omitempty"` 12396 // ReverseFqdn - Gets or Sets 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 record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. 12397 ReverseFqdn *string `json:"reverseFqdn,omitempty"` 12398} 12399 12400// PublicIPAddressesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 12401// long-running operation. 12402type PublicIPAddressesCreateOrUpdateFuture struct { 12403 azure.Future 12404} 12405 12406// Result returns the result of the asynchronous operation. 12407// If the operation has not completed it will return an error. 12408func (future *PublicIPAddressesCreateOrUpdateFuture) Result(client PublicIPAddressesClient) (pia PublicIPAddress, err error) { 12409 var done bool 12410 done, err = future.DoneWithContext(context.Background(), client) 12411 if err != nil { 12412 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 12413 return 12414 } 12415 if !done { 12416 err = azure.NewAsyncOpIncompleteError("network.PublicIPAddressesCreateOrUpdateFuture") 12417 return 12418 } 12419 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 12420 if pia.Response.Response, err = future.GetResult(sender); err == nil && pia.Response.Response.StatusCode != http.StatusNoContent { 12421 pia, err = client.CreateOrUpdateResponder(pia.Response.Response) 12422 if err != nil { 12423 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesCreateOrUpdateFuture", "Result", pia.Response.Response, "Failure responding to request") 12424 } 12425 } 12426 return 12427} 12428 12429// PublicIPAddressesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 12430// operation. 12431type PublicIPAddressesDeleteFuture struct { 12432 azure.Future 12433} 12434 12435// Result returns the result of the asynchronous operation. 12436// If the operation has not completed it will return an error. 12437func (future *PublicIPAddressesDeleteFuture) Result(client PublicIPAddressesClient) (ar autorest.Response, err error) { 12438 var done bool 12439 done, err = future.DoneWithContext(context.Background(), client) 12440 if err != nil { 12441 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesDeleteFuture", "Result", future.Response(), "Polling failure") 12442 return 12443 } 12444 if !done { 12445 err = azure.NewAsyncOpIncompleteError("network.PublicIPAddressesDeleteFuture") 12446 return 12447 } 12448 ar.Response = future.Response() 12449 return 12450} 12451 12452// PublicIPAddressesUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 12453// long-running operation. 12454type PublicIPAddressesUpdateTagsFuture struct { 12455 azure.Future 12456} 12457 12458// Result returns the result of the asynchronous operation. 12459// If the operation has not completed it will return an error. 12460func (future *PublicIPAddressesUpdateTagsFuture) Result(client PublicIPAddressesClient) (pia PublicIPAddress, err error) { 12461 var done bool 12462 done, err = future.DoneWithContext(context.Background(), client) 12463 if err != nil { 12464 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesUpdateTagsFuture", "Result", future.Response(), "Polling failure") 12465 return 12466 } 12467 if !done { 12468 err = azure.NewAsyncOpIncompleteError("network.PublicIPAddressesUpdateTagsFuture") 12469 return 12470 } 12471 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 12472 if pia.Response.Response, err = future.GetResult(sender); err == nil && pia.Response.Response.StatusCode != http.StatusNoContent { 12473 pia, err = client.UpdateTagsResponder(pia.Response.Response) 12474 if err != nil { 12475 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesUpdateTagsFuture", "Result", pia.Response.Response, "Failure responding to request") 12476 } 12477 } 12478 return 12479} 12480 12481// PublicIPAddressListResult response for ListPublicIpAddresses API service call. 12482type PublicIPAddressListResult struct { 12483 autorest.Response `json:"-"` 12484 // Value - A list of public IP addresses that exists in a resource group. 12485 Value *[]PublicIPAddress `json:"value,omitempty"` 12486 // NextLink - The URL to get the next set of results. 12487 NextLink *string `json:"nextLink,omitempty"` 12488} 12489 12490// PublicIPAddressListResultIterator provides access to a complete listing of PublicIPAddress values. 12491type PublicIPAddressListResultIterator struct { 12492 i int 12493 page PublicIPAddressListResultPage 12494} 12495 12496// NextWithContext advances to the next value. If there was an error making 12497// the request the iterator does not advance and the error is returned. 12498func (iter *PublicIPAddressListResultIterator) NextWithContext(ctx context.Context) (err error) { 12499 if tracing.IsEnabled() { 12500 ctx = tracing.StartSpan(ctx, fqdn+"/PublicIPAddressListResultIterator.NextWithContext") 12501 defer func() { 12502 sc := -1 12503 if iter.Response().Response.Response != nil { 12504 sc = iter.Response().Response.Response.StatusCode 12505 } 12506 tracing.EndSpan(ctx, sc, err) 12507 }() 12508 } 12509 iter.i++ 12510 if iter.i < len(iter.page.Values()) { 12511 return nil 12512 } 12513 err = iter.page.NextWithContext(ctx) 12514 if err != nil { 12515 iter.i-- 12516 return err 12517 } 12518 iter.i = 0 12519 return nil 12520} 12521 12522// Next advances to the next value. If there was an error making 12523// the request the iterator does not advance and the error is returned. 12524// Deprecated: Use NextWithContext() instead. 12525func (iter *PublicIPAddressListResultIterator) Next() error { 12526 return iter.NextWithContext(context.Background()) 12527} 12528 12529// NotDone returns true if the enumeration should be started or is not yet complete. 12530func (iter PublicIPAddressListResultIterator) NotDone() bool { 12531 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 12532} 12533 12534// Response returns the raw server response from the last page request. 12535func (iter PublicIPAddressListResultIterator) Response() PublicIPAddressListResult { 12536 return iter.page.Response() 12537} 12538 12539// Value returns the current value or a zero-initialized value if the 12540// iterator has advanced beyond the end of the collection. 12541func (iter PublicIPAddressListResultIterator) Value() PublicIPAddress { 12542 if !iter.page.NotDone() { 12543 return PublicIPAddress{} 12544 } 12545 return iter.page.Values()[iter.i] 12546} 12547 12548// Creates a new instance of the PublicIPAddressListResultIterator type. 12549func NewPublicIPAddressListResultIterator(page PublicIPAddressListResultPage) PublicIPAddressListResultIterator { 12550 return PublicIPAddressListResultIterator{page: page} 12551} 12552 12553// IsEmpty returns true if the ListResult contains no values. 12554func (pialr PublicIPAddressListResult) IsEmpty() bool { 12555 return pialr.Value == nil || len(*pialr.Value) == 0 12556} 12557 12558// publicIPAddressListResultPreparer prepares a request to retrieve the next set of results. 12559// It returns nil if no more results exist. 12560func (pialr PublicIPAddressListResult) publicIPAddressListResultPreparer(ctx context.Context) (*http.Request, error) { 12561 if pialr.NextLink == nil || len(to.String(pialr.NextLink)) < 1 { 12562 return nil, nil 12563 } 12564 return autorest.Prepare((&http.Request{}).WithContext(ctx), 12565 autorest.AsJSON(), 12566 autorest.AsGet(), 12567 autorest.WithBaseURL(to.String(pialr.NextLink))) 12568} 12569 12570// PublicIPAddressListResultPage contains a page of PublicIPAddress values. 12571type PublicIPAddressListResultPage struct { 12572 fn func(context.Context, PublicIPAddressListResult) (PublicIPAddressListResult, error) 12573 pialr PublicIPAddressListResult 12574} 12575 12576// NextWithContext advances to the next page of values. If there was an error making 12577// the request the page does not advance and the error is returned. 12578func (page *PublicIPAddressListResultPage) NextWithContext(ctx context.Context) (err error) { 12579 if tracing.IsEnabled() { 12580 ctx = tracing.StartSpan(ctx, fqdn+"/PublicIPAddressListResultPage.NextWithContext") 12581 defer func() { 12582 sc := -1 12583 if page.Response().Response.Response != nil { 12584 sc = page.Response().Response.Response.StatusCode 12585 } 12586 tracing.EndSpan(ctx, sc, err) 12587 }() 12588 } 12589 next, err := page.fn(ctx, page.pialr) 12590 if err != nil { 12591 return err 12592 } 12593 page.pialr = next 12594 return nil 12595} 12596 12597// Next advances to the next page of values. If there was an error making 12598// the request the page does not advance and the error is returned. 12599// Deprecated: Use NextWithContext() instead. 12600func (page *PublicIPAddressListResultPage) Next() error { 12601 return page.NextWithContext(context.Background()) 12602} 12603 12604// NotDone returns true if the page enumeration should be started or is not yet complete. 12605func (page PublicIPAddressListResultPage) NotDone() bool { 12606 return !page.pialr.IsEmpty() 12607} 12608 12609// Response returns the raw server response from the last page request. 12610func (page PublicIPAddressListResultPage) Response() PublicIPAddressListResult { 12611 return page.pialr 12612} 12613 12614// Values returns the slice of values for the current page or nil if there are no values. 12615func (page PublicIPAddressListResultPage) Values() []PublicIPAddress { 12616 if page.pialr.IsEmpty() { 12617 return nil 12618 } 12619 return *page.pialr.Value 12620} 12621 12622// Creates a new instance of the PublicIPAddressListResultPage type. 12623func NewPublicIPAddressListResultPage(getNextPage func(context.Context, PublicIPAddressListResult) (PublicIPAddressListResult, error)) PublicIPAddressListResultPage { 12624 return PublicIPAddressListResultPage{fn: getNextPage} 12625} 12626 12627// PublicIPAddressPropertiesFormat public IP address properties. 12628type PublicIPAddressPropertiesFormat struct { 12629 // PublicIPAllocationMethod - The public IP allocation method. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 12630 PublicIPAllocationMethod IPAllocationMethod `json:"publicIPAllocationMethod,omitempty"` 12631 // PublicIPAddressVersion - The public IP address version. Possible values are: 'IPv4' and 'IPv6'. Possible values include: 'IPv4', 'IPv6' 12632 PublicIPAddressVersion IPVersion `json:"publicIPAddressVersion,omitempty"` 12633 // IPConfiguration - READ-ONLY; The IP configuration associated with the public IP address. 12634 IPConfiguration *IPConfiguration `json:"ipConfiguration,omitempty"` 12635 // DNSSettings - The FQDN of the DNS record associated with the public IP address. 12636 DNSSettings *PublicIPAddressDNSSettings `json:"dnsSettings,omitempty"` 12637 // IPTags - The list of tags associated with the public IP address. 12638 IPTags *[]IPTag `json:"ipTags,omitempty"` 12639 // IPAddress - The IP address associated with the public IP address resource. 12640 IPAddress *string `json:"ipAddress,omitempty"` 12641 // IdleTimeoutInMinutes - The idle timeout of the public IP address. 12642 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 12643 // ResourceGUID - The resource GUID property of the public IP resource. 12644 ResourceGUID *string `json:"resourceGuid,omitempty"` 12645 // ProvisioningState - The provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 12646 ProvisioningState *string `json:"provisioningState,omitempty"` 12647} 12648 12649// PublicIPAddressSku SKU of a public IP address 12650type PublicIPAddressSku struct { 12651 // Name - Name of a public IP address SKU. Possible values include: 'PublicIPAddressSkuNameBasic', 'PublicIPAddressSkuNameStandard' 12652 Name PublicIPAddressSkuName `json:"name,omitempty"` 12653} 12654 12655// QueryTroubleshootingParameters parameters that define the resource to query the troubleshooting result. 12656type QueryTroubleshootingParameters struct { 12657 // TargetResourceID - The target resource ID to query the troubleshooting result. 12658 TargetResourceID *string `json:"targetResourceId,omitempty"` 12659} 12660 12661// Resource common resource representation. 12662type Resource struct { 12663 // ID - Resource ID. 12664 ID *string `json:"id,omitempty"` 12665 // Name - READ-ONLY; Resource name. 12666 Name *string `json:"name,omitempty"` 12667 // Type - READ-ONLY; Resource type. 12668 Type *string `json:"type,omitempty"` 12669 // Location - Resource location. 12670 Location *string `json:"location,omitempty"` 12671 // Tags - Resource tags. 12672 Tags map[string]*string `json:"tags"` 12673} 12674 12675// MarshalJSON is the custom marshaler for Resource. 12676func (r Resource) MarshalJSON() ([]byte, error) { 12677 objectMap := make(map[string]interface{}) 12678 if r.ID != nil { 12679 objectMap["id"] = r.ID 12680 } 12681 if r.Location != nil { 12682 objectMap["location"] = r.Location 12683 } 12684 if r.Tags != nil { 12685 objectMap["tags"] = r.Tags 12686 } 12687 return json.Marshal(objectMap) 12688} 12689 12690// ResourceNavigationLink resourceNavigationLink resource. 12691type ResourceNavigationLink struct { 12692 // ResourceNavigationLinkFormat - Resource navigation link properties format. 12693 *ResourceNavigationLinkFormat `json:"properties,omitempty"` 12694 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 12695 Name *string `json:"name,omitempty"` 12696 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 12697 Etag *string `json:"etag,omitempty"` 12698 // ID - Resource ID. 12699 ID *string `json:"id,omitempty"` 12700} 12701 12702// MarshalJSON is the custom marshaler for ResourceNavigationLink. 12703func (rnl ResourceNavigationLink) MarshalJSON() ([]byte, error) { 12704 objectMap := make(map[string]interface{}) 12705 if rnl.ResourceNavigationLinkFormat != nil { 12706 objectMap["properties"] = rnl.ResourceNavigationLinkFormat 12707 } 12708 if rnl.Name != nil { 12709 objectMap["name"] = rnl.Name 12710 } 12711 if rnl.ID != nil { 12712 objectMap["id"] = rnl.ID 12713 } 12714 return json.Marshal(objectMap) 12715} 12716 12717// UnmarshalJSON is the custom unmarshaler for ResourceNavigationLink struct. 12718func (rnl *ResourceNavigationLink) UnmarshalJSON(body []byte) error { 12719 var m map[string]*json.RawMessage 12720 err := json.Unmarshal(body, &m) 12721 if err != nil { 12722 return err 12723 } 12724 for k, v := range m { 12725 switch k { 12726 case "properties": 12727 if v != nil { 12728 var resourceNavigationLinkFormat ResourceNavigationLinkFormat 12729 err = json.Unmarshal(*v, &resourceNavigationLinkFormat) 12730 if err != nil { 12731 return err 12732 } 12733 rnl.ResourceNavigationLinkFormat = &resourceNavigationLinkFormat 12734 } 12735 case "name": 12736 if v != nil { 12737 var name string 12738 err = json.Unmarshal(*v, &name) 12739 if err != nil { 12740 return err 12741 } 12742 rnl.Name = &name 12743 } 12744 case "etag": 12745 if v != nil { 12746 var etag string 12747 err = json.Unmarshal(*v, &etag) 12748 if err != nil { 12749 return err 12750 } 12751 rnl.Etag = &etag 12752 } 12753 case "id": 12754 if v != nil { 12755 var ID string 12756 err = json.Unmarshal(*v, &ID) 12757 if err != nil { 12758 return err 12759 } 12760 rnl.ID = &ID 12761 } 12762 } 12763 } 12764 12765 return nil 12766} 12767 12768// ResourceNavigationLinkFormat properties of ResourceNavigationLink. 12769type ResourceNavigationLinkFormat struct { 12770 // LinkedResourceType - Resource type of the linked resource. 12771 LinkedResourceType *string `json:"linkedResourceType,omitempty"` 12772 // Link - Link to the external resource 12773 Link *string `json:"link,omitempty"` 12774 // ProvisioningState - READ-ONLY; Provisioning state of the ResourceNavigationLink resource. 12775 ProvisioningState *string `json:"provisioningState,omitempty"` 12776} 12777 12778// RetentionPolicyParameters parameters that define the retention policy for flow log. 12779type RetentionPolicyParameters struct { 12780 // Days - Number of days to retain flow log records. 12781 Days *int32 `json:"days,omitempty"` 12782 // Enabled - Flag to enable/disable retention. 12783 Enabled *bool `json:"enabled,omitempty"` 12784} 12785 12786// Route route resource 12787type Route struct { 12788 autorest.Response `json:"-"` 12789 // RoutePropertiesFormat - Properties of the route. 12790 *RoutePropertiesFormat `json:"properties,omitempty"` 12791 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 12792 Name *string `json:"name,omitempty"` 12793 // Etag - A unique read-only string that changes whenever the resource is updated. 12794 Etag *string `json:"etag,omitempty"` 12795 // ID - Resource ID. 12796 ID *string `json:"id,omitempty"` 12797} 12798 12799// MarshalJSON is the custom marshaler for Route. 12800func (r Route) MarshalJSON() ([]byte, error) { 12801 objectMap := make(map[string]interface{}) 12802 if r.RoutePropertiesFormat != nil { 12803 objectMap["properties"] = r.RoutePropertiesFormat 12804 } 12805 if r.Name != nil { 12806 objectMap["name"] = r.Name 12807 } 12808 if r.Etag != nil { 12809 objectMap["etag"] = r.Etag 12810 } 12811 if r.ID != nil { 12812 objectMap["id"] = r.ID 12813 } 12814 return json.Marshal(objectMap) 12815} 12816 12817// UnmarshalJSON is the custom unmarshaler for Route struct. 12818func (r *Route) UnmarshalJSON(body []byte) error { 12819 var m map[string]*json.RawMessage 12820 err := json.Unmarshal(body, &m) 12821 if err != nil { 12822 return err 12823 } 12824 for k, v := range m { 12825 switch k { 12826 case "properties": 12827 if v != nil { 12828 var routePropertiesFormat RoutePropertiesFormat 12829 err = json.Unmarshal(*v, &routePropertiesFormat) 12830 if err != nil { 12831 return err 12832 } 12833 r.RoutePropertiesFormat = &routePropertiesFormat 12834 } 12835 case "name": 12836 if v != nil { 12837 var name string 12838 err = json.Unmarshal(*v, &name) 12839 if err != nil { 12840 return err 12841 } 12842 r.Name = &name 12843 } 12844 case "etag": 12845 if v != nil { 12846 var etag string 12847 err = json.Unmarshal(*v, &etag) 12848 if err != nil { 12849 return err 12850 } 12851 r.Etag = &etag 12852 } 12853 case "id": 12854 if v != nil { 12855 var ID string 12856 err = json.Unmarshal(*v, &ID) 12857 if err != nil { 12858 return err 12859 } 12860 r.ID = &ID 12861 } 12862 } 12863 } 12864 12865 return nil 12866} 12867 12868// RouteFilter route Filter Resource. 12869type RouteFilter struct { 12870 autorest.Response `json:"-"` 12871 *RouteFilterPropertiesFormat `json:"properties,omitempty"` 12872 // Etag - READ-ONLY; Gets a unique read-only string that changes whenever the resource is updated. 12873 Etag *string `json:"etag,omitempty"` 12874 // ID - Resource ID. 12875 ID *string `json:"id,omitempty"` 12876 // Name - READ-ONLY; Resource name. 12877 Name *string `json:"name,omitempty"` 12878 // Type - READ-ONLY; Resource type. 12879 Type *string `json:"type,omitempty"` 12880 // Location - Resource location. 12881 Location *string `json:"location,omitempty"` 12882 // Tags - Resource tags. 12883 Tags map[string]*string `json:"tags"` 12884} 12885 12886// MarshalJSON is the custom marshaler for RouteFilter. 12887func (rf RouteFilter) MarshalJSON() ([]byte, error) { 12888 objectMap := make(map[string]interface{}) 12889 if rf.RouteFilterPropertiesFormat != nil { 12890 objectMap["properties"] = rf.RouteFilterPropertiesFormat 12891 } 12892 if rf.ID != nil { 12893 objectMap["id"] = rf.ID 12894 } 12895 if rf.Location != nil { 12896 objectMap["location"] = rf.Location 12897 } 12898 if rf.Tags != nil { 12899 objectMap["tags"] = rf.Tags 12900 } 12901 return json.Marshal(objectMap) 12902} 12903 12904// UnmarshalJSON is the custom unmarshaler for RouteFilter struct. 12905func (rf *RouteFilter) UnmarshalJSON(body []byte) error { 12906 var m map[string]*json.RawMessage 12907 err := json.Unmarshal(body, &m) 12908 if err != nil { 12909 return err 12910 } 12911 for k, v := range m { 12912 switch k { 12913 case "properties": 12914 if v != nil { 12915 var routeFilterPropertiesFormat RouteFilterPropertiesFormat 12916 err = json.Unmarshal(*v, &routeFilterPropertiesFormat) 12917 if err != nil { 12918 return err 12919 } 12920 rf.RouteFilterPropertiesFormat = &routeFilterPropertiesFormat 12921 } 12922 case "etag": 12923 if v != nil { 12924 var etag string 12925 err = json.Unmarshal(*v, &etag) 12926 if err != nil { 12927 return err 12928 } 12929 rf.Etag = &etag 12930 } 12931 case "id": 12932 if v != nil { 12933 var ID string 12934 err = json.Unmarshal(*v, &ID) 12935 if err != nil { 12936 return err 12937 } 12938 rf.ID = &ID 12939 } 12940 case "name": 12941 if v != nil { 12942 var name string 12943 err = json.Unmarshal(*v, &name) 12944 if err != nil { 12945 return err 12946 } 12947 rf.Name = &name 12948 } 12949 case "type": 12950 if v != nil { 12951 var typeVar string 12952 err = json.Unmarshal(*v, &typeVar) 12953 if err != nil { 12954 return err 12955 } 12956 rf.Type = &typeVar 12957 } 12958 case "location": 12959 if v != nil { 12960 var location string 12961 err = json.Unmarshal(*v, &location) 12962 if err != nil { 12963 return err 12964 } 12965 rf.Location = &location 12966 } 12967 case "tags": 12968 if v != nil { 12969 var tags map[string]*string 12970 err = json.Unmarshal(*v, &tags) 12971 if err != nil { 12972 return err 12973 } 12974 rf.Tags = tags 12975 } 12976 } 12977 } 12978 12979 return nil 12980} 12981 12982// RouteFilterListResult response for the ListRouteFilters API service call. 12983type RouteFilterListResult struct { 12984 autorest.Response `json:"-"` 12985 // Value - Gets a list of route filters in a resource group. 12986 Value *[]RouteFilter `json:"value,omitempty"` 12987 // NextLink - The URL to get the next set of results. 12988 NextLink *string `json:"nextLink,omitempty"` 12989} 12990 12991// RouteFilterListResultIterator provides access to a complete listing of RouteFilter values. 12992type RouteFilterListResultIterator struct { 12993 i int 12994 page RouteFilterListResultPage 12995} 12996 12997// NextWithContext advances to the next value. If there was an error making 12998// the request the iterator does not advance and the error is returned. 12999func (iter *RouteFilterListResultIterator) NextWithContext(ctx context.Context) (err error) { 13000 if tracing.IsEnabled() { 13001 ctx = tracing.StartSpan(ctx, fqdn+"/RouteFilterListResultIterator.NextWithContext") 13002 defer func() { 13003 sc := -1 13004 if iter.Response().Response.Response != nil { 13005 sc = iter.Response().Response.Response.StatusCode 13006 } 13007 tracing.EndSpan(ctx, sc, err) 13008 }() 13009 } 13010 iter.i++ 13011 if iter.i < len(iter.page.Values()) { 13012 return nil 13013 } 13014 err = iter.page.NextWithContext(ctx) 13015 if err != nil { 13016 iter.i-- 13017 return err 13018 } 13019 iter.i = 0 13020 return nil 13021} 13022 13023// Next advances to the next value. If there was an error making 13024// the request the iterator does not advance and the error is returned. 13025// Deprecated: Use NextWithContext() instead. 13026func (iter *RouteFilterListResultIterator) Next() error { 13027 return iter.NextWithContext(context.Background()) 13028} 13029 13030// NotDone returns true if the enumeration should be started or is not yet complete. 13031func (iter RouteFilterListResultIterator) NotDone() bool { 13032 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 13033} 13034 13035// Response returns the raw server response from the last page request. 13036func (iter RouteFilterListResultIterator) Response() RouteFilterListResult { 13037 return iter.page.Response() 13038} 13039 13040// Value returns the current value or a zero-initialized value if the 13041// iterator has advanced beyond the end of the collection. 13042func (iter RouteFilterListResultIterator) Value() RouteFilter { 13043 if !iter.page.NotDone() { 13044 return RouteFilter{} 13045 } 13046 return iter.page.Values()[iter.i] 13047} 13048 13049// Creates a new instance of the RouteFilterListResultIterator type. 13050func NewRouteFilterListResultIterator(page RouteFilterListResultPage) RouteFilterListResultIterator { 13051 return RouteFilterListResultIterator{page: page} 13052} 13053 13054// IsEmpty returns true if the ListResult contains no values. 13055func (rflr RouteFilterListResult) IsEmpty() bool { 13056 return rflr.Value == nil || len(*rflr.Value) == 0 13057} 13058 13059// routeFilterListResultPreparer prepares a request to retrieve the next set of results. 13060// It returns nil if no more results exist. 13061func (rflr RouteFilterListResult) routeFilterListResultPreparer(ctx context.Context) (*http.Request, error) { 13062 if rflr.NextLink == nil || len(to.String(rflr.NextLink)) < 1 { 13063 return nil, nil 13064 } 13065 return autorest.Prepare((&http.Request{}).WithContext(ctx), 13066 autorest.AsJSON(), 13067 autorest.AsGet(), 13068 autorest.WithBaseURL(to.String(rflr.NextLink))) 13069} 13070 13071// RouteFilterListResultPage contains a page of RouteFilter values. 13072type RouteFilterListResultPage struct { 13073 fn func(context.Context, RouteFilterListResult) (RouteFilterListResult, error) 13074 rflr RouteFilterListResult 13075} 13076 13077// NextWithContext advances to the next page of values. If there was an error making 13078// the request the page does not advance and the error is returned. 13079func (page *RouteFilterListResultPage) NextWithContext(ctx context.Context) (err error) { 13080 if tracing.IsEnabled() { 13081 ctx = tracing.StartSpan(ctx, fqdn+"/RouteFilterListResultPage.NextWithContext") 13082 defer func() { 13083 sc := -1 13084 if page.Response().Response.Response != nil { 13085 sc = page.Response().Response.Response.StatusCode 13086 } 13087 tracing.EndSpan(ctx, sc, err) 13088 }() 13089 } 13090 next, err := page.fn(ctx, page.rflr) 13091 if err != nil { 13092 return err 13093 } 13094 page.rflr = next 13095 return nil 13096} 13097 13098// Next advances to the next page of values. If there was an error making 13099// the request the page does not advance and the error is returned. 13100// Deprecated: Use NextWithContext() instead. 13101func (page *RouteFilterListResultPage) Next() error { 13102 return page.NextWithContext(context.Background()) 13103} 13104 13105// NotDone returns true if the page enumeration should be started or is not yet complete. 13106func (page RouteFilterListResultPage) NotDone() bool { 13107 return !page.rflr.IsEmpty() 13108} 13109 13110// Response returns the raw server response from the last page request. 13111func (page RouteFilterListResultPage) Response() RouteFilterListResult { 13112 return page.rflr 13113} 13114 13115// Values returns the slice of values for the current page or nil if there are no values. 13116func (page RouteFilterListResultPage) Values() []RouteFilter { 13117 if page.rflr.IsEmpty() { 13118 return nil 13119 } 13120 return *page.rflr.Value 13121} 13122 13123// Creates a new instance of the RouteFilterListResultPage type. 13124func NewRouteFilterListResultPage(getNextPage func(context.Context, RouteFilterListResult) (RouteFilterListResult, error)) RouteFilterListResultPage { 13125 return RouteFilterListResultPage{fn: getNextPage} 13126} 13127 13128// RouteFilterPropertiesFormat route Filter Resource 13129type RouteFilterPropertiesFormat struct { 13130 // Rules - Collection of RouteFilterRules contained within a route filter. 13131 Rules *[]RouteFilterRule `json:"rules,omitempty"` 13132 // Peerings - A collection of references to express route circuit peerings. 13133 Peerings *[]ExpressRouteCircuitPeering `json:"peerings,omitempty"` 13134 // ProvisioningState - READ-ONLY; The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', 'Succeeded' and 'Failed'. 13135 ProvisioningState *string `json:"provisioningState,omitempty"` 13136} 13137 13138// RouteFilterRule route Filter Rule Resource 13139type RouteFilterRule struct { 13140 autorest.Response `json:"-"` 13141 *RouteFilterRulePropertiesFormat `json:"properties,omitempty"` 13142 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 13143 Name *string `json:"name,omitempty"` 13144 // Location - Resource location. 13145 Location *string `json:"location,omitempty"` 13146 // Etag - READ-ONLY; A unique read-only string that changes whenever the resource is updated. 13147 Etag *string `json:"etag,omitempty"` 13148 // ID - Resource ID. 13149 ID *string `json:"id,omitempty"` 13150} 13151 13152// MarshalJSON is the custom marshaler for RouteFilterRule. 13153func (rfr RouteFilterRule) MarshalJSON() ([]byte, error) { 13154 objectMap := make(map[string]interface{}) 13155 if rfr.RouteFilterRulePropertiesFormat != nil { 13156 objectMap["properties"] = rfr.RouteFilterRulePropertiesFormat 13157 } 13158 if rfr.Name != nil { 13159 objectMap["name"] = rfr.Name 13160 } 13161 if rfr.Location != nil { 13162 objectMap["location"] = rfr.Location 13163 } 13164 if rfr.ID != nil { 13165 objectMap["id"] = rfr.ID 13166 } 13167 return json.Marshal(objectMap) 13168} 13169 13170// UnmarshalJSON is the custom unmarshaler for RouteFilterRule struct. 13171func (rfr *RouteFilterRule) UnmarshalJSON(body []byte) error { 13172 var m map[string]*json.RawMessage 13173 err := json.Unmarshal(body, &m) 13174 if err != nil { 13175 return err 13176 } 13177 for k, v := range m { 13178 switch k { 13179 case "properties": 13180 if v != nil { 13181 var routeFilterRulePropertiesFormat RouteFilterRulePropertiesFormat 13182 err = json.Unmarshal(*v, &routeFilterRulePropertiesFormat) 13183 if err != nil { 13184 return err 13185 } 13186 rfr.RouteFilterRulePropertiesFormat = &routeFilterRulePropertiesFormat 13187 } 13188 case "name": 13189 if v != nil { 13190 var name string 13191 err = json.Unmarshal(*v, &name) 13192 if err != nil { 13193 return err 13194 } 13195 rfr.Name = &name 13196 } 13197 case "location": 13198 if v != nil { 13199 var location string 13200 err = json.Unmarshal(*v, &location) 13201 if err != nil { 13202 return err 13203 } 13204 rfr.Location = &location 13205 } 13206 case "etag": 13207 if v != nil { 13208 var etag string 13209 err = json.Unmarshal(*v, &etag) 13210 if err != nil { 13211 return err 13212 } 13213 rfr.Etag = &etag 13214 } 13215 case "id": 13216 if v != nil { 13217 var ID string 13218 err = json.Unmarshal(*v, &ID) 13219 if err != nil { 13220 return err 13221 } 13222 rfr.ID = &ID 13223 } 13224 } 13225 } 13226 13227 return nil 13228} 13229 13230// RouteFilterRuleListResult response for the ListRouteFilterRules API service call 13231type RouteFilterRuleListResult struct { 13232 autorest.Response `json:"-"` 13233 // Value - Gets a list of RouteFilterRules in a resource group. 13234 Value *[]RouteFilterRule `json:"value,omitempty"` 13235 // NextLink - The URL to get the next set of results. 13236 NextLink *string `json:"nextLink,omitempty"` 13237} 13238 13239// RouteFilterRuleListResultIterator provides access to a complete listing of RouteFilterRule values. 13240type RouteFilterRuleListResultIterator struct { 13241 i int 13242 page RouteFilterRuleListResultPage 13243} 13244 13245// NextWithContext advances to the next value. If there was an error making 13246// the request the iterator does not advance and the error is returned. 13247func (iter *RouteFilterRuleListResultIterator) NextWithContext(ctx context.Context) (err error) { 13248 if tracing.IsEnabled() { 13249 ctx = tracing.StartSpan(ctx, fqdn+"/RouteFilterRuleListResultIterator.NextWithContext") 13250 defer func() { 13251 sc := -1 13252 if iter.Response().Response.Response != nil { 13253 sc = iter.Response().Response.Response.StatusCode 13254 } 13255 tracing.EndSpan(ctx, sc, err) 13256 }() 13257 } 13258 iter.i++ 13259 if iter.i < len(iter.page.Values()) { 13260 return nil 13261 } 13262 err = iter.page.NextWithContext(ctx) 13263 if err != nil { 13264 iter.i-- 13265 return err 13266 } 13267 iter.i = 0 13268 return nil 13269} 13270 13271// Next advances to the next value. If there was an error making 13272// the request the iterator does not advance and the error is returned. 13273// Deprecated: Use NextWithContext() instead. 13274func (iter *RouteFilterRuleListResultIterator) Next() error { 13275 return iter.NextWithContext(context.Background()) 13276} 13277 13278// NotDone returns true if the enumeration should be started or is not yet complete. 13279func (iter RouteFilterRuleListResultIterator) NotDone() bool { 13280 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 13281} 13282 13283// Response returns the raw server response from the last page request. 13284func (iter RouteFilterRuleListResultIterator) Response() RouteFilterRuleListResult { 13285 return iter.page.Response() 13286} 13287 13288// Value returns the current value or a zero-initialized value if the 13289// iterator has advanced beyond the end of the collection. 13290func (iter RouteFilterRuleListResultIterator) Value() RouteFilterRule { 13291 if !iter.page.NotDone() { 13292 return RouteFilterRule{} 13293 } 13294 return iter.page.Values()[iter.i] 13295} 13296 13297// Creates a new instance of the RouteFilterRuleListResultIterator type. 13298func NewRouteFilterRuleListResultIterator(page RouteFilterRuleListResultPage) RouteFilterRuleListResultIterator { 13299 return RouteFilterRuleListResultIterator{page: page} 13300} 13301 13302// IsEmpty returns true if the ListResult contains no values. 13303func (rfrlr RouteFilterRuleListResult) IsEmpty() bool { 13304 return rfrlr.Value == nil || len(*rfrlr.Value) == 0 13305} 13306 13307// routeFilterRuleListResultPreparer prepares a request to retrieve the next set of results. 13308// It returns nil if no more results exist. 13309func (rfrlr RouteFilterRuleListResult) routeFilterRuleListResultPreparer(ctx context.Context) (*http.Request, error) { 13310 if rfrlr.NextLink == nil || len(to.String(rfrlr.NextLink)) < 1 { 13311 return nil, nil 13312 } 13313 return autorest.Prepare((&http.Request{}).WithContext(ctx), 13314 autorest.AsJSON(), 13315 autorest.AsGet(), 13316 autorest.WithBaseURL(to.String(rfrlr.NextLink))) 13317} 13318 13319// RouteFilterRuleListResultPage contains a page of RouteFilterRule values. 13320type RouteFilterRuleListResultPage struct { 13321 fn func(context.Context, RouteFilterRuleListResult) (RouteFilterRuleListResult, error) 13322 rfrlr RouteFilterRuleListResult 13323} 13324 13325// NextWithContext advances to the next page of values. If there was an error making 13326// the request the page does not advance and the error is returned. 13327func (page *RouteFilterRuleListResultPage) NextWithContext(ctx context.Context) (err error) { 13328 if tracing.IsEnabled() { 13329 ctx = tracing.StartSpan(ctx, fqdn+"/RouteFilterRuleListResultPage.NextWithContext") 13330 defer func() { 13331 sc := -1 13332 if page.Response().Response.Response != nil { 13333 sc = page.Response().Response.Response.StatusCode 13334 } 13335 tracing.EndSpan(ctx, sc, err) 13336 }() 13337 } 13338 next, err := page.fn(ctx, page.rfrlr) 13339 if err != nil { 13340 return err 13341 } 13342 page.rfrlr = next 13343 return nil 13344} 13345 13346// Next advances to the next page of values. If there was an error making 13347// the request the page does not advance and the error is returned. 13348// Deprecated: Use NextWithContext() instead. 13349func (page *RouteFilterRuleListResultPage) Next() error { 13350 return page.NextWithContext(context.Background()) 13351} 13352 13353// NotDone returns true if the page enumeration should be started or is not yet complete. 13354func (page RouteFilterRuleListResultPage) NotDone() bool { 13355 return !page.rfrlr.IsEmpty() 13356} 13357 13358// Response returns the raw server response from the last page request. 13359func (page RouteFilterRuleListResultPage) Response() RouteFilterRuleListResult { 13360 return page.rfrlr 13361} 13362 13363// Values returns the slice of values for the current page or nil if there are no values. 13364func (page RouteFilterRuleListResultPage) Values() []RouteFilterRule { 13365 if page.rfrlr.IsEmpty() { 13366 return nil 13367 } 13368 return *page.rfrlr.Value 13369} 13370 13371// Creates a new instance of the RouteFilterRuleListResultPage type. 13372func NewRouteFilterRuleListResultPage(getNextPage func(context.Context, RouteFilterRuleListResult) (RouteFilterRuleListResult, error)) RouteFilterRuleListResultPage { 13373 return RouteFilterRuleListResultPage{fn: getNextPage} 13374} 13375 13376// RouteFilterRulePropertiesFormat route Filter Rule Resource 13377type RouteFilterRulePropertiesFormat struct { 13378 // Access - The access type of the rule. Valid values are: 'Allow', 'Deny'. Possible values include: 'Allow', 'Deny' 13379 Access Access `json:"access,omitempty"` 13380 // RouteFilterRuleType - The rule type of the rule. Valid value is: 'Community' 13381 RouteFilterRuleType *string `json:"routeFilterRuleType,omitempty"` 13382 // Communities - The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020'] 13383 Communities *[]string `json:"communities,omitempty"` 13384 // ProvisioningState - READ-ONLY; The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', 'Succeeded' and 'Failed'. 13385 ProvisioningState *string `json:"provisioningState,omitempty"` 13386} 13387 13388// RouteFilterRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 13389// long-running operation. 13390type RouteFilterRulesCreateOrUpdateFuture struct { 13391 azure.Future 13392} 13393 13394// Result returns the result of the asynchronous operation. 13395// If the operation has not completed it will return an error. 13396func (future *RouteFilterRulesCreateOrUpdateFuture) Result(client RouteFilterRulesClient) (rfr RouteFilterRule, err error) { 13397 var done bool 13398 done, err = future.DoneWithContext(context.Background(), client) 13399 if err != nil { 13400 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 13401 return 13402 } 13403 if !done { 13404 err = azure.NewAsyncOpIncompleteError("network.RouteFilterRulesCreateOrUpdateFuture") 13405 return 13406 } 13407 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13408 if rfr.Response.Response, err = future.GetResult(sender); err == nil && rfr.Response.Response.StatusCode != http.StatusNoContent { 13409 rfr, err = client.CreateOrUpdateResponder(rfr.Response.Response) 13410 if err != nil { 13411 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesCreateOrUpdateFuture", "Result", rfr.Response.Response, "Failure responding to request") 13412 } 13413 } 13414 return 13415} 13416 13417// RouteFilterRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 13418// operation. 13419type RouteFilterRulesDeleteFuture struct { 13420 azure.Future 13421} 13422 13423// Result returns the result of the asynchronous operation. 13424// If the operation has not completed it will return an error. 13425func (future *RouteFilterRulesDeleteFuture) Result(client RouteFilterRulesClient) (ar autorest.Response, err error) { 13426 var done bool 13427 done, err = future.DoneWithContext(context.Background(), client) 13428 if err != nil { 13429 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesDeleteFuture", "Result", future.Response(), "Polling failure") 13430 return 13431 } 13432 if !done { 13433 err = azure.NewAsyncOpIncompleteError("network.RouteFilterRulesDeleteFuture") 13434 return 13435 } 13436 ar.Response = future.Response() 13437 return 13438} 13439 13440// RouteFilterRulesUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 13441// operation. 13442type RouteFilterRulesUpdateFuture struct { 13443 azure.Future 13444} 13445 13446// Result returns the result of the asynchronous operation. 13447// If the operation has not completed it will return an error. 13448func (future *RouteFilterRulesUpdateFuture) Result(client RouteFilterRulesClient) (rfr RouteFilterRule, err error) { 13449 var done bool 13450 done, err = future.DoneWithContext(context.Background(), client) 13451 if err != nil { 13452 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesUpdateFuture", "Result", future.Response(), "Polling failure") 13453 return 13454 } 13455 if !done { 13456 err = azure.NewAsyncOpIncompleteError("network.RouteFilterRulesUpdateFuture") 13457 return 13458 } 13459 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13460 if rfr.Response.Response, err = future.GetResult(sender); err == nil && rfr.Response.Response.StatusCode != http.StatusNoContent { 13461 rfr, err = client.UpdateResponder(rfr.Response.Response) 13462 if err != nil { 13463 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesUpdateFuture", "Result", rfr.Response.Response, "Failure responding to request") 13464 } 13465 } 13466 return 13467} 13468 13469// RouteFiltersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 13470// long-running operation. 13471type RouteFiltersCreateOrUpdateFuture struct { 13472 azure.Future 13473} 13474 13475// Result returns the result of the asynchronous operation. 13476// If the operation has not completed it will return an error. 13477func (future *RouteFiltersCreateOrUpdateFuture) Result(client RouteFiltersClient) (rf RouteFilter, err error) { 13478 var done bool 13479 done, err = future.DoneWithContext(context.Background(), client) 13480 if err != nil { 13481 err = autorest.NewErrorWithError(err, "network.RouteFiltersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 13482 return 13483 } 13484 if !done { 13485 err = azure.NewAsyncOpIncompleteError("network.RouteFiltersCreateOrUpdateFuture") 13486 return 13487 } 13488 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13489 if rf.Response.Response, err = future.GetResult(sender); err == nil && rf.Response.Response.StatusCode != http.StatusNoContent { 13490 rf, err = client.CreateOrUpdateResponder(rf.Response.Response) 13491 if err != nil { 13492 err = autorest.NewErrorWithError(err, "network.RouteFiltersCreateOrUpdateFuture", "Result", rf.Response.Response, "Failure responding to request") 13493 } 13494 } 13495 return 13496} 13497 13498// RouteFiltersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 13499// operation. 13500type RouteFiltersDeleteFuture struct { 13501 azure.Future 13502} 13503 13504// Result returns the result of the asynchronous operation. 13505// If the operation has not completed it will return an error. 13506func (future *RouteFiltersDeleteFuture) Result(client RouteFiltersClient) (ar autorest.Response, err error) { 13507 var done bool 13508 done, err = future.DoneWithContext(context.Background(), client) 13509 if err != nil { 13510 err = autorest.NewErrorWithError(err, "network.RouteFiltersDeleteFuture", "Result", future.Response(), "Polling failure") 13511 return 13512 } 13513 if !done { 13514 err = azure.NewAsyncOpIncompleteError("network.RouteFiltersDeleteFuture") 13515 return 13516 } 13517 ar.Response = future.Response() 13518 return 13519} 13520 13521// RouteFiltersUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 13522// operation. 13523type RouteFiltersUpdateFuture struct { 13524 azure.Future 13525} 13526 13527// Result returns the result of the asynchronous operation. 13528// If the operation has not completed it will return an error. 13529func (future *RouteFiltersUpdateFuture) Result(client RouteFiltersClient) (rf RouteFilter, err error) { 13530 var done bool 13531 done, err = future.DoneWithContext(context.Background(), client) 13532 if err != nil { 13533 err = autorest.NewErrorWithError(err, "network.RouteFiltersUpdateFuture", "Result", future.Response(), "Polling failure") 13534 return 13535 } 13536 if !done { 13537 err = azure.NewAsyncOpIncompleteError("network.RouteFiltersUpdateFuture") 13538 return 13539 } 13540 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13541 if rf.Response.Response, err = future.GetResult(sender); err == nil && rf.Response.Response.StatusCode != http.StatusNoContent { 13542 rf, err = client.UpdateResponder(rf.Response.Response) 13543 if err != nil { 13544 err = autorest.NewErrorWithError(err, "network.RouteFiltersUpdateFuture", "Result", rf.Response.Response, "Failure responding to request") 13545 } 13546 } 13547 return 13548} 13549 13550// RouteListResult response for the ListRoute API service call 13551type RouteListResult struct { 13552 autorest.Response `json:"-"` 13553 // Value - Gets a list of routes in a resource group. 13554 Value *[]Route `json:"value,omitempty"` 13555 // NextLink - The URL to get the next set of results. 13556 NextLink *string `json:"nextLink,omitempty"` 13557} 13558 13559// RouteListResultIterator provides access to a complete listing of Route values. 13560type RouteListResultIterator struct { 13561 i int 13562 page RouteListResultPage 13563} 13564 13565// NextWithContext advances to the next value. If there was an error making 13566// the request the iterator does not advance and the error is returned. 13567func (iter *RouteListResultIterator) NextWithContext(ctx context.Context) (err error) { 13568 if tracing.IsEnabled() { 13569 ctx = tracing.StartSpan(ctx, fqdn+"/RouteListResultIterator.NextWithContext") 13570 defer func() { 13571 sc := -1 13572 if iter.Response().Response.Response != nil { 13573 sc = iter.Response().Response.Response.StatusCode 13574 } 13575 tracing.EndSpan(ctx, sc, err) 13576 }() 13577 } 13578 iter.i++ 13579 if iter.i < len(iter.page.Values()) { 13580 return nil 13581 } 13582 err = iter.page.NextWithContext(ctx) 13583 if err != nil { 13584 iter.i-- 13585 return err 13586 } 13587 iter.i = 0 13588 return nil 13589} 13590 13591// Next advances to the next value. If there was an error making 13592// the request the iterator does not advance and the error is returned. 13593// Deprecated: Use NextWithContext() instead. 13594func (iter *RouteListResultIterator) Next() error { 13595 return iter.NextWithContext(context.Background()) 13596} 13597 13598// NotDone returns true if the enumeration should be started or is not yet complete. 13599func (iter RouteListResultIterator) NotDone() bool { 13600 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 13601} 13602 13603// Response returns the raw server response from the last page request. 13604func (iter RouteListResultIterator) Response() RouteListResult { 13605 return iter.page.Response() 13606} 13607 13608// Value returns the current value or a zero-initialized value if the 13609// iterator has advanced beyond the end of the collection. 13610func (iter RouteListResultIterator) Value() Route { 13611 if !iter.page.NotDone() { 13612 return Route{} 13613 } 13614 return iter.page.Values()[iter.i] 13615} 13616 13617// Creates a new instance of the RouteListResultIterator type. 13618func NewRouteListResultIterator(page RouteListResultPage) RouteListResultIterator { 13619 return RouteListResultIterator{page: page} 13620} 13621 13622// IsEmpty returns true if the ListResult contains no values. 13623func (rlr RouteListResult) IsEmpty() bool { 13624 return rlr.Value == nil || len(*rlr.Value) == 0 13625} 13626 13627// routeListResultPreparer prepares a request to retrieve the next set of results. 13628// It returns nil if no more results exist. 13629func (rlr RouteListResult) routeListResultPreparer(ctx context.Context) (*http.Request, error) { 13630 if rlr.NextLink == nil || len(to.String(rlr.NextLink)) < 1 { 13631 return nil, nil 13632 } 13633 return autorest.Prepare((&http.Request{}).WithContext(ctx), 13634 autorest.AsJSON(), 13635 autorest.AsGet(), 13636 autorest.WithBaseURL(to.String(rlr.NextLink))) 13637} 13638 13639// RouteListResultPage contains a page of Route values. 13640type RouteListResultPage struct { 13641 fn func(context.Context, RouteListResult) (RouteListResult, error) 13642 rlr RouteListResult 13643} 13644 13645// NextWithContext advances to the next page of values. If there was an error making 13646// the request the page does not advance and the error is returned. 13647func (page *RouteListResultPage) NextWithContext(ctx context.Context) (err error) { 13648 if tracing.IsEnabled() { 13649 ctx = tracing.StartSpan(ctx, fqdn+"/RouteListResultPage.NextWithContext") 13650 defer func() { 13651 sc := -1 13652 if page.Response().Response.Response != nil { 13653 sc = page.Response().Response.Response.StatusCode 13654 } 13655 tracing.EndSpan(ctx, sc, err) 13656 }() 13657 } 13658 next, err := page.fn(ctx, page.rlr) 13659 if err != nil { 13660 return err 13661 } 13662 page.rlr = next 13663 return nil 13664} 13665 13666// Next advances to the next page of values. If there was an error making 13667// the request the page does not advance and the error is returned. 13668// Deprecated: Use NextWithContext() instead. 13669func (page *RouteListResultPage) Next() error { 13670 return page.NextWithContext(context.Background()) 13671} 13672 13673// NotDone returns true if the page enumeration should be started or is not yet complete. 13674func (page RouteListResultPage) NotDone() bool { 13675 return !page.rlr.IsEmpty() 13676} 13677 13678// Response returns the raw server response from the last page request. 13679func (page RouteListResultPage) Response() RouteListResult { 13680 return page.rlr 13681} 13682 13683// Values returns the slice of values for the current page or nil if there are no values. 13684func (page RouteListResultPage) Values() []Route { 13685 if page.rlr.IsEmpty() { 13686 return nil 13687 } 13688 return *page.rlr.Value 13689} 13690 13691// Creates a new instance of the RouteListResultPage type. 13692func NewRouteListResultPage(getNextPage func(context.Context, RouteListResult) (RouteListResult, error)) RouteListResultPage { 13693 return RouteListResultPage{fn: getNextPage} 13694} 13695 13696// RoutePropertiesFormat route resource 13697type RoutePropertiesFormat struct { 13698 // AddressPrefix - The destination CIDR to which the route applies. 13699 AddressPrefix *string `json:"addressPrefix,omitempty"` 13700 // NextHopType - The type of Azure hop the packet should be sent to. Possible values are: 'VirtualNetworkGateway', 'VnetLocal', 'Internet', 'VirtualAppliance', and 'None'. Possible values include: 'RouteNextHopTypeVirtualNetworkGateway', 'RouteNextHopTypeVnetLocal', 'RouteNextHopTypeInternet', 'RouteNextHopTypeVirtualAppliance', 'RouteNextHopTypeNone' 13701 NextHopType RouteNextHopType `json:"nextHopType,omitempty"` 13702 // NextHopIPAddress - The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. 13703 NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"` 13704 // ProvisioningState - The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 13705 ProvisioningState *string `json:"provisioningState,omitempty"` 13706} 13707 13708// RoutesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 13709// operation. 13710type RoutesCreateOrUpdateFuture struct { 13711 azure.Future 13712} 13713 13714// Result returns the result of the asynchronous operation. 13715// If the operation has not completed it will return an error. 13716func (future *RoutesCreateOrUpdateFuture) Result(client RoutesClient) (r Route, err error) { 13717 var done bool 13718 done, err = future.DoneWithContext(context.Background(), client) 13719 if err != nil { 13720 err = autorest.NewErrorWithError(err, "network.RoutesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 13721 return 13722 } 13723 if !done { 13724 err = azure.NewAsyncOpIncompleteError("network.RoutesCreateOrUpdateFuture") 13725 return 13726 } 13727 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13728 if r.Response.Response, err = future.GetResult(sender); err == nil && r.Response.Response.StatusCode != http.StatusNoContent { 13729 r, err = client.CreateOrUpdateResponder(r.Response.Response) 13730 if err != nil { 13731 err = autorest.NewErrorWithError(err, "network.RoutesCreateOrUpdateFuture", "Result", r.Response.Response, "Failure responding to request") 13732 } 13733 } 13734 return 13735} 13736 13737// RoutesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 13738type RoutesDeleteFuture struct { 13739 azure.Future 13740} 13741 13742// Result returns the result of the asynchronous operation. 13743// If the operation has not completed it will return an error. 13744func (future *RoutesDeleteFuture) Result(client RoutesClient) (ar autorest.Response, err error) { 13745 var done bool 13746 done, err = future.DoneWithContext(context.Background(), client) 13747 if err != nil { 13748 err = autorest.NewErrorWithError(err, "network.RoutesDeleteFuture", "Result", future.Response(), "Polling failure") 13749 return 13750 } 13751 if !done { 13752 err = azure.NewAsyncOpIncompleteError("network.RoutesDeleteFuture") 13753 return 13754 } 13755 ar.Response = future.Response() 13756 return 13757} 13758 13759// RouteTable route table resource. 13760type RouteTable struct { 13761 autorest.Response `json:"-"` 13762 // RouteTablePropertiesFormat - Properties of the route table. 13763 *RouteTablePropertiesFormat `json:"properties,omitempty"` 13764 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 13765 Etag *string `json:"etag,omitempty"` 13766 // ID - Resource ID. 13767 ID *string `json:"id,omitempty"` 13768 // Name - READ-ONLY; Resource name. 13769 Name *string `json:"name,omitempty"` 13770 // Type - READ-ONLY; Resource type. 13771 Type *string `json:"type,omitempty"` 13772 // Location - Resource location. 13773 Location *string `json:"location,omitempty"` 13774 // Tags - Resource tags. 13775 Tags map[string]*string `json:"tags"` 13776} 13777 13778// MarshalJSON is the custom marshaler for RouteTable. 13779func (rt RouteTable) MarshalJSON() ([]byte, error) { 13780 objectMap := make(map[string]interface{}) 13781 if rt.RouteTablePropertiesFormat != nil { 13782 objectMap["properties"] = rt.RouteTablePropertiesFormat 13783 } 13784 if rt.Etag != nil { 13785 objectMap["etag"] = rt.Etag 13786 } 13787 if rt.ID != nil { 13788 objectMap["id"] = rt.ID 13789 } 13790 if rt.Location != nil { 13791 objectMap["location"] = rt.Location 13792 } 13793 if rt.Tags != nil { 13794 objectMap["tags"] = rt.Tags 13795 } 13796 return json.Marshal(objectMap) 13797} 13798 13799// UnmarshalJSON is the custom unmarshaler for RouteTable struct. 13800func (rt *RouteTable) UnmarshalJSON(body []byte) error { 13801 var m map[string]*json.RawMessage 13802 err := json.Unmarshal(body, &m) 13803 if err != nil { 13804 return err 13805 } 13806 for k, v := range m { 13807 switch k { 13808 case "properties": 13809 if v != nil { 13810 var routeTablePropertiesFormat RouteTablePropertiesFormat 13811 err = json.Unmarshal(*v, &routeTablePropertiesFormat) 13812 if err != nil { 13813 return err 13814 } 13815 rt.RouteTablePropertiesFormat = &routeTablePropertiesFormat 13816 } 13817 case "etag": 13818 if v != nil { 13819 var etag string 13820 err = json.Unmarshal(*v, &etag) 13821 if err != nil { 13822 return err 13823 } 13824 rt.Etag = &etag 13825 } 13826 case "id": 13827 if v != nil { 13828 var ID string 13829 err = json.Unmarshal(*v, &ID) 13830 if err != nil { 13831 return err 13832 } 13833 rt.ID = &ID 13834 } 13835 case "name": 13836 if v != nil { 13837 var name string 13838 err = json.Unmarshal(*v, &name) 13839 if err != nil { 13840 return err 13841 } 13842 rt.Name = &name 13843 } 13844 case "type": 13845 if v != nil { 13846 var typeVar string 13847 err = json.Unmarshal(*v, &typeVar) 13848 if err != nil { 13849 return err 13850 } 13851 rt.Type = &typeVar 13852 } 13853 case "location": 13854 if v != nil { 13855 var location string 13856 err = json.Unmarshal(*v, &location) 13857 if err != nil { 13858 return err 13859 } 13860 rt.Location = &location 13861 } 13862 case "tags": 13863 if v != nil { 13864 var tags map[string]*string 13865 err = json.Unmarshal(*v, &tags) 13866 if err != nil { 13867 return err 13868 } 13869 rt.Tags = tags 13870 } 13871 } 13872 } 13873 13874 return nil 13875} 13876 13877// RouteTableListResult response for the ListRouteTable API service call. 13878type RouteTableListResult struct { 13879 autorest.Response `json:"-"` 13880 // Value - Gets a list of route tables in a resource group. 13881 Value *[]RouteTable `json:"value,omitempty"` 13882 // NextLink - The URL to get the next set of results. 13883 NextLink *string `json:"nextLink,omitempty"` 13884} 13885 13886// RouteTableListResultIterator provides access to a complete listing of RouteTable values. 13887type RouteTableListResultIterator struct { 13888 i int 13889 page RouteTableListResultPage 13890} 13891 13892// NextWithContext advances to the next value. If there was an error making 13893// the request the iterator does not advance and the error is returned. 13894func (iter *RouteTableListResultIterator) NextWithContext(ctx context.Context) (err error) { 13895 if tracing.IsEnabled() { 13896 ctx = tracing.StartSpan(ctx, fqdn+"/RouteTableListResultIterator.NextWithContext") 13897 defer func() { 13898 sc := -1 13899 if iter.Response().Response.Response != nil { 13900 sc = iter.Response().Response.Response.StatusCode 13901 } 13902 tracing.EndSpan(ctx, sc, err) 13903 }() 13904 } 13905 iter.i++ 13906 if iter.i < len(iter.page.Values()) { 13907 return nil 13908 } 13909 err = iter.page.NextWithContext(ctx) 13910 if err != nil { 13911 iter.i-- 13912 return err 13913 } 13914 iter.i = 0 13915 return nil 13916} 13917 13918// Next advances to the next value. If there was an error making 13919// the request the iterator does not advance and the error is returned. 13920// Deprecated: Use NextWithContext() instead. 13921func (iter *RouteTableListResultIterator) Next() error { 13922 return iter.NextWithContext(context.Background()) 13923} 13924 13925// NotDone returns true if the enumeration should be started or is not yet complete. 13926func (iter RouteTableListResultIterator) NotDone() bool { 13927 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 13928} 13929 13930// Response returns the raw server response from the last page request. 13931func (iter RouteTableListResultIterator) Response() RouteTableListResult { 13932 return iter.page.Response() 13933} 13934 13935// Value returns the current value or a zero-initialized value if the 13936// iterator has advanced beyond the end of the collection. 13937func (iter RouteTableListResultIterator) Value() RouteTable { 13938 if !iter.page.NotDone() { 13939 return RouteTable{} 13940 } 13941 return iter.page.Values()[iter.i] 13942} 13943 13944// Creates a new instance of the RouteTableListResultIterator type. 13945func NewRouteTableListResultIterator(page RouteTableListResultPage) RouteTableListResultIterator { 13946 return RouteTableListResultIterator{page: page} 13947} 13948 13949// IsEmpty returns true if the ListResult contains no values. 13950func (rtlr RouteTableListResult) IsEmpty() bool { 13951 return rtlr.Value == nil || len(*rtlr.Value) == 0 13952} 13953 13954// routeTableListResultPreparer prepares a request to retrieve the next set of results. 13955// It returns nil if no more results exist. 13956func (rtlr RouteTableListResult) routeTableListResultPreparer(ctx context.Context) (*http.Request, error) { 13957 if rtlr.NextLink == nil || len(to.String(rtlr.NextLink)) < 1 { 13958 return nil, nil 13959 } 13960 return autorest.Prepare((&http.Request{}).WithContext(ctx), 13961 autorest.AsJSON(), 13962 autorest.AsGet(), 13963 autorest.WithBaseURL(to.String(rtlr.NextLink))) 13964} 13965 13966// RouteTableListResultPage contains a page of RouteTable values. 13967type RouteTableListResultPage struct { 13968 fn func(context.Context, RouteTableListResult) (RouteTableListResult, error) 13969 rtlr RouteTableListResult 13970} 13971 13972// NextWithContext advances to the next page of values. If there was an error making 13973// the request the page does not advance and the error is returned. 13974func (page *RouteTableListResultPage) NextWithContext(ctx context.Context) (err error) { 13975 if tracing.IsEnabled() { 13976 ctx = tracing.StartSpan(ctx, fqdn+"/RouteTableListResultPage.NextWithContext") 13977 defer func() { 13978 sc := -1 13979 if page.Response().Response.Response != nil { 13980 sc = page.Response().Response.Response.StatusCode 13981 } 13982 tracing.EndSpan(ctx, sc, err) 13983 }() 13984 } 13985 next, err := page.fn(ctx, page.rtlr) 13986 if err != nil { 13987 return err 13988 } 13989 page.rtlr = next 13990 return nil 13991} 13992 13993// Next advances to the next page of values. If there was an error making 13994// the request the page does not advance and the error is returned. 13995// Deprecated: Use NextWithContext() instead. 13996func (page *RouteTableListResultPage) Next() error { 13997 return page.NextWithContext(context.Background()) 13998} 13999 14000// NotDone returns true if the page enumeration should be started or is not yet complete. 14001func (page RouteTableListResultPage) NotDone() bool { 14002 return !page.rtlr.IsEmpty() 14003} 14004 14005// Response returns the raw server response from the last page request. 14006func (page RouteTableListResultPage) Response() RouteTableListResult { 14007 return page.rtlr 14008} 14009 14010// Values returns the slice of values for the current page or nil if there are no values. 14011func (page RouteTableListResultPage) Values() []RouteTable { 14012 if page.rtlr.IsEmpty() { 14013 return nil 14014 } 14015 return *page.rtlr.Value 14016} 14017 14018// Creates a new instance of the RouteTableListResultPage type. 14019func NewRouteTableListResultPage(getNextPage func(context.Context, RouteTableListResult) (RouteTableListResult, error)) RouteTableListResultPage { 14020 return RouteTableListResultPage{fn: getNextPage} 14021} 14022 14023// RouteTablePropertiesFormat route Table resource 14024type RouteTablePropertiesFormat struct { 14025 // Routes - Collection of routes contained within a route table. 14026 Routes *[]Route `json:"routes,omitempty"` 14027 // Subnets - READ-ONLY; A collection of references to subnets. 14028 Subnets *[]Subnet `json:"subnets,omitempty"` 14029 // DisableBgpRoutePropagation - Gets or sets whether to disable the routes learned by BGP on that route table. True means disable. 14030 DisableBgpRoutePropagation *bool `json:"disableBgpRoutePropagation,omitempty"` 14031 // ProvisioningState - The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 14032 ProvisioningState *string `json:"provisioningState,omitempty"` 14033} 14034 14035// RouteTablesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 14036// long-running operation. 14037type RouteTablesCreateOrUpdateFuture struct { 14038 azure.Future 14039} 14040 14041// Result returns the result of the asynchronous operation. 14042// If the operation has not completed it will return an error. 14043func (future *RouteTablesCreateOrUpdateFuture) Result(client RouteTablesClient) (rt RouteTable, err error) { 14044 var done bool 14045 done, err = future.DoneWithContext(context.Background(), client) 14046 if err != nil { 14047 err = autorest.NewErrorWithError(err, "network.RouteTablesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 14048 return 14049 } 14050 if !done { 14051 err = azure.NewAsyncOpIncompleteError("network.RouteTablesCreateOrUpdateFuture") 14052 return 14053 } 14054 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14055 if rt.Response.Response, err = future.GetResult(sender); err == nil && rt.Response.Response.StatusCode != http.StatusNoContent { 14056 rt, err = client.CreateOrUpdateResponder(rt.Response.Response) 14057 if err != nil { 14058 err = autorest.NewErrorWithError(err, "network.RouteTablesCreateOrUpdateFuture", "Result", rt.Response.Response, "Failure responding to request") 14059 } 14060 } 14061 return 14062} 14063 14064// RouteTablesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 14065// operation. 14066type RouteTablesDeleteFuture struct { 14067 azure.Future 14068} 14069 14070// Result returns the result of the asynchronous operation. 14071// If the operation has not completed it will return an error. 14072func (future *RouteTablesDeleteFuture) Result(client RouteTablesClient) (ar autorest.Response, err error) { 14073 var done bool 14074 done, err = future.DoneWithContext(context.Background(), client) 14075 if err != nil { 14076 err = autorest.NewErrorWithError(err, "network.RouteTablesDeleteFuture", "Result", future.Response(), "Polling failure") 14077 return 14078 } 14079 if !done { 14080 err = azure.NewAsyncOpIncompleteError("network.RouteTablesDeleteFuture") 14081 return 14082 } 14083 ar.Response = future.Response() 14084 return 14085} 14086 14087// RouteTablesUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 14088// operation. 14089type RouteTablesUpdateTagsFuture struct { 14090 azure.Future 14091} 14092 14093// Result returns the result of the asynchronous operation. 14094// If the operation has not completed it will return an error. 14095func (future *RouteTablesUpdateTagsFuture) Result(client RouteTablesClient) (rt RouteTable, err error) { 14096 var done bool 14097 done, err = future.DoneWithContext(context.Background(), client) 14098 if err != nil { 14099 err = autorest.NewErrorWithError(err, "network.RouteTablesUpdateTagsFuture", "Result", future.Response(), "Polling failure") 14100 return 14101 } 14102 if !done { 14103 err = azure.NewAsyncOpIncompleteError("network.RouteTablesUpdateTagsFuture") 14104 return 14105 } 14106 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14107 if rt.Response.Response, err = future.GetResult(sender); err == nil && rt.Response.Response.StatusCode != http.StatusNoContent { 14108 rt, err = client.UpdateTagsResponder(rt.Response.Response) 14109 if err != nil { 14110 err = autorest.NewErrorWithError(err, "network.RouteTablesUpdateTagsFuture", "Result", rt.Response.Response, "Failure responding to request") 14111 } 14112 } 14113 return 14114} 14115 14116// SecurityGroup networkSecurityGroup resource. 14117type SecurityGroup struct { 14118 autorest.Response `json:"-"` 14119 // SecurityGroupPropertiesFormat - Properties of the network security group 14120 *SecurityGroupPropertiesFormat `json:"properties,omitempty"` 14121 // Etag - A unique read-only string that changes whenever the resource is updated. 14122 Etag *string `json:"etag,omitempty"` 14123 // ID - Resource ID. 14124 ID *string `json:"id,omitempty"` 14125 // Name - READ-ONLY; Resource name. 14126 Name *string `json:"name,omitempty"` 14127 // Type - READ-ONLY; Resource type. 14128 Type *string `json:"type,omitempty"` 14129 // Location - Resource location. 14130 Location *string `json:"location,omitempty"` 14131 // Tags - Resource tags. 14132 Tags map[string]*string `json:"tags"` 14133} 14134 14135// MarshalJSON is the custom marshaler for SecurityGroup. 14136func (sg SecurityGroup) MarshalJSON() ([]byte, error) { 14137 objectMap := make(map[string]interface{}) 14138 if sg.SecurityGroupPropertiesFormat != nil { 14139 objectMap["properties"] = sg.SecurityGroupPropertiesFormat 14140 } 14141 if sg.Etag != nil { 14142 objectMap["etag"] = sg.Etag 14143 } 14144 if sg.ID != nil { 14145 objectMap["id"] = sg.ID 14146 } 14147 if sg.Location != nil { 14148 objectMap["location"] = sg.Location 14149 } 14150 if sg.Tags != nil { 14151 objectMap["tags"] = sg.Tags 14152 } 14153 return json.Marshal(objectMap) 14154} 14155 14156// UnmarshalJSON is the custom unmarshaler for SecurityGroup struct. 14157func (sg *SecurityGroup) UnmarshalJSON(body []byte) error { 14158 var m map[string]*json.RawMessage 14159 err := json.Unmarshal(body, &m) 14160 if err != nil { 14161 return err 14162 } 14163 for k, v := range m { 14164 switch k { 14165 case "properties": 14166 if v != nil { 14167 var securityGroupPropertiesFormat SecurityGroupPropertiesFormat 14168 err = json.Unmarshal(*v, &securityGroupPropertiesFormat) 14169 if err != nil { 14170 return err 14171 } 14172 sg.SecurityGroupPropertiesFormat = &securityGroupPropertiesFormat 14173 } 14174 case "etag": 14175 if v != nil { 14176 var etag string 14177 err = json.Unmarshal(*v, &etag) 14178 if err != nil { 14179 return err 14180 } 14181 sg.Etag = &etag 14182 } 14183 case "id": 14184 if v != nil { 14185 var ID string 14186 err = json.Unmarshal(*v, &ID) 14187 if err != nil { 14188 return err 14189 } 14190 sg.ID = &ID 14191 } 14192 case "name": 14193 if v != nil { 14194 var name string 14195 err = json.Unmarshal(*v, &name) 14196 if err != nil { 14197 return err 14198 } 14199 sg.Name = &name 14200 } 14201 case "type": 14202 if v != nil { 14203 var typeVar string 14204 err = json.Unmarshal(*v, &typeVar) 14205 if err != nil { 14206 return err 14207 } 14208 sg.Type = &typeVar 14209 } 14210 case "location": 14211 if v != nil { 14212 var location string 14213 err = json.Unmarshal(*v, &location) 14214 if err != nil { 14215 return err 14216 } 14217 sg.Location = &location 14218 } 14219 case "tags": 14220 if v != nil { 14221 var tags map[string]*string 14222 err = json.Unmarshal(*v, &tags) 14223 if err != nil { 14224 return err 14225 } 14226 sg.Tags = tags 14227 } 14228 } 14229 } 14230 14231 return nil 14232} 14233 14234// SecurityGroupListResult response for ListNetworkSecurityGroups API service call. 14235type SecurityGroupListResult struct { 14236 autorest.Response `json:"-"` 14237 // Value - A list of NetworkSecurityGroup resources. 14238 Value *[]SecurityGroup `json:"value,omitempty"` 14239 // NextLink - The URL to get the next set of results. 14240 NextLink *string `json:"nextLink,omitempty"` 14241} 14242 14243// SecurityGroupListResultIterator provides access to a complete listing of SecurityGroup values. 14244type SecurityGroupListResultIterator struct { 14245 i int 14246 page SecurityGroupListResultPage 14247} 14248 14249// NextWithContext advances to the next value. If there was an error making 14250// the request the iterator does not advance and the error is returned. 14251func (iter *SecurityGroupListResultIterator) NextWithContext(ctx context.Context) (err error) { 14252 if tracing.IsEnabled() { 14253 ctx = tracing.StartSpan(ctx, fqdn+"/SecurityGroupListResultIterator.NextWithContext") 14254 defer func() { 14255 sc := -1 14256 if iter.Response().Response.Response != nil { 14257 sc = iter.Response().Response.Response.StatusCode 14258 } 14259 tracing.EndSpan(ctx, sc, err) 14260 }() 14261 } 14262 iter.i++ 14263 if iter.i < len(iter.page.Values()) { 14264 return nil 14265 } 14266 err = iter.page.NextWithContext(ctx) 14267 if err != nil { 14268 iter.i-- 14269 return err 14270 } 14271 iter.i = 0 14272 return nil 14273} 14274 14275// Next advances to the next value. If there was an error making 14276// the request the iterator does not advance and the error is returned. 14277// Deprecated: Use NextWithContext() instead. 14278func (iter *SecurityGroupListResultIterator) Next() error { 14279 return iter.NextWithContext(context.Background()) 14280} 14281 14282// NotDone returns true if the enumeration should be started or is not yet complete. 14283func (iter SecurityGroupListResultIterator) NotDone() bool { 14284 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14285} 14286 14287// Response returns the raw server response from the last page request. 14288func (iter SecurityGroupListResultIterator) Response() SecurityGroupListResult { 14289 return iter.page.Response() 14290} 14291 14292// Value returns the current value or a zero-initialized value if the 14293// iterator has advanced beyond the end of the collection. 14294func (iter SecurityGroupListResultIterator) Value() SecurityGroup { 14295 if !iter.page.NotDone() { 14296 return SecurityGroup{} 14297 } 14298 return iter.page.Values()[iter.i] 14299} 14300 14301// Creates a new instance of the SecurityGroupListResultIterator type. 14302func NewSecurityGroupListResultIterator(page SecurityGroupListResultPage) SecurityGroupListResultIterator { 14303 return SecurityGroupListResultIterator{page: page} 14304} 14305 14306// IsEmpty returns true if the ListResult contains no values. 14307func (sglr SecurityGroupListResult) IsEmpty() bool { 14308 return sglr.Value == nil || len(*sglr.Value) == 0 14309} 14310 14311// securityGroupListResultPreparer prepares a request to retrieve the next set of results. 14312// It returns nil if no more results exist. 14313func (sglr SecurityGroupListResult) securityGroupListResultPreparer(ctx context.Context) (*http.Request, error) { 14314 if sglr.NextLink == nil || len(to.String(sglr.NextLink)) < 1 { 14315 return nil, nil 14316 } 14317 return autorest.Prepare((&http.Request{}).WithContext(ctx), 14318 autorest.AsJSON(), 14319 autorest.AsGet(), 14320 autorest.WithBaseURL(to.String(sglr.NextLink))) 14321} 14322 14323// SecurityGroupListResultPage contains a page of SecurityGroup values. 14324type SecurityGroupListResultPage struct { 14325 fn func(context.Context, SecurityGroupListResult) (SecurityGroupListResult, error) 14326 sglr SecurityGroupListResult 14327} 14328 14329// NextWithContext advances to the next page of values. If there was an error making 14330// the request the page does not advance and the error is returned. 14331func (page *SecurityGroupListResultPage) NextWithContext(ctx context.Context) (err error) { 14332 if tracing.IsEnabled() { 14333 ctx = tracing.StartSpan(ctx, fqdn+"/SecurityGroupListResultPage.NextWithContext") 14334 defer func() { 14335 sc := -1 14336 if page.Response().Response.Response != nil { 14337 sc = page.Response().Response.Response.StatusCode 14338 } 14339 tracing.EndSpan(ctx, sc, err) 14340 }() 14341 } 14342 next, err := page.fn(ctx, page.sglr) 14343 if err != nil { 14344 return err 14345 } 14346 page.sglr = next 14347 return nil 14348} 14349 14350// Next advances to the next page of values. If there was an error making 14351// the request the page does not advance and the error is returned. 14352// Deprecated: Use NextWithContext() instead. 14353func (page *SecurityGroupListResultPage) Next() error { 14354 return page.NextWithContext(context.Background()) 14355} 14356 14357// NotDone returns true if the page enumeration should be started or is not yet complete. 14358func (page SecurityGroupListResultPage) NotDone() bool { 14359 return !page.sglr.IsEmpty() 14360} 14361 14362// Response returns the raw server response from the last page request. 14363func (page SecurityGroupListResultPage) Response() SecurityGroupListResult { 14364 return page.sglr 14365} 14366 14367// Values returns the slice of values for the current page or nil if there are no values. 14368func (page SecurityGroupListResultPage) Values() []SecurityGroup { 14369 if page.sglr.IsEmpty() { 14370 return nil 14371 } 14372 return *page.sglr.Value 14373} 14374 14375// Creates a new instance of the SecurityGroupListResultPage type. 14376func NewSecurityGroupListResultPage(getNextPage func(context.Context, SecurityGroupListResult) (SecurityGroupListResult, error)) SecurityGroupListResultPage { 14377 return SecurityGroupListResultPage{fn: getNextPage} 14378} 14379 14380// SecurityGroupNetworkInterface network interface and all its associated security rules. 14381type SecurityGroupNetworkInterface struct { 14382 // ID - ID of the network interface. 14383 ID *string `json:"id,omitempty"` 14384 SecurityRuleAssociations *SecurityRuleAssociations `json:"securityRuleAssociations,omitempty"` 14385} 14386 14387// SecurityGroupPropertiesFormat network Security Group resource. 14388type SecurityGroupPropertiesFormat struct { 14389 // SecurityRules - A collection of security rules of the network security group. 14390 SecurityRules *[]SecurityRule `json:"securityRules,omitempty"` 14391 // DefaultSecurityRules - The default security rules of network security group. 14392 DefaultSecurityRules *[]SecurityRule `json:"defaultSecurityRules,omitempty"` 14393 // NetworkInterfaces - READ-ONLY; A collection of references to network interfaces. 14394 NetworkInterfaces *[]Interface `json:"networkInterfaces,omitempty"` 14395 // Subnets - READ-ONLY; A collection of references to subnets. 14396 Subnets *[]Subnet `json:"subnets,omitempty"` 14397 // ResourceGUID - The resource GUID property of the network security group resource. 14398 ResourceGUID *string `json:"resourceGuid,omitempty"` 14399 // ProvisioningState - The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 14400 ProvisioningState *string `json:"provisioningState,omitempty"` 14401} 14402 14403// SecurityGroupsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 14404// long-running operation. 14405type SecurityGroupsCreateOrUpdateFuture struct { 14406 azure.Future 14407} 14408 14409// Result returns the result of the asynchronous operation. 14410// If the operation has not completed it will return an error. 14411func (future *SecurityGroupsCreateOrUpdateFuture) Result(client SecurityGroupsClient) (sg SecurityGroup, err error) { 14412 var done bool 14413 done, err = future.DoneWithContext(context.Background(), client) 14414 if err != nil { 14415 err = autorest.NewErrorWithError(err, "network.SecurityGroupsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 14416 return 14417 } 14418 if !done { 14419 err = azure.NewAsyncOpIncompleteError("network.SecurityGroupsCreateOrUpdateFuture") 14420 return 14421 } 14422 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14423 if sg.Response.Response, err = future.GetResult(sender); err == nil && sg.Response.Response.StatusCode != http.StatusNoContent { 14424 sg, err = client.CreateOrUpdateResponder(sg.Response.Response) 14425 if err != nil { 14426 err = autorest.NewErrorWithError(err, "network.SecurityGroupsCreateOrUpdateFuture", "Result", sg.Response.Response, "Failure responding to request") 14427 } 14428 } 14429 return 14430} 14431 14432// SecurityGroupsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 14433// operation. 14434type SecurityGroupsDeleteFuture struct { 14435 azure.Future 14436} 14437 14438// Result returns the result of the asynchronous operation. 14439// If the operation has not completed it will return an error. 14440func (future *SecurityGroupsDeleteFuture) Result(client SecurityGroupsClient) (ar autorest.Response, err error) { 14441 var done bool 14442 done, err = future.DoneWithContext(context.Background(), client) 14443 if err != nil { 14444 err = autorest.NewErrorWithError(err, "network.SecurityGroupsDeleteFuture", "Result", future.Response(), "Polling failure") 14445 return 14446 } 14447 if !done { 14448 err = azure.NewAsyncOpIncompleteError("network.SecurityGroupsDeleteFuture") 14449 return 14450 } 14451 ar.Response = future.Response() 14452 return 14453} 14454 14455// SecurityGroupsUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 14456// long-running operation. 14457type SecurityGroupsUpdateTagsFuture struct { 14458 azure.Future 14459} 14460 14461// Result returns the result of the asynchronous operation. 14462// If the operation has not completed it will return an error. 14463func (future *SecurityGroupsUpdateTagsFuture) Result(client SecurityGroupsClient) (sg SecurityGroup, err error) { 14464 var done bool 14465 done, err = future.DoneWithContext(context.Background(), client) 14466 if err != nil { 14467 err = autorest.NewErrorWithError(err, "network.SecurityGroupsUpdateTagsFuture", "Result", future.Response(), "Polling failure") 14468 return 14469 } 14470 if !done { 14471 err = azure.NewAsyncOpIncompleteError("network.SecurityGroupsUpdateTagsFuture") 14472 return 14473 } 14474 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14475 if sg.Response.Response, err = future.GetResult(sender); err == nil && sg.Response.Response.StatusCode != http.StatusNoContent { 14476 sg, err = client.UpdateTagsResponder(sg.Response.Response) 14477 if err != nil { 14478 err = autorest.NewErrorWithError(err, "network.SecurityGroupsUpdateTagsFuture", "Result", sg.Response.Response, "Failure responding to request") 14479 } 14480 } 14481 return 14482} 14483 14484// SecurityGroupViewParameters parameters that define the VM to check security groups for. 14485type SecurityGroupViewParameters struct { 14486 // TargetResourceID - ID of the target VM. 14487 TargetResourceID *string `json:"targetResourceId,omitempty"` 14488} 14489 14490// SecurityGroupViewResult the information about security rules applied to the specified VM. 14491type SecurityGroupViewResult struct { 14492 autorest.Response `json:"-"` 14493 // NetworkInterfaces - List of network interfaces on the specified VM. 14494 NetworkInterfaces *[]SecurityGroupNetworkInterface `json:"networkInterfaces,omitempty"` 14495} 14496 14497// SecurityRule network security rule. 14498type SecurityRule struct { 14499 autorest.Response `json:"-"` 14500 // SecurityRulePropertiesFormat - Properties of the security rule 14501 *SecurityRulePropertiesFormat `json:"properties,omitempty"` 14502 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 14503 Name *string `json:"name,omitempty"` 14504 // Etag - A unique read-only string that changes whenever the resource is updated. 14505 Etag *string `json:"etag,omitempty"` 14506 // ID - Resource ID. 14507 ID *string `json:"id,omitempty"` 14508} 14509 14510// MarshalJSON is the custom marshaler for SecurityRule. 14511func (sr SecurityRule) MarshalJSON() ([]byte, error) { 14512 objectMap := make(map[string]interface{}) 14513 if sr.SecurityRulePropertiesFormat != nil { 14514 objectMap["properties"] = sr.SecurityRulePropertiesFormat 14515 } 14516 if sr.Name != nil { 14517 objectMap["name"] = sr.Name 14518 } 14519 if sr.Etag != nil { 14520 objectMap["etag"] = sr.Etag 14521 } 14522 if sr.ID != nil { 14523 objectMap["id"] = sr.ID 14524 } 14525 return json.Marshal(objectMap) 14526} 14527 14528// UnmarshalJSON is the custom unmarshaler for SecurityRule struct. 14529func (sr *SecurityRule) UnmarshalJSON(body []byte) error { 14530 var m map[string]*json.RawMessage 14531 err := json.Unmarshal(body, &m) 14532 if err != nil { 14533 return err 14534 } 14535 for k, v := range m { 14536 switch k { 14537 case "properties": 14538 if v != nil { 14539 var securityRulePropertiesFormat SecurityRulePropertiesFormat 14540 err = json.Unmarshal(*v, &securityRulePropertiesFormat) 14541 if err != nil { 14542 return err 14543 } 14544 sr.SecurityRulePropertiesFormat = &securityRulePropertiesFormat 14545 } 14546 case "name": 14547 if v != nil { 14548 var name string 14549 err = json.Unmarshal(*v, &name) 14550 if err != nil { 14551 return err 14552 } 14553 sr.Name = &name 14554 } 14555 case "etag": 14556 if v != nil { 14557 var etag string 14558 err = json.Unmarshal(*v, &etag) 14559 if err != nil { 14560 return err 14561 } 14562 sr.Etag = &etag 14563 } 14564 case "id": 14565 if v != nil { 14566 var ID string 14567 err = json.Unmarshal(*v, &ID) 14568 if err != nil { 14569 return err 14570 } 14571 sr.ID = &ID 14572 } 14573 } 14574 } 14575 14576 return nil 14577} 14578 14579// SecurityRuleAssociations all security rules associated with the network interface. 14580type SecurityRuleAssociations struct { 14581 NetworkInterfaceAssociation *InterfaceAssociation `json:"networkInterfaceAssociation,omitempty"` 14582 SubnetAssociation *SubnetAssociation `json:"subnetAssociation,omitempty"` 14583 // DefaultSecurityRules - Collection of default security rules of the network security group. 14584 DefaultSecurityRules *[]SecurityRule `json:"defaultSecurityRules,omitempty"` 14585 // EffectiveSecurityRules - Collection of effective security rules. 14586 EffectiveSecurityRules *[]EffectiveNetworkSecurityRule `json:"effectiveSecurityRules,omitempty"` 14587} 14588 14589// SecurityRuleListResult response for ListSecurityRule API service call. Retrieves all security rules that 14590// belongs to a network security group. 14591type SecurityRuleListResult struct { 14592 autorest.Response `json:"-"` 14593 // Value - The security rules in a network security group. 14594 Value *[]SecurityRule `json:"value,omitempty"` 14595 // NextLink - The URL to get the next set of results. 14596 NextLink *string `json:"nextLink,omitempty"` 14597} 14598 14599// SecurityRuleListResultIterator provides access to a complete listing of SecurityRule values. 14600type SecurityRuleListResultIterator struct { 14601 i int 14602 page SecurityRuleListResultPage 14603} 14604 14605// NextWithContext advances to the next value. If there was an error making 14606// the request the iterator does not advance and the error is returned. 14607func (iter *SecurityRuleListResultIterator) NextWithContext(ctx context.Context) (err error) { 14608 if tracing.IsEnabled() { 14609 ctx = tracing.StartSpan(ctx, fqdn+"/SecurityRuleListResultIterator.NextWithContext") 14610 defer func() { 14611 sc := -1 14612 if iter.Response().Response.Response != nil { 14613 sc = iter.Response().Response.Response.StatusCode 14614 } 14615 tracing.EndSpan(ctx, sc, err) 14616 }() 14617 } 14618 iter.i++ 14619 if iter.i < len(iter.page.Values()) { 14620 return nil 14621 } 14622 err = iter.page.NextWithContext(ctx) 14623 if err != nil { 14624 iter.i-- 14625 return err 14626 } 14627 iter.i = 0 14628 return nil 14629} 14630 14631// Next advances to the next value. If there was an error making 14632// the request the iterator does not advance and the error is returned. 14633// Deprecated: Use NextWithContext() instead. 14634func (iter *SecurityRuleListResultIterator) Next() error { 14635 return iter.NextWithContext(context.Background()) 14636} 14637 14638// NotDone returns true if the enumeration should be started or is not yet complete. 14639func (iter SecurityRuleListResultIterator) NotDone() bool { 14640 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14641} 14642 14643// Response returns the raw server response from the last page request. 14644func (iter SecurityRuleListResultIterator) Response() SecurityRuleListResult { 14645 return iter.page.Response() 14646} 14647 14648// Value returns the current value or a zero-initialized value if the 14649// iterator has advanced beyond the end of the collection. 14650func (iter SecurityRuleListResultIterator) Value() SecurityRule { 14651 if !iter.page.NotDone() { 14652 return SecurityRule{} 14653 } 14654 return iter.page.Values()[iter.i] 14655} 14656 14657// Creates a new instance of the SecurityRuleListResultIterator type. 14658func NewSecurityRuleListResultIterator(page SecurityRuleListResultPage) SecurityRuleListResultIterator { 14659 return SecurityRuleListResultIterator{page: page} 14660} 14661 14662// IsEmpty returns true if the ListResult contains no values. 14663func (srlr SecurityRuleListResult) IsEmpty() bool { 14664 return srlr.Value == nil || len(*srlr.Value) == 0 14665} 14666 14667// securityRuleListResultPreparer prepares a request to retrieve the next set of results. 14668// It returns nil if no more results exist. 14669func (srlr SecurityRuleListResult) securityRuleListResultPreparer(ctx context.Context) (*http.Request, error) { 14670 if srlr.NextLink == nil || len(to.String(srlr.NextLink)) < 1 { 14671 return nil, nil 14672 } 14673 return autorest.Prepare((&http.Request{}).WithContext(ctx), 14674 autorest.AsJSON(), 14675 autorest.AsGet(), 14676 autorest.WithBaseURL(to.String(srlr.NextLink))) 14677} 14678 14679// SecurityRuleListResultPage contains a page of SecurityRule values. 14680type SecurityRuleListResultPage struct { 14681 fn func(context.Context, SecurityRuleListResult) (SecurityRuleListResult, error) 14682 srlr SecurityRuleListResult 14683} 14684 14685// NextWithContext advances to the next page of values. If there was an error making 14686// the request the page does not advance and the error is returned. 14687func (page *SecurityRuleListResultPage) NextWithContext(ctx context.Context) (err error) { 14688 if tracing.IsEnabled() { 14689 ctx = tracing.StartSpan(ctx, fqdn+"/SecurityRuleListResultPage.NextWithContext") 14690 defer func() { 14691 sc := -1 14692 if page.Response().Response.Response != nil { 14693 sc = page.Response().Response.Response.StatusCode 14694 } 14695 tracing.EndSpan(ctx, sc, err) 14696 }() 14697 } 14698 next, err := page.fn(ctx, page.srlr) 14699 if err != nil { 14700 return err 14701 } 14702 page.srlr = next 14703 return nil 14704} 14705 14706// Next advances to the next page of values. If there was an error making 14707// the request the page does not advance and the error is returned. 14708// Deprecated: Use NextWithContext() instead. 14709func (page *SecurityRuleListResultPage) Next() error { 14710 return page.NextWithContext(context.Background()) 14711} 14712 14713// NotDone returns true if the page enumeration should be started or is not yet complete. 14714func (page SecurityRuleListResultPage) NotDone() bool { 14715 return !page.srlr.IsEmpty() 14716} 14717 14718// Response returns the raw server response from the last page request. 14719func (page SecurityRuleListResultPage) Response() SecurityRuleListResult { 14720 return page.srlr 14721} 14722 14723// Values returns the slice of values for the current page or nil if there are no values. 14724func (page SecurityRuleListResultPage) Values() []SecurityRule { 14725 if page.srlr.IsEmpty() { 14726 return nil 14727 } 14728 return *page.srlr.Value 14729} 14730 14731// Creates a new instance of the SecurityRuleListResultPage type. 14732func NewSecurityRuleListResultPage(getNextPage func(context.Context, SecurityRuleListResult) (SecurityRuleListResult, error)) SecurityRuleListResultPage { 14733 return SecurityRuleListResultPage{fn: getNextPage} 14734} 14735 14736// SecurityRulePropertiesFormat security rule resource. 14737type SecurityRulePropertiesFormat struct { 14738 // Description - A description for this rule. Restricted to 140 chars. 14739 Description *string `json:"description,omitempty"` 14740 // Protocol - Network protocol this rule applies to. Possible values are 'Tcp', 'Udp', and '*'. Possible values include: 'SecurityRuleProtocolTCP', 'SecurityRuleProtocolUDP', 'SecurityRuleProtocolAsterisk' 14741 Protocol SecurityRuleProtocol `json:"protocol,omitempty"` 14742 // SourcePortRange - The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. 14743 SourcePortRange *string `json:"sourcePortRange,omitempty"` 14744 // DestinationPortRange - The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. 14745 DestinationPortRange *string `json:"destinationPortRange,omitempty"` 14746 // SourceAddressPrefix - The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. 14747 SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"` 14748 // SourceAddressPrefixes - The CIDR or source IP ranges. 14749 SourceAddressPrefixes *[]string `json:"sourceAddressPrefixes,omitempty"` 14750 // SourceApplicationSecurityGroups - The application security group specified as source. 14751 SourceApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"sourceApplicationSecurityGroups,omitempty"` 14752 // DestinationAddressPrefix - The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. 14753 DestinationAddressPrefix *string `json:"destinationAddressPrefix,omitempty"` 14754 // DestinationAddressPrefixes - The destination address prefixes. CIDR or destination IP ranges. 14755 DestinationAddressPrefixes *[]string `json:"destinationAddressPrefixes,omitempty"` 14756 // DestinationApplicationSecurityGroups - The application security group specified as destination. 14757 DestinationApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"destinationApplicationSecurityGroups,omitempty"` 14758 // SourcePortRanges - The source port ranges. 14759 SourcePortRanges *[]string `json:"sourcePortRanges,omitempty"` 14760 // DestinationPortRanges - The destination port ranges. 14761 DestinationPortRanges *[]string `json:"destinationPortRanges,omitempty"` 14762 // Access - The network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'. Possible values include: 'SecurityRuleAccessAllow', 'SecurityRuleAccessDeny' 14763 Access SecurityRuleAccess `json:"access,omitempty"` 14764 // Priority - 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 number, the higher the priority of the rule. 14765 Priority *int32 `json:"priority,omitempty"` 14766 // Direction - The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are: 'Inbound' and 'Outbound'. Possible values include: 'SecurityRuleDirectionInbound', 'SecurityRuleDirectionOutbound' 14767 Direction SecurityRuleDirection `json:"direction,omitempty"` 14768 // ProvisioningState - The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 14769 ProvisioningState *string `json:"provisioningState,omitempty"` 14770} 14771 14772// SecurityRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 14773// long-running operation. 14774type SecurityRulesCreateOrUpdateFuture struct { 14775 azure.Future 14776} 14777 14778// Result returns the result of the asynchronous operation. 14779// If the operation has not completed it will return an error. 14780func (future *SecurityRulesCreateOrUpdateFuture) Result(client SecurityRulesClient) (sr SecurityRule, err error) { 14781 var done bool 14782 done, err = future.DoneWithContext(context.Background(), client) 14783 if err != nil { 14784 err = autorest.NewErrorWithError(err, "network.SecurityRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 14785 return 14786 } 14787 if !done { 14788 err = azure.NewAsyncOpIncompleteError("network.SecurityRulesCreateOrUpdateFuture") 14789 return 14790 } 14791 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14792 if sr.Response.Response, err = future.GetResult(sender); err == nil && sr.Response.Response.StatusCode != http.StatusNoContent { 14793 sr, err = client.CreateOrUpdateResponder(sr.Response.Response) 14794 if err != nil { 14795 err = autorest.NewErrorWithError(err, "network.SecurityRulesCreateOrUpdateFuture", "Result", sr.Response.Response, "Failure responding to request") 14796 } 14797 } 14798 return 14799} 14800 14801// SecurityRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 14802// operation. 14803type SecurityRulesDeleteFuture struct { 14804 azure.Future 14805} 14806 14807// Result returns the result of the asynchronous operation. 14808// If the operation has not completed it will return an error. 14809func (future *SecurityRulesDeleteFuture) Result(client SecurityRulesClient) (ar autorest.Response, err error) { 14810 var done bool 14811 done, err = future.DoneWithContext(context.Background(), client) 14812 if err != nil { 14813 err = autorest.NewErrorWithError(err, "network.SecurityRulesDeleteFuture", "Result", future.Response(), "Polling failure") 14814 return 14815 } 14816 if !done { 14817 err = azure.NewAsyncOpIncompleteError("network.SecurityRulesDeleteFuture") 14818 return 14819 } 14820 ar.Response = future.Response() 14821 return 14822} 14823 14824// ServiceEndpointPropertiesFormat the service endpoint properties. 14825type ServiceEndpointPropertiesFormat struct { 14826 // Service - The type of the endpoint service. 14827 Service *string `json:"service,omitempty"` 14828 // Locations - A list of locations. 14829 Locations *[]string `json:"locations,omitempty"` 14830 // ProvisioningState - The provisioning state of the resource. 14831 ProvisioningState *string `json:"provisioningState,omitempty"` 14832} 14833 14834// String ... 14835type String struct { 14836 autorest.Response `json:"-"` 14837 Value *string `json:"value,omitempty"` 14838} 14839 14840// Subnet subnet in a virtual network resource. 14841type Subnet struct { 14842 autorest.Response `json:"-"` 14843 // SubnetPropertiesFormat - Properties of the subnet. 14844 *SubnetPropertiesFormat `json:"properties,omitempty"` 14845 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 14846 Name *string `json:"name,omitempty"` 14847 // Etag - A unique read-only string that changes whenever the resource is updated. 14848 Etag *string `json:"etag,omitempty"` 14849 // ID - Resource ID. 14850 ID *string `json:"id,omitempty"` 14851} 14852 14853// MarshalJSON is the custom marshaler for Subnet. 14854func (s Subnet) MarshalJSON() ([]byte, error) { 14855 objectMap := make(map[string]interface{}) 14856 if s.SubnetPropertiesFormat != nil { 14857 objectMap["properties"] = s.SubnetPropertiesFormat 14858 } 14859 if s.Name != nil { 14860 objectMap["name"] = s.Name 14861 } 14862 if s.Etag != nil { 14863 objectMap["etag"] = s.Etag 14864 } 14865 if s.ID != nil { 14866 objectMap["id"] = s.ID 14867 } 14868 return json.Marshal(objectMap) 14869} 14870 14871// UnmarshalJSON is the custom unmarshaler for Subnet struct. 14872func (s *Subnet) UnmarshalJSON(body []byte) error { 14873 var m map[string]*json.RawMessage 14874 err := json.Unmarshal(body, &m) 14875 if err != nil { 14876 return err 14877 } 14878 for k, v := range m { 14879 switch k { 14880 case "properties": 14881 if v != nil { 14882 var subnetPropertiesFormat SubnetPropertiesFormat 14883 err = json.Unmarshal(*v, &subnetPropertiesFormat) 14884 if err != nil { 14885 return err 14886 } 14887 s.SubnetPropertiesFormat = &subnetPropertiesFormat 14888 } 14889 case "name": 14890 if v != nil { 14891 var name string 14892 err = json.Unmarshal(*v, &name) 14893 if err != nil { 14894 return err 14895 } 14896 s.Name = &name 14897 } 14898 case "etag": 14899 if v != nil { 14900 var etag string 14901 err = json.Unmarshal(*v, &etag) 14902 if err != nil { 14903 return err 14904 } 14905 s.Etag = &etag 14906 } 14907 case "id": 14908 if v != nil { 14909 var ID string 14910 err = json.Unmarshal(*v, &ID) 14911 if err != nil { 14912 return err 14913 } 14914 s.ID = &ID 14915 } 14916 } 14917 } 14918 14919 return nil 14920} 14921 14922// SubnetAssociation network interface and its custom security rules. 14923type SubnetAssociation struct { 14924 // ID - READ-ONLY; Subnet ID. 14925 ID *string `json:"id,omitempty"` 14926 // SecurityRules - Collection of custom security rules. 14927 SecurityRules *[]SecurityRule `json:"securityRules,omitempty"` 14928} 14929 14930// SubnetListResult response for ListSubnets API service callRetrieves all subnet that belongs to a virtual 14931// network 14932type SubnetListResult struct { 14933 autorest.Response `json:"-"` 14934 // Value - The subnets in a virtual network. 14935 Value *[]Subnet `json:"value,omitempty"` 14936 // NextLink - The URL to get the next set of results. 14937 NextLink *string `json:"nextLink,omitempty"` 14938} 14939 14940// SubnetListResultIterator provides access to a complete listing of Subnet values. 14941type SubnetListResultIterator struct { 14942 i int 14943 page SubnetListResultPage 14944} 14945 14946// NextWithContext advances to the next value. If there was an error making 14947// the request the iterator does not advance and the error is returned. 14948func (iter *SubnetListResultIterator) NextWithContext(ctx context.Context) (err error) { 14949 if tracing.IsEnabled() { 14950 ctx = tracing.StartSpan(ctx, fqdn+"/SubnetListResultIterator.NextWithContext") 14951 defer func() { 14952 sc := -1 14953 if iter.Response().Response.Response != nil { 14954 sc = iter.Response().Response.Response.StatusCode 14955 } 14956 tracing.EndSpan(ctx, sc, err) 14957 }() 14958 } 14959 iter.i++ 14960 if iter.i < len(iter.page.Values()) { 14961 return nil 14962 } 14963 err = iter.page.NextWithContext(ctx) 14964 if err != nil { 14965 iter.i-- 14966 return err 14967 } 14968 iter.i = 0 14969 return nil 14970} 14971 14972// Next advances to the next value. If there was an error making 14973// the request the iterator does not advance and the error is returned. 14974// Deprecated: Use NextWithContext() instead. 14975func (iter *SubnetListResultIterator) Next() error { 14976 return iter.NextWithContext(context.Background()) 14977} 14978 14979// NotDone returns true if the enumeration should be started or is not yet complete. 14980func (iter SubnetListResultIterator) NotDone() bool { 14981 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14982} 14983 14984// Response returns the raw server response from the last page request. 14985func (iter SubnetListResultIterator) Response() SubnetListResult { 14986 return iter.page.Response() 14987} 14988 14989// Value returns the current value or a zero-initialized value if the 14990// iterator has advanced beyond the end of the collection. 14991func (iter SubnetListResultIterator) Value() Subnet { 14992 if !iter.page.NotDone() { 14993 return Subnet{} 14994 } 14995 return iter.page.Values()[iter.i] 14996} 14997 14998// Creates a new instance of the SubnetListResultIterator type. 14999func NewSubnetListResultIterator(page SubnetListResultPage) SubnetListResultIterator { 15000 return SubnetListResultIterator{page: page} 15001} 15002 15003// IsEmpty returns true if the ListResult contains no values. 15004func (slr SubnetListResult) IsEmpty() bool { 15005 return slr.Value == nil || len(*slr.Value) == 0 15006} 15007 15008// subnetListResultPreparer prepares a request to retrieve the next set of results. 15009// It returns nil if no more results exist. 15010func (slr SubnetListResult) subnetListResultPreparer(ctx context.Context) (*http.Request, error) { 15011 if slr.NextLink == nil || len(to.String(slr.NextLink)) < 1 { 15012 return nil, nil 15013 } 15014 return autorest.Prepare((&http.Request{}).WithContext(ctx), 15015 autorest.AsJSON(), 15016 autorest.AsGet(), 15017 autorest.WithBaseURL(to.String(slr.NextLink))) 15018} 15019 15020// SubnetListResultPage contains a page of Subnet values. 15021type SubnetListResultPage struct { 15022 fn func(context.Context, SubnetListResult) (SubnetListResult, error) 15023 slr SubnetListResult 15024} 15025 15026// NextWithContext advances to the next page of values. If there was an error making 15027// the request the page does not advance and the error is returned. 15028func (page *SubnetListResultPage) NextWithContext(ctx context.Context) (err error) { 15029 if tracing.IsEnabled() { 15030 ctx = tracing.StartSpan(ctx, fqdn+"/SubnetListResultPage.NextWithContext") 15031 defer func() { 15032 sc := -1 15033 if page.Response().Response.Response != nil { 15034 sc = page.Response().Response.Response.StatusCode 15035 } 15036 tracing.EndSpan(ctx, sc, err) 15037 }() 15038 } 15039 next, err := page.fn(ctx, page.slr) 15040 if err != nil { 15041 return err 15042 } 15043 page.slr = next 15044 return nil 15045} 15046 15047// Next advances to the next page of values. If there was an error making 15048// the request the page does not advance and the error is returned. 15049// Deprecated: Use NextWithContext() instead. 15050func (page *SubnetListResultPage) Next() error { 15051 return page.NextWithContext(context.Background()) 15052} 15053 15054// NotDone returns true if the page enumeration should be started or is not yet complete. 15055func (page SubnetListResultPage) NotDone() bool { 15056 return !page.slr.IsEmpty() 15057} 15058 15059// Response returns the raw server response from the last page request. 15060func (page SubnetListResultPage) Response() SubnetListResult { 15061 return page.slr 15062} 15063 15064// Values returns the slice of values for the current page or nil if there are no values. 15065func (page SubnetListResultPage) Values() []Subnet { 15066 if page.slr.IsEmpty() { 15067 return nil 15068 } 15069 return *page.slr.Value 15070} 15071 15072// Creates a new instance of the SubnetListResultPage type. 15073func NewSubnetListResultPage(getNextPage func(context.Context, SubnetListResult) (SubnetListResult, error)) SubnetListResultPage { 15074 return SubnetListResultPage{fn: getNextPage} 15075} 15076 15077// SubnetPropertiesFormat properties of the subnet. 15078type SubnetPropertiesFormat struct { 15079 // AddressPrefix - The address prefix for the subnet. 15080 AddressPrefix *string `json:"addressPrefix,omitempty"` 15081 // NetworkSecurityGroup - The reference of the NetworkSecurityGroup resource. 15082 NetworkSecurityGroup *SecurityGroup `json:"networkSecurityGroup,omitempty"` 15083 // RouteTable - The reference of the RouteTable resource. 15084 RouteTable *RouteTable `json:"routeTable,omitempty"` 15085 // ServiceEndpoints - An array of service endpoints. 15086 ServiceEndpoints *[]ServiceEndpointPropertiesFormat `json:"serviceEndpoints,omitempty"` 15087 // IPConfigurations - READ-ONLY; Gets an array of references to the network interface IP configurations using subnet. 15088 IPConfigurations *[]IPConfiguration `json:"ipConfigurations,omitempty"` 15089 // ResourceNavigationLinks - Gets an array of references to the external resources using subnet. 15090 ResourceNavigationLinks *[]ResourceNavigationLink `json:"resourceNavigationLinks,omitempty"` 15091 // ProvisioningState - The provisioning state of the resource. 15092 ProvisioningState *string `json:"provisioningState,omitempty"` 15093} 15094 15095// SubnetsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 15096// operation. 15097type SubnetsCreateOrUpdateFuture struct { 15098 azure.Future 15099} 15100 15101// Result returns the result of the asynchronous operation. 15102// If the operation has not completed it will return an error. 15103func (future *SubnetsCreateOrUpdateFuture) Result(client SubnetsClient) (s Subnet, err error) { 15104 var done bool 15105 done, err = future.DoneWithContext(context.Background(), client) 15106 if err != nil { 15107 err = autorest.NewErrorWithError(err, "network.SubnetsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 15108 return 15109 } 15110 if !done { 15111 err = azure.NewAsyncOpIncompleteError("network.SubnetsCreateOrUpdateFuture") 15112 return 15113 } 15114 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15115 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 15116 s, err = client.CreateOrUpdateResponder(s.Response.Response) 15117 if err != nil { 15118 err = autorest.NewErrorWithError(err, "network.SubnetsCreateOrUpdateFuture", "Result", s.Response.Response, "Failure responding to request") 15119 } 15120 } 15121 return 15122} 15123 15124// SubnetsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 15125// operation. 15126type SubnetsDeleteFuture struct { 15127 azure.Future 15128} 15129 15130// Result returns the result of the asynchronous operation. 15131// If the operation has not completed it will return an error. 15132func (future *SubnetsDeleteFuture) Result(client SubnetsClient) (ar autorest.Response, err error) { 15133 var done bool 15134 done, err = future.DoneWithContext(context.Background(), client) 15135 if err != nil { 15136 err = autorest.NewErrorWithError(err, "network.SubnetsDeleteFuture", "Result", future.Response(), "Polling failure") 15137 return 15138 } 15139 if !done { 15140 err = azure.NewAsyncOpIncompleteError("network.SubnetsDeleteFuture") 15141 return 15142 } 15143 ar.Response = future.Response() 15144 return 15145} 15146 15147// SubResource reference to another subresource. 15148type SubResource struct { 15149 // ID - Resource ID. 15150 ID *string `json:"id,omitempty"` 15151} 15152 15153// TagsObject tags object for patch operations. 15154type TagsObject struct { 15155 // Tags - Resource tags. 15156 Tags map[string]*string `json:"tags"` 15157} 15158 15159// MarshalJSON is the custom marshaler for TagsObject. 15160func (toVar TagsObject) MarshalJSON() ([]byte, error) { 15161 objectMap := make(map[string]interface{}) 15162 if toVar.Tags != nil { 15163 objectMap["tags"] = toVar.Tags 15164 } 15165 return json.Marshal(objectMap) 15166} 15167 15168// Topology topology of the specified resource group. 15169type Topology struct { 15170 autorest.Response `json:"-"` 15171 // ID - READ-ONLY; GUID representing the operation id. 15172 ID *string `json:"id,omitempty"` 15173 // CreatedDateTime - READ-ONLY; The datetime when the topology was initially created for the resource group. 15174 CreatedDateTime *date.Time `json:"createdDateTime,omitempty"` 15175 // LastModified - READ-ONLY; The datetime when the topology was last modified. 15176 LastModified *date.Time `json:"lastModified,omitempty"` 15177 Resources *[]TopologyResource `json:"resources,omitempty"` 15178} 15179 15180// TopologyAssociation resources that have an association with the parent resource. 15181type TopologyAssociation struct { 15182 // Name - The name of the resource that is associated with the parent resource. 15183 Name *string `json:"name,omitempty"` 15184 // ResourceID - The ID of the resource that is associated with the parent resource. 15185 ResourceID *string `json:"resourceId,omitempty"` 15186 // AssociationType - The association type of the child resource to the parent resource. Possible values include: 'Associated', 'Contains' 15187 AssociationType AssociationType `json:"associationType,omitempty"` 15188} 15189 15190// TopologyParameters parameters that define the representation of topology. 15191type TopologyParameters struct { 15192 // TargetResourceGroupName - The name of the target resource group to perform topology on. 15193 TargetResourceGroupName *string `json:"targetResourceGroupName,omitempty"` 15194 // TargetVirtualNetwork - The reference of the Virtual Network resource. 15195 TargetVirtualNetwork *SubResource `json:"targetVirtualNetwork,omitempty"` 15196 // TargetSubnet - The reference of the Subnet resource. 15197 TargetSubnet *SubResource `json:"targetSubnet,omitempty"` 15198} 15199 15200// TopologyResource the network resource topology information for the given resource group. 15201type TopologyResource struct { 15202 // Name - Name of the resource. 15203 Name *string `json:"name,omitempty"` 15204 // ID - ID of the resource. 15205 ID *string `json:"id,omitempty"` 15206 // Location - Resource location. 15207 Location *string `json:"location,omitempty"` 15208 // Associations - Holds the associations the resource has with other resources in the resource group. 15209 Associations *[]TopologyAssociation `json:"associations,omitempty"` 15210} 15211 15212// TroubleshootingDetails information gained from troubleshooting of specified resource. 15213type TroubleshootingDetails struct { 15214 // ID - The id of the get troubleshoot operation. 15215 ID *string `json:"id,omitempty"` 15216 // ReasonType - Reason type of failure. 15217 ReasonType *string `json:"reasonType,omitempty"` 15218 // Summary - A summary of troubleshooting. 15219 Summary *string `json:"summary,omitempty"` 15220 // Detail - Details on troubleshooting results. 15221 Detail *string `json:"detail,omitempty"` 15222 // RecommendedActions - List of recommended actions. 15223 RecommendedActions *[]TroubleshootingRecommendedActions `json:"recommendedActions,omitempty"` 15224} 15225 15226// TroubleshootingParameters parameters that define the resource to troubleshoot. 15227type TroubleshootingParameters struct { 15228 // TargetResourceID - The target resource to troubleshoot. 15229 TargetResourceID *string `json:"targetResourceId,omitempty"` 15230 *TroubleshootingProperties `json:"properties,omitempty"` 15231} 15232 15233// MarshalJSON is the custom marshaler for TroubleshootingParameters. 15234func (tp TroubleshootingParameters) MarshalJSON() ([]byte, error) { 15235 objectMap := make(map[string]interface{}) 15236 if tp.TargetResourceID != nil { 15237 objectMap["targetResourceId"] = tp.TargetResourceID 15238 } 15239 if tp.TroubleshootingProperties != nil { 15240 objectMap["properties"] = tp.TroubleshootingProperties 15241 } 15242 return json.Marshal(objectMap) 15243} 15244 15245// UnmarshalJSON is the custom unmarshaler for TroubleshootingParameters struct. 15246func (tp *TroubleshootingParameters) UnmarshalJSON(body []byte) error { 15247 var m map[string]*json.RawMessage 15248 err := json.Unmarshal(body, &m) 15249 if err != nil { 15250 return err 15251 } 15252 for k, v := range m { 15253 switch k { 15254 case "targetResourceId": 15255 if v != nil { 15256 var targetResourceID string 15257 err = json.Unmarshal(*v, &targetResourceID) 15258 if err != nil { 15259 return err 15260 } 15261 tp.TargetResourceID = &targetResourceID 15262 } 15263 case "properties": 15264 if v != nil { 15265 var troubleshootingProperties TroubleshootingProperties 15266 err = json.Unmarshal(*v, &troubleshootingProperties) 15267 if err != nil { 15268 return err 15269 } 15270 tp.TroubleshootingProperties = &troubleshootingProperties 15271 } 15272 } 15273 } 15274 15275 return nil 15276} 15277 15278// TroubleshootingProperties storage location provided for troubleshoot. 15279type TroubleshootingProperties struct { 15280 // StorageID - The ID for the storage account to save the troubleshoot result. 15281 StorageID *string `json:"storageId,omitempty"` 15282 // StoragePath - The path to the blob to save the troubleshoot result in. 15283 StoragePath *string `json:"storagePath,omitempty"` 15284} 15285 15286// TroubleshootingRecommendedActions recommended actions based on discovered issues. 15287type TroubleshootingRecommendedActions struct { 15288 // ActionID - ID of the recommended action. 15289 ActionID *string `json:"actionId,omitempty"` 15290 // ActionText - Description of recommended actions. 15291 ActionText *string `json:"actionText,omitempty"` 15292 // ActionURI - The uri linking to a documentation for the recommended troubleshooting actions. 15293 ActionURI *string `json:"actionUri,omitempty"` 15294 // ActionURIText - The information from the URI for the recommended troubleshooting actions. 15295 ActionURIText *string `json:"actionUriText,omitempty"` 15296} 15297 15298// TroubleshootingResult troubleshooting information gained from specified resource. 15299type TroubleshootingResult struct { 15300 autorest.Response `json:"-"` 15301 // StartTime - The start time of the troubleshooting. 15302 StartTime *date.Time `json:"startTime,omitempty"` 15303 // EndTime - The end time of the troubleshooting. 15304 EndTime *date.Time `json:"endTime,omitempty"` 15305 // Code - The result code of the troubleshooting. 15306 Code *string `json:"code,omitempty"` 15307 // Results - Information from troubleshooting. 15308 Results *[]TroubleshootingDetails `json:"results,omitempty"` 15309} 15310 15311// TunnelConnectionHealth virtualNetworkGatewayConnection properties 15312type TunnelConnectionHealth struct { 15313 // Tunnel - READ-ONLY; Tunnel name. 15314 Tunnel *string `json:"tunnel,omitempty"` 15315 // ConnectionStatus - READ-ONLY; Virtual network Gateway connection status. Possible values include: 'VirtualNetworkGatewayConnectionStatusUnknown', 'VirtualNetworkGatewayConnectionStatusConnecting', 'VirtualNetworkGatewayConnectionStatusConnected', 'VirtualNetworkGatewayConnectionStatusNotConnected' 15316 ConnectionStatus VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty"` 15317 // IngressBytesTransferred - READ-ONLY; The Ingress Bytes Transferred in this connection 15318 IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty"` 15319 // EgressBytesTransferred - READ-ONLY; The Egress Bytes Transferred in this connection 15320 EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty"` 15321 // LastConnectionEstablishedUtcTime - READ-ONLY; The time at which connection was established in Utc format. 15322 LastConnectionEstablishedUtcTime *string `json:"lastConnectionEstablishedUtcTime,omitempty"` 15323} 15324 15325// Usage describes network resource usage. 15326type Usage struct { 15327 // ID - READ-ONLY; Resource identifier. 15328 ID *string `json:"id,omitempty"` 15329 // Unit - An enum describing the unit of measurement. 15330 Unit *string `json:"unit,omitempty"` 15331 // CurrentValue - The current value of the usage. 15332 CurrentValue *int64 `json:"currentValue,omitempty"` 15333 // Limit - The limit of usage. 15334 Limit *int64 `json:"limit,omitempty"` 15335 // Name - The name of the type of usage. 15336 Name *UsageName `json:"name,omitempty"` 15337} 15338 15339// UsageName the usage names. 15340type UsageName struct { 15341 // Value - A string describing the resource name. 15342 Value *string `json:"value,omitempty"` 15343 // LocalizedValue - A localized string describing the resource name. 15344 LocalizedValue *string `json:"localizedValue,omitempty"` 15345} 15346 15347// UsagesListResult the list usages operation response. 15348type UsagesListResult struct { 15349 autorest.Response `json:"-"` 15350 // Value - The list network resource usages. 15351 Value *[]Usage `json:"value,omitempty"` 15352 // NextLink - URL to get the next set of results. 15353 NextLink *string `json:"nextLink,omitempty"` 15354} 15355 15356// UsagesListResultIterator provides access to a complete listing of Usage values. 15357type UsagesListResultIterator struct { 15358 i int 15359 page UsagesListResultPage 15360} 15361 15362// NextWithContext advances to the next value. If there was an error making 15363// the request the iterator does not advance and the error is returned. 15364func (iter *UsagesListResultIterator) NextWithContext(ctx context.Context) (err error) { 15365 if tracing.IsEnabled() { 15366 ctx = tracing.StartSpan(ctx, fqdn+"/UsagesListResultIterator.NextWithContext") 15367 defer func() { 15368 sc := -1 15369 if iter.Response().Response.Response != nil { 15370 sc = iter.Response().Response.Response.StatusCode 15371 } 15372 tracing.EndSpan(ctx, sc, err) 15373 }() 15374 } 15375 iter.i++ 15376 if iter.i < len(iter.page.Values()) { 15377 return nil 15378 } 15379 err = iter.page.NextWithContext(ctx) 15380 if err != nil { 15381 iter.i-- 15382 return err 15383 } 15384 iter.i = 0 15385 return nil 15386} 15387 15388// Next advances to the next value. If there was an error making 15389// the request the iterator does not advance and the error is returned. 15390// Deprecated: Use NextWithContext() instead. 15391func (iter *UsagesListResultIterator) Next() error { 15392 return iter.NextWithContext(context.Background()) 15393} 15394 15395// NotDone returns true if the enumeration should be started or is not yet complete. 15396func (iter UsagesListResultIterator) NotDone() bool { 15397 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 15398} 15399 15400// Response returns the raw server response from the last page request. 15401func (iter UsagesListResultIterator) Response() UsagesListResult { 15402 return iter.page.Response() 15403} 15404 15405// Value returns the current value or a zero-initialized value if the 15406// iterator has advanced beyond the end of the collection. 15407func (iter UsagesListResultIterator) Value() Usage { 15408 if !iter.page.NotDone() { 15409 return Usage{} 15410 } 15411 return iter.page.Values()[iter.i] 15412} 15413 15414// Creates a new instance of the UsagesListResultIterator type. 15415func NewUsagesListResultIterator(page UsagesListResultPage) UsagesListResultIterator { 15416 return UsagesListResultIterator{page: page} 15417} 15418 15419// IsEmpty returns true if the ListResult contains no values. 15420func (ulr UsagesListResult) IsEmpty() bool { 15421 return ulr.Value == nil || len(*ulr.Value) == 0 15422} 15423 15424// usagesListResultPreparer prepares a request to retrieve the next set of results. 15425// It returns nil if no more results exist. 15426func (ulr UsagesListResult) usagesListResultPreparer(ctx context.Context) (*http.Request, error) { 15427 if ulr.NextLink == nil || len(to.String(ulr.NextLink)) < 1 { 15428 return nil, nil 15429 } 15430 return autorest.Prepare((&http.Request{}).WithContext(ctx), 15431 autorest.AsJSON(), 15432 autorest.AsGet(), 15433 autorest.WithBaseURL(to.String(ulr.NextLink))) 15434} 15435 15436// UsagesListResultPage contains a page of Usage values. 15437type UsagesListResultPage struct { 15438 fn func(context.Context, UsagesListResult) (UsagesListResult, error) 15439 ulr UsagesListResult 15440} 15441 15442// NextWithContext advances to the next page of values. If there was an error making 15443// the request the page does not advance and the error is returned. 15444func (page *UsagesListResultPage) NextWithContext(ctx context.Context) (err error) { 15445 if tracing.IsEnabled() { 15446 ctx = tracing.StartSpan(ctx, fqdn+"/UsagesListResultPage.NextWithContext") 15447 defer func() { 15448 sc := -1 15449 if page.Response().Response.Response != nil { 15450 sc = page.Response().Response.Response.StatusCode 15451 } 15452 tracing.EndSpan(ctx, sc, err) 15453 }() 15454 } 15455 next, err := page.fn(ctx, page.ulr) 15456 if err != nil { 15457 return err 15458 } 15459 page.ulr = next 15460 return nil 15461} 15462 15463// Next advances to the next page of values. If there was an error making 15464// the request the page does not advance and the error is returned. 15465// Deprecated: Use NextWithContext() instead. 15466func (page *UsagesListResultPage) Next() error { 15467 return page.NextWithContext(context.Background()) 15468} 15469 15470// NotDone returns true if the page enumeration should be started or is not yet complete. 15471func (page UsagesListResultPage) NotDone() bool { 15472 return !page.ulr.IsEmpty() 15473} 15474 15475// Response returns the raw server response from the last page request. 15476func (page UsagesListResultPage) Response() UsagesListResult { 15477 return page.ulr 15478} 15479 15480// Values returns the slice of values for the current page or nil if there are no values. 15481func (page UsagesListResultPage) Values() []Usage { 15482 if page.ulr.IsEmpty() { 15483 return nil 15484 } 15485 return *page.ulr.Value 15486} 15487 15488// Creates a new instance of the UsagesListResultPage type. 15489func NewUsagesListResultPage(getNextPage func(context.Context, UsagesListResult) (UsagesListResult, error)) UsagesListResultPage { 15490 return UsagesListResultPage{fn: getNextPage} 15491} 15492 15493// VerificationIPFlowParameters parameters that define the IP flow to be verified. 15494type VerificationIPFlowParameters struct { 15495 // TargetResourceID - The ID of the target resource to perform next-hop on. 15496 TargetResourceID *string `json:"targetResourceId,omitempty"` 15497 // Direction - The direction of the packet represented as a 5-tuple. Possible values include: 'Inbound', 'Outbound' 15498 Direction Direction `json:"direction,omitempty"` 15499 // Protocol - Protocol to be verified on. Possible values include: 'IPFlowProtocolTCP', 'IPFlowProtocolUDP' 15500 Protocol IPFlowProtocol `json:"protocol,omitempty"` 15501 // LocalPort - 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. 15502 LocalPort *string `json:"localPort,omitempty"` 15503 // RemotePort - 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. 15504 RemotePort *string `json:"remotePort,omitempty"` 15505 // LocalIPAddress - The local IP address. Acceptable values are valid IPv4 addresses. 15506 LocalIPAddress *string `json:"localIPAddress,omitempty"` 15507 // RemoteIPAddress - The remote IP address. Acceptable values are valid IPv4 addresses. 15508 RemoteIPAddress *string `json:"remoteIPAddress,omitempty"` 15509 // TargetNicResourceID - 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). 15510 TargetNicResourceID *string `json:"targetNicResourceId,omitempty"` 15511} 15512 15513// VerificationIPFlowResult results of IP flow verification on the target resource. 15514type VerificationIPFlowResult struct { 15515 autorest.Response `json:"-"` 15516 // Access - Indicates whether the traffic is allowed or denied. Possible values include: 'Allow', 'Deny' 15517 Access Access `json:"access,omitempty"` 15518 // RuleName - Name of the rule. If input is not matched against any security rule, it is not displayed. 15519 RuleName *string `json:"ruleName,omitempty"` 15520} 15521 15522// VirtualNetwork virtual Network resource. 15523type VirtualNetwork struct { 15524 autorest.Response `json:"-"` 15525 // VirtualNetworkPropertiesFormat - Properties of the virtual network. 15526 *VirtualNetworkPropertiesFormat `json:"properties,omitempty"` 15527 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 15528 Etag *string `json:"etag,omitempty"` 15529 // ID - Resource ID. 15530 ID *string `json:"id,omitempty"` 15531 // Name - READ-ONLY; Resource name. 15532 Name *string `json:"name,omitempty"` 15533 // Type - READ-ONLY; Resource type. 15534 Type *string `json:"type,omitempty"` 15535 // Location - Resource location. 15536 Location *string `json:"location,omitempty"` 15537 // Tags - Resource tags. 15538 Tags map[string]*string `json:"tags"` 15539} 15540 15541// MarshalJSON is the custom marshaler for VirtualNetwork. 15542func (vn VirtualNetwork) MarshalJSON() ([]byte, error) { 15543 objectMap := make(map[string]interface{}) 15544 if vn.VirtualNetworkPropertiesFormat != nil { 15545 objectMap["properties"] = vn.VirtualNetworkPropertiesFormat 15546 } 15547 if vn.Etag != nil { 15548 objectMap["etag"] = vn.Etag 15549 } 15550 if vn.ID != nil { 15551 objectMap["id"] = vn.ID 15552 } 15553 if vn.Location != nil { 15554 objectMap["location"] = vn.Location 15555 } 15556 if vn.Tags != nil { 15557 objectMap["tags"] = vn.Tags 15558 } 15559 return json.Marshal(objectMap) 15560} 15561 15562// UnmarshalJSON is the custom unmarshaler for VirtualNetwork struct. 15563func (vn *VirtualNetwork) UnmarshalJSON(body []byte) error { 15564 var m map[string]*json.RawMessage 15565 err := json.Unmarshal(body, &m) 15566 if err != nil { 15567 return err 15568 } 15569 for k, v := range m { 15570 switch k { 15571 case "properties": 15572 if v != nil { 15573 var virtualNetworkPropertiesFormat VirtualNetworkPropertiesFormat 15574 err = json.Unmarshal(*v, &virtualNetworkPropertiesFormat) 15575 if err != nil { 15576 return err 15577 } 15578 vn.VirtualNetworkPropertiesFormat = &virtualNetworkPropertiesFormat 15579 } 15580 case "etag": 15581 if v != nil { 15582 var etag string 15583 err = json.Unmarshal(*v, &etag) 15584 if err != nil { 15585 return err 15586 } 15587 vn.Etag = &etag 15588 } 15589 case "id": 15590 if v != nil { 15591 var ID string 15592 err = json.Unmarshal(*v, &ID) 15593 if err != nil { 15594 return err 15595 } 15596 vn.ID = &ID 15597 } 15598 case "name": 15599 if v != nil { 15600 var name string 15601 err = json.Unmarshal(*v, &name) 15602 if err != nil { 15603 return err 15604 } 15605 vn.Name = &name 15606 } 15607 case "type": 15608 if v != nil { 15609 var typeVar string 15610 err = json.Unmarshal(*v, &typeVar) 15611 if err != nil { 15612 return err 15613 } 15614 vn.Type = &typeVar 15615 } 15616 case "location": 15617 if v != nil { 15618 var location string 15619 err = json.Unmarshal(*v, &location) 15620 if err != nil { 15621 return err 15622 } 15623 vn.Location = &location 15624 } 15625 case "tags": 15626 if v != nil { 15627 var tags map[string]*string 15628 err = json.Unmarshal(*v, &tags) 15629 if err != nil { 15630 return err 15631 } 15632 vn.Tags = tags 15633 } 15634 } 15635 } 15636 15637 return nil 15638} 15639 15640// VirtualNetworkConnectionGatewayReference a reference to VirtualNetworkGateway or LocalNetworkGateway 15641// resource. 15642type VirtualNetworkConnectionGatewayReference struct { 15643 // ID - The ID of VirtualNetworkGateway or LocalNetworkGateway resource. 15644 ID *string `json:"id,omitempty"` 15645} 15646 15647// VirtualNetworkGateway a common class for general resource information 15648type VirtualNetworkGateway struct { 15649 autorest.Response `json:"-"` 15650 // VirtualNetworkGatewayPropertiesFormat - Properties of the virtual network gateway. 15651 *VirtualNetworkGatewayPropertiesFormat `json:"properties,omitempty"` 15652 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 15653 Etag *string `json:"etag,omitempty"` 15654 // ID - Resource ID. 15655 ID *string `json:"id,omitempty"` 15656 // Name - READ-ONLY; Resource name. 15657 Name *string `json:"name,omitempty"` 15658 // Type - READ-ONLY; Resource type. 15659 Type *string `json:"type,omitempty"` 15660 // Location - Resource location. 15661 Location *string `json:"location,omitempty"` 15662 // Tags - Resource tags. 15663 Tags map[string]*string `json:"tags"` 15664} 15665 15666// MarshalJSON is the custom marshaler for VirtualNetworkGateway. 15667func (vng VirtualNetworkGateway) MarshalJSON() ([]byte, error) { 15668 objectMap := make(map[string]interface{}) 15669 if vng.VirtualNetworkGatewayPropertiesFormat != nil { 15670 objectMap["properties"] = vng.VirtualNetworkGatewayPropertiesFormat 15671 } 15672 if vng.Etag != nil { 15673 objectMap["etag"] = vng.Etag 15674 } 15675 if vng.ID != nil { 15676 objectMap["id"] = vng.ID 15677 } 15678 if vng.Location != nil { 15679 objectMap["location"] = vng.Location 15680 } 15681 if vng.Tags != nil { 15682 objectMap["tags"] = vng.Tags 15683 } 15684 return json.Marshal(objectMap) 15685} 15686 15687// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGateway struct. 15688func (vng *VirtualNetworkGateway) UnmarshalJSON(body []byte) error { 15689 var m map[string]*json.RawMessage 15690 err := json.Unmarshal(body, &m) 15691 if err != nil { 15692 return err 15693 } 15694 for k, v := range m { 15695 switch k { 15696 case "properties": 15697 if v != nil { 15698 var virtualNetworkGatewayPropertiesFormat VirtualNetworkGatewayPropertiesFormat 15699 err = json.Unmarshal(*v, &virtualNetworkGatewayPropertiesFormat) 15700 if err != nil { 15701 return err 15702 } 15703 vng.VirtualNetworkGatewayPropertiesFormat = &virtualNetworkGatewayPropertiesFormat 15704 } 15705 case "etag": 15706 if v != nil { 15707 var etag string 15708 err = json.Unmarshal(*v, &etag) 15709 if err != nil { 15710 return err 15711 } 15712 vng.Etag = &etag 15713 } 15714 case "id": 15715 if v != nil { 15716 var ID string 15717 err = json.Unmarshal(*v, &ID) 15718 if err != nil { 15719 return err 15720 } 15721 vng.ID = &ID 15722 } 15723 case "name": 15724 if v != nil { 15725 var name string 15726 err = json.Unmarshal(*v, &name) 15727 if err != nil { 15728 return err 15729 } 15730 vng.Name = &name 15731 } 15732 case "type": 15733 if v != nil { 15734 var typeVar string 15735 err = json.Unmarshal(*v, &typeVar) 15736 if err != nil { 15737 return err 15738 } 15739 vng.Type = &typeVar 15740 } 15741 case "location": 15742 if v != nil { 15743 var location string 15744 err = json.Unmarshal(*v, &location) 15745 if err != nil { 15746 return err 15747 } 15748 vng.Location = &location 15749 } 15750 case "tags": 15751 if v != nil { 15752 var tags map[string]*string 15753 err = json.Unmarshal(*v, &tags) 15754 if err != nil { 15755 return err 15756 } 15757 vng.Tags = tags 15758 } 15759 } 15760 } 15761 15762 return nil 15763} 15764 15765// VirtualNetworkGatewayConnection a common class for general resource information 15766type VirtualNetworkGatewayConnection struct { 15767 autorest.Response `json:"-"` 15768 // VirtualNetworkGatewayConnectionPropertiesFormat - Properties of the virtual network gateway connection. 15769 *VirtualNetworkGatewayConnectionPropertiesFormat `json:"properties,omitempty"` 15770 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 15771 Etag *string `json:"etag,omitempty"` 15772 // ID - Resource ID. 15773 ID *string `json:"id,omitempty"` 15774 // Name - READ-ONLY; Resource name. 15775 Name *string `json:"name,omitempty"` 15776 // Type - READ-ONLY; Resource type. 15777 Type *string `json:"type,omitempty"` 15778 // Location - Resource location. 15779 Location *string `json:"location,omitempty"` 15780 // Tags - Resource tags. 15781 Tags map[string]*string `json:"tags"` 15782} 15783 15784// MarshalJSON is the custom marshaler for VirtualNetworkGatewayConnection. 15785func (vngc VirtualNetworkGatewayConnection) MarshalJSON() ([]byte, error) { 15786 objectMap := make(map[string]interface{}) 15787 if vngc.VirtualNetworkGatewayConnectionPropertiesFormat != nil { 15788 objectMap["properties"] = vngc.VirtualNetworkGatewayConnectionPropertiesFormat 15789 } 15790 if vngc.Etag != nil { 15791 objectMap["etag"] = vngc.Etag 15792 } 15793 if vngc.ID != nil { 15794 objectMap["id"] = vngc.ID 15795 } 15796 if vngc.Location != nil { 15797 objectMap["location"] = vngc.Location 15798 } 15799 if vngc.Tags != nil { 15800 objectMap["tags"] = vngc.Tags 15801 } 15802 return json.Marshal(objectMap) 15803} 15804 15805// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGatewayConnection struct. 15806func (vngc *VirtualNetworkGatewayConnection) UnmarshalJSON(body []byte) error { 15807 var m map[string]*json.RawMessage 15808 err := json.Unmarshal(body, &m) 15809 if err != nil { 15810 return err 15811 } 15812 for k, v := range m { 15813 switch k { 15814 case "properties": 15815 if v != nil { 15816 var virtualNetworkGatewayConnectionPropertiesFormat VirtualNetworkGatewayConnectionPropertiesFormat 15817 err = json.Unmarshal(*v, &virtualNetworkGatewayConnectionPropertiesFormat) 15818 if err != nil { 15819 return err 15820 } 15821 vngc.VirtualNetworkGatewayConnectionPropertiesFormat = &virtualNetworkGatewayConnectionPropertiesFormat 15822 } 15823 case "etag": 15824 if v != nil { 15825 var etag string 15826 err = json.Unmarshal(*v, &etag) 15827 if err != nil { 15828 return err 15829 } 15830 vngc.Etag = &etag 15831 } 15832 case "id": 15833 if v != nil { 15834 var ID string 15835 err = json.Unmarshal(*v, &ID) 15836 if err != nil { 15837 return err 15838 } 15839 vngc.ID = &ID 15840 } 15841 case "name": 15842 if v != nil { 15843 var name string 15844 err = json.Unmarshal(*v, &name) 15845 if err != nil { 15846 return err 15847 } 15848 vngc.Name = &name 15849 } 15850 case "type": 15851 if v != nil { 15852 var typeVar string 15853 err = json.Unmarshal(*v, &typeVar) 15854 if err != nil { 15855 return err 15856 } 15857 vngc.Type = &typeVar 15858 } 15859 case "location": 15860 if v != nil { 15861 var location string 15862 err = json.Unmarshal(*v, &location) 15863 if err != nil { 15864 return err 15865 } 15866 vngc.Location = &location 15867 } 15868 case "tags": 15869 if v != nil { 15870 var tags map[string]*string 15871 err = json.Unmarshal(*v, &tags) 15872 if err != nil { 15873 return err 15874 } 15875 vngc.Tags = tags 15876 } 15877 } 15878 } 15879 15880 return nil 15881} 15882 15883// VirtualNetworkGatewayConnectionListEntity a common class for general resource information 15884type VirtualNetworkGatewayConnectionListEntity struct { 15885 autorest.Response `json:"-"` 15886 // VirtualNetworkGatewayConnectionListEntityPropertiesFormat - Properties of the virtual network gateway connection. 15887 *VirtualNetworkGatewayConnectionListEntityPropertiesFormat `json:"properties,omitempty"` 15888 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 15889 Etag *string `json:"etag,omitempty"` 15890 // ID - Resource ID. 15891 ID *string `json:"id,omitempty"` 15892 // Name - READ-ONLY; Resource name. 15893 Name *string `json:"name,omitempty"` 15894 // Type - READ-ONLY; Resource type. 15895 Type *string `json:"type,omitempty"` 15896 // Location - Resource location. 15897 Location *string `json:"location,omitempty"` 15898 // Tags - Resource tags. 15899 Tags map[string]*string `json:"tags"` 15900} 15901 15902// MarshalJSON is the custom marshaler for VirtualNetworkGatewayConnectionListEntity. 15903func (vngcle VirtualNetworkGatewayConnectionListEntity) MarshalJSON() ([]byte, error) { 15904 objectMap := make(map[string]interface{}) 15905 if vngcle.VirtualNetworkGatewayConnectionListEntityPropertiesFormat != nil { 15906 objectMap["properties"] = vngcle.VirtualNetworkGatewayConnectionListEntityPropertiesFormat 15907 } 15908 if vngcle.Etag != nil { 15909 objectMap["etag"] = vngcle.Etag 15910 } 15911 if vngcle.ID != nil { 15912 objectMap["id"] = vngcle.ID 15913 } 15914 if vngcle.Location != nil { 15915 objectMap["location"] = vngcle.Location 15916 } 15917 if vngcle.Tags != nil { 15918 objectMap["tags"] = vngcle.Tags 15919 } 15920 return json.Marshal(objectMap) 15921} 15922 15923// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGatewayConnectionListEntity struct. 15924func (vngcle *VirtualNetworkGatewayConnectionListEntity) UnmarshalJSON(body []byte) error { 15925 var m map[string]*json.RawMessage 15926 err := json.Unmarshal(body, &m) 15927 if err != nil { 15928 return err 15929 } 15930 for k, v := range m { 15931 switch k { 15932 case "properties": 15933 if v != nil { 15934 var virtualNetworkGatewayConnectionListEntityPropertiesFormat VirtualNetworkGatewayConnectionListEntityPropertiesFormat 15935 err = json.Unmarshal(*v, &virtualNetworkGatewayConnectionListEntityPropertiesFormat) 15936 if err != nil { 15937 return err 15938 } 15939 vngcle.VirtualNetworkGatewayConnectionListEntityPropertiesFormat = &virtualNetworkGatewayConnectionListEntityPropertiesFormat 15940 } 15941 case "etag": 15942 if v != nil { 15943 var etag string 15944 err = json.Unmarshal(*v, &etag) 15945 if err != nil { 15946 return err 15947 } 15948 vngcle.Etag = &etag 15949 } 15950 case "id": 15951 if v != nil { 15952 var ID string 15953 err = json.Unmarshal(*v, &ID) 15954 if err != nil { 15955 return err 15956 } 15957 vngcle.ID = &ID 15958 } 15959 case "name": 15960 if v != nil { 15961 var name string 15962 err = json.Unmarshal(*v, &name) 15963 if err != nil { 15964 return err 15965 } 15966 vngcle.Name = &name 15967 } 15968 case "type": 15969 if v != nil { 15970 var typeVar string 15971 err = json.Unmarshal(*v, &typeVar) 15972 if err != nil { 15973 return err 15974 } 15975 vngcle.Type = &typeVar 15976 } 15977 case "location": 15978 if v != nil { 15979 var location string 15980 err = json.Unmarshal(*v, &location) 15981 if err != nil { 15982 return err 15983 } 15984 vngcle.Location = &location 15985 } 15986 case "tags": 15987 if v != nil { 15988 var tags map[string]*string 15989 err = json.Unmarshal(*v, &tags) 15990 if err != nil { 15991 return err 15992 } 15993 vngcle.Tags = tags 15994 } 15995 } 15996 } 15997 15998 return nil 15999} 16000 16001// VirtualNetworkGatewayConnectionListEntityPropertiesFormat virtualNetworkGatewayConnection properties 16002type VirtualNetworkGatewayConnectionListEntityPropertiesFormat struct { 16003 // AuthorizationKey - The authorizationKey. 16004 AuthorizationKey *string `json:"authorizationKey,omitempty"` 16005 // VirtualNetworkGateway1 - The reference to virtual network gateway resource. 16006 VirtualNetworkGateway1 *VirtualNetworkConnectionGatewayReference `json:"virtualNetworkGateway1,omitempty"` 16007 // VirtualNetworkGateway2 - The reference to virtual network gateway resource. 16008 VirtualNetworkGateway2 *VirtualNetworkConnectionGatewayReference `json:"virtualNetworkGateway2,omitempty"` 16009 // LocalNetworkGateway2 - The reference to local network gateway resource. 16010 LocalNetworkGateway2 *VirtualNetworkConnectionGatewayReference `json:"localNetworkGateway2,omitempty"` 16011 // ConnectionType - Gateway connection type. Possible values are: 'IPsec','Vnet2Vnet','ExpressRoute', and 'VPNClient. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', 'VPNClient' 16012 ConnectionType VirtualNetworkGatewayConnectionType `json:"connectionType,omitempty"` 16013 // RoutingWeight - The routing weight. 16014 RoutingWeight *int32 `json:"routingWeight,omitempty"` 16015 // SharedKey - The IPSec shared key. 16016 SharedKey *string `json:"sharedKey,omitempty"` 16017 // ConnectionStatus - READ-ONLY; Virtual network Gateway connection status. Possible values are 'Unknown', 'Connecting', 'Connected' and 'NotConnected'. Possible values include: 'VirtualNetworkGatewayConnectionStatusUnknown', 'VirtualNetworkGatewayConnectionStatusConnecting', 'VirtualNetworkGatewayConnectionStatusConnected', 'VirtualNetworkGatewayConnectionStatusNotConnected' 16018 ConnectionStatus VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty"` 16019 // TunnelConnectionStatus - READ-ONLY; Collection of all tunnels' connection health status. 16020 TunnelConnectionStatus *[]TunnelConnectionHealth `json:"tunnelConnectionStatus,omitempty"` 16021 // EgressBytesTransferred - READ-ONLY; The egress bytes transferred in this connection. 16022 EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty"` 16023 // IngressBytesTransferred - READ-ONLY; The ingress bytes transferred in this connection. 16024 IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty"` 16025 // Peer - The reference to peerings resource. 16026 Peer *SubResource `json:"peer,omitempty"` 16027 // EnableBgp - EnableBgp flag 16028 EnableBgp *bool `json:"enableBgp,omitempty"` 16029 // UsePolicyBasedTrafficSelectors - Enable policy-based traffic selectors. 16030 UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"` 16031 // IpsecPolicies - The IPSec Policies to be considered by this connection. 16032 IpsecPolicies *[]IpsecPolicy `json:"ipsecPolicies,omitempty"` 16033 // ResourceGUID - The resource GUID property of the VirtualNetworkGatewayConnection resource. 16034 ResourceGUID *string `json:"resourceGuid,omitempty"` 16035 // ProvisioningState - READ-ONLY; The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 16036 ProvisioningState *string `json:"provisioningState,omitempty"` 16037} 16038 16039// VirtualNetworkGatewayConnectionListResult response for the ListVirtualNetworkGatewayConnections API 16040// service call 16041type VirtualNetworkGatewayConnectionListResult struct { 16042 autorest.Response `json:"-"` 16043 // Value - Gets a list of VirtualNetworkGatewayConnection resources that exists in a resource group. 16044 Value *[]VirtualNetworkGatewayConnection `json:"value,omitempty"` 16045 // NextLink - READ-ONLY; The URL to get the next set of results. 16046 NextLink *string `json:"nextLink,omitempty"` 16047} 16048 16049// VirtualNetworkGatewayConnectionListResultIterator provides access to a complete listing of 16050// VirtualNetworkGatewayConnection values. 16051type VirtualNetworkGatewayConnectionListResultIterator struct { 16052 i int 16053 page VirtualNetworkGatewayConnectionListResultPage 16054} 16055 16056// NextWithContext advances to the next value. If there was an error making 16057// the request the iterator does not advance and the error is returned. 16058func (iter *VirtualNetworkGatewayConnectionListResultIterator) NextWithContext(ctx context.Context) (err error) { 16059 if tracing.IsEnabled() { 16060 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewayConnectionListResultIterator.NextWithContext") 16061 defer func() { 16062 sc := -1 16063 if iter.Response().Response.Response != nil { 16064 sc = iter.Response().Response.Response.StatusCode 16065 } 16066 tracing.EndSpan(ctx, sc, err) 16067 }() 16068 } 16069 iter.i++ 16070 if iter.i < len(iter.page.Values()) { 16071 return nil 16072 } 16073 err = iter.page.NextWithContext(ctx) 16074 if err != nil { 16075 iter.i-- 16076 return err 16077 } 16078 iter.i = 0 16079 return nil 16080} 16081 16082// Next advances to the next value. If there was an error making 16083// the request the iterator does not advance and the error is returned. 16084// Deprecated: Use NextWithContext() instead. 16085func (iter *VirtualNetworkGatewayConnectionListResultIterator) Next() error { 16086 return iter.NextWithContext(context.Background()) 16087} 16088 16089// NotDone returns true if the enumeration should be started or is not yet complete. 16090func (iter VirtualNetworkGatewayConnectionListResultIterator) NotDone() bool { 16091 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 16092} 16093 16094// Response returns the raw server response from the last page request. 16095func (iter VirtualNetworkGatewayConnectionListResultIterator) Response() VirtualNetworkGatewayConnectionListResult { 16096 return iter.page.Response() 16097} 16098 16099// Value returns the current value or a zero-initialized value if the 16100// iterator has advanced beyond the end of the collection. 16101func (iter VirtualNetworkGatewayConnectionListResultIterator) Value() VirtualNetworkGatewayConnection { 16102 if !iter.page.NotDone() { 16103 return VirtualNetworkGatewayConnection{} 16104 } 16105 return iter.page.Values()[iter.i] 16106} 16107 16108// Creates a new instance of the VirtualNetworkGatewayConnectionListResultIterator type. 16109func NewVirtualNetworkGatewayConnectionListResultIterator(page VirtualNetworkGatewayConnectionListResultPage) VirtualNetworkGatewayConnectionListResultIterator { 16110 return VirtualNetworkGatewayConnectionListResultIterator{page: page} 16111} 16112 16113// IsEmpty returns true if the ListResult contains no values. 16114func (vngclr VirtualNetworkGatewayConnectionListResult) IsEmpty() bool { 16115 return vngclr.Value == nil || len(*vngclr.Value) == 0 16116} 16117 16118// virtualNetworkGatewayConnectionListResultPreparer prepares a request to retrieve the next set of results. 16119// It returns nil if no more results exist. 16120func (vngclr VirtualNetworkGatewayConnectionListResult) virtualNetworkGatewayConnectionListResultPreparer(ctx context.Context) (*http.Request, error) { 16121 if vngclr.NextLink == nil || len(to.String(vngclr.NextLink)) < 1 { 16122 return nil, nil 16123 } 16124 return autorest.Prepare((&http.Request{}).WithContext(ctx), 16125 autorest.AsJSON(), 16126 autorest.AsGet(), 16127 autorest.WithBaseURL(to.String(vngclr.NextLink))) 16128} 16129 16130// VirtualNetworkGatewayConnectionListResultPage contains a page of VirtualNetworkGatewayConnection values. 16131type VirtualNetworkGatewayConnectionListResultPage struct { 16132 fn func(context.Context, VirtualNetworkGatewayConnectionListResult) (VirtualNetworkGatewayConnectionListResult, error) 16133 vngclr VirtualNetworkGatewayConnectionListResult 16134} 16135 16136// NextWithContext advances to the next page of values. If there was an error making 16137// the request the page does not advance and the error is returned. 16138func (page *VirtualNetworkGatewayConnectionListResultPage) NextWithContext(ctx context.Context) (err error) { 16139 if tracing.IsEnabled() { 16140 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewayConnectionListResultPage.NextWithContext") 16141 defer func() { 16142 sc := -1 16143 if page.Response().Response.Response != nil { 16144 sc = page.Response().Response.Response.StatusCode 16145 } 16146 tracing.EndSpan(ctx, sc, err) 16147 }() 16148 } 16149 next, err := page.fn(ctx, page.vngclr) 16150 if err != nil { 16151 return err 16152 } 16153 page.vngclr = next 16154 return nil 16155} 16156 16157// Next advances to the next page of values. If there was an error making 16158// the request the page does not advance and the error is returned. 16159// Deprecated: Use NextWithContext() instead. 16160func (page *VirtualNetworkGatewayConnectionListResultPage) Next() error { 16161 return page.NextWithContext(context.Background()) 16162} 16163 16164// NotDone returns true if the page enumeration should be started or is not yet complete. 16165func (page VirtualNetworkGatewayConnectionListResultPage) NotDone() bool { 16166 return !page.vngclr.IsEmpty() 16167} 16168 16169// Response returns the raw server response from the last page request. 16170func (page VirtualNetworkGatewayConnectionListResultPage) Response() VirtualNetworkGatewayConnectionListResult { 16171 return page.vngclr 16172} 16173 16174// Values returns the slice of values for the current page or nil if there are no values. 16175func (page VirtualNetworkGatewayConnectionListResultPage) Values() []VirtualNetworkGatewayConnection { 16176 if page.vngclr.IsEmpty() { 16177 return nil 16178 } 16179 return *page.vngclr.Value 16180} 16181 16182// Creates a new instance of the VirtualNetworkGatewayConnectionListResultPage type. 16183func NewVirtualNetworkGatewayConnectionListResultPage(getNextPage func(context.Context, VirtualNetworkGatewayConnectionListResult) (VirtualNetworkGatewayConnectionListResult, error)) VirtualNetworkGatewayConnectionListResultPage { 16184 return VirtualNetworkGatewayConnectionListResultPage{fn: getNextPage} 16185} 16186 16187// VirtualNetworkGatewayConnectionPropertiesFormat virtualNetworkGatewayConnection properties 16188type VirtualNetworkGatewayConnectionPropertiesFormat struct { 16189 // AuthorizationKey - The authorizationKey. 16190 AuthorizationKey *string `json:"authorizationKey,omitempty"` 16191 // VirtualNetworkGateway1 - The reference to virtual network gateway resource. 16192 VirtualNetworkGateway1 *VirtualNetworkGateway `json:"virtualNetworkGateway1,omitempty"` 16193 // VirtualNetworkGateway2 - The reference to virtual network gateway resource. 16194 VirtualNetworkGateway2 *VirtualNetworkGateway `json:"virtualNetworkGateway2,omitempty"` 16195 // LocalNetworkGateway2 - The reference to local network gateway resource. 16196 LocalNetworkGateway2 *LocalNetworkGateway `json:"localNetworkGateway2,omitempty"` 16197 // ConnectionType - Gateway connection type. Possible values are: 'IPsec','Vnet2Vnet','ExpressRoute', and 'VPNClient. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', 'VPNClient' 16198 ConnectionType VirtualNetworkGatewayConnectionType `json:"connectionType,omitempty"` 16199 // RoutingWeight - The routing weight. 16200 RoutingWeight *int32 `json:"routingWeight,omitempty"` 16201 // SharedKey - The IPSec shared key. 16202 SharedKey *string `json:"sharedKey,omitempty"` 16203 // ConnectionStatus - READ-ONLY; Virtual network Gateway connection status. Possible values are 'Unknown', 'Connecting', 'Connected' and 'NotConnected'. Possible values include: 'VirtualNetworkGatewayConnectionStatusUnknown', 'VirtualNetworkGatewayConnectionStatusConnecting', 'VirtualNetworkGatewayConnectionStatusConnected', 'VirtualNetworkGatewayConnectionStatusNotConnected' 16204 ConnectionStatus VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty"` 16205 // TunnelConnectionStatus - READ-ONLY; Collection of all tunnels' connection health status. 16206 TunnelConnectionStatus *[]TunnelConnectionHealth `json:"tunnelConnectionStatus,omitempty"` 16207 // EgressBytesTransferred - READ-ONLY; The egress bytes transferred in this connection. 16208 EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty"` 16209 // IngressBytesTransferred - READ-ONLY; The ingress bytes transferred in this connection. 16210 IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty"` 16211 // Peer - The reference to peerings resource. 16212 Peer *SubResource `json:"peer,omitempty"` 16213 // EnableBgp - EnableBgp flag 16214 EnableBgp *bool `json:"enableBgp,omitempty"` 16215 // UsePolicyBasedTrafficSelectors - Enable policy-based traffic selectors. 16216 UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"` 16217 // IpsecPolicies - The IPSec Policies to be considered by this connection. 16218 IpsecPolicies *[]IpsecPolicy `json:"ipsecPolicies,omitempty"` 16219 // ResourceGUID - The resource GUID property of the VirtualNetworkGatewayConnection resource. 16220 ResourceGUID *string `json:"resourceGuid,omitempty"` 16221 // ProvisioningState - READ-ONLY; The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 16222 ProvisioningState *string `json:"provisioningState,omitempty"` 16223} 16224 16225// VirtualNetworkGatewayConnectionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the 16226// results of a long-running operation. 16227type VirtualNetworkGatewayConnectionsCreateOrUpdateFuture struct { 16228 azure.Future 16229} 16230 16231// Result returns the result of the asynchronous operation. 16232// If the operation has not completed it will return an error. 16233func (future *VirtualNetworkGatewayConnectionsCreateOrUpdateFuture) Result(client VirtualNetworkGatewayConnectionsClient) (vngc VirtualNetworkGatewayConnection, err error) { 16234 var done bool 16235 done, err = future.DoneWithContext(context.Background(), client) 16236 if err != nil { 16237 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 16238 return 16239 } 16240 if !done { 16241 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsCreateOrUpdateFuture") 16242 return 16243 } 16244 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16245 if vngc.Response.Response, err = future.GetResult(sender); err == nil && vngc.Response.Response.StatusCode != http.StatusNoContent { 16246 vngc, err = client.CreateOrUpdateResponder(vngc.Response.Response) 16247 if err != nil { 16248 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsCreateOrUpdateFuture", "Result", vngc.Response.Response, "Failure responding to request") 16249 } 16250 } 16251 return 16252} 16253 16254// VirtualNetworkGatewayConnectionsDeleteFuture an abstraction for monitoring and retrieving the results of 16255// a long-running operation. 16256type VirtualNetworkGatewayConnectionsDeleteFuture struct { 16257 azure.Future 16258} 16259 16260// Result returns the result of the asynchronous operation. 16261// If the operation has not completed it will return an error. 16262func (future *VirtualNetworkGatewayConnectionsDeleteFuture) Result(client VirtualNetworkGatewayConnectionsClient) (ar autorest.Response, err error) { 16263 var done bool 16264 done, err = future.DoneWithContext(context.Background(), client) 16265 if err != nil { 16266 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsDeleteFuture", "Result", future.Response(), "Polling failure") 16267 return 16268 } 16269 if !done { 16270 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsDeleteFuture") 16271 return 16272 } 16273 ar.Response = future.Response() 16274 return 16275} 16276 16277// VirtualNetworkGatewayConnectionsResetSharedKeyFuture an abstraction for monitoring and retrieving the 16278// results of a long-running operation. 16279type VirtualNetworkGatewayConnectionsResetSharedKeyFuture struct { 16280 azure.Future 16281} 16282 16283// Result returns the result of the asynchronous operation. 16284// If the operation has not completed it will return an error. 16285func (future *VirtualNetworkGatewayConnectionsResetSharedKeyFuture) Result(client VirtualNetworkGatewayConnectionsClient) (crsk ConnectionResetSharedKey, err error) { 16286 var done bool 16287 done, err = future.DoneWithContext(context.Background(), client) 16288 if err != nil { 16289 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsResetSharedKeyFuture", "Result", future.Response(), "Polling failure") 16290 return 16291 } 16292 if !done { 16293 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsResetSharedKeyFuture") 16294 return 16295 } 16296 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16297 if crsk.Response.Response, err = future.GetResult(sender); err == nil && crsk.Response.Response.StatusCode != http.StatusNoContent { 16298 crsk, err = client.ResetSharedKeyResponder(crsk.Response.Response) 16299 if err != nil { 16300 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsResetSharedKeyFuture", "Result", crsk.Response.Response, "Failure responding to request") 16301 } 16302 } 16303 return 16304} 16305 16306// VirtualNetworkGatewayConnectionsSetSharedKeyFuture an abstraction for monitoring and retrieving the 16307// results of a long-running operation. 16308type VirtualNetworkGatewayConnectionsSetSharedKeyFuture struct { 16309 azure.Future 16310} 16311 16312// Result returns the result of the asynchronous operation. 16313// If the operation has not completed it will return an error. 16314func (future *VirtualNetworkGatewayConnectionsSetSharedKeyFuture) Result(client VirtualNetworkGatewayConnectionsClient) (csk ConnectionSharedKey, err error) { 16315 var done bool 16316 done, err = future.DoneWithContext(context.Background(), client) 16317 if err != nil { 16318 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsSetSharedKeyFuture", "Result", future.Response(), "Polling failure") 16319 return 16320 } 16321 if !done { 16322 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsSetSharedKeyFuture") 16323 return 16324 } 16325 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16326 if csk.Response.Response, err = future.GetResult(sender); err == nil && csk.Response.Response.StatusCode != http.StatusNoContent { 16327 csk, err = client.SetSharedKeyResponder(csk.Response.Response) 16328 if err != nil { 16329 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsSetSharedKeyFuture", "Result", csk.Response.Response, "Failure responding to request") 16330 } 16331 } 16332 return 16333} 16334 16335// VirtualNetworkGatewayConnectionsUpdateTagsFuture an abstraction for monitoring and retrieving the 16336// results of a long-running operation. 16337type VirtualNetworkGatewayConnectionsUpdateTagsFuture struct { 16338 azure.Future 16339} 16340 16341// Result returns the result of the asynchronous operation. 16342// If the operation has not completed it will return an error. 16343func (future *VirtualNetworkGatewayConnectionsUpdateTagsFuture) Result(client VirtualNetworkGatewayConnectionsClient) (vngcle VirtualNetworkGatewayConnectionListEntity, err error) { 16344 var done bool 16345 done, err = future.DoneWithContext(context.Background(), client) 16346 if err != nil { 16347 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsUpdateTagsFuture", "Result", future.Response(), "Polling failure") 16348 return 16349 } 16350 if !done { 16351 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsUpdateTagsFuture") 16352 return 16353 } 16354 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16355 if vngcle.Response.Response, err = future.GetResult(sender); err == nil && vngcle.Response.Response.StatusCode != http.StatusNoContent { 16356 vngcle, err = client.UpdateTagsResponder(vngcle.Response.Response) 16357 if err != nil { 16358 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsUpdateTagsFuture", "Result", vngcle.Response.Response, "Failure responding to request") 16359 } 16360 } 16361 return 16362} 16363 16364// VirtualNetworkGatewayIPConfiguration IP configuration for virtual network gateway 16365type VirtualNetworkGatewayIPConfiguration struct { 16366 // VirtualNetworkGatewayIPConfigurationPropertiesFormat - Properties of the virtual network gateway ip configuration. 16367 *VirtualNetworkGatewayIPConfigurationPropertiesFormat `json:"properties,omitempty"` 16368 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 16369 Name *string `json:"name,omitempty"` 16370 // Etag - A unique read-only string that changes whenever the resource is updated. 16371 Etag *string `json:"etag,omitempty"` 16372 // ID - Resource ID. 16373 ID *string `json:"id,omitempty"` 16374} 16375 16376// MarshalJSON is the custom marshaler for VirtualNetworkGatewayIPConfiguration. 16377func (vngic VirtualNetworkGatewayIPConfiguration) MarshalJSON() ([]byte, error) { 16378 objectMap := make(map[string]interface{}) 16379 if vngic.VirtualNetworkGatewayIPConfigurationPropertiesFormat != nil { 16380 objectMap["properties"] = vngic.VirtualNetworkGatewayIPConfigurationPropertiesFormat 16381 } 16382 if vngic.Name != nil { 16383 objectMap["name"] = vngic.Name 16384 } 16385 if vngic.Etag != nil { 16386 objectMap["etag"] = vngic.Etag 16387 } 16388 if vngic.ID != nil { 16389 objectMap["id"] = vngic.ID 16390 } 16391 return json.Marshal(objectMap) 16392} 16393 16394// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGatewayIPConfiguration struct. 16395func (vngic *VirtualNetworkGatewayIPConfiguration) UnmarshalJSON(body []byte) error { 16396 var m map[string]*json.RawMessage 16397 err := json.Unmarshal(body, &m) 16398 if err != nil { 16399 return err 16400 } 16401 for k, v := range m { 16402 switch k { 16403 case "properties": 16404 if v != nil { 16405 var virtualNetworkGatewayIPConfigurationPropertiesFormat VirtualNetworkGatewayIPConfigurationPropertiesFormat 16406 err = json.Unmarshal(*v, &virtualNetworkGatewayIPConfigurationPropertiesFormat) 16407 if err != nil { 16408 return err 16409 } 16410 vngic.VirtualNetworkGatewayIPConfigurationPropertiesFormat = &virtualNetworkGatewayIPConfigurationPropertiesFormat 16411 } 16412 case "name": 16413 if v != nil { 16414 var name string 16415 err = json.Unmarshal(*v, &name) 16416 if err != nil { 16417 return err 16418 } 16419 vngic.Name = &name 16420 } 16421 case "etag": 16422 if v != nil { 16423 var etag string 16424 err = json.Unmarshal(*v, &etag) 16425 if err != nil { 16426 return err 16427 } 16428 vngic.Etag = &etag 16429 } 16430 case "id": 16431 if v != nil { 16432 var ID string 16433 err = json.Unmarshal(*v, &ID) 16434 if err != nil { 16435 return err 16436 } 16437 vngic.ID = &ID 16438 } 16439 } 16440 } 16441 16442 return nil 16443} 16444 16445// VirtualNetworkGatewayIPConfigurationPropertiesFormat properties of VirtualNetworkGatewayIPConfiguration 16446type VirtualNetworkGatewayIPConfigurationPropertiesFormat struct { 16447 // PrivateIPAllocationMethod - The private IP allocation method. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 16448 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 16449 // Subnet - The reference of the subnet resource. 16450 Subnet *SubResource `json:"subnet,omitempty"` 16451 // PublicIPAddress - The reference of the public IP resource. 16452 PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"` 16453 // ProvisioningState - READ-ONLY; The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 16454 ProvisioningState *string `json:"provisioningState,omitempty"` 16455} 16456 16457// VirtualNetworkGatewayListConnectionsResult response for the VirtualNetworkGatewayListConnections API 16458// service call 16459type VirtualNetworkGatewayListConnectionsResult struct { 16460 autorest.Response `json:"-"` 16461 // Value - Gets a list of VirtualNetworkGatewayConnection resources that exists in a resource group. 16462 Value *[]VirtualNetworkGatewayConnectionListEntity `json:"value,omitempty"` 16463 // NextLink - READ-ONLY; The URL to get the next set of results. 16464 NextLink *string `json:"nextLink,omitempty"` 16465} 16466 16467// VirtualNetworkGatewayListConnectionsResultIterator provides access to a complete listing of 16468// VirtualNetworkGatewayConnectionListEntity values. 16469type VirtualNetworkGatewayListConnectionsResultIterator struct { 16470 i int 16471 page VirtualNetworkGatewayListConnectionsResultPage 16472} 16473 16474// NextWithContext advances to the next value. If there was an error making 16475// the request the iterator does not advance and the error is returned. 16476func (iter *VirtualNetworkGatewayListConnectionsResultIterator) NextWithContext(ctx context.Context) (err error) { 16477 if tracing.IsEnabled() { 16478 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewayListConnectionsResultIterator.NextWithContext") 16479 defer func() { 16480 sc := -1 16481 if iter.Response().Response.Response != nil { 16482 sc = iter.Response().Response.Response.StatusCode 16483 } 16484 tracing.EndSpan(ctx, sc, err) 16485 }() 16486 } 16487 iter.i++ 16488 if iter.i < len(iter.page.Values()) { 16489 return nil 16490 } 16491 err = iter.page.NextWithContext(ctx) 16492 if err != nil { 16493 iter.i-- 16494 return err 16495 } 16496 iter.i = 0 16497 return nil 16498} 16499 16500// Next advances to the next value. If there was an error making 16501// the request the iterator does not advance and the error is returned. 16502// Deprecated: Use NextWithContext() instead. 16503func (iter *VirtualNetworkGatewayListConnectionsResultIterator) Next() error { 16504 return iter.NextWithContext(context.Background()) 16505} 16506 16507// NotDone returns true if the enumeration should be started or is not yet complete. 16508func (iter VirtualNetworkGatewayListConnectionsResultIterator) NotDone() bool { 16509 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 16510} 16511 16512// Response returns the raw server response from the last page request. 16513func (iter VirtualNetworkGatewayListConnectionsResultIterator) Response() VirtualNetworkGatewayListConnectionsResult { 16514 return iter.page.Response() 16515} 16516 16517// Value returns the current value or a zero-initialized value if the 16518// iterator has advanced beyond the end of the collection. 16519func (iter VirtualNetworkGatewayListConnectionsResultIterator) Value() VirtualNetworkGatewayConnectionListEntity { 16520 if !iter.page.NotDone() { 16521 return VirtualNetworkGatewayConnectionListEntity{} 16522 } 16523 return iter.page.Values()[iter.i] 16524} 16525 16526// Creates a new instance of the VirtualNetworkGatewayListConnectionsResultIterator type. 16527func NewVirtualNetworkGatewayListConnectionsResultIterator(page VirtualNetworkGatewayListConnectionsResultPage) VirtualNetworkGatewayListConnectionsResultIterator { 16528 return VirtualNetworkGatewayListConnectionsResultIterator{page: page} 16529} 16530 16531// IsEmpty returns true if the ListResult contains no values. 16532func (vnglcr VirtualNetworkGatewayListConnectionsResult) IsEmpty() bool { 16533 return vnglcr.Value == nil || len(*vnglcr.Value) == 0 16534} 16535 16536// virtualNetworkGatewayListConnectionsResultPreparer prepares a request to retrieve the next set of results. 16537// It returns nil if no more results exist. 16538func (vnglcr VirtualNetworkGatewayListConnectionsResult) virtualNetworkGatewayListConnectionsResultPreparer(ctx context.Context) (*http.Request, error) { 16539 if vnglcr.NextLink == nil || len(to.String(vnglcr.NextLink)) < 1 { 16540 return nil, nil 16541 } 16542 return autorest.Prepare((&http.Request{}).WithContext(ctx), 16543 autorest.AsJSON(), 16544 autorest.AsGet(), 16545 autorest.WithBaseURL(to.String(vnglcr.NextLink))) 16546} 16547 16548// VirtualNetworkGatewayListConnectionsResultPage contains a page of 16549// VirtualNetworkGatewayConnectionListEntity values. 16550type VirtualNetworkGatewayListConnectionsResultPage struct { 16551 fn func(context.Context, VirtualNetworkGatewayListConnectionsResult) (VirtualNetworkGatewayListConnectionsResult, error) 16552 vnglcr VirtualNetworkGatewayListConnectionsResult 16553} 16554 16555// NextWithContext advances to the next page of values. If there was an error making 16556// the request the page does not advance and the error is returned. 16557func (page *VirtualNetworkGatewayListConnectionsResultPage) NextWithContext(ctx context.Context) (err error) { 16558 if tracing.IsEnabled() { 16559 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewayListConnectionsResultPage.NextWithContext") 16560 defer func() { 16561 sc := -1 16562 if page.Response().Response.Response != nil { 16563 sc = page.Response().Response.Response.StatusCode 16564 } 16565 tracing.EndSpan(ctx, sc, err) 16566 }() 16567 } 16568 next, err := page.fn(ctx, page.vnglcr) 16569 if err != nil { 16570 return err 16571 } 16572 page.vnglcr = next 16573 return nil 16574} 16575 16576// Next advances to the next page of values. If there was an error making 16577// the request the page does not advance and the error is returned. 16578// Deprecated: Use NextWithContext() instead. 16579func (page *VirtualNetworkGatewayListConnectionsResultPage) Next() error { 16580 return page.NextWithContext(context.Background()) 16581} 16582 16583// NotDone returns true if the page enumeration should be started or is not yet complete. 16584func (page VirtualNetworkGatewayListConnectionsResultPage) NotDone() bool { 16585 return !page.vnglcr.IsEmpty() 16586} 16587 16588// Response returns the raw server response from the last page request. 16589func (page VirtualNetworkGatewayListConnectionsResultPage) Response() VirtualNetworkGatewayListConnectionsResult { 16590 return page.vnglcr 16591} 16592 16593// Values returns the slice of values for the current page or nil if there are no values. 16594func (page VirtualNetworkGatewayListConnectionsResultPage) Values() []VirtualNetworkGatewayConnectionListEntity { 16595 if page.vnglcr.IsEmpty() { 16596 return nil 16597 } 16598 return *page.vnglcr.Value 16599} 16600 16601// Creates a new instance of the VirtualNetworkGatewayListConnectionsResultPage type. 16602func NewVirtualNetworkGatewayListConnectionsResultPage(getNextPage func(context.Context, VirtualNetworkGatewayListConnectionsResult) (VirtualNetworkGatewayListConnectionsResult, error)) VirtualNetworkGatewayListConnectionsResultPage { 16603 return VirtualNetworkGatewayListConnectionsResultPage{fn: getNextPage} 16604} 16605 16606// VirtualNetworkGatewayListResult response for the ListVirtualNetworkGateways API service call. 16607type VirtualNetworkGatewayListResult struct { 16608 autorest.Response `json:"-"` 16609 // Value - Gets a list of VirtualNetworkGateway resources that exists in a resource group. 16610 Value *[]VirtualNetworkGateway `json:"value,omitempty"` 16611 // NextLink - READ-ONLY; The URL to get the next set of results. 16612 NextLink *string `json:"nextLink,omitempty"` 16613} 16614 16615// VirtualNetworkGatewayListResultIterator provides access to a complete listing of VirtualNetworkGateway 16616// values. 16617type VirtualNetworkGatewayListResultIterator struct { 16618 i int 16619 page VirtualNetworkGatewayListResultPage 16620} 16621 16622// NextWithContext advances to the next value. If there was an error making 16623// the request the iterator does not advance and the error is returned. 16624func (iter *VirtualNetworkGatewayListResultIterator) NextWithContext(ctx context.Context) (err error) { 16625 if tracing.IsEnabled() { 16626 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewayListResultIterator.NextWithContext") 16627 defer func() { 16628 sc := -1 16629 if iter.Response().Response.Response != nil { 16630 sc = iter.Response().Response.Response.StatusCode 16631 } 16632 tracing.EndSpan(ctx, sc, err) 16633 }() 16634 } 16635 iter.i++ 16636 if iter.i < len(iter.page.Values()) { 16637 return nil 16638 } 16639 err = iter.page.NextWithContext(ctx) 16640 if err != nil { 16641 iter.i-- 16642 return err 16643 } 16644 iter.i = 0 16645 return nil 16646} 16647 16648// Next advances to the next value. If there was an error making 16649// the request the iterator does not advance and the error is returned. 16650// Deprecated: Use NextWithContext() instead. 16651func (iter *VirtualNetworkGatewayListResultIterator) Next() error { 16652 return iter.NextWithContext(context.Background()) 16653} 16654 16655// NotDone returns true if the enumeration should be started or is not yet complete. 16656func (iter VirtualNetworkGatewayListResultIterator) NotDone() bool { 16657 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 16658} 16659 16660// Response returns the raw server response from the last page request. 16661func (iter VirtualNetworkGatewayListResultIterator) Response() VirtualNetworkGatewayListResult { 16662 return iter.page.Response() 16663} 16664 16665// Value returns the current value or a zero-initialized value if the 16666// iterator has advanced beyond the end of the collection. 16667func (iter VirtualNetworkGatewayListResultIterator) Value() VirtualNetworkGateway { 16668 if !iter.page.NotDone() { 16669 return VirtualNetworkGateway{} 16670 } 16671 return iter.page.Values()[iter.i] 16672} 16673 16674// Creates a new instance of the VirtualNetworkGatewayListResultIterator type. 16675func NewVirtualNetworkGatewayListResultIterator(page VirtualNetworkGatewayListResultPage) VirtualNetworkGatewayListResultIterator { 16676 return VirtualNetworkGatewayListResultIterator{page: page} 16677} 16678 16679// IsEmpty returns true if the ListResult contains no values. 16680func (vnglr VirtualNetworkGatewayListResult) IsEmpty() bool { 16681 return vnglr.Value == nil || len(*vnglr.Value) == 0 16682} 16683 16684// virtualNetworkGatewayListResultPreparer prepares a request to retrieve the next set of results. 16685// It returns nil if no more results exist. 16686func (vnglr VirtualNetworkGatewayListResult) virtualNetworkGatewayListResultPreparer(ctx context.Context) (*http.Request, error) { 16687 if vnglr.NextLink == nil || len(to.String(vnglr.NextLink)) < 1 { 16688 return nil, nil 16689 } 16690 return autorest.Prepare((&http.Request{}).WithContext(ctx), 16691 autorest.AsJSON(), 16692 autorest.AsGet(), 16693 autorest.WithBaseURL(to.String(vnglr.NextLink))) 16694} 16695 16696// VirtualNetworkGatewayListResultPage contains a page of VirtualNetworkGateway values. 16697type VirtualNetworkGatewayListResultPage struct { 16698 fn func(context.Context, VirtualNetworkGatewayListResult) (VirtualNetworkGatewayListResult, error) 16699 vnglr VirtualNetworkGatewayListResult 16700} 16701 16702// NextWithContext advances to the next page of values. If there was an error making 16703// the request the page does not advance and the error is returned. 16704func (page *VirtualNetworkGatewayListResultPage) NextWithContext(ctx context.Context) (err error) { 16705 if tracing.IsEnabled() { 16706 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkGatewayListResultPage.NextWithContext") 16707 defer func() { 16708 sc := -1 16709 if page.Response().Response.Response != nil { 16710 sc = page.Response().Response.Response.StatusCode 16711 } 16712 tracing.EndSpan(ctx, sc, err) 16713 }() 16714 } 16715 next, err := page.fn(ctx, page.vnglr) 16716 if err != nil { 16717 return err 16718 } 16719 page.vnglr = next 16720 return nil 16721} 16722 16723// Next advances to the next page of values. If there was an error making 16724// the request the page does not advance and the error is returned. 16725// Deprecated: Use NextWithContext() instead. 16726func (page *VirtualNetworkGatewayListResultPage) Next() error { 16727 return page.NextWithContext(context.Background()) 16728} 16729 16730// NotDone returns true if the page enumeration should be started or is not yet complete. 16731func (page VirtualNetworkGatewayListResultPage) NotDone() bool { 16732 return !page.vnglr.IsEmpty() 16733} 16734 16735// Response returns the raw server response from the last page request. 16736func (page VirtualNetworkGatewayListResultPage) Response() VirtualNetworkGatewayListResult { 16737 return page.vnglr 16738} 16739 16740// Values returns the slice of values for the current page or nil if there are no values. 16741func (page VirtualNetworkGatewayListResultPage) Values() []VirtualNetworkGateway { 16742 if page.vnglr.IsEmpty() { 16743 return nil 16744 } 16745 return *page.vnglr.Value 16746} 16747 16748// Creates a new instance of the VirtualNetworkGatewayListResultPage type. 16749func NewVirtualNetworkGatewayListResultPage(getNextPage func(context.Context, VirtualNetworkGatewayListResult) (VirtualNetworkGatewayListResult, error)) VirtualNetworkGatewayListResultPage { 16750 return VirtualNetworkGatewayListResultPage{fn: getNextPage} 16751} 16752 16753// VirtualNetworkGatewayPropertiesFormat virtualNetworkGateway properties 16754type VirtualNetworkGatewayPropertiesFormat struct { 16755 // IPConfigurations - IP configurations for virtual network gateway. 16756 IPConfigurations *[]VirtualNetworkGatewayIPConfiguration `json:"ipConfigurations,omitempty"` 16757 // GatewayType - The type of this virtual network gateway. Possible values are: 'Vpn' and 'ExpressRoute'. Possible values include: 'VirtualNetworkGatewayTypeVpn', 'VirtualNetworkGatewayTypeExpressRoute' 16758 GatewayType VirtualNetworkGatewayType `json:"gatewayType,omitempty"` 16759 // VpnType - The type of this virtual network gateway. Possible values are: 'PolicyBased' and 'RouteBased'. Possible values include: 'PolicyBased', 'RouteBased' 16760 VpnType VpnType `json:"vpnType,omitempty"` 16761 // EnableBgp - Whether BGP is enabled for this virtual network gateway or not. 16762 EnableBgp *bool `json:"enableBgp,omitempty"` 16763 // ActiveActive - ActiveActive flag 16764 ActiveActive *bool `json:"activeActive,omitempty"` 16765 // GatewayDefaultSite - The reference of the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. 16766 GatewayDefaultSite *SubResource `json:"gatewayDefaultSite,omitempty"` 16767 // Sku - The reference of the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. 16768 Sku *VirtualNetworkGatewaySku `json:"sku,omitempty"` 16769 // VpnClientConfiguration - The reference of the VpnClientConfiguration resource which represents the P2S VpnClient configurations. 16770 VpnClientConfiguration *VpnClientConfiguration `json:"vpnClientConfiguration,omitempty"` 16771 // BgpSettings - Virtual network gateway's BGP speaker settings. 16772 BgpSettings *BgpSettings `json:"bgpSettings,omitempty"` 16773 // ResourceGUID - The resource GUID property of the VirtualNetworkGateway resource. 16774 ResourceGUID *string `json:"resourceGuid,omitempty"` 16775 // ProvisioningState - READ-ONLY; The provisioning state of the VirtualNetworkGateway resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 16776 ProvisioningState *string `json:"provisioningState,omitempty"` 16777} 16778 16779// VirtualNetworkGatewaysCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 16780// long-running operation. 16781type VirtualNetworkGatewaysCreateOrUpdateFuture struct { 16782 azure.Future 16783} 16784 16785// Result returns the result of the asynchronous operation. 16786// If the operation has not completed it will return an error. 16787func (future *VirtualNetworkGatewaysCreateOrUpdateFuture) Result(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 16788 var done bool 16789 done, err = future.DoneWithContext(context.Background(), client) 16790 if err != nil { 16791 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 16792 return 16793 } 16794 if !done { 16795 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysCreateOrUpdateFuture") 16796 return 16797 } 16798 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16799 if vng.Response.Response, err = future.GetResult(sender); err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 16800 vng, err = client.CreateOrUpdateResponder(vng.Response.Response) 16801 if err != nil { 16802 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysCreateOrUpdateFuture", "Result", vng.Response.Response, "Failure responding to request") 16803 } 16804 } 16805 return 16806} 16807 16808// VirtualNetworkGatewaysDeleteFuture an abstraction for monitoring and retrieving the results of a 16809// long-running operation. 16810type VirtualNetworkGatewaysDeleteFuture struct { 16811 azure.Future 16812} 16813 16814// Result returns the result of the asynchronous operation. 16815// If the operation has not completed it will return an error. 16816func (future *VirtualNetworkGatewaysDeleteFuture) Result(client VirtualNetworkGatewaysClient) (ar autorest.Response, err error) { 16817 var done bool 16818 done, err = future.DoneWithContext(context.Background(), client) 16819 if err != nil { 16820 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysDeleteFuture", "Result", future.Response(), "Polling failure") 16821 return 16822 } 16823 if !done { 16824 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysDeleteFuture") 16825 return 16826 } 16827 ar.Response = future.Response() 16828 return 16829} 16830 16831// VirtualNetworkGatewaysGeneratevpnclientpackageFuture an abstraction for monitoring and retrieving the 16832// results of a long-running operation. 16833type VirtualNetworkGatewaysGeneratevpnclientpackageFuture struct { 16834 azure.Future 16835} 16836 16837// Result returns the result of the asynchronous operation. 16838// If the operation has not completed it will return an error. 16839func (future *VirtualNetworkGatewaysGeneratevpnclientpackageFuture) Result(client VirtualNetworkGatewaysClient) (s String, err error) { 16840 var done bool 16841 done, err = future.DoneWithContext(context.Background(), client) 16842 if err != nil { 16843 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture", "Result", future.Response(), "Polling failure") 16844 return 16845 } 16846 if !done { 16847 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture") 16848 return 16849 } 16850 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16851 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 16852 s, err = client.GeneratevpnclientpackageResponder(s.Response.Response) 16853 if err != nil { 16854 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture", "Result", s.Response.Response, "Failure responding to request") 16855 } 16856 } 16857 return 16858} 16859 16860// VirtualNetworkGatewaysGenerateVpnProfileFuture an abstraction for monitoring and retrieving the results 16861// of a long-running operation. 16862type VirtualNetworkGatewaysGenerateVpnProfileFuture struct { 16863 azure.Future 16864} 16865 16866// Result returns the result of the asynchronous operation. 16867// If the operation has not completed it will return an error. 16868func (future *VirtualNetworkGatewaysGenerateVpnProfileFuture) Result(client VirtualNetworkGatewaysClient) (s String, err error) { 16869 var done bool 16870 done, err = future.DoneWithContext(context.Background(), client) 16871 if err != nil { 16872 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGenerateVpnProfileFuture", "Result", future.Response(), "Polling failure") 16873 return 16874 } 16875 if !done { 16876 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGenerateVpnProfileFuture") 16877 return 16878 } 16879 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16880 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 16881 s, err = client.GenerateVpnProfileResponder(s.Response.Response) 16882 if err != nil { 16883 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGenerateVpnProfileFuture", "Result", s.Response.Response, "Failure responding to request") 16884 } 16885 } 16886 return 16887} 16888 16889// VirtualNetworkGatewaysGetAdvertisedRoutesFuture an abstraction for monitoring and retrieving the results 16890// of a long-running operation. 16891type VirtualNetworkGatewaysGetAdvertisedRoutesFuture struct { 16892 azure.Future 16893} 16894 16895// Result returns the result of the asynchronous operation. 16896// If the operation has not completed it will return an error. 16897func (future *VirtualNetworkGatewaysGetAdvertisedRoutesFuture) Result(client VirtualNetworkGatewaysClient) (grlr GatewayRouteListResult, err error) { 16898 var done bool 16899 done, err = future.DoneWithContext(context.Background(), client) 16900 if err != nil { 16901 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture", "Result", future.Response(), "Polling failure") 16902 return 16903 } 16904 if !done { 16905 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture") 16906 return 16907 } 16908 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16909 if grlr.Response.Response, err = future.GetResult(sender); err == nil && grlr.Response.Response.StatusCode != http.StatusNoContent { 16910 grlr, err = client.GetAdvertisedRoutesResponder(grlr.Response.Response) 16911 if err != nil { 16912 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture", "Result", grlr.Response.Response, "Failure responding to request") 16913 } 16914 } 16915 return 16916} 16917 16918// VirtualNetworkGatewaysGetBgpPeerStatusFuture an abstraction for monitoring and retrieving the results of 16919// a long-running operation. 16920type VirtualNetworkGatewaysGetBgpPeerStatusFuture struct { 16921 azure.Future 16922} 16923 16924// Result returns the result of the asynchronous operation. 16925// If the operation has not completed it will return an error. 16926func (future *VirtualNetworkGatewaysGetBgpPeerStatusFuture) Result(client VirtualNetworkGatewaysClient) (bpslr BgpPeerStatusListResult, err error) { 16927 var done bool 16928 done, err = future.DoneWithContext(context.Background(), client) 16929 if err != nil { 16930 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetBgpPeerStatusFuture", "Result", future.Response(), "Polling failure") 16931 return 16932 } 16933 if !done { 16934 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetBgpPeerStatusFuture") 16935 return 16936 } 16937 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16938 if bpslr.Response.Response, err = future.GetResult(sender); err == nil && bpslr.Response.Response.StatusCode != http.StatusNoContent { 16939 bpslr, err = client.GetBgpPeerStatusResponder(bpslr.Response.Response) 16940 if err != nil { 16941 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetBgpPeerStatusFuture", "Result", bpslr.Response.Response, "Failure responding to request") 16942 } 16943 } 16944 return 16945} 16946 16947// VirtualNetworkGatewaysGetLearnedRoutesFuture an abstraction for monitoring and retrieving the results of 16948// a long-running operation. 16949type VirtualNetworkGatewaysGetLearnedRoutesFuture struct { 16950 azure.Future 16951} 16952 16953// Result returns the result of the asynchronous operation. 16954// If the operation has not completed it will return an error. 16955func (future *VirtualNetworkGatewaysGetLearnedRoutesFuture) Result(client VirtualNetworkGatewaysClient) (grlr GatewayRouteListResult, err error) { 16956 var done bool 16957 done, err = future.DoneWithContext(context.Background(), client) 16958 if err != nil { 16959 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetLearnedRoutesFuture", "Result", future.Response(), "Polling failure") 16960 return 16961 } 16962 if !done { 16963 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetLearnedRoutesFuture") 16964 return 16965 } 16966 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16967 if grlr.Response.Response, err = future.GetResult(sender); err == nil && grlr.Response.Response.StatusCode != http.StatusNoContent { 16968 grlr, err = client.GetLearnedRoutesResponder(grlr.Response.Response) 16969 if err != nil { 16970 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetLearnedRoutesFuture", "Result", grlr.Response.Response, "Failure responding to request") 16971 } 16972 } 16973 return 16974} 16975 16976// VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture an abstraction for monitoring and retrieving the 16977// results of a long-running operation. 16978type VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture struct { 16979 azure.Future 16980} 16981 16982// Result returns the result of the asynchronous operation. 16983// If the operation has not completed it will return an error. 16984func (future *VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture) Result(client VirtualNetworkGatewaysClient) (vcipp VpnClientIPsecParameters, err error) { 16985 var done bool 16986 done, err = future.DoneWithContext(context.Background(), client) 16987 if err != nil { 16988 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture", "Result", future.Response(), "Polling failure") 16989 return 16990 } 16991 if !done { 16992 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture") 16993 return 16994 } 16995 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 16996 if vcipp.Response.Response, err = future.GetResult(sender); err == nil && vcipp.Response.Response.StatusCode != http.StatusNoContent { 16997 vcipp, err = client.GetVpnclientIpsecParametersResponder(vcipp.Response.Response) 16998 if err != nil { 16999 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture", "Result", vcipp.Response.Response, "Failure responding to request") 17000 } 17001 } 17002 return 17003} 17004 17005// VirtualNetworkGatewaysGetVpnProfilePackageURLFuture an abstraction for monitoring and retrieving the 17006// results of a long-running operation. 17007type VirtualNetworkGatewaysGetVpnProfilePackageURLFuture struct { 17008 azure.Future 17009} 17010 17011// Result returns the result of the asynchronous operation. 17012// If the operation has not completed it will return an error. 17013func (future *VirtualNetworkGatewaysGetVpnProfilePackageURLFuture) Result(client VirtualNetworkGatewaysClient) (s String, err error) { 17014 var done bool 17015 done, err = future.DoneWithContext(context.Background(), client) 17016 if err != nil { 17017 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture", "Result", future.Response(), "Polling failure") 17018 return 17019 } 17020 if !done { 17021 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture") 17022 return 17023 } 17024 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 17025 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 17026 s, err = client.GetVpnProfilePackageURLResponder(s.Response.Response) 17027 if err != nil { 17028 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture", "Result", s.Response.Response, "Failure responding to request") 17029 } 17030 } 17031 return 17032} 17033 17034// VirtualNetworkGatewaySku virtualNetworkGatewaySku details 17035type VirtualNetworkGatewaySku struct { 17036 // Name - Gateway SKU name. Possible values include: 'VirtualNetworkGatewaySkuNameBasic', 'VirtualNetworkGatewaySkuNameHighPerformance', 'VirtualNetworkGatewaySkuNameStandard', 'VirtualNetworkGatewaySkuNameUltraPerformance', 'VirtualNetworkGatewaySkuNameVpnGw1', 'VirtualNetworkGatewaySkuNameVpnGw2', 'VirtualNetworkGatewaySkuNameVpnGw3' 17037 Name VirtualNetworkGatewaySkuName `json:"name,omitempty"` 17038 // Tier - Gateway SKU tier. Possible values include: 'VirtualNetworkGatewaySkuTierBasic', 'VirtualNetworkGatewaySkuTierHighPerformance', 'VirtualNetworkGatewaySkuTierStandard', 'VirtualNetworkGatewaySkuTierUltraPerformance', 'VirtualNetworkGatewaySkuTierVpnGw1', 'VirtualNetworkGatewaySkuTierVpnGw2', 'VirtualNetworkGatewaySkuTierVpnGw3' 17039 Tier VirtualNetworkGatewaySkuTier `json:"tier,omitempty"` 17040 // Capacity - The capacity. 17041 Capacity *int32 `json:"capacity,omitempty"` 17042} 17043 17044// VirtualNetworkGatewaysResetFuture an abstraction for monitoring and retrieving the results of a 17045// long-running operation. 17046type VirtualNetworkGatewaysResetFuture struct { 17047 azure.Future 17048} 17049 17050// Result returns the result of the asynchronous operation. 17051// If the operation has not completed it will return an error. 17052func (future *VirtualNetworkGatewaysResetFuture) Result(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 17053 var done bool 17054 done, err = future.DoneWithContext(context.Background(), client) 17055 if err != nil { 17056 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetFuture", "Result", future.Response(), "Polling failure") 17057 return 17058 } 17059 if !done { 17060 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysResetFuture") 17061 return 17062 } 17063 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 17064 if vng.Response.Response, err = future.GetResult(sender); err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 17065 vng, err = client.ResetResponder(vng.Response.Response) 17066 if err != nil { 17067 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetFuture", "Result", vng.Response.Response, "Failure responding to request") 17068 } 17069 } 17070 return 17071} 17072 17073// VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture an abstraction for monitoring and retrieving the 17074// results of a long-running operation. 17075type VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture struct { 17076 azure.Future 17077} 17078 17079// Result returns the result of the asynchronous operation. 17080// If the operation has not completed it will return an error. 17081func (future *VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture) Result(client VirtualNetworkGatewaysClient) (vcipp VpnClientIPsecParameters, err error) { 17082 var done bool 17083 done, err = future.DoneWithContext(context.Background(), client) 17084 if err != nil { 17085 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture", "Result", future.Response(), "Polling failure") 17086 return 17087 } 17088 if !done { 17089 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture") 17090 return 17091 } 17092 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 17093 if vcipp.Response.Response, err = future.GetResult(sender); err == nil && vcipp.Response.Response.StatusCode != http.StatusNoContent { 17094 vcipp, err = client.SetVpnclientIpsecParametersResponder(vcipp.Response.Response) 17095 if err != nil { 17096 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture", "Result", vcipp.Response.Response, "Failure responding to request") 17097 } 17098 } 17099 return 17100} 17101 17102// VirtualNetworkGatewaysUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 17103// long-running operation. 17104type VirtualNetworkGatewaysUpdateTagsFuture struct { 17105 azure.Future 17106} 17107 17108// Result returns the result of the asynchronous operation. 17109// If the operation has not completed it will return an error. 17110func (future *VirtualNetworkGatewaysUpdateTagsFuture) Result(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 17111 var done bool 17112 done, err = future.DoneWithContext(context.Background(), client) 17113 if err != nil { 17114 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysUpdateTagsFuture", "Result", future.Response(), "Polling failure") 17115 return 17116 } 17117 if !done { 17118 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysUpdateTagsFuture") 17119 return 17120 } 17121 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 17122 if vng.Response.Response, err = future.GetResult(sender); err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 17123 vng, err = client.UpdateTagsResponder(vng.Response.Response) 17124 if err != nil { 17125 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysUpdateTagsFuture", "Result", vng.Response.Response, "Failure responding to request") 17126 } 17127 } 17128 return 17129} 17130 17131// VirtualNetworkListResult response for the ListVirtualNetworks API service call. 17132type VirtualNetworkListResult struct { 17133 autorest.Response `json:"-"` 17134 // Value - Gets a list of VirtualNetwork resources in a resource group. 17135 Value *[]VirtualNetwork `json:"value,omitempty"` 17136 // NextLink - The URL to get the next set of results. 17137 NextLink *string `json:"nextLink,omitempty"` 17138} 17139 17140// VirtualNetworkListResultIterator provides access to a complete listing of VirtualNetwork values. 17141type VirtualNetworkListResultIterator struct { 17142 i int 17143 page VirtualNetworkListResultPage 17144} 17145 17146// NextWithContext advances to the next value. If there was an error making 17147// the request the iterator does not advance and the error is returned. 17148func (iter *VirtualNetworkListResultIterator) NextWithContext(ctx context.Context) (err error) { 17149 if tracing.IsEnabled() { 17150 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkListResultIterator.NextWithContext") 17151 defer func() { 17152 sc := -1 17153 if iter.Response().Response.Response != nil { 17154 sc = iter.Response().Response.Response.StatusCode 17155 } 17156 tracing.EndSpan(ctx, sc, err) 17157 }() 17158 } 17159 iter.i++ 17160 if iter.i < len(iter.page.Values()) { 17161 return nil 17162 } 17163 err = iter.page.NextWithContext(ctx) 17164 if err != nil { 17165 iter.i-- 17166 return err 17167 } 17168 iter.i = 0 17169 return nil 17170} 17171 17172// Next advances to the next value. If there was an error making 17173// the request the iterator does not advance and the error is returned. 17174// Deprecated: Use NextWithContext() instead. 17175func (iter *VirtualNetworkListResultIterator) Next() error { 17176 return iter.NextWithContext(context.Background()) 17177} 17178 17179// NotDone returns true if the enumeration should be started or is not yet complete. 17180func (iter VirtualNetworkListResultIterator) NotDone() bool { 17181 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 17182} 17183 17184// Response returns the raw server response from the last page request. 17185func (iter VirtualNetworkListResultIterator) Response() VirtualNetworkListResult { 17186 return iter.page.Response() 17187} 17188 17189// Value returns the current value or a zero-initialized value if the 17190// iterator has advanced beyond the end of the collection. 17191func (iter VirtualNetworkListResultIterator) Value() VirtualNetwork { 17192 if !iter.page.NotDone() { 17193 return VirtualNetwork{} 17194 } 17195 return iter.page.Values()[iter.i] 17196} 17197 17198// Creates a new instance of the VirtualNetworkListResultIterator type. 17199func NewVirtualNetworkListResultIterator(page VirtualNetworkListResultPage) VirtualNetworkListResultIterator { 17200 return VirtualNetworkListResultIterator{page: page} 17201} 17202 17203// IsEmpty returns true if the ListResult contains no values. 17204func (vnlr VirtualNetworkListResult) IsEmpty() bool { 17205 return vnlr.Value == nil || len(*vnlr.Value) == 0 17206} 17207 17208// virtualNetworkListResultPreparer prepares a request to retrieve the next set of results. 17209// It returns nil if no more results exist. 17210func (vnlr VirtualNetworkListResult) virtualNetworkListResultPreparer(ctx context.Context) (*http.Request, error) { 17211 if vnlr.NextLink == nil || len(to.String(vnlr.NextLink)) < 1 { 17212 return nil, nil 17213 } 17214 return autorest.Prepare((&http.Request{}).WithContext(ctx), 17215 autorest.AsJSON(), 17216 autorest.AsGet(), 17217 autorest.WithBaseURL(to.String(vnlr.NextLink))) 17218} 17219 17220// VirtualNetworkListResultPage contains a page of VirtualNetwork values. 17221type VirtualNetworkListResultPage struct { 17222 fn func(context.Context, VirtualNetworkListResult) (VirtualNetworkListResult, error) 17223 vnlr VirtualNetworkListResult 17224} 17225 17226// NextWithContext advances to the next page of values. If there was an error making 17227// the request the page does not advance and the error is returned. 17228func (page *VirtualNetworkListResultPage) NextWithContext(ctx context.Context) (err error) { 17229 if tracing.IsEnabled() { 17230 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkListResultPage.NextWithContext") 17231 defer func() { 17232 sc := -1 17233 if page.Response().Response.Response != nil { 17234 sc = page.Response().Response.Response.StatusCode 17235 } 17236 tracing.EndSpan(ctx, sc, err) 17237 }() 17238 } 17239 next, err := page.fn(ctx, page.vnlr) 17240 if err != nil { 17241 return err 17242 } 17243 page.vnlr = next 17244 return nil 17245} 17246 17247// Next advances to the next page of values. If there was an error making 17248// the request the page does not advance and the error is returned. 17249// Deprecated: Use NextWithContext() instead. 17250func (page *VirtualNetworkListResultPage) Next() error { 17251 return page.NextWithContext(context.Background()) 17252} 17253 17254// NotDone returns true if the page enumeration should be started or is not yet complete. 17255func (page VirtualNetworkListResultPage) NotDone() bool { 17256 return !page.vnlr.IsEmpty() 17257} 17258 17259// Response returns the raw server response from the last page request. 17260func (page VirtualNetworkListResultPage) Response() VirtualNetworkListResult { 17261 return page.vnlr 17262} 17263 17264// Values returns the slice of values for the current page or nil if there are no values. 17265func (page VirtualNetworkListResultPage) Values() []VirtualNetwork { 17266 if page.vnlr.IsEmpty() { 17267 return nil 17268 } 17269 return *page.vnlr.Value 17270} 17271 17272// Creates a new instance of the VirtualNetworkListResultPage type. 17273func NewVirtualNetworkListResultPage(getNextPage func(context.Context, VirtualNetworkListResult) (VirtualNetworkListResult, error)) VirtualNetworkListResultPage { 17274 return VirtualNetworkListResultPage{fn: getNextPage} 17275} 17276 17277// VirtualNetworkListUsageResult response for the virtual networks GetUsage API service call. 17278type VirtualNetworkListUsageResult struct { 17279 autorest.Response `json:"-"` 17280 // Value - READ-ONLY; VirtualNetwork usage stats. 17281 Value *[]VirtualNetworkUsage `json:"value,omitempty"` 17282 // NextLink - The URL to get the next set of results. 17283 NextLink *string `json:"nextLink,omitempty"` 17284} 17285 17286// VirtualNetworkListUsageResultIterator provides access to a complete listing of VirtualNetworkUsage 17287// values. 17288type VirtualNetworkListUsageResultIterator struct { 17289 i int 17290 page VirtualNetworkListUsageResultPage 17291} 17292 17293// NextWithContext advances to the next value. If there was an error making 17294// the request the iterator does not advance and the error is returned. 17295func (iter *VirtualNetworkListUsageResultIterator) NextWithContext(ctx context.Context) (err error) { 17296 if tracing.IsEnabled() { 17297 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkListUsageResultIterator.NextWithContext") 17298 defer func() { 17299 sc := -1 17300 if iter.Response().Response.Response != nil { 17301 sc = iter.Response().Response.Response.StatusCode 17302 } 17303 tracing.EndSpan(ctx, sc, err) 17304 }() 17305 } 17306 iter.i++ 17307 if iter.i < len(iter.page.Values()) { 17308 return nil 17309 } 17310 err = iter.page.NextWithContext(ctx) 17311 if err != nil { 17312 iter.i-- 17313 return err 17314 } 17315 iter.i = 0 17316 return nil 17317} 17318 17319// Next advances to the next value. If there was an error making 17320// the request the iterator does not advance and the error is returned. 17321// Deprecated: Use NextWithContext() instead. 17322func (iter *VirtualNetworkListUsageResultIterator) Next() error { 17323 return iter.NextWithContext(context.Background()) 17324} 17325 17326// NotDone returns true if the enumeration should be started or is not yet complete. 17327func (iter VirtualNetworkListUsageResultIterator) NotDone() bool { 17328 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 17329} 17330 17331// Response returns the raw server response from the last page request. 17332func (iter VirtualNetworkListUsageResultIterator) Response() VirtualNetworkListUsageResult { 17333 return iter.page.Response() 17334} 17335 17336// Value returns the current value or a zero-initialized value if the 17337// iterator has advanced beyond the end of the collection. 17338func (iter VirtualNetworkListUsageResultIterator) Value() VirtualNetworkUsage { 17339 if !iter.page.NotDone() { 17340 return VirtualNetworkUsage{} 17341 } 17342 return iter.page.Values()[iter.i] 17343} 17344 17345// Creates a new instance of the VirtualNetworkListUsageResultIterator type. 17346func NewVirtualNetworkListUsageResultIterator(page VirtualNetworkListUsageResultPage) VirtualNetworkListUsageResultIterator { 17347 return VirtualNetworkListUsageResultIterator{page: page} 17348} 17349 17350// IsEmpty returns true if the ListResult contains no values. 17351func (vnlur VirtualNetworkListUsageResult) IsEmpty() bool { 17352 return vnlur.Value == nil || len(*vnlur.Value) == 0 17353} 17354 17355// virtualNetworkListUsageResultPreparer prepares a request to retrieve the next set of results. 17356// It returns nil if no more results exist. 17357func (vnlur VirtualNetworkListUsageResult) virtualNetworkListUsageResultPreparer(ctx context.Context) (*http.Request, error) { 17358 if vnlur.NextLink == nil || len(to.String(vnlur.NextLink)) < 1 { 17359 return nil, nil 17360 } 17361 return autorest.Prepare((&http.Request{}).WithContext(ctx), 17362 autorest.AsJSON(), 17363 autorest.AsGet(), 17364 autorest.WithBaseURL(to.String(vnlur.NextLink))) 17365} 17366 17367// VirtualNetworkListUsageResultPage contains a page of VirtualNetworkUsage values. 17368type VirtualNetworkListUsageResultPage struct { 17369 fn func(context.Context, VirtualNetworkListUsageResult) (VirtualNetworkListUsageResult, error) 17370 vnlur VirtualNetworkListUsageResult 17371} 17372 17373// NextWithContext advances to the next page of values. If there was an error making 17374// the request the page does not advance and the error is returned. 17375func (page *VirtualNetworkListUsageResultPage) NextWithContext(ctx context.Context) (err error) { 17376 if tracing.IsEnabled() { 17377 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkListUsageResultPage.NextWithContext") 17378 defer func() { 17379 sc := -1 17380 if page.Response().Response.Response != nil { 17381 sc = page.Response().Response.Response.StatusCode 17382 } 17383 tracing.EndSpan(ctx, sc, err) 17384 }() 17385 } 17386 next, err := page.fn(ctx, page.vnlur) 17387 if err != nil { 17388 return err 17389 } 17390 page.vnlur = next 17391 return nil 17392} 17393 17394// Next advances to the next page of values. If there was an error making 17395// the request the page does not advance and the error is returned. 17396// Deprecated: Use NextWithContext() instead. 17397func (page *VirtualNetworkListUsageResultPage) Next() error { 17398 return page.NextWithContext(context.Background()) 17399} 17400 17401// NotDone returns true if the page enumeration should be started or is not yet complete. 17402func (page VirtualNetworkListUsageResultPage) NotDone() bool { 17403 return !page.vnlur.IsEmpty() 17404} 17405 17406// Response returns the raw server response from the last page request. 17407func (page VirtualNetworkListUsageResultPage) Response() VirtualNetworkListUsageResult { 17408 return page.vnlur 17409} 17410 17411// Values returns the slice of values for the current page or nil if there are no values. 17412func (page VirtualNetworkListUsageResultPage) Values() []VirtualNetworkUsage { 17413 if page.vnlur.IsEmpty() { 17414 return nil 17415 } 17416 return *page.vnlur.Value 17417} 17418 17419// Creates a new instance of the VirtualNetworkListUsageResultPage type. 17420func NewVirtualNetworkListUsageResultPage(getNextPage func(context.Context, VirtualNetworkListUsageResult) (VirtualNetworkListUsageResult, error)) VirtualNetworkListUsageResultPage { 17421 return VirtualNetworkListUsageResultPage{fn: getNextPage} 17422} 17423 17424// VirtualNetworkPeering peerings in a virtual network resource. 17425type VirtualNetworkPeering struct { 17426 autorest.Response `json:"-"` 17427 // VirtualNetworkPeeringPropertiesFormat - Properties of the virtual network peering. 17428 *VirtualNetworkPeeringPropertiesFormat `json:"properties,omitempty"` 17429 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 17430 Name *string `json:"name,omitempty"` 17431 // Etag - A unique read-only string that changes whenever the resource is updated. 17432 Etag *string `json:"etag,omitempty"` 17433 // ID - Resource ID. 17434 ID *string `json:"id,omitempty"` 17435} 17436 17437// MarshalJSON is the custom marshaler for VirtualNetworkPeering. 17438func (vnp VirtualNetworkPeering) MarshalJSON() ([]byte, error) { 17439 objectMap := make(map[string]interface{}) 17440 if vnp.VirtualNetworkPeeringPropertiesFormat != nil { 17441 objectMap["properties"] = vnp.VirtualNetworkPeeringPropertiesFormat 17442 } 17443 if vnp.Name != nil { 17444 objectMap["name"] = vnp.Name 17445 } 17446 if vnp.Etag != nil { 17447 objectMap["etag"] = vnp.Etag 17448 } 17449 if vnp.ID != nil { 17450 objectMap["id"] = vnp.ID 17451 } 17452 return json.Marshal(objectMap) 17453} 17454 17455// UnmarshalJSON is the custom unmarshaler for VirtualNetworkPeering struct. 17456func (vnp *VirtualNetworkPeering) UnmarshalJSON(body []byte) error { 17457 var m map[string]*json.RawMessage 17458 err := json.Unmarshal(body, &m) 17459 if err != nil { 17460 return err 17461 } 17462 for k, v := range m { 17463 switch k { 17464 case "properties": 17465 if v != nil { 17466 var virtualNetworkPeeringPropertiesFormat VirtualNetworkPeeringPropertiesFormat 17467 err = json.Unmarshal(*v, &virtualNetworkPeeringPropertiesFormat) 17468 if err != nil { 17469 return err 17470 } 17471 vnp.VirtualNetworkPeeringPropertiesFormat = &virtualNetworkPeeringPropertiesFormat 17472 } 17473 case "name": 17474 if v != nil { 17475 var name string 17476 err = json.Unmarshal(*v, &name) 17477 if err != nil { 17478 return err 17479 } 17480 vnp.Name = &name 17481 } 17482 case "etag": 17483 if v != nil { 17484 var etag string 17485 err = json.Unmarshal(*v, &etag) 17486 if err != nil { 17487 return err 17488 } 17489 vnp.Etag = &etag 17490 } 17491 case "id": 17492 if v != nil { 17493 var ID string 17494 err = json.Unmarshal(*v, &ID) 17495 if err != nil { 17496 return err 17497 } 17498 vnp.ID = &ID 17499 } 17500 } 17501 } 17502 17503 return nil 17504} 17505 17506// VirtualNetworkPeeringListResult response for ListSubnets API service call. Retrieves all subnets that 17507// belong to a virtual network. 17508type VirtualNetworkPeeringListResult struct { 17509 autorest.Response `json:"-"` 17510 // Value - The peerings in a virtual network. 17511 Value *[]VirtualNetworkPeering `json:"value,omitempty"` 17512 // NextLink - The URL to get the next set of results. 17513 NextLink *string `json:"nextLink,omitempty"` 17514} 17515 17516// VirtualNetworkPeeringListResultIterator provides access to a complete listing of VirtualNetworkPeering 17517// values. 17518type VirtualNetworkPeeringListResultIterator struct { 17519 i int 17520 page VirtualNetworkPeeringListResultPage 17521} 17522 17523// NextWithContext advances to the next value. If there was an error making 17524// the request the iterator does not advance and the error is returned. 17525func (iter *VirtualNetworkPeeringListResultIterator) NextWithContext(ctx context.Context) (err error) { 17526 if tracing.IsEnabled() { 17527 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkPeeringListResultIterator.NextWithContext") 17528 defer func() { 17529 sc := -1 17530 if iter.Response().Response.Response != nil { 17531 sc = iter.Response().Response.Response.StatusCode 17532 } 17533 tracing.EndSpan(ctx, sc, err) 17534 }() 17535 } 17536 iter.i++ 17537 if iter.i < len(iter.page.Values()) { 17538 return nil 17539 } 17540 err = iter.page.NextWithContext(ctx) 17541 if err != nil { 17542 iter.i-- 17543 return err 17544 } 17545 iter.i = 0 17546 return nil 17547} 17548 17549// Next advances to the next value. If there was an error making 17550// the request the iterator does not advance and the error is returned. 17551// Deprecated: Use NextWithContext() instead. 17552func (iter *VirtualNetworkPeeringListResultIterator) Next() error { 17553 return iter.NextWithContext(context.Background()) 17554} 17555 17556// NotDone returns true if the enumeration should be started or is not yet complete. 17557func (iter VirtualNetworkPeeringListResultIterator) NotDone() bool { 17558 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 17559} 17560 17561// Response returns the raw server response from the last page request. 17562func (iter VirtualNetworkPeeringListResultIterator) Response() VirtualNetworkPeeringListResult { 17563 return iter.page.Response() 17564} 17565 17566// Value returns the current value or a zero-initialized value if the 17567// iterator has advanced beyond the end of the collection. 17568func (iter VirtualNetworkPeeringListResultIterator) Value() VirtualNetworkPeering { 17569 if !iter.page.NotDone() { 17570 return VirtualNetworkPeering{} 17571 } 17572 return iter.page.Values()[iter.i] 17573} 17574 17575// Creates a new instance of the VirtualNetworkPeeringListResultIterator type. 17576func NewVirtualNetworkPeeringListResultIterator(page VirtualNetworkPeeringListResultPage) VirtualNetworkPeeringListResultIterator { 17577 return VirtualNetworkPeeringListResultIterator{page: page} 17578} 17579 17580// IsEmpty returns true if the ListResult contains no values. 17581func (vnplr VirtualNetworkPeeringListResult) IsEmpty() bool { 17582 return vnplr.Value == nil || len(*vnplr.Value) == 0 17583} 17584 17585// virtualNetworkPeeringListResultPreparer prepares a request to retrieve the next set of results. 17586// It returns nil if no more results exist. 17587func (vnplr VirtualNetworkPeeringListResult) virtualNetworkPeeringListResultPreparer(ctx context.Context) (*http.Request, error) { 17588 if vnplr.NextLink == nil || len(to.String(vnplr.NextLink)) < 1 { 17589 return nil, nil 17590 } 17591 return autorest.Prepare((&http.Request{}).WithContext(ctx), 17592 autorest.AsJSON(), 17593 autorest.AsGet(), 17594 autorest.WithBaseURL(to.String(vnplr.NextLink))) 17595} 17596 17597// VirtualNetworkPeeringListResultPage contains a page of VirtualNetworkPeering values. 17598type VirtualNetworkPeeringListResultPage struct { 17599 fn func(context.Context, VirtualNetworkPeeringListResult) (VirtualNetworkPeeringListResult, error) 17600 vnplr VirtualNetworkPeeringListResult 17601} 17602 17603// NextWithContext advances to the next page of values. If there was an error making 17604// the request the page does not advance and the error is returned. 17605func (page *VirtualNetworkPeeringListResultPage) NextWithContext(ctx context.Context) (err error) { 17606 if tracing.IsEnabled() { 17607 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualNetworkPeeringListResultPage.NextWithContext") 17608 defer func() { 17609 sc := -1 17610 if page.Response().Response.Response != nil { 17611 sc = page.Response().Response.Response.StatusCode 17612 } 17613 tracing.EndSpan(ctx, sc, err) 17614 }() 17615 } 17616 next, err := page.fn(ctx, page.vnplr) 17617 if err != nil { 17618 return err 17619 } 17620 page.vnplr = next 17621 return nil 17622} 17623 17624// Next advances to the next page of values. If there was an error making 17625// the request the page does not advance and the error is returned. 17626// Deprecated: Use NextWithContext() instead. 17627func (page *VirtualNetworkPeeringListResultPage) Next() error { 17628 return page.NextWithContext(context.Background()) 17629} 17630 17631// NotDone returns true if the page enumeration should be started or is not yet complete. 17632func (page VirtualNetworkPeeringListResultPage) NotDone() bool { 17633 return !page.vnplr.IsEmpty() 17634} 17635 17636// Response returns the raw server response from the last page request. 17637func (page VirtualNetworkPeeringListResultPage) Response() VirtualNetworkPeeringListResult { 17638 return page.vnplr 17639} 17640 17641// Values returns the slice of values for the current page or nil if there are no values. 17642func (page VirtualNetworkPeeringListResultPage) Values() []VirtualNetworkPeering { 17643 if page.vnplr.IsEmpty() { 17644 return nil 17645 } 17646 return *page.vnplr.Value 17647} 17648 17649// Creates a new instance of the VirtualNetworkPeeringListResultPage type. 17650func NewVirtualNetworkPeeringListResultPage(getNextPage func(context.Context, VirtualNetworkPeeringListResult) (VirtualNetworkPeeringListResult, error)) VirtualNetworkPeeringListResultPage { 17651 return VirtualNetworkPeeringListResultPage{fn: getNextPage} 17652} 17653 17654// VirtualNetworkPeeringPropertiesFormat properties of the virtual network peering. 17655type VirtualNetworkPeeringPropertiesFormat struct { 17656 // AllowVirtualNetworkAccess - Whether the VMs in the linked virtual network space would be able to access all the VMs in local Virtual network space. 17657 AllowVirtualNetworkAccess *bool `json:"allowVirtualNetworkAccess,omitempty"` 17658 // AllowForwardedTraffic - Whether the forwarded traffic from the VMs in the remote virtual network will be allowed/disallowed. 17659 AllowForwardedTraffic *bool `json:"allowForwardedTraffic,omitempty"` 17660 // AllowGatewayTransit - If gateway links can be used in remote virtual networking to link to this virtual network. 17661 AllowGatewayTransit *bool `json:"allowGatewayTransit,omitempty"` 17662 // UseRemoteGateways - 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 will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway. 17663 UseRemoteGateways *bool `json:"useRemoteGateways,omitempty"` 17664 // RemoteVirtualNetwork - The reference of the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). 17665 RemoteVirtualNetwork *SubResource `json:"remoteVirtualNetwork,omitempty"` 17666 // RemoteAddressSpace - The reference of the remote virtual network address space. 17667 RemoteAddressSpace *AddressSpace `json:"remoteAddressSpace,omitempty"` 17668 // PeeringState - The status of the virtual network peering. Possible values are 'Initiated', 'Connected', and 'Disconnected'. Possible values include: 'VirtualNetworkPeeringStateInitiated', 'VirtualNetworkPeeringStateConnected', 'VirtualNetworkPeeringStateDisconnected' 17669 PeeringState VirtualNetworkPeeringState `json:"peeringState,omitempty"` 17670 // ProvisioningState - The provisioning state of the resource. 17671 ProvisioningState *string `json:"provisioningState,omitempty"` 17672} 17673 17674// VirtualNetworkPeeringsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 17675// long-running operation. 17676type VirtualNetworkPeeringsCreateOrUpdateFuture struct { 17677 azure.Future 17678} 17679 17680// Result returns the result of the asynchronous operation. 17681// If the operation has not completed it will return an error. 17682func (future *VirtualNetworkPeeringsCreateOrUpdateFuture) Result(client VirtualNetworkPeeringsClient) (vnp VirtualNetworkPeering, err error) { 17683 var done bool 17684 done, err = future.DoneWithContext(context.Background(), client) 17685 if err != nil { 17686 err = autorest.NewErrorWithError(err, "network.VirtualNetworkPeeringsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 17687 return 17688 } 17689 if !done { 17690 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkPeeringsCreateOrUpdateFuture") 17691 return 17692 } 17693 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 17694 if vnp.Response.Response, err = future.GetResult(sender); err == nil && vnp.Response.Response.StatusCode != http.StatusNoContent { 17695 vnp, err = client.CreateOrUpdateResponder(vnp.Response.Response) 17696 if err != nil { 17697 err = autorest.NewErrorWithError(err, "network.VirtualNetworkPeeringsCreateOrUpdateFuture", "Result", vnp.Response.Response, "Failure responding to request") 17698 } 17699 } 17700 return 17701} 17702 17703// VirtualNetworkPeeringsDeleteFuture an abstraction for monitoring and retrieving the results of a 17704// long-running operation. 17705type VirtualNetworkPeeringsDeleteFuture struct { 17706 azure.Future 17707} 17708 17709// Result returns the result of the asynchronous operation. 17710// If the operation has not completed it will return an error. 17711func (future *VirtualNetworkPeeringsDeleteFuture) Result(client VirtualNetworkPeeringsClient) (ar autorest.Response, err error) { 17712 var done bool 17713 done, err = future.DoneWithContext(context.Background(), client) 17714 if err != nil { 17715 err = autorest.NewErrorWithError(err, "network.VirtualNetworkPeeringsDeleteFuture", "Result", future.Response(), "Polling failure") 17716 return 17717 } 17718 if !done { 17719 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkPeeringsDeleteFuture") 17720 return 17721 } 17722 ar.Response = future.Response() 17723 return 17724} 17725 17726// VirtualNetworkPropertiesFormat properties of the virtual network. 17727type VirtualNetworkPropertiesFormat struct { 17728 // AddressSpace - The AddressSpace that contains an array of IP address ranges that can be used by subnets. 17729 AddressSpace *AddressSpace `json:"addressSpace,omitempty"` 17730 // DhcpOptions - The dhcpOptions that contains an array of DNS servers available to VMs deployed in the virtual network. 17731 DhcpOptions *DhcpOptions `json:"dhcpOptions,omitempty"` 17732 // Subnets - A list of subnets in a Virtual Network. 17733 Subnets *[]Subnet `json:"subnets,omitempty"` 17734 // VirtualNetworkPeerings - A list of peerings in a Virtual Network. 17735 VirtualNetworkPeerings *[]VirtualNetworkPeering `json:"virtualNetworkPeerings,omitempty"` 17736 // ResourceGUID - The resourceGuid property of the Virtual Network resource. 17737 ResourceGUID *string `json:"resourceGuid,omitempty"` 17738 // ProvisioningState - The provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 17739 ProvisioningState *string `json:"provisioningState,omitempty"` 17740 // EnableDdosProtection - Indicates if DDoS protection is enabled for all the protected resources in the virtual network. It requires a DDoS protection plan associated with the resource. 17741 EnableDdosProtection *bool `json:"enableDdosProtection,omitempty"` 17742 // EnableVMProtection - Indicates if VM protection is enabled for all the subnets in the virtual network. 17743 EnableVMProtection *bool `json:"enableVmProtection,omitempty"` 17744 // DdosProtectionPlan - The DDoS protection plan associated with the virtual network. 17745 DdosProtectionPlan *SubResource `json:"ddosProtectionPlan,omitempty"` 17746} 17747 17748// VirtualNetworksCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 17749// long-running operation. 17750type VirtualNetworksCreateOrUpdateFuture struct { 17751 azure.Future 17752} 17753 17754// Result returns the result of the asynchronous operation. 17755// If the operation has not completed it will return an error. 17756func (future *VirtualNetworksCreateOrUpdateFuture) Result(client VirtualNetworksClient) (vn VirtualNetwork, err error) { 17757 var done bool 17758 done, err = future.DoneWithContext(context.Background(), client) 17759 if err != nil { 17760 err = autorest.NewErrorWithError(err, "network.VirtualNetworksCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 17761 return 17762 } 17763 if !done { 17764 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworksCreateOrUpdateFuture") 17765 return 17766 } 17767 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 17768 if vn.Response.Response, err = future.GetResult(sender); err == nil && vn.Response.Response.StatusCode != http.StatusNoContent { 17769 vn, err = client.CreateOrUpdateResponder(vn.Response.Response) 17770 if err != nil { 17771 err = autorest.NewErrorWithError(err, "network.VirtualNetworksCreateOrUpdateFuture", "Result", vn.Response.Response, "Failure responding to request") 17772 } 17773 } 17774 return 17775} 17776 17777// VirtualNetworksDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 17778// operation. 17779type VirtualNetworksDeleteFuture struct { 17780 azure.Future 17781} 17782 17783// Result returns the result of the asynchronous operation. 17784// If the operation has not completed it will return an error. 17785func (future *VirtualNetworksDeleteFuture) Result(client VirtualNetworksClient) (ar autorest.Response, err error) { 17786 var done bool 17787 done, err = future.DoneWithContext(context.Background(), client) 17788 if err != nil { 17789 err = autorest.NewErrorWithError(err, "network.VirtualNetworksDeleteFuture", "Result", future.Response(), "Polling failure") 17790 return 17791 } 17792 if !done { 17793 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworksDeleteFuture") 17794 return 17795 } 17796 ar.Response = future.Response() 17797 return 17798} 17799 17800// VirtualNetworksUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 17801// long-running operation. 17802type VirtualNetworksUpdateTagsFuture struct { 17803 azure.Future 17804} 17805 17806// Result returns the result of the asynchronous operation. 17807// If the operation has not completed it will return an error. 17808func (future *VirtualNetworksUpdateTagsFuture) Result(client VirtualNetworksClient) (vn VirtualNetwork, err error) { 17809 var done bool 17810 done, err = future.DoneWithContext(context.Background(), client) 17811 if err != nil { 17812 err = autorest.NewErrorWithError(err, "network.VirtualNetworksUpdateTagsFuture", "Result", future.Response(), "Polling failure") 17813 return 17814 } 17815 if !done { 17816 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworksUpdateTagsFuture") 17817 return 17818 } 17819 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 17820 if vn.Response.Response, err = future.GetResult(sender); err == nil && vn.Response.Response.StatusCode != http.StatusNoContent { 17821 vn, err = client.UpdateTagsResponder(vn.Response.Response) 17822 if err != nil { 17823 err = autorest.NewErrorWithError(err, "network.VirtualNetworksUpdateTagsFuture", "Result", vn.Response.Response, "Failure responding to request") 17824 } 17825 } 17826 return 17827} 17828 17829// VirtualNetworkUsage usage details for subnet. 17830type VirtualNetworkUsage struct { 17831 // CurrentValue - READ-ONLY; Indicates number of IPs used from the Subnet. 17832 CurrentValue *float64 `json:"currentValue,omitempty"` 17833 // ID - READ-ONLY; Subnet identifier. 17834 ID *string `json:"id,omitempty"` 17835 // Limit - READ-ONLY; Indicates the size of the subnet. 17836 Limit *float64 `json:"limit,omitempty"` 17837 // Name - READ-ONLY; The name containing common and localized value for usage. 17838 Name *VirtualNetworkUsageName `json:"name,omitempty"` 17839 // Unit - READ-ONLY; Usage units. Returns 'Count' 17840 Unit *string `json:"unit,omitempty"` 17841} 17842 17843// VirtualNetworkUsageName usage strings container. 17844type VirtualNetworkUsageName struct { 17845 // LocalizedValue - READ-ONLY; Localized subnet size and usage string. 17846 LocalizedValue *string `json:"localizedValue,omitempty"` 17847 // Value - READ-ONLY; Subnet size and usage string. 17848 Value *string `json:"value,omitempty"` 17849} 17850 17851// VpnClientConfiguration vpnClientConfiguration for P2S client. 17852type VpnClientConfiguration struct { 17853 // VpnClientAddressPool - The reference of the address space resource which represents Address space for P2S VpnClient. 17854 VpnClientAddressPool *AddressSpace `json:"vpnClientAddressPool,omitempty"` 17855 // VpnClientRootCertificates - VpnClientRootCertificate for virtual network gateway. 17856 VpnClientRootCertificates *[]VpnClientRootCertificate `json:"vpnClientRootCertificates,omitempty"` 17857 // VpnClientRevokedCertificates - VpnClientRevokedCertificate for Virtual network gateway. 17858 VpnClientRevokedCertificates *[]VpnClientRevokedCertificate `json:"vpnClientRevokedCertificates,omitempty"` 17859 // VpnClientProtocols - VpnClientProtocols for Virtual network gateway. 17860 VpnClientProtocols *[]VpnClientProtocol `json:"vpnClientProtocols,omitempty"` 17861 // VpnClientIpsecPolicies - VpnClientIpsecPolicies for virtual network gateway P2S client. 17862 VpnClientIpsecPolicies *[]IpsecPolicy `json:"vpnClientIpsecPolicies,omitempty"` 17863 // RadiusServerAddress - The radius server address property of the VirtualNetworkGateway resource for vpn client connection. 17864 RadiusServerAddress *string `json:"radiusServerAddress,omitempty"` 17865 // RadiusServerSecret - The radius secret property of the VirtualNetworkGateway resource for vpn client connection. 17866 RadiusServerSecret *string `json:"radiusServerSecret,omitempty"` 17867} 17868 17869// VpnClientIPsecParameters an IPSec parameters for a virtual network gateway P2S connection. 17870type VpnClientIPsecParameters struct { 17871 autorest.Response `json:"-"` 17872 // SaLifeTimeSeconds - The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for P2S client. 17873 SaLifeTimeSeconds *int32 `json:"saLifeTimeSeconds,omitempty"` 17874 // SaDataSizeKilobytes - The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for P2S client.. 17875 SaDataSizeKilobytes *int32 `json:"saDataSizeKilobytes,omitempty"` 17876 // IpsecEncryption - The IPSec encryption algorithm (IKE phase 1). Possible values include: 'IpsecEncryptionNone', 'IpsecEncryptionDES', 'IpsecEncryptionDES3', 'IpsecEncryptionAES128', 'IpsecEncryptionAES192', 'IpsecEncryptionAES256', 'IpsecEncryptionGCMAES128', 'IpsecEncryptionGCMAES192', 'IpsecEncryptionGCMAES256' 17877 IpsecEncryption IpsecEncryption `json:"ipsecEncryption,omitempty"` 17878 // IpsecIntegrity - The IPSec integrity algorithm (IKE phase 1). Possible values include: 'IpsecIntegrityMD5', 'IpsecIntegritySHA1', 'IpsecIntegritySHA256', 'IpsecIntegrityGCMAES128', 'IpsecIntegrityGCMAES192', 'IpsecIntegrityGCMAES256' 17879 IpsecIntegrity IpsecIntegrity `json:"ipsecIntegrity,omitempty"` 17880 // IkeEncryption - The IKE encryption algorithm (IKE phase 2). Possible values include: 'DES', 'DES3', 'AES128', 'AES192', 'AES256', 'GCMAES256', 'GCMAES128' 17881 IkeEncryption IkeEncryption `json:"ikeEncryption,omitempty"` 17882 // IkeIntegrity - The IKE integrity algorithm (IKE phase 2). Possible values include: 'IkeIntegrityMD5', 'IkeIntegritySHA1', 'IkeIntegritySHA256', 'IkeIntegritySHA384', 'IkeIntegrityGCMAES256', 'IkeIntegrityGCMAES128' 17883 IkeIntegrity IkeIntegrity `json:"ikeIntegrity,omitempty"` 17884 // DhGroup - The DH Groups used in IKE Phase 1 for initial SA. Possible values include: 'None', 'DHGroup1', 'DHGroup2', 'DHGroup14', 'DHGroup2048', 'ECP256', 'ECP384', 'DHGroup24' 17885 DhGroup DhGroup `json:"dhGroup,omitempty"` 17886 // PfsGroup - The Pfs Groups used in IKE Phase 2 for new child SA. Possible values include: 'PfsGroupNone', 'PfsGroupPFS1', 'PfsGroupPFS2', 'PfsGroupPFS2048', 'PfsGroupECP256', 'PfsGroupECP384', 'PfsGroupPFS24', 'PfsGroupPFS14', 'PfsGroupPFSMM' 17887 PfsGroup PfsGroup `json:"pfsGroup,omitempty"` 17888} 17889 17890// VpnClientParameters vpn Client Parameters for package generation 17891type VpnClientParameters struct { 17892 // ProcessorArchitecture - VPN client Processor Architecture. Possible values are: 'AMD64' and 'X86'. Possible values include: 'Amd64', 'X86' 17893 ProcessorArchitecture ProcessorArchitecture `json:"processorArchitecture,omitempty"` 17894 // AuthenticationMethod - VPN client Authentication Method. Possible values are: 'EAPTLS' and 'EAPMSCHAPv2'. Possible values include: 'EAPTLS', 'EAPMSCHAPv2' 17895 AuthenticationMethod AuthenticationMethod `json:"authenticationMethod,omitempty"` 17896 // RadiusServerAuthCertificate - The public certificate data for the radius server authentication certificate as a Base-64 encoded string. Required only if external radius authentication has been configured with EAPTLS authentication. 17897 RadiusServerAuthCertificate *string `json:"radiusServerAuthCertificate,omitempty"` 17898 // ClientRootCertificates - A list of client root certificates public certificate data encoded as Base-64 strings. Optional parameter for external radius based authentication with EAPTLS. 17899 ClientRootCertificates *[]string `json:"clientRootCertificates,omitempty"` 17900} 17901 17902// VpnClientRevokedCertificate VPN client revoked certificate of virtual network gateway. 17903type VpnClientRevokedCertificate struct { 17904 // VpnClientRevokedCertificatePropertiesFormat - Properties of the vpn client revoked certificate. 17905 *VpnClientRevokedCertificatePropertiesFormat `json:"properties,omitempty"` 17906 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 17907 Name *string `json:"name,omitempty"` 17908 // Etag - A unique read-only string that changes whenever the resource is updated. 17909 Etag *string `json:"etag,omitempty"` 17910 // ID - Resource ID. 17911 ID *string `json:"id,omitempty"` 17912} 17913 17914// MarshalJSON is the custom marshaler for VpnClientRevokedCertificate. 17915func (vcrc VpnClientRevokedCertificate) MarshalJSON() ([]byte, error) { 17916 objectMap := make(map[string]interface{}) 17917 if vcrc.VpnClientRevokedCertificatePropertiesFormat != nil { 17918 objectMap["properties"] = vcrc.VpnClientRevokedCertificatePropertiesFormat 17919 } 17920 if vcrc.Name != nil { 17921 objectMap["name"] = vcrc.Name 17922 } 17923 if vcrc.Etag != nil { 17924 objectMap["etag"] = vcrc.Etag 17925 } 17926 if vcrc.ID != nil { 17927 objectMap["id"] = vcrc.ID 17928 } 17929 return json.Marshal(objectMap) 17930} 17931 17932// UnmarshalJSON is the custom unmarshaler for VpnClientRevokedCertificate struct. 17933func (vcrc *VpnClientRevokedCertificate) UnmarshalJSON(body []byte) error { 17934 var m map[string]*json.RawMessage 17935 err := json.Unmarshal(body, &m) 17936 if err != nil { 17937 return err 17938 } 17939 for k, v := range m { 17940 switch k { 17941 case "properties": 17942 if v != nil { 17943 var vpnClientRevokedCertificatePropertiesFormat VpnClientRevokedCertificatePropertiesFormat 17944 err = json.Unmarshal(*v, &vpnClientRevokedCertificatePropertiesFormat) 17945 if err != nil { 17946 return err 17947 } 17948 vcrc.VpnClientRevokedCertificatePropertiesFormat = &vpnClientRevokedCertificatePropertiesFormat 17949 } 17950 case "name": 17951 if v != nil { 17952 var name string 17953 err = json.Unmarshal(*v, &name) 17954 if err != nil { 17955 return err 17956 } 17957 vcrc.Name = &name 17958 } 17959 case "etag": 17960 if v != nil { 17961 var etag string 17962 err = json.Unmarshal(*v, &etag) 17963 if err != nil { 17964 return err 17965 } 17966 vcrc.Etag = &etag 17967 } 17968 case "id": 17969 if v != nil { 17970 var ID string 17971 err = json.Unmarshal(*v, &ID) 17972 if err != nil { 17973 return err 17974 } 17975 vcrc.ID = &ID 17976 } 17977 } 17978 } 17979 17980 return nil 17981} 17982 17983// VpnClientRevokedCertificatePropertiesFormat properties of the revoked VPN client certificate of virtual 17984// network gateway. 17985type VpnClientRevokedCertificatePropertiesFormat struct { 17986 // Thumbprint - The revoked VPN client certificate thumbprint. 17987 Thumbprint *string `json:"thumbprint,omitempty"` 17988 // ProvisioningState - READ-ONLY; The provisioning state of the VPN client revoked certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 17989 ProvisioningState *string `json:"provisioningState,omitempty"` 17990} 17991 17992// VpnClientRootCertificate VPN client root certificate of virtual network gateway 17993type VpnClientRootCertificate struct { 17994 // VpnClientRootCertificatePropertiesFormat - Properties of the vpn client root certificate. 17995 *VpnClientRootCertificatePropertiesFormat `json:"properties,omitempty"` 17996 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 17997 Name *string `json:"name,omitempty"` 17998 // Etag - A unique read-only string that changes whenever the resource is updated. 17999 Etag *string `json:"etag,omitempty"` 18000 // ID - Resource ID. 18001 ID *string `json:"id,omitempty"` 18002} 18003 18004// MarshalJSON is the custom marshaler for VpnClientRootCertificate. 18005func (vcrc VpnClientRootCertificate) MarshalJSON() ([]byte, error) { 18006 objectMap := make(map[string]interface{}) 18007 if vcrc.VpnClientRootCertificatePropertiesFormat != nil { 18008 objectMap["properties"] = vcrc.VpnClientRootCertificatePropertiesFormat 18009 } 18010 if vcrc.Name != nil { 18011 objectMap["name"] = vcrc.Name 18012 } 18013 if vcrc.Etag != nil { 18014 objectMap["etag"] = vcrc.Etag 18015 } 18016 if vcrc.ID != nil { 18017 objectMap["id"] = vcrc.ID 18018 } 18019 return json.Marshal(objectMap) 18020} 18021 18022// UnmarshalJSON is the custom unmarshaler for VpnClientRootCertificate struct. 18023func (vcrc *VpnClientRootCertificate) UnmarshalJSON(body []byte) error { 18024 var m map[string]*json.RawMessage 18025 err := json.Unmarshal(body, &m) 18026 if err != nil { 18027 return err 18028 } 18029 for k, v := range m { 18030 switch k { 18031 case "properties": 18032 if v != nil { 18033 var vpnClientRootCertificatePropertiesFormat VpnClientRootCertificatePropertiesFormat 18034 err = json.Unmarshal(*v, &vpnClientRootCertificatePropertiesFormat) 18035 if err != nil { 18036 return err 18037 } 18038 vcrc.VpnClientRootCertificatePropertiesFormat = &vpnClientRootCertificatePropertiesFormat 18039 } 18040 case "name": 18041 if v != nil { 18042 var name string 18043 err = json.Unmarshal(*v, &name) 18044 if err != nil { 18045 return err 18046 } 18047 vcrc.Name = &name 18048 } 18049 case "etag": 18050 if v != nil { 18051 var etag string 18052 err = json.Unmarshal(*v, &etag) 18053 if err != nil { 18054 return err 18055 } 18056 vcrc.Etag = &etag 18057 } 18058 case "id": 18059 if v != nil { 18060 var ID string 18061 err = json.Unmarshal(*v, &ID) 18062 if err != nil { 18063 return err 18064 } 18065 vcrc.ID = &ID 18066 } 18067 } 18068 } 18069 18070 return nil 18071} 18072 18073// VpnClientRootCertificatePropertiesFormat properties of SSL certificates of application gateway 18074type VpnClientRootCertificatePropertiesFormat struct { 18075 // PublicCertData - The certificate public data. 18076 PublicCertData *string `json:"publicCertData,omitempty"` 18077 // ProvisioningState - READ-ONLY; The provisioning state of the VPN client root certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 18078 ProvisioningState *string `json:"provisioningState,omitempty"` 18079} 18080 18081// VpnDeviceScriptParameters vpn device configuration script generation parameters 18082type VpnDeviceScriptParameters struct { 18083 // Vendor - The vendor for the vpn device. 18084 Vendor *string `json:"vendor,omitempty"` 18085 // DeviceFamily - The device family for the vpn device. 18086 DeviceFamily *string `json:"deviceFamily,omitempty"` 18087 // FirmwareVersion - The firmware version for the vpn device. 18088 FirmwareVersion *string `json:"firmwareVersion,omitempty"` 18089} 18090 18091// Watcher network watcher in a resource group. 18092type Watcher struct { 18093 autorest.Response `json:"-"` 18094 // Etag - A unique read-only string that changes whenever the resource is updated. 18095 Etag *string `json:"etag,omitempty"` 18096 *WatcherPropertiesFormat `json:"properties,omitempty"` 18097 // ID - Resource ID. 18098 ID *string `json:"id,omitempty"` 18099 // Name - READ-ONLY; Resource name. 18100 Name *string `json:"name,omitempty"` 18101 // Type - READ-ONLY; Resource type. 18102 Type *string `json:"type,omitempty"` 18103 // Location - Resource location. 18104 Location *string `json:"location,omitempty"` 18105 // Tags - Resource tags. 18106 Tags map[string]*string `json:"tags"` 18107} 18108 18109// MarshalJSON is the custom marshaler for Watcher. 18110func (w Watcher) MarshalJSON() ([]byte, error) { 18111 objectMap := make(map[string]interface{}) 18112 if w.Etag != nil { 18113 objectMap["etag"] = w.Etag 18114 } 18115 if w.WatcherPropertiesFormat != nil { 18116 objectMap["properties"] = w.WatcherPropertiesFormat 18117 } 18118 if w.ID != nil { 18119 objectMap["id"] = w.ID 18120 } 18121 if w.Location != nil { 18122 objectMap["location"] = w.Location 18123 } 18124 if w.Tags != nil { 18125 objectMap["tags"] = w.Tags 18126 } 18127 return json.Marshal(objectMap) 18128} 18129 18130// UnmarshalJSON is the custom unmarshaler for Watcher struct. 18131func (w *Watcher) UnmarshalJSON(body []byte) error { 18132 var m map[string]*json.RawMessage 18133 err := json.Unmarshal(body, &m) 18134 if err != nil { 18135 return err 18136 } 18137 for k, v := range m { 18138 switch k { 18139 case "etag": 18140 if v != nil { 18141 var etag string 18142 err = json.Unmarshal(*v, &etag) 18143 if err != nil { 18144 return err 18145 } 18146 w.Etag = &etag 18147 } 18148 case "properties": 18149 if v != nil { 18150 var watcherPropertiesFormat WatcherPropertiesFormat 18151 err = json.Unmarshal(*v, &watcherPropertiesFormat) 18152 if err != nil { 18153 return err 18154 } 18155 w.WatcherPropertiesFormat = &watcherPropertiesFormat 18156 } 18157 case "id": 18158 if v != nil { 18159 var ID string 18160 err = json.Unmarshal(*v, &ID) 18161 if err != nil { 18162 return err 18163 } 18164 w.ID = &ID 18165 } 18166 case "name": 18167 if v != nil { 18168 var name string 18169 err = json.Unmarshal(*v, &name) 18170 if err != nil { 18171 return err 18172 } 18173 w.Name = &name 18174 } 18175 case "type": 18176 if v != nil { 18177 var typeVar string 18178 err = json.Unmarshal(*v, &typeVar) 18179 if err != nil { 18180 return err 18181 } 18182 w.Type = &typeVar 18183 } 18184 case "location": 18185 if v != nil { 18186 var location string 18187 err = json.Unmarshal(*v, &location) 18188 if err != nil { 18189 return err 18190 } 18191 w.Location = &location 18192 } 18193 case "tags": 18194 if v != nil { 18195 var tags map[string]*string 18196 err = json.Unmarshal(*v, &tags) 18197 if err != nil { 18198 return err 18199 } 18200 w.Tags = tags 18201 } 18202 } 18203 } 18204 18205 return nil 18206} 18207 18208// WatcherListResult list of network watcher resources. 18209type WatcherListResult struct { 18210 autorest.Response `json:"-"` 18211 Value *[]Watcher `json:"value,omitempty"` 18212} 18213 18214// WatcherPropertiesFormat the network watcher properties. 18215type WatcherPropertiesFormat struct { 18216 // ProvisioningState - READ-ONLY; The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' 18217 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 18218} 18219 18220// WatchersCheckConnectivityFuture an abstraction for monitoring and retrieving the results of a 18221// long-running operation. 18222type WatchersCheckConnectivityFuture struct { 18223 azure.Future 18224} 18225 18226// Result returns the result of the asynchronous operation. 18227// If the operation has not completed it will return an error. 18228func (future *WatchersCheckConnectivityFuture) Result(client WatchersClient) (ci ConnectivityInformation, err error) { 18229 var done bool 18230 done, err = future.DoneWithContext(context.Background(), client) 18231 if err != nil { 18232 err = autorest.NewErrorWithError(err, "network.WatchersCheckConnectivityFuture", "Result", future.Response(), "Polling failure") 18233 return 18234 } 18235 if !done { 18236 err = azure.NewAsyncOpIncompleteError("network.WatchersCheckConnectivityFuture") 18237 return 18238 } 18239 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18240 if ci.Response.Response, err = future.GetResult(sender); err == nil && ci.Response.Response.StatusCode != http.StatusNoContent { 18241 ci, err = client.CheckConnectivityResponder(ci.Response.Response) 18242 if err != nil { 18243 err = autorest.NewErrorWithError(err, "network.WatchersCheckConnectivityFuture", "Result", ci.Response.Response, "Failure responding to request") 18244 } 18245 } 18246 return 18247} 18248 18249// WatchersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 18250// operation. 18251type WatchersDeleteFuture struct { 18252 azure.Future 18253} 18254 18255// Result returns the result of the asynchronous operation. 18256// If the operation has not completed it will return an error. 18257func (future *WatchersDeleteFuture) Result(client WatchersClient) (ar autorest.Response, err error) { 18258 var done bool 18259 done, err = future.DoneWithContext(context.Background(), client) 18260 if err != nil { 18261 err = autorest.NewErrorWithError(err, "network.WatchersDeleteFuture", "Result", future.Response(), "Polling failure") 18262 return 18263 } 18264 if !done { 18265 err = azure.NewAsyncOpIncompleteError("network.WatchersDeleteFuture") 18266 return 18267 } 18268 ar.Response = future.Response() 18269 return 18270} 18271 18272// WatchersGetAzureReachabilityReportFuture an abstraction for monitoring and retrieving the results of a 18273// long-running operation. 18274type WatchersGetAzureReachabilityReportFuture struct { 18275 azure.Future 18276} 18277 18278// Result returns the result of the asynchronous operation. 18279// If the operation has not completed it will return an error. 18280func (future *WatchersGetAzureReachabilityReportFuture) Result(client WatchersClient) (arr AzureReachabilityReport, err error) { 18281 var done bool 18282 done, err = future.DoneWithContext(context.Background(), client) 18283 if err != nil { 18284 err = autorest.NewErrorWithError(err, "network.WatchersGetAzureReachabilityReportFuture", "Result", future.Response(), "Polling failure") 18285 return 18286 } 18287 if !done { 18288 err = azure.NewAsyncOpIncompleteError("network.WatchersGetAzureReachabilityReportFuture") 18289 return 18290 } 18291 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18292 if arr.Response.Response, err = future.GetResult(sender); err == nil && arr.Response.Response.StatusCode != http.StatusNoContent { 18293 arr, err = client.GetAzureReachabilityReportResponder(arr.Response.Response) 18294 if err != nil { 18295 err = autorest.NewErrorWithError(err, "network.WatchersGetAzureReachabilityReportFuture", "Result", arr.Response.Response, "Failure responding to request") 18296 } 18297 } 18298 return 18299} 18300 18301// WatchersGetFlowLogStatusFuture an abstraction for monitoring and retrieving the results of a 18302// long-running operation. 18303type WatchersGetFlowLogStatusFuture struct { 18304 azure.Future 18305} 18306 18307// Result returns the result of the asynchronous operation. 18308// If the operation has not completed it will return an error. 18309func (future *WatchersGetFlowLogStatusFuture) Result(client WatchersClient) (fli FlowLogInformation, err error) { 18310 var done bool 18311 done, err = future.DoneWithContext(context.Background(), client) 18312 if err != nil { 18313 err = autorest.NewErrorWithError(err, "network.WatchersGetFlowLogStatusFuture", "Result", future.Response(), "Polling failure") 18314 return 18315 } 18316 if !done { 18317 err = azure.NewAsyncOpIncompleteError("network.WatchersGetFlowLogStatusFuture") 18318 return 18319 } 18320 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18321 if fli.Response.Response, err = future.GetResult(sender); err == nil && fli.Response.Response.StatusCode != http.StatusNoContent { 18322 fli, err = client.GetFlowLogStatusResponder(fli.Response.Response) 18323 if err != nil { 18324 err = autorest.NewErrorWithError(err, "network.WatchersGetFlowLogStatusFuture", "Result", fli.Response.Response, "Failure responding to request") 18325 } 18326 } 18327 return 18328} 18329 18330// WatchersGetNextHopFuture an abstraction for monitoring and retrieving the results of a long-running 18331// operation. 18332type WatchersGetNextHopFuture struct { 18333 azure.Future 18334} 18335 18336// Result returns the result of the asynchronous operation. 18337// If the operation has not completed it will return an error. 18338func (future *WatchersGetNextHopFuture) Result(client WatchersClient) (nhr NextHopResult, err error) { 18339 var done bool 18340 done, err = future.DoneWithContext(context.Background(), client) 18341 if err != nil { 18342 err = autorest.NewErrorWithError(err, "network.WatchersGetNextHopFuture", "Result", future.Response(), "Polling failure") 18343 return 18344 } 18345 if !done { 18346 err = azure.NewAsyncOpIncompleteError("network.WatchersGetNextHopFuture") 18347 return 18348 } 18349 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18350 if nhr.Response.Response, err = future.GetResult(sender); err == nil && nhr.Response.Response.StatusCode != http.StatusNoContent { 18351 nhr, err = client.GetNextHopResponder(nhr.Response.Response) 18352 if err != nil { 18353 err = autorest.NewErrorWithError(err, "network.WatchersGetNextHopFuture", "Result", nhr.Response.Response, "Failure responding to request") 18354 } 18355 } 18356 return 18357} 18358 18359// WatchersGetTroubleshootingFuture an abstraction for monitoring and retrieving the results of a 18360// long-running operation. 18361type WatchersGetTroubleshootingFuture struct { 18362 azure.Future 18363} 18364 18365// Result returns the result of the asynchronous operation. 18366// If the operation has not completed it will return an error. 18367func (future *WatchersGetTroubleshootingFuture) Result(client WatchersClient) (tr TroubleshootingResult, err error) { 18368 var done bool 18369 done, err = future.DoneWithContext(context.Background(), client) 18370 if err != nil { 18371 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingFuture", "Result", future.Response(), "Polling failure") 18372 return 18373 } 18374 if !done { 18375 err = azure.NewAsyncOpIncompleteError("network.WatchersGetTroubleshootingFuture") 18376 return 18377 } 18378 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18379 if tr.Response.Response, err = future.GetResult(sender); err == nil && tr.Response.Response.StatusCode != http.StatusNoContent { 18380 tr, err = client.GetTroubleshootingResponder(tr.Response.Response) 18381 if err != nil { 18382 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingFuture", "Result", tr.Response.Response, "Failure responding to request") 18383 } 18384 } 18385 return 18386} 18387 18388// WatchersGetTroubleshootingResultFuture an abstraction for monitoring and retrieving the results of a 18389// long-running operation. 18390type WatchersGetTroubleshootingResultFuture struct { 18391 azure.Future 18392} 18393 18394// Result returns the result of the asynchronous operation. 18395// If the operation has not completed it will return an error. 18396func (future *WatchersGetTroubleshootingResultFuture) Result(client WatchersClient) (tr TroubleshootingResult, err error) { 18397 var done bool 18398 done, err = future.DoneWithContext(context.Background(), client) 18399 if err != nil { 18400 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingResultFuture", "Result", future.Response(), "Polling failure") 18401 return 18402 } 18403 if !done { 18404 err = azure.NewAsyncOpIncompleteError("network.WatchersGetTroubleshootingResultFuture") 18405 return 18406 } 18407 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18408 if tr.Response.Response, err = future.GetResult(sender); err == nil && tr.Response.Response.StatusCode != http.StatusNoContent { 18409 tr, err = client.GetTroubleshootingResultResponder(tr.Response.Response) 18410 if err != nil { 18411 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingResultFuture", "Result", tr.Response.Response, "Failure responding to request") 18412 } 18413 } 18414 return 18415} 18416 18417// WatchersGetVMSecurityRulesFuture an abstraction for monitoring and retrieving the results of a 18418// long-running operation. 18419type WatchersGetVMSecurityRulesFuture struct { 18420 azure.Future 18421} 18422 18423// Result returns the result of the asynchronous operation. 18424// If the operation has not completed it will return an error. 18425func (future *WatchersGetVMSecurityRulesFuture) Result(client WatchersClient) (sgvr SecurityGroupViewResult, err error) { 18426 var done bool 18427 done, err = future.DoneWithContext(context.Background(), client) 18428 if err != nil { 18429 err = autorest.NewErrorWithError(err, "network.WatchersGetVMSecurityRulesFuture", "Result", future.Response(), "Polling failure") 18430 return 18431 } 18432 if !done { 18433 err = azure.NewAsyncOpIncompleteError("network.WatchersGetVMSecurityRulesFuture") 18434 return 18435 } 18436 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18437 if sgvr.Response.Response, err = future.GetResult(sender); err == nil && sgvr.Response.Response.StatusCode != http.StatusNoContent { 18438 sgvr, err = client.GetVMSecurityRulesResponder(sgvr.Response.Response) 18439 if err != nil { 18440 err = autorest.NewErrorWithError(err, "network.WatchersGetVMSecurityRulesFuture", "Result", sgvr.Response.Response, "Failure responding to request") 18441 } 18442 } 18443 return 18444} 18445 18446// WatchersListAvailableProvidersFuture an abstraction for monitoring and retrieving the results of a 18447// long-running operation. 18448type WatchersListAvailableProvidersFuture struct { 18449 azure.Future 18450} 18451 18452// Result returns the result of the asynchronous operation. 18453// If the operation has not completed it will return an error. 18454func (future *WatchersListAvailableProvidersFuture) Result(client WatchersClient) (apl AvailableProvidersList, err error) { 18455 var done bool 18456 done, err = future.DoneWithContext(context.Background(), client) 18457 if err != nil { 18458 err = autorest.NewErrorWithError(err, "network.WatchersListAvailableProvidersFuture", "Result", future.Response(), "Polling failure") 18459 return 18460 } 18461 if !done { 18462 err = azure.NewAsyncOpIncompleteError("network.WatchersListAvailableProvidersFuture") 18463 return 18464 } 18465 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18466 if apl.Response.Response, err = future.GetResult(sender); err == nil && apl.Response.Response.StatusCode != http.StatusNoContent { 18467 apl, err = client.ListAvailableProvidersResponder(apl.Response.Response) 18468 if err != nil { 18469 err = autorest.NewErrorWithError(err, "network.WatchersListAvailableProvidersFuture", "Result", apl.Response.Response, "Failure responding to request") 18470 } 18471 } 18472 return 18473} 18474 18475// WatchersSetFlowLogConfigurationFuture an abstraction for monitoring and retrieving the results of a 18476// long-running operation. 18477type WatchersSetFlowLogConfigurationFuture struct { 18478 azure.Future 18479} 18480 18481// Result returns the result of the asynchronous operation. 18482// If the operation has not completed it will return an error. 18483func (future *WatchersSetFlowLogConfigurationFuture) Result(client WatchersClient) (fli FlowLogInformation, err error) { 18484 var done bool 18485 done, err = future.DoneWithContext(context.Background(), client) 18486 if err != nil { 18487 err = autorest.NewErrorWithError(err, "network.WatchersSetFlowLogConfigurationFuture", "Result", future.Response(), "Polling failure") 18488 return 18489 } 18490 if !done { 18491 err = azure.NewAsyncOpIncompleteError("network.WatchersSetFlowLogConfigurationFuture") 18492 return 18493 } 18494 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18495 if fli.Response.Response, err = future.GetResult(sender); err == nil && fli.Response.Response.StatusCode != http.StatusNoContent { 18496 fli, err = client.SetFlowLogConfigurationResponder(fli.Response.Response) 18497 if err != nil { 18498 err = autorest.NewErrorWithError(err, "network.WatchersSetFlowLogConfigurationFuture", "Result", fli.Response.Response, "Failure responding to request") 18499 } 18500 } 18501 return 18502} 18503 18504// WatchersVerifyIPFlowFuture an abstraction for monitoring and retrieving the results of a long-running 18505// operation. 18506type WatchersVerifyIPFlowFuture struct { 18507 azure.Future 18508} 18509 18510// Result returns the result of the asynchronous operation. 18511// If the operation has not completed it will return an error. 18512func (future *WatchersVerifyIPFlowFuture) Result(client WatchersClient) (vifr VerificationIPFlowResult, err error) { 18513 var done bool 18514 done, err = future.DoneWithContext(context.Background(), client) 18515 if err != nil { 18516 err = autorest.NewErrorWithError(err, "network.WatchersVerifyIPFlowFuture", "Result", future.Response(), "Polling failure") 18517 return 18518 } 18519 if !done { 18520 err = azure.NewAsyncOpIncompleteError("network.WatchersVerifyIPFlowFuture") 18521 return 18522 } 18523 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 18524 if vifr.Response.Response, err = future.GetResult(sender); err == nil && vifr.Response.Response.StatusCode != http.StatusNoContent { 18525 vifr, err = client.VerifyIPFlowResponder(vifr.Response.Response) 18526 if err != nil { 18527 err = autorest.NewErrorWithError(err, "network.WatchersVerifyIPFlowFuture", "Result", vifr.Response.Response, "Failure responding to request") 18528 } 18529 } 18530 return 18531} 18532