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 "encoding/json" 22 "github.com/Azure/go-autorest/autorest" 23 "github.com/Azure/go-autorest/autorest/azure" 24 "github.com/Azure/go-autorest/autorest/date" 25 "github.com/Azure/go-autorest/autorest/to" 26 "net/http" 27) 28 29// Access enumerates the values for access. 30type Access string 31 32const ( 33 // Allow ... 34 Allow Access = "Allow" 35 // Deny ... 36 Deny Access = "Deny" 37) 38 39// PossibleAccessValues returns an array of possible values for the Access const type. 40func PossibleAccessValues() []Access { 41 return []Access{Allow, Deny} 42} 43 44// ApplicationGatewayBackendHealthServerHealth enumerates the values for application gateway backend health 45// server health. 46type ApplicationGatewayBackendHealthServerHealth string 47 48const ( 49 // Down ... 50 Down ApplicationGatewayBackendHealthServerHealth = "Down" 51 // Draining ... 52 Draining ApplicationGatewayBackendHealthServerHealth = "Draining" 53 // Partial ... 54 Partial ApplicationGatewayBackendHealthServerHealth = "Partial" 55 // Unknown ... 56 Unknown ApplicationGatewayBackendHealthServerHealth = "Unknown" 57 // Up ... 58 Up ApplicationGatewayBackendHealthServerHealth = "Up" 59) 60 61// PossibleApplicationGatewayBackendHealthServerHealthValues returns an array of possible values for the ApplicationGatewayBackendHealthServerHealth const type. 62func PossibleApplicationGatewayBackendHealthServerHealthValues() []ApplicationGatewayBackendHealthServerHealth { 63 return []ApplicationGatewayBackendHealthServerHealth{Down, Draining, Partial, Unknown, Up} 64} 65 66// ApplicationGatewayCookieBasedAffinity enumerates the values for application gateway cookie based affinity. 67type ApplicationGatewayCookieBasedAffinity string 68 69const ( 70 // Disabled ... 71 Disabled ApplicationGatewayCookieBasedAffinity = "Disabled" 72 // Enabled ... 73 Enabled ApplicationGatewayCookieBasedAffinity = "Enabled" 74) 75 76// PossibleApplicationGatewayCookieBasedAffinityValues returns an array of possible values for the ApplicationGatewayCookieBasedAffinity const type. 77func PossibleApplicationGatewayCookieBasedAffinityValues() []ApplicationGatewayCookieBasedAffinity { 78 return []ApplicationGatewayCookieBasedAffinity{Disabled, Enabled} 79} 80 81// ApplicationGatewayFirewallMode enumerates the values for application gateway firewall mode. 82type ApplicationGatewayFirewallMode string 83 84const ( 85 // Detection ... 86 Detection ApplicationGatewayFirewallMode = "Detection" 87 // Prevention ... 88 Prevention ApplicationGatewayFirewallMode = "Prevention" 89) 90 91// PossibleApplicationGatewayFirewallModeValues returns an array of possible values for the ApplicationGatewayFirewallMode const type. 92func PossibleApplicationGatewayFirewallModeValues() []ApplicationGatewayFirewallMode { 93 return []ApplicationGatewayFirewallMode{Detection, Prevention} 94} 95 96// ApplicationGatewayOperationalState enumerates the values for application gateway operational state. 97type ApplicationGatewayOperationalState string 98 99const ( 100 // Running ... 101 Running ApplicationGatewayOperationalState = "Running" 102 // Starting ... 103 Starting ApplicationGatewayOperationalState = "Starting" 104 // Stopped ... 105 Stopped ApplicationGatewayOperationalState = "Stopped" 106 // Stopping ... 107 Stopping ApplicationGatewayOperationalState = "Stopping" 108) 109 110// PossibleApplicationGatewayOperationalStateValues returns an array of possible values for the ApplicationGatewayOperationalState const type. 111func PossibleApplicationGatewayOperationalStateValues() []ApplicationGatewayOperationalState { 112 return []ApplicationGatewayOperationalState{Running, Starting, Stopped, Stopping} 113} 114 115// ApplicationGatewayProtocol enumerates the values for application gateway protocol. 116type ApplicationGatewayProtocol string 117 118const ( 119 // HTTP ... 120 HTTP ApplicationGatewayProtocol = "Http" 121 // HTTPS ... 122 HTTPS ApplicationGatewayProtocol = "Https" 123) 124 125// PossibleApplicationGatewayProtocolValues returns an array of possible values for the ApplicationGatewayProtocol const type. 126func PossibleApplicationGatewayProtocolValues() []ApplicationGatewayProtocol { 127 return []ApplicationGatewayProtocol{HTTP, HTTPS} 128} 129 130// ApplicationGatewayRedirectType enumerates the values for application gateway redirect type. 131type ApplicationGatewayRedirectType string 132 133const ( 134 // Found ... 135 Found ApplicationGatewayRedirectType = "Found" 136 // Permanent ... 137 Permanent ApplicationGatewayRedirectType = "Permanent" 138 // SeeOther ... 139 SeeOther ApplicationGatewayRedirectType = "SeeOther" 140 // Temporary ... 141 Temporary ApplicationGatewayRedirectType = "Temporary" 142) 143 144// PossibleApplicationGatewayRedirectTypeValues returns an array of possible values for the ApplicationGatewayRedirectType const type. 145func PossibleApplicationGatewayRedirectTypeValues() []ApplicationGatewayRedirectType { 146 return []ApplicationGatewayRedirectType{Found, Permanent, SeeOther, Temporary} 147} 148 149// ApplicationGatewayRequestRoutingRuleType enumerates the values for application gateway request routing rule 150// type. 151type ApplicationGatewayRequestRoutingRuleType string 152 153const ( 154 // Basic ... 155 Basic ApplicationGatewayRequestRoutingRuleType = "Basic" 156 // PathBasedRouting ... 157 PathBasedRouting ApplicationGatewayRequestRoutingRuleType = "PathBasedRouting" 158) 159 160// PossibleApplicationGatewayRequestRoutingRuleTypeValues returns an array of possible values for the ApplicationGatewayRequestRoutingRuleType const type. 161func PossibleApplicationGatewayRequestRoutingRuleTypeValues() []ApplicationGatewayRequestRoutingRuleType { 162 return []ApplicationGatewayRequestRoutingRuleType{Basic, PathBasedRouting} 163} 164 165// ApplicationGatewaySkuName enumerates the values for application gateway sku name. 166type ApplicationGatewaySkuName string 167 168const ( 169 // StandardLarge ... 170 StandardLarge ApplicationGatewaySkuName = "Standard_Large" 171 // StandardMedium ... 172 StandardMedium ApplicationGatewaySkuName = "Standard_Medium" 173 // StandardSmall ... 174 StandardSmall ApplicationGatewaySkuName = "Standard_Small" 175 // WAFLarge ... 176 WAFLarge ApplicationGatewaySkuName = "WAF_Large" 177 // WAFMedium ... 178 WAFMedium ApplicationGatewaySkuName = "WAF_Medium" 179) 180 181// PossibleApplicationGatewaySkuNameValues returns an array of possible values for the ApplicationGatewaySkuName const type. 182func PossibleApplicationGatewaySkuNameValues() []ApplicationGatewaySkuName { 183 return []ApplicationGatewaySkuName{StandardLarge, StandardMedium, StandardSmall, WAFLarge, WAFMedium} 184} 185 186// ApplicationGatewaySslCipherSuite enumerates the values for application gateway ssl cipher suite. 187type ApplicationGatewaySslCipherSuite string 188 189const ( 190 // TLSDHEDSSWITHAES128CBCSHA ... 191 TLSDHEDSSWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" 192 // TLSDHEDSSWITHAES128CBCSHA256 ... 193 TLSDHEDSSWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" 194 // TLSDHEDSSWITHAES256CBCSHA ... 195 TLSDHEDSSWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" 196 // TLSDHEDSSWITHAES256CBCSHA256 ... 197 TLSDHEDSSWITHAES256CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" 198 // TLSDHERSAWITHAES128CBCSHA ... 199 TLSDHERSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" 200 // TLSDHERSAWITHAES128GCMSHA256 ... 201 TLSDHERSAWITHAES128GCMSHA256 ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" 202 // TLSDHERSAWITHAES256CBCSHA ... 203 TLSDHERSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" 204 // TLSDHERSAWITHAES256GCMSHA384 ... 205 TLSDHERSAWITHAES256GCMSHA384 ApplicationGatewaySslCipherSuite = "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" 206 // TLSECDHEECDSAWITHAES128CBCSHA ... 207 TLSECDHEECDSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" 208 // TLSECDHEECDSAWITHAES128CBCSHA256 ... 209 TLSECDHEECDSAWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" 210 // TLSECDHEECDSAWITHAES128GCMSHA256 ... 211 TLSECDHEECDSAWITHAES128GCMSHA256 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" 212 // TLSECDHEECDSAWITHAES256CBCSHA ... 213 TLSECDHEECDSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" 214 // TLSECDHEECDSAWITHAES256CBCSHA384 ... 215 TLSECDHEECDSAWITHAES256CBCSHA384 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" 216 // TLSECDHEECDSAWITHAES256GCMSHA384 ... 217 TLSECDHEECDSAWITHAES256GCMSHA384 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" 218 // TLSECDHERSAWITHAES128CBCSHA ... 219 TLSECDHERSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" 220 // TLSECDHERSAWITHAES128CBCSHA256 ... 221 TLSECDHERSAWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" 222 // TLSECDHERSAWITHAES256CBCSHA ... 223 TLSECDHERSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" 224 // TLSECDHERSAWITHAES256CBCSHA384 ... 225 TLSECDHERSAWITHAES256CBCSHA384 ApplicationGatewaySslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" 226 // TLSRSAWITH3DESEDECBCSHA ... 227 TLSRSAWITH3DESEDECBCSHA ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_3DES_EDE_CBC_SHA" 228 // TLSRSAWITHAES128CBCSHA ... 229 TLSRSAWITHAES128CBCSHA ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_128_CBC_SHA" 230 // TLSRSAWITHAES128CBCSHA256 ... 231 TLSRSAWITHAES128CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_128_CBC_SHA256" 232 // TLSRSAWITHAES128GCMSHA256 ... 233 TLSRSAWITHAES128GCMSHA256 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_128_GCM_SHA256" 234 // TLSRSAWITHAES256CBCSHA ... 235 TLSRSAWITHAES256CBCSHA ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_256_CBC_SHA" 236 // TLSRSAWITHAES256CBCSHA256 ... 237 TLSRSAWITHAES256CBCSHA256 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_256_CBC_SHA256" 238 // TLSRSAWITHAES256GCMSHA384 ... 239 TLSRSAWITHAES256GCMSHA384 ApplicationGatewaySslCipherSuite = "TLS_RSA_WITH_AES_256_GCM_SHA384" 240) 241 242// PossibleApplicationGatewaySslCipherSuiteValues returns an array of possible values for the ApplicationGatewaySslCipherSuite const type. 243func PossibleApplicationGatewaySslCipherSuiteValues() []ApplicationGatewaySslCipherSuite { 244 return []ApplicationGatewaySslCipherSuite{TLSDHEDSSWITHAES128CBCSHA, TLSDHEDSSWITHAES128CBCSHA256, TLSDHEDSSWITHAES256CBCSHA, TLSDHEDSSWITHAES256CBCSHA256, TLSDHERSAWITHAES128CBCSHA, TLSDHERSAWITHAES128GCMSHA256, TLSDHERSAWITHAES256CBCSHA, TLSDHERSAWITHAES256GCMSHA384, TLSECDHEECDSAWITHAES128CBCSHA, TLSECDHEECDSAWITHAES128CBCSHA256, TLSECDHEECDSAWITHAES128GCMSHA256, TLSECDHEECDSAWITHAES256CBCSHA, TLSECDHEECDSAWITHAES256CBCSHA384, TLSECDHEECDSAWITHAES256GCMSHA384, TLSECDHERSAWITHAES128CBCSHA, TLSECDHERSAWITHAES128CBCSHA256, TLSECDHERSAWITHAES256CBCSHA, TLSECDHERSAWITHAES256CBCSHA384, TLSRSAWITH3DESEDECBCSHA, TLSRSAWITHAES128CBCSHA, TLSRSAWITHAES128CBCSHA256, TLSRSAWITHAES128GCMSHA256, TLSRSAWITHAES256CBCSHA, TLSRSAWITHAES256CBCSHA256, TLSRSAWITHAES256GCMSHA384} 245} 246 247// ApplicationGatewaySslPolicyName enumerates the values for application gateway ssl policy name. 248type ApplicationGatewaySslPolicyName string 249 250const ( 251 // AppGwSslPolicy20150501 ... 252 AppGwSslPolicy20150501 ApplicationGatewaySslPolicyName = "AppGwSslPolicy20150501" 253 // AppGwSslPolicy20170401 ... 254 AppGwSslPolicy20170401 ApplicationGatewaySslPolicyName = "AppGwSslPolicy20170401" 255 // AppGwSslPolicy20170401S ... 256 AppGwSslPolicy20170401S ApplicationGatewaySslPolicyName = "AppGwSslPolicy20170401S" 257) 258 259// PossibleApplicationGatewaySslPolicyNameValues returns an array of possible values for the ApplicationGatewaySslPolicyName const type. 260func PossibleApplicationGatewaySslPolicyNameValues() []ApplicationGatewaySslPolicyName { 261 return []ApplicationGatewaySslPolicyName{AppGwSslPolicy20150501, AppGwSslPolicy20170401, AppGwSslPolicy20170401S} 262} 263 264// ApplicationGatewaySslPolicyType enumerates the values for application gateway ssl policy type. 265type ApplicationGatewaySslPolicyType string 266 267const ( 268 // Custom ... 269 Custom ApplicationGatewaySslPolicyType = "Custom" 270 // Predefined ... 271 Predefined ApplicationGatewaySslPolicyType = "Predefined" 272) 273 274// PossibleApplicationGatewaySslPolicyTypeValues returns an array of possible values for the ApplicationGatewaySslPolicyType const type. 275func PossibleApplicationGatewaySslPolicyTypeValues() []ApplicationGatewaySslPolicyType { 276 return []ApplicationGatewaySslPolicyType{Custom, Predefined} 277} 278 279// ApplicationGatewaySslProtocol enumerates the values for application gateway ssl protocol. 280type ApplicationGatewaySslProtocol string 281 282const ( 283 // TLSv10 ... 284 TLSv10 ApplicationGatewaySslProtocol = "TLSv1_0" 285 // TLSv11 ... 286 TLSv11 ApplicationGatewaySslProtocol = "TLSv1_1" 287 // TLSv12 ... 288 TLSv12 ApplicationGatewaySslProtocol = "TLSv1_2" 289) 290 291// PossibleApplicationGatewaySslProtocolValues returns an array of possible values for the ApplicationGatewaySslProtocol const type. 292func PossibleApplicationGatewaySslProtocolValues() []ApplicationGatewaySslProtocol { 293 return []ApplicationGatewaySslProtocol{TLSv10, TLSv11, TLSv12} 294} 295 296// ApplicationGatewayTier enumerates the values for application gateway tier. 297type ApplicationGatewayTier string 298 299const ( 300 // Standard ... 301 Standard ApplicationGatewayTier = "Standard" 302 // WAF ... 303 WAF ApplicationGatewayTier = "WAF" 304) 305 306// PossibleApplicationGatewayTierValues returns an array of possible values for the ApplicationGatewayTier const type. 307func PossibleApplicationGatewayTierValues() []ApplicationGatewayTier { 308 return []ApplicationGatewayTier{Standard, WAF} 309} 310 311// AssociationType enumerates the values for association type. 312type AssociationType string 313 314const ( 315 // Associated ... 316 Associated AssociationType = "Associated" 317 // Contains ... 318 Contains AssociationType = "Contains" 319) 320 321// PossibleAssociationTypeValues returns an array of possible values for the AssociationType const type. 322func PossibleAssociationTypeValues() []AssociationType { 323 return []AssociationType{Associated, Contains} 324} 325 326// AuthenticationMethod enumerates the values for authentication method. 327type AuthenticationMethod string 328 329const ( 330 // EAPMSCHAPv2 ... 331 EAPMSCHAPv2 AuthenticationMethod = "EAPMSCHAPv2" 332 // EAPTLS ... 333 EAPTLS AuthenticationMethod = "EAPTLS" 334) 335 336// PossibleAuthenticationMethodValues returns an array of possible values for the AuthenticationMethod const type. 337func PossibleAuthenticationMethodValues() []AuthenticationMethod { 338 return []AuthenticationMethod{EAPMSCHAPv2, EAPTLS} 339} 340 341// AuthorizationUseStatus enumerates the values for authorization use status. 342type AuthorizationUseStatus string 343 344const ( 345 // Available ... 346 Available AuthorizationUseStatus = "Available" 347 // InUse ... 348 InUse AuthorizationUseStatus = "InUse" 349) 350 351// PossibleAuthorizationUseStatusValues returns an array of possible values for the AuthorizationUseStatus const type. 352func PossibleAuthorizationUseStatusValues() []AuthorizationUseStatus { 353 return []AuthorizationUseStatus{Available, InUse} 354} 355 356// BgpPeerState enumerates the values for bgp peer state. 357type BgpPeerState string 358 359const ( 360 // BgpPeerStateConnected ... 361 BgpPeerStateConnected BgpPeerState = "Connected" 362 // BgpPeerStateConnecting ... 363 BgpPeerStateConnecting BgpPeerState = "Connecting" 364 // BgpPeerStateIdle ... 365 BgpPeerStateIdle BgpPeerState = "Idle" 366 // BgpPeerStateStopped ... 367 BgpPeerStateStopped BgpPeerState = "Stopped" 368 // BgpPeerStateUnknown ... 369 BgpPeerStateUnknown BgpPeerState = "Unknown" 370) 371 372// PossibleBgpPeerStateValues returns an array of possible values for the BgpPeerState const type. 373func PossibleBgpPeerStateValues() []BgpPeerState { 374 return []BgpPeerState{BgpPeerStateConnected, BgpPeerStateConnecting, BgpPeerStateIdle, BgpPeerStateStopped, BgpPeerStateUnknown} 375} 376 377// ConnectionState enumerates the values for connection state. 378type ConnectionState string 379 380const ( 381 // ConnectionStateReachable ... 382 ConnectionStateReachable ConnectionState = "Reachable" 383 // ConnectionStateUnknown ... 384 ConnectionStateUnknown ConnectionState = "Unknown" 385 // ConnectionStateUnreachable ... 386 ConnectionStateUnreachable ConnectionState = "Unreachable" 387) 388 389// PossibleConnectionStateValues returns an array of possible values for the ConnectionState const type. 390func PossibleConnectionStateValues() []ConnectionState { 391 return []ConnectionState{ConnectionStateReachable, ConnectionStateUnknown, ConnectionStateUnreachable} 392} 393 394// ConnectionStatus enumerates the values for connection status. 395type ConnectionStatus string 396 397const ( 398 // ConnectionStatusConnected ... 399 ConnectionStatusConnected ConnectionStatus = "Connected" 400 // ConnectionStatusDegraded ... 401 ConnectionStatusDegraded ConnectionStatus = "Degraded" 402 // ConnectionStatusDisconnected ... 403 ConnectionStatusDisconnected ConnectionStatus = "Disconnected" 404 // ConnectionStatusUnknown ... 405 ConnectionStatusUnknown ConnectionStatus = "Unknown" 406) 407 408// PossibleConnectionStatusValues returns an array of possible values for the ConnectionStatus const type. 409func PossibleConnectionStatusValues() []ConnectionStatus { 410 return []ConnectionStatus{ConnectionStatusConnected, ConnectionStatusDegraded, ConnectionStatusDisconnected, ConnectionStatusUnknown} 411} 412 413// DhGroup enumerates the values for dh group. 414type DhGroup string 415 416const ( 417 // DHGroup1 ... 418 DHGroup1 DhGroup = "DHGroup1" 419 // DHGroup14 ... 420 DHGroup14 DhGroup = "DHGroup14" 421 // DHGroup2 ... 422 DHGroup2 DhGroup = "DHGroup2" 423 // DHGroup2048 ... 424 DHGroup2048 DhGroup = "DHGroup2048" 425 // DHGroup24 ... 426 DHGroup24 DhGroup = "DHGroup24" 427 // ECP256 ... 428 ECP256 DhGroup = "ECP256" 429 // ECP384 ... 430 ECP384 DhGroup = "ECP384" 431 // None ... 432 None DhGroup = "None" 433) 434 435// PossibleDhGroupValues returns an array of possible values for the DhGroup const type. 436func PossibleDhGroupValues() []DhGroup { 437 return []DhGroup{DHGroup1, DHGroup14, DHGroup2, DHGroup2048, DHGroup24, ECP256, ECP384, None} 438} 439 440// Direction enumerates the values for direction. 441type Direction string 442 443const ( 444 // Inbound ... 445 Inbound Direction = "Inbound" 446 // Outbound ... 447 Outbound Direction = "Outbound" 448) 449 450// PossibleDirectionValues returns an array of possible values for the Direction const type. 451func PossibleDirectionValues() []Direction { 452 return []Direction{Inbound, Outbound} 453} 454 455// EffectiveRouteSource enumerates the values for effective route source. 456type EffectiveRouteSource string 457 458const ( 459 // EffectiveRouteSourceDefault ... 460 EffectiveRouteSourceDefault EffectiveRouteSource = "Default" 461 // EffectiveRouteSourceUnknown ... 462 EffectiveRouteSourceUnknown EffectiveRouteSource = "Unknown" 463 // EffectiveRouteSourceUser ... 464 EffectiveRouteSourceUser EffectiveRouteSource = "User" 465 // EffectiveRouteSourceVirtualNetworkGateway ... 466 EffectiveRouteSourceVirtualNetworkGateway EffectiveRouteSource = "VirtualNetworkGateway" 467) 468 469// PossibleEffectiveRouteSourceValues returns an array of possible values for the EffectiveRouteSource const type. 470func PossibleEffectiveRouteSourceValues() []EffectiveRouteSource { 471 return []EffectiveRouteSource{EffectiveRouteSourceDefault, EffectiveRouteSourceUnknown, EffectiveRouteSourceUser, EffectiveRouteSourceVirtualNetworkGateway} 472} 473 474// EffectiveRouteState enumerates the values for effective route state. 475type EffectiveRouteState string 476 477const ( 478 // Active ... 479 Active EffectiveRouteState = "Active" 480 // Invalid ... 481 Invalid EffectiveRouteState = "Invalid" 482) 483 484// PossibleEffectiveRouteStateValues returns an array of possible values for the EffectiveRouteState const type. 485func PossibleEffectiveRouteStateValues() []EffectiveRouteState { 486 return []EffectiveRouteState{Active, Invalid} 487} 488 489// EffectiveSecurityRuleProtocol enumerates the values for effective security rule protocol. 490type EffectiveSecurityRuleProtocol string 491 492const ( 493 // All ... 494 All EffectiveSecurityRuleProtocol = "All" 495 // TCP ... 496 TCP EffectiveSecurityRuleProtocol = "Tcp" 497 // UDP ... 498 UDP EffectiveSecurityRuleProtocol = "Udp" 499) 500 501// PossibleEffectiveSecurityRuleProtocolValues returns an array of possible values for the EffectiveSecurityRuleProtocol const type. 502func PossibleEffectiveSecurityRuleProtocolValues() []EffectiveSecurityRuleProtocol { 503 return []EffectiveSecurityRuleProtocol{All, TCP, UDP} 504} 505 506// EvaluationState enumerates the values for evaluation state. 507type EvaluationState string 508 509const ( 510 // Completed ... 511 Completed EvaluationState = "Completed" 512 // InProgress ... 513 InProgress EvaluationState = "InProgress" 514 // NotStarted ... 515 NotStarted EvaluationState = "NotStarted" 516) 517 518// PossibleEvaluationStateValues returns an array of possible values for the EvaluationState const type. 519func PossibleEvaluationStateValues() []EvaluationState { 520 return []EvaluationState{Completed, InProgress, NotStarted} 521} 522 523// ExpressRouteCircuitPeeringAdvertisedPublicPrefixState enumerates the values for express route circuit 524// peering advertised public prefix state. 525type ExpressRouteCircuitPeeringAdvertisedPublicPrefixState string 526 527const ( 528 // Configured ... 529 Configured ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "Configured" 530 // Configuring ... 531 Configuring ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "Configuring" 532 // NotConfigured ... 533 NotConfigured ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "NotConfigured" 534 // ValidationNeeded ... 535 ValidationNeeded ExpressRouteCircuitPeeringAdvertisedPublicPrefixState = "ValidationNeeded" 536) 537 538// PossibleExpressRouteCircuitPeeringAdvertisedPublicPrefixStateValues returns an array of possible values for the ExpressRouteCircuitPeeringAdvertisedPublicPrefixState const type. 539func PossibleExpressRouteCircuitPeeringAdvertisedPublicPrefixStateValues() []ExpressRouteCircuitPeeringAdvertisedPublicPrefixState { 540 return []ExpressRouteCircuitPeeringAdvertisedPublicPrefixState{Configured, Configuring, NotConfigured, ValidationNeeded} 541} 542 543// ExpressRouteCircuitPeeringState enumerates the values for express route circuit peering state. 544type ExpressRouteCircuitPeeringState string 545 546const ( 547 // ExpressRouteCircuitPeeringStateDisabled ... 548 ExpressRouteCircuitPeeringStateDisabled ExpressRouteCircuitPeeringState = "Disabled" 549 // ExpressRouteCircuitPeeringStateEnabled ... 550 ExpressRouteCircuitPeeringStateEnabled ExpressRouteCircuitPeeringState = "Enabled" 551) 552 553// PossibleExpressRouteCircuitPeeringStateValues returns an array of possible values for the ExpressRouteCircuitPeeringState const type. 554func PossibleExpressRouteCircuitPeeringStateValues() []ExpressRouteCircuitPeeringState { 555 return []ExpressRouteCircuitPeeringState{ExpressRouteCircuitPeeringStateDisabled, ExpressRouteCircuitPeeringStateEnabled} 556} 557 558// ExpressRouteCircuitPeeringType enumerates the values for express route circuit peering type. 559type ExpressRouteCircuitPeeringType string 560 561const ( 562 // AzurePrivatePeering ... 563 AzurePrivatePeering ExpressRouteCircuitPeeringType = "AzurePrivatePeering" 564 // AzurePublicPeering ... 565 AzurePublicPeering ExpressRouteCircuitPeeringType = "AzurePublicPeering" 566 // MicrosoftPeering ... 567 MicrosoftPeering ExpressRouteCircuitPeeringType = "MicrosoftPeering" 568) 569 570// PossibleExpressRouteCircuitPeeringTypeValues returns an array of possible values for the ExpressRouteCircuitPeeringType const type. 571func PossibleExpressRouteCircuitPeeringTypeValues() []ExpressRouteCircuitPeeringType { 572 return []ExpressRouteCircuitPeeringType{AzurePrivatePeering, AzurePublicPeering, MicrosoftPeering} 573} 574 575// ExpressRouteCircuitSkuFamily enumerates the values for express route circuit sku family. 576type ExpressRouteCircuitSkuFamily string 577 578const ( 579 // MeteredData ... 580 MeteredData ExpressRouteCircuitSkuFamily = "MeteredData" 581 // UnlimitedData ... 582 UnlimitedData ExpressRouteCircuitSkuFamily = "UnlimitedData" 583) 584 585// PossibleExpressRouteCircuitSkuFamilyValues returns an array of possible values for the ExpressRouteCircuitSkuFamily const type. 586func PossibleExpressRouteCircuitSkuFamilyValues() []ExpressRouteCircuitSkuFamily { 587 return []ExpressRouteCircuitSkuFamily{MeteredData, UnlimitedData} 588} 589 590// ExpressRouteCircuitSkuTier enumerates the values for express route circuit sku tier. 591type ExpressRouteCircuitSkuTier string 592 593const ( 594 // ExpressRouteCircuitSkuTierPremium ... 595 ExpressRouteCircuitSkuTierPremium ExpressRouteCircuitSkuTier = "Premium" 596 // ExpressRouteCircuitSkuTierStandard ... 597 ExpressRouteCircuitSkuTierStandard ExpressRouteCircuitSkuTier = "Standard" 598) 599 600// PossibleExpressRouteCircuitSkuTierValues returns an array of possible values for the ExpressRouteCircuitSkuTier const type. 601func PossibleExpressRouteCircuitSkuTierValues() []ExpressRouteCircuitSkuTier { 602 return []ExpressRouteCircuitSkuTier{ExpressRouteCircuitSkuTierPremium, ExpressRouteCircuitSkuTierStandard} 603} 604 605// IkeEncryption enumerates the values for ike encryption. 606type IkeEncryption string 607 608const ( 609 // AES128 ... 610 AES128 IkeEncryption = "AES128" 611 // AES192 ... 612 AES192 IkeEncryption = "AES192" 613 // AES256 ... 614 AES256 IkeEncryption = "AES256" 615 // DES ... 616 DES IkeEncryption = "DES" 617 // DES3 ... 618 DES3 IkeEncryption = "DES3" 619) 620 621// PossibleIkeEncryptionValues returns an array of possible values for the IkeEncryption const type. 622func PossibleIkeEncryptionValues() []IkeEncryption { 623 return []IkeEncryption{AES128, AES192, AES256, DES, DES3} 624} 625 626// IkeIntegrity enumerates the values for ike integrity. 627type IkeIntegrity string 628 629const ( 630 // MD5 ... 631 MD5 IkeIntegrity = "MD5" 632 // SHA1 ... 633 SHA1 IkeIntegrity = "SHA1" 634 // SHA256 ... 635 SHA256 IkeIntegrity = "SHA256" 636 // SHA384 ... 637 SHA384 IkeIntegrity = "SHA384" 638) 639 640// PossibleIkeIntegrityValues returns an array of possible values for the IkeIntegrity const type. 641func PossibleIkeIntegrityValues() []IkeIntegrity { 642 return []IkeIntegrity{MD5, SHA1, SHA256, SHA384} 643} 644 645// IPAllocationMethod enumerates the values for ip allocation method. 646type IPAllocationMethod string 647 648const ( 649 // Dynamic ... 650 Dynamic IPAllocationMethod = "Dynamic" 651 // Static ... 652 Static IPAllocationMethod = "Static" 653) 654 655// PossibleIPAllocationMethodValues returns an array of possible values for the IPAllocationMethod const type. 656func PossibleIPAllocationMethodValues() []IPAllocationMethod { 657 return []IPAllocationMethod{Dynamic, Static} 658} 659 660// IpsecEncryption enumerates the values for ipsec encryption. 661type IpsecEncryption string 662 663const ( 664 // IpsecEncryptionAES128 ... 665 IpsecEncryptionAES128 IpsecEncryption = "AES128" 666 // IpsecEncryptionAES192 ... 667 IpsecEncryptionAES192 IpsecEncryption = "AES192" 668 // IpsecEncryptionAES256 ... 669 IpsecEncryptionAES256 IpsecEncryption = "AES256" 670 // IpsecEncryptionDES ... 671 IpsecEncryptionDES IpsecEncryption = "DES" 672 // IpsecEncryptionDES3 ... 673 IpsecEncryptionDES3 IpsecEncryption = "DES3" 674 // IpsecEncryptionGCMAES128 ... 675 IpsecEncryptionGCMAES128 IpsecEncryption = "GCMAES128" 676 // IpsecEncryptionGCMAES192 ... 677 IpsecEncryptionGCMAES192 IpsecEncryption = "GCMAES192" 678 // IpsecEncryptionGCMAES256 ... 679 IpsecEncryptionGCMAES256 IpsecEncryption = "GCMAES256" 680 // IpsecEncryptionNone ... 681 IpsecEncryptionNone IpsecEncryption = "None" 682) 683 684// PossibleIpsecEncryptionValues returns an array of possible values for the IpsecEncryption const type. 685func PossibleIpsecEncryptionValues() []IpsecEncryption { 686 return []IpsecEncryption{IpsecEncryptionAES128, IpsecEncryptionAES192, IpsecEncryptionAES256, IpsecEncryptionDES, IpsecEncryptionDES3, IpsecEncryptionGCMAES128, IpsecEncryptionGCMAES192, IpsecEncryptionGCMAES256, IpsecEncryptionNone} 687} 688 689// IpsecIntegrity enumerates the values for ipsec integrity. 690type IpsecIntegrity string 691 692const ( 693 // IpsecIntegrityGCMAES128 ... 694 IpsecIntegrityGCMAES128 IpsecIntegrity = "GCMAES128" 695 // IpsecIntegrityGCMAES192 ... 696 IpsecIntegrityGCMAES192 IpsecIntegrity = "GCMAES192" 697 // IpsecIntegrityGCMAES256 ... 698 IpsecIntegrityGCMAES256 IpsecIntegrity = "GCMAES256" 699 // IpsecIntegrityMD5 ... 700 IpsecIntegrityMD5 IpsecIntegrity = "MD5" 701 // IpsecIntegritySHA1 ... 702 IpsecIntegritySHA1 IpsecIntegrity = "SHA1" 703 // IpsecIntegritySHA256 ... 704 IpsecIntegritySHA256 IpsecIntegrity = "SHA256" 705) 706 707// PossibleIpsecIntegrityValues returns an array of possible values for the IpsecIntegrity const type. 708func PossibleIpsecIntegrityValues() []IpsecIntegrity { 709 return []IpsecIntegrity{IpsecIntegrityGCMAES128, IpsecIntegrityGCMAES192, IpsecIntegrityGCMAES256, IpsecIntegrityMD5, IpsecIntegritySHA1, IpsecIntegritySHA256} 710} 711 712// IPVersion enumerates the values for ip version. 713type IPVersion string 714 715const ( 716 // IPv4 ... 717 IPv4 IPVersion = "IPv4" 718 // IPv6 ... 719 IPv6 IPVersion = "IPv6" 720) 721 722// PossibleIPVersionValues returns an array of possible values for the IPVersion const type. 723func PossibleIPVersionValues() []IPVersion { 724 return []IPVersion{IPv4, IPv6} 725} 726 727// IssueType enumerates the values for issue type. 728type IssueType string 729 730const ( 731 // IssueTypeAgentStopped ... 732 IssueTypeAgentStopped IssueType = "AgentStopped" 733 // IssueTypeDNSResolution ... 734 IssueTypeDNSResolution IssueType = "DnsResolution" 735 // IssueTypeGuestFirewall ... 736 IssueTypeGuestFirewall IssueType = "GuestFirewall" 737 // IssueTypeNetworkSecurityRule ... 738 IssueTypeNetworkSecurityRule IssueType = "NetworkSecurityRule" 739 // IssueTypePlatform ... 740 IssueTypePlatform IssueType = "Platform" 741 // IssueTypePortThrottled ... 742 IssueTypePortThrottled IssueType = "PortThrottled" 743 // IssueTypeSocketBind ... 744 IssueTypeSocketBind IssueType = "SocketBind" 745 // IssueTypeUnknown ... 746 IssueTypeUnknown IssueType = "Unknown" 747 // IssueTypeUserDefinedRoute ... 748 IssueTypeUserDefinedRoute IssueType = "UserDefinedRoute" 749) 750 751// PossibleIssueTypeValues returns an array of possible values for the IssueType const type. 752func PossibleIssueTypeValues() []IssueType { 753 return []IssueType{IssueTypeAgentStopped, IssueTypeDNSResolution, IssueTypeGuestFirewall, IssueTypeNetworkSecurityRule, IssueTypePlatform, IssueTypePortThrottled, IssueTypeSocketBind, IssueTypeUnknown, IssueTypeUserDefinedRoute} 754} 755 756// LoadBalancerSkuName enumerates the values for load balancer sku name. 757type LoadBalancerSkuName string 758 759const ( 760 // LoadBalancerSkuNameBasic ... 761 LoadBalancerSkuNameBasic LoadBalancerSkuName = "Basic" 762 // LoadBalancerSkuNameStandard ... 763 LoadBalancerSkuNameStandard LoadBalancerSkuName = "Standard" 764) 765 766// PossibleLoadBalancerSkuNameValues returns an array of possible values for the LoadBalancerSkuName const type. 767func PossibleLoadBalancerSkuNameValues() []LoadBalancerSkuName { 768 return []LoadBalancerSkuName{LoadBalancerSkuNameBasic, LoadBalancerSkuNameStandard} 769} 770 771// LoadDistribution enumerates the values for load distribution. 772type LoadDistribution string 773 774const ( 775 // Default ... 776 Default LoadDistribution = "Default" 777 // SourceIP ... 778 SourceIP LoadDistribution = "SourceIP" 779 // SourceIPProtocol ... 780 SourceIPProtocol LoadDistribution = "SourceIPProtocol" 781) 782 783// PossibleLoadDistributionValues returns an array of possible values for the LoadDistribution const type. 784func PossibleLoadDistributionValues() []LoadDistribution { 785 return []LoadDistribution{Default, SourceIP, SourceIPProtocol} 786} 787 788// NextHopType enumerates the values for next hop type. 789type NextHopType string 790 791const ( 792 // NextHopTypeHyperNetGateway ... 793 NextHopTypeHyperNetGateway NextHopType = "HyperNetGateway" 794 // NextHopTypeInternet ... 795 NextHopTypeInternet NextHopType = "Internet" 796 // NextHopTypeNone ... 797 NextHopTypeNone NextHopType = "None" 798 // NextHopTypeVirtualAppliance ... 799 NextHopTypeVirtualAppliance NextHopType = "VirtualAppliance" 800 // NextHopTypeVirtualNetworkGateway ... 801 NextHopTypeVirtualNetworkGateway NextHopType = "VirtualNetworkGateway" 802 // NextHopTypeVnetLocal ... 803 NextHopTypeVnetLocal NextHopType = "VnetLocal" 804) 805 806// PossibleNextHopTypeValues returns an array of possible values for the NextHopType const type. 807func PossibleNextHopTypeValues() []NextHopType { 808 return []NextHopType{NextHopTypeHyperNetGateway, NextHopTypeInternet, NextHopTypeNone, NextHopTypeVirtualAppliance, NextHopTypeVirtualNetworkGateway, NextHopTypeVnetLocal} 809} 810 811// OperationStatus enumerates the values for operation status. 812type OperationStatus string 813 814const ( 815 // OperationStatusFailed ... 816 OperationStatusFailed OperationStatus = "Failed" 817 // OperationStatusInProgress ... 818 OperationStatusInProgress OperationStatus = "InProgress" 819 // OperationStatusSucceeded ... 820 OperationStatusSucceeded OperationStatus = "Succeeded" 821) 822 823// PossibleOperationStatusValues returns an array of possible values for the OperationStatus const type. 824func PossibleOperationStatusValues() []OperationStatus { 825 return []OperationStatus{OperationStatusFailed, OperationStatusInProgress, OperationStatusSucceeded} 826} 827 828// Origin enumerates the values for origin. 829type Origin string 830 831const ( 832 // OriginInbound ... 833 OriginInbound Origin = "Inbound" 834 // OriginLocal ... 835 OriginLocal Origin = "Local" 836 // OriginOutbound ... 837 OriginOutbound Origin = "Outbound" 838) 839 840// PossibleOriginValues returns an array of possible values for the Origin const type. 841func PossibleOriginValues() []Origin { 842 return []Origin{OriginInbound, OriginLocal, OriginOutbound} 843} 844 845// PcError enumerates the values for pc error. 846type PcError string 847 848const ( 849 // AgentStopped ... 850 AgentStopped PcError = "AgentStopped" 851 // CaptureFailed ... 852 CaptureFailed PcError = "CaptureFailed" 853 // InternalError ... 854 InternalError PcError = "InternalError" 855 // LocalFileFailed ... 856 LocalFileFailed PcError = "LocalFileFailed" 857 // StorageFailed ... 858 StorageFailed PcError = "StorageFailed" 859) 860 861// PossiblePcErrorValues returns an array of possible values for the PcError const type. 862func PossiblePcErrorValues() []PcError { 863 return []PcError{AgentStopped, CaptureFailed, InternalError, LocalFileFailed, StorageFailed} 864} 865 866// PcProtocol enumerates the values for pc protocol. 867type PcProtocol string 868 869const ( 870 // PcProtocolAny ... 871 PcProtocolAny PcProtocol = "Any" 872 // PcProtocolTCP ... 873 PcProtocolTCP PcProtocol = "TCP" 874 // PcProtocolUDP ... 875 PcProtocolUDP PcProtocol = "UDP" 876) 877 878// PossiblePcProtocolValues returns an array of possible values for the PcProtocol const type. 879func PossiblePcProtocolValues() []PcProtocol { 880 return []PcProtocol{PcProtocolAny, PcProtocolTCP, PcProtocolUDP} 881} 882 883// PcStatus enumerates the values for pc status. 884type PcStatus string 885 886const ( 887 // PcStatusError ... 888 PcStatusError PcStatus = "Error" 889 // PcStatusNotStarted ... 890 PcStatusNotStarted PcStatus = "NotStarted" 891 // PcStatusRunning ... 892 PcStatusRunning PcStatus = "Running" 893 // PcStatusStopped ... 894 PcStatusStopped PcStatus = "Stopped" 895 // PcStatusUnknown ... 896 PcStatusUnknown PcStatus = "Unknown" 897) 898 899// PossiblePcStatusValues returns an array of possible values for the PcStatus const type. 900func PossiblePcStatusValues() []PcStatus { 901 return []PcStatus{PcStatusError, PcStatusNotStarted, PcStatusRunning, PcStatusStopped, PcStatusUnknown} 902} 903 904// PfsGroup enumerates the values for pfs group. 905type PfsGroup string 906 907const ( 908 // PfsGroupECP256 ... 909 PfsGroupECP256 PfsGroup = "ECP256" 910 // PfsGroupECP384 ... 911 PfsGroupECP384 PfsGroup = "ECP384" 912 // PfsGroupNone ... 913 PfsGroupNone PfsGroup = "None" 914 // PfsGroupPFS1 ... 915 PfsGroupPFS1 PfsGroup = "PFS1" 916 // PfsGroupPFS2 ... 917 PfsGroupPFS2 PfsGroup = "PFS2" 918 // PfsGroupPFS2048 ... 919 PfsGroupPFS2048 PfsGroup = "PFS2048" 920 // PfsGroupPFS24 ... 921 PfsGroupPFS24 PfsGroup = "PFS24" 922) 923 924// PossiblePfsGroupValues returns an array of possible values for the PfsGroup const type. 925func PossiblePfsGroupValues() []PfsGroup { 926 return []PfsGroup{PfsGroupECP256, PfsGroupECP384, PfsGroupNone, PfsGroupPFS1, PfsGroupPFS2, PfsGroupPFS2048, PfsGroupPFS24} 927} 928 929// ProbeProtocol enumerates the values for probe protocol. 930type ProbeProtocol string 931 932const ( 933 // ProbeProtocolHTTP ... 934 ProbeProtocolHTTP ProbeProtocol = "Http" 935 // ProbeProtocolTCP ... 936 ProbeProtocolTCP ProbeProtocol = "Tcp" 937) 938 939// PossibleProbeProtocolValues returns an array of possible values for the ProbeProtocol const type. 940func PossibleProbeProtocolValues() []ProbeProtocol { 941 return []ProbeProtocol{ProbeProtocolHTTP, ProbeProtocolTCP} 942} 943 944// ProcessorArchitecture enumerates the values for processor architecture. 945type ProcessorArchitecture string 946 947const ( 948 // Amd64 ... 949 Amd64 ProcessorArchitecture = "Amd64" 950 // X86 ... 951 X86 ProcessorArchitecture = "X86" 952) 953 954// PossibleProcessorArchitectureValues returns an array of possible values for the ProcessorArchitecture const type. 955func PossibleProcessorArchitectureValues() []ProcessorArchitecture { 956 return []ProcessorArchitecture{Amd64, X86} 957} 958 959// Protocol enumerates the values for protocol. 960type Protocol string 961 962const ( 963 // ProtocolTCP ... 964 ProtocolTCP Protocol = "TCP" 965 // ProtocolUDP ... 966 ProtocolUDP Protocol = "UDP" 967) 968 969// PossibleProtocolValues returns an array of possible values for the Protocol const type. 970func PossibleProtocolValues() []Protocol { 971 return []Protocol{ProtocolTCP, ProtocolUDP} 972} 973 974// ProvisioningState enumerates the values for provisioning state. 975type ProvisioningState string 976 977const ( 978 // Deleting ... 979 Deleting ProvisioningState = "Deleting" 980 // Failed ... 981 Failed ProvisioningState = "Failed" 982 // Succeeded ... 983 Succeeded ProvisioningState = "Succeeded" 984 // Updating ... 985 Updating ProvisioningState = "Updating" 986) 987 988// PossibleProvisioningStateValues returns an array of possible values for the ProvisioningState const type. 989func PossibleProvisioningStateValues() []ProvisioningState { 990 return []ProvisioningState{Deleting, Failed, Succeeded, Updating} 991} 992 993// PublicIPAddressSkuName enumerates the values for public ip address sku name. 994type PublicIPAddressSkuName string 995 996const ( 997 // PublicIPAddressSkuNameBasic ... 998 PublicIPAddressSkuNameBasic PublicIPAddressSkuName = "Basic" 999 // PublicIPAddressSkuNameStandard ... 1000 PublicIPAddressSkuNameStandard PublicIPAddressSkuName = "Standard" 1001) 1002 1003// PossiblePublicIPAddressSkuNameValues returns an array of possible values for the PublicIPAddressSkuName const type. 1004func PossiblePublicIPAddressSkuNameValues() []PublicIPAddressSkuName { 1005 return []PublicIPAddressSkuName{PublicIPAddressSkuNameBasic, PublicIPAddressSkuNameStandard} 1006} 1007 1008// RouteNextHopType enumerates the values for route next hop type. 1009type RouteNextHopType string 1010 1011const ( 1012 // RouteNextHopTypeInternet ... 1013 RouteNextHopTypeInternet RouteNextHopType = "Internet" 1014 // RouteNextHopTypeNone ... 1015 RouteNextHopTypeNone RouteNextHopType = "None" 1016 // RouteNextHopTypeVirtualAppliance ... 1017 RouteNextHopTypeVirtualAppliance RouteNextHopType = "VirtualAppliance" 1018 // RouteNextHopTypeVirtualNetworkGateway ... 1019 RouteNextHopTypeVirtualNetworkGateway RouteNextHopType = "VirtualNetworkGateway" 1020 // RouteNextHopTypeVnetLocal ... 1021 RouteNextHopTypeVnetLocal RouteNextHopType = "VnetLocal" 1022) 1023 1024// PossibleRouteNextHopTypeValues returns an array of possible values for the RouteNextHopType const type. 1025func PossibleRouteNextHopTypeValues() []RouteNextHopType { 1026 return []RouteNextHopType{RouteNextHopTypeInternet, RouteNextHopTypeNone, RouteNextHopTypeVirtualAppliance, RouteNextHopTypeVirtualNetworkGateway, RouteNextHopTypeVnetLocal} 1027} 1028 1029// SecurityRuleAccess enumerates the values for security rule access. 1030type SecurityRuleAccess string 1031 1032const ( 1033 // SecurityRuleAccessAllow ... 1034 SecurityRuleAccessAllow SecurityRuleAccess = "Allow" 1035 // SecurityRuleAccessDeny ... 1036 SecurityRuleAccessDeny SecurityRuleAccess = "Deny" 1037) 1038 1039// PossibleSecurityRuleAccessValues returns an array of possible values for the SecurityRuleAccess const type. 1040func PossibleSecurityRuleAccessValues() []SecurityRuleAccess { 1041 return []SecurityRuleAccess{SecurityRuleAccessAllow, SecurityRuleAccessDeny} 1042} 1043 1044// SecurityRuleDirection enumerates the values for security rule direction. 1045type SecurityRuleDirection string 1046 1047const ( 1048 // SecurityRuleDirectionInbound ... 1049 SecurityRuleDirectionInbound SecurityRuleDirection = "Inbound" 1050 // SecurityRuleDirectionOutbound ... 1051 SecurityRuleDirectionOutbound SecurityRuleDirection = "Outbound" 1052) 1053 1054// PossibleSecurityRuleDirectionValues returns an array of possible values for the SecurityRuleDirection const type. 1055func PossibleSecurityRuleDirectionValues() []SecurityRuleDirection { 1056 return []SecurityRuleDirection{SecurityRuleDirectionInbound, SecurityRuleDirectionOutbound} 1057} 1058 1059// SecurityRuleProtocol enumerates the values for security rule protocol. 1060type SecurityRuleProtocol string 1061 1062const ( 1063 // SecurityRuleProtocolAsterisk ... 1064 SecurityRuleProtocolAsterisk SecurityRuleProtocol = "*" 1065 // SecurityRuleProtocolTCP ... 1066 SecurityRuleProtocolTCP SecurityRuleProtocol = "Tcp" 1067 // SecurityRuleProtocolUDP ... 1068 SecurityRuleProtocolUDP SecurityRuleProtocol = "Udp" 1069) 1070 1071// PossibleSecurityRuleProtocolValues returns an array of possible values for the SecurityRuleProtocol const type. 1072func PossibleSecurityRuleProtocolValues() []SecurityRuleProtocol { 1073 return []SecurityRuleProtocol{SecurityRuleProtocolAsterisk, SecurityRuleProtocolTCP, SecurityRuleProtocolUDP} 1074} 1075 1076// ServiceProviderProvisioningState enumerates the values for service provider provisioning state. 1077type ServiceProviderProvisioningState string 1078 1079const ( 1080 // Deprovisioning ... 1081 Deprovisioning ServiceProviderProvisioningState = "Deprovisioning" 1082 // NotProvisioned ... 1083 NotProvisioned ServiceProviderProvisioningState = "NotProvisioned" 1084 // Provisioned ... 1085 Provisioned ServiceProviderProvisioningState = "Provisioned" 1086 // Provisioning ... 1087 Provisioning ServiceProviderProvisioningState = "Provisioning" 1088) 1089 1090// PossibleServiceProviderProvisioningStateValues returns an array of possible values for the ServiceProviderProvisioningState const type. 1091func PossibleServiceProviderProvisioningStateValues() []ServiceProviderProvisioningState { 1092 return []ServiceProviderProvisioningState{Deprovisioning, NotProvisioned, Provisioned, Provisioning} 1093} 1094 1095// Severity enumerates the values for severity. 1096type Severity string 1097 1098const ( 1099 // SeverityError ... 1100 SeverityError Severity = "Error" 1101 // SeverityWarning ... 1102 SeverityWarning Severity = "Warning" 1103) 1104 1105// PossibleSeverityValues returns an array of possible values for the Severity const type. 1106func PossibleSeverityValues() []Severity { 1107 return []Severity{SeverityError, SeverityWarning} 1108} 1109 1110// TransportProtocol enumerates the values for transport protocol. 1111type TransportProtocol string 1112 1113const ( 1114 // TransportProtocolAll ... 1115 TransportProtocolAll TransportProtocol = "All" 1116 // TransportProtocolTCP ... 1117 TransportProtocolTCP TransportProtocol = "Tcp" 1118 // TransportProtocolUDP ... 1119 TransportProtocolUDP TransportProtocol = "Udp" 1120) 1121 1122// PossibleTransportProtocolValues returns an array of possible values for the TransportProtocol const type. 1123func PossibleTransportProtocolValues() []TransportProtocol { 1124 return []TransportProtocol{TransportProtocolAll, TransportProtocolTCP, TransportProtocolUDP} 1125} 1126 1127// VirtualNetworkGatewayConnectionStatus enumerates the values for virtual network gateway connection status. 1128type VirtualNetworkGatewayConnectionStatus string 1129 1130const ( 1131 // VirtualNetworkGatewayConnectionStatusConnected ... 1132 VirtualNetworkGatewayConnectionStatusConnected VirtualNetworkGatewayConnectionStatus = "Connected" 1133 // VirtualNetworkGatewayConnectionStatusConnecting ... 1134 VirtualNetworkGatewayConnectionStatusConnecting VirtualNetworkGatewayConnectionStatus = "Connecting" 1135 // VirtualNetworkGatewayConnectionStatusNotConnected ... 1136 VirtualNetworkGatewayConnectionStatusNotConnected VirtualNetworkGatewayConnectionStatus = "NotConnected" 1137 // VirtualNetworkGatewayConnectionStatusUnknown ... 1138 VirtualNetworkGatewayConnectionStatusUnknown VirtualNetworkGatewayConnectionStatus = "Unknown" 1139) 1140 1141// PossibleVirtualNetworkGatewayConnectionStatusValues returns an array of possible values for the VirtualNetworkGatewayConnectionStatus const type. 1142func PossibleVirtualNetworkGatewayConnectionStatusValues() []VirtualNetworkGatewayConnectionStatus { 1143 return []VirtualNetworkGatewayConnectionStatus{VirtualNetworkGatewayConnectionStatusConnected, VirtualNetworkGatewayConnectionStatusConnecting, VirtualNetworkGatewayConnectionStatusNotConnected, VirtualNetworkGatewayConnectionStatusUnknown} 1144} 1145 1146// VirtualNetworkGatewayConnectionType enumerates the values for virtual network gateway connection type. 1147type VirtualNetworkGatewayConnectionType string 1148 1149const ( 1150 // ExpressRoute ... 1151 ExpressRoute VirtualNetworkGatewayConnectionType = "ExpressRoute" 1152 // IPsec ... 1153 IPsec VirtualNetworkGatewayConnectionType = "IPsec" 1154 // Vnet2Vnet ... 1155 Vnet2Vnet VirtualNetworkGatewayConnectionType = "Vnet2Vnet" 1156 // VPNClient ... 1157 VPNClient VirtualNetworkGatewayConnectionType = "VPNClient" 1158) 1159 1160// PossibleVirtualNetworkGatewayConnectionTypeValues returns an array of possible values for the VirtualNetworkGatewayConnectionType const type. 1161func PossibleVirtualNetworkGatewayConnectionTypeValues() []VirtualNetworkGatewayConnectionType { 1162 return []VirtualNetworkGatewayConnectionType{ExpressRoute, IPsec, Vnet2Vnet, VPNClient} 1163} 1164 1165// VirtualNetworkGatewaySkuName enumerates the values for virtual network gateway sku name. 1166type VirtualNetworkGatewaySkuName string 1167 1168const ( 1169 // VirtualNetworkGatewaySkuNameBasic ... 1170 VirtualNetworkGatewaySkuNameBasic VirtualNetworkGatewaySkuName = "Basic" 1171 // VirtualNetworkGatewaySkuNameHighPerformance ... 1172 VirtualNetworkGatewaySkuNameHighPerformance VirtualNetworkGatewaySkuName = "HighPerformance" 1173 // VirtualNetworkGatewaySkuNameStandard ... 1174 VirtualNetworkGatewaySkuNameStandard VirtualNetworkGatewaySkuName = "Standard" 1175 // VirtualNetworkGatewaySkuNameUltraPerformance ... 1176 VirtualNetworkGatewaySkuNameUltraPerformance VirtualNetworkGatewaySkuName = "UltraPerformance" 1177 // VirtualNetworkGatewaySkuNameVpnGw1 ... 1178 VirtualNetworkGatewaySkuNameVpnGw1 VirtualNetworkGatewaySkuName = "VpnGw1" 1179 // VirtualNetworkGatewaySkuNameVpnGw2 ... 1180 VirtualNetworkGatewaySkuNameVpnGw2 VirtualNetworkGatewaySkuName = "VpnGw2" 1181 // VirtualNetworkGatewaySkuNameVpnGw3 ... 1182 VirtualNetworkGatewaySkuNameVpnGw3 VirtualNetworkGatewaySkuName = "VpnGw3" 1183) 1184 1185// PossibleVirtualNetworkGatewaySkuNameValues returns an array of possible values for the VirtualNetworkGatewaySkuName const type. 1186func PossibleVirtualNetworkGatewaySkuNameValues() []VirtualNetworkGatewaySkuName { 1187 return []VirtualNetworkGatewaySkuName{VirtualNetworkGatewaySkuNameBasic, VirtualNetworkGatewaySkuNameHighPerformance, VirtualNetworkGatewaySkuNameStandard, VirtualNetworkGatewaySkuNameUltraPerformance, VirtualNetworkGatewaySkuNameVpnGw1, VirtualNetworkGatewaySkuNameVpnGw2, VirtualNetworkGatewaySkuNameVpnGw3} 1188} 1189 1190// VirtualNetworkGatewaySkuTier enumerates the values for virtual network gateway sku tier. 1191type VirtualNetworkGatewaySkuTier string 1192 1193const ( 1194 // VirtualNetworkGatewaySkuTierBasic ... 1195 VirtualNetworkGatewaySkuTierBasic VirtualNetworkGatewaySkuTier = "Basic" 1196 // VirtualNetworkGatewaySkuTierHighPerformance ... 1197 VirtualNetworkGatewaySkuTierHighPerformance VirtualNetworkGatewaySkuTier = "HighPerformance" 1198 // VirtualNetworkGatewaySkuTierStandard ... 1199 VirtualNetworkGatewaySkuTierStandard VirtualNetworkGatewaySkuTier = "Standard" 1200 // VirtualNetworkGatewaySkuTierUltraPerformance ... 1201 VirtualNetworkGatewaySkuTierUltraPerformance VirtualNetworkGatewaySkuTier = "UltraPerformance" 1202 // VirtualNetworkGatewaySkuTierVpnGw1 ... 1203 VirtualNetworkGatewaySkuTierVpnGw1 VirtualNetworkGatewaySkuTier = "VpnGw1" 1204 // VirtualNetworkGatewaySkuTierVpnGw2 ... 1205 VirtualNetworkGatewaySkuTierVpnGw2 VirtualNetworkGatewaySkuTier = "VpnGw2" 1206 // VirtualNetworkGatewaySkuTierVpnGw3 ... 1207 VirtualNetworkGatewaySkuTierVpnGw3 VirtualNetworkGatewaySkuTier = "VpnGw3" 1208) 1209 1210// PossibleVirtualNetworkGatewaySkuTierValues returns an array of possible values for the VirtualNetworkGatewaySkuTier const type. 1211func PossibleVirtualNetworkGatewaySkuTierValues() []VirtualNetworkGatewaySkuTier { 1212 return []VirtualNetworkGatewaySkuTier{VirtualNetworkGatewaySkuTierBasic, VirtualNetworkGatewaySkuTierHighPerformance, VirtualNetworkGatewaySkuTierStandard, VirtualNetworkGatewaySkuTierUltraPerformance, VirtualNetworkGatewaySkuTierVpnGw1, VirtualNetworkGatewaySkuTierVpnGw2, VirtualNetworkGatewaySkuTierVpnGw3} 1213} 1214 1215// VirtualNetworkGatewayType enumerates the values for virtual network gateway type. 1216type VirtualNetworkGatewayType string 1217 1218const ( 1219 // VirtualNetworkGatewayTypeExpressRoute ... 1220 VirtualNetworkGatewayTypeExpressRoute VirtualNetworkGatewayType = "ExpressRoute" 1221 // VirtualNetworkGatewayTypeVpn ... 1222 VirtualNetworkGatewayTypeVpn VirtualNetworkGatewayType = "Vpn" 1223) 1224 1225// PossibleVirtualNetworkGatewayTypeValues returns an array of possible values for the VirtualNetworkGatewayType const type. 1226func PossibleVirtualNetworkGatewayTypeValues() []VirtualNetworkGatewayType { 1227 return []VirtualNetworkGatewayType{VirtualNetworkGatewayTypeExpressRoute, VirtualNetworkGatewayTypeVpn} 1228} 1229 1230// VirtualNetworkPeeringState enumerates the values for virtual network peering state. 1231type VirtualNetworkPeeringState string 1232 1233const ( 1234 // Connected ... 1235 Connected VirtualNetworkPeeringState = "Connected" 1236 // Disconnected ... 1237 Disconnected VirtualNetworkPeeringState = "Disconnected" 1238 // Initiated ... 1239 Initiated VirtualNetworkPeeringState = "Initiated" 1240) 1241 1242// PossibleVirtualNetworkPeeringStateValues returns an array of possible values for the VirtualNetworkPeeringState const type. 1243func PossibleVirtualNetworkPeeringStateValues() []VirtualNetworkPeeringState { 1244 return []VirtualNetworkPeeringState{Connected, Disconnected, Initiated} 1245} 1246 1247// VpnClientProtocol enumerates the values for vpn client protocol. 1248type VpnClientProtocol string 1249 1250const ( 1251 // IkeV2 ... 1252 IkeV2 VpnClientProtocol = "IkeV2" 1253 // SSTP ... 1254 SSTP VpnClientProtocol = "SSTP" 1255) 1256 1257// PossibleVpnClientProtocolValues returns an array of possible values for the VpnClientProtocol const type. 1258func PossibleVpnClientProtocolValues() []VpnClientProtocol { 1259 return []VpnClientProtocol{IkeV2, SSTP} 1260} 1261 1262// VpnType enumerates the values for vpn type. 1263type VpnType string 1264 1265const ( 1266 // PolicyBased ... 1267 PolicyBased VpnType = "PolicyBased" 1268 // RouteBased ... 1269 RouteBased VpnType = "RouteBased" 1270) 1271 1272// PossibleVpnTypeValues returns an array of possible values for the VpnType const type. 1273func PossibleVpnTypeValues() []VpnType { 1274 return []VpnType{PolicyBased, RouteBased} 1275} 1276 1277// AddressSpace addressSpace contains an array of IP address ranges that can be used by subnets of the virtual 1278// network. 1279type AddressSpace struct { 1280 // AddressPrefixes - A list of address blocks reserved for this virtual network in CIDR notation. 1281 AddressPrefixes *[]string `json:"addressPrefixes,omitempty"` 1282} 1283 1284// ApplicationGateway application gateway resource 1285type ApplicationGateway struct { 1286 autorest.Response `json:"-"` 1287 *ApplicationGatewayPropertiesFormat `json:"properties,omitempty"` 1288 // Etag - A unique read-only string that changes whenever the resource is updated. 1289 Etag *string `json:"etag,omitempty"` 1290 // ID - Resource ID. 1291 ID *string `json:"id,omitempty"` 1292 // Name - Resource name. 1293 Name *string `json:"name,omitempty"` 1294 // Type - Resource type. 1295 Type *string `json:"type,omitempty"` 1296 // Location - Resource location. 1297 Location *string `json:"location,omitempty"` 1298 // Tags - Resource tags. 1299 Tags map[string]*string `json:"tags"` 1300} 1301 1302// MarshalJSON is the custom marshaler for ApplicationGateway. 1303func (ag ApplicationGateway) MarshalJSON() ([]byte, error) { 1304 objectMap := make(map[string]interface{}) 1305 if ag.ApplicationGatewayPropertiesFormat != nil { 1306 objectMap["properties"] = ag.ApplicationGatewayPropertiesFormat 1307 } 1308 if ag.Etag != nil { 1309 objectMap["etag"] = ag.Etag 1310 } 1311 if ag.ID != nil { 1312 objectMap["id"] = ag.ID 1313 } 1314 if ag.Name != nil { 1315 objectMap["name"] = ag.Name 1316 } 1317 if ag.Type != nil { 1318 objectMap["type"] = ag.Type 1319 } 1320 if ag.Location != nil { 1321 objectMap["location"] = ag.Location 1322 } 1323 if ag.Tags != nil { 1324 objectMap["tags"] = ag.Tags 1325 } 1326 return json.Marshal(objectMap) 1327} 1328 1329// UnmarshalJSON is the custom unmarshaler for ApplicationGateway struct. 1330func (ag *ApplicationGateway) UnmarshalJSON(body []byte) error { 1331 var m map[string]*json.RawMessage 1332 err := json.Unmarshal(body, &m) 1333 if err != nil { 1334 return err 1335 } 1336 for k, v := range m { 1337 switch k { 1338 case "properties": 1339 if v != nil { 1340 var applicationGatewayPropertiesFormat ApplicationGatewayPropertiesFormat 1341 err = json.Unmarshal(*v, &applicationGatewayPropertiesFormat) 1342 if err != nil { 1343 return err 1344 } 1345 ag.ApplicationGatewayPropertiesFormat = &applicationGatewayPropertiesFormat 1346 } 1347 case "etag": 1348 if v != nil { 1349 var etag string 1350 err = json.Unmarshal(*v, &etag) 1351 if err != nil { 1352 return err 1353 } 1354 ag.Etag = &etag 1355 } 1356 case "id": 1357 if v != nil { 1358 var ID string 1359 err = json.Unmarshal(*v, &ID) 1360 if err != nil { 1361 return err 1362 } 1363 ag.ID = &ID 1364 } 1365 case "name": 1366 if v != nil { 1367 var name string 1368 err = json.Unmarshal(*v, &name) 1369 if err != nil { 1370 return err 1371 } 1372 ag.Name = &name 1373 } 1374 case "type": 1375 if v != nil { 1376 var typeVar string 1377 err = json.Unmarshal(*v, &typeVar) 1378 if err != nil { 1379 return err 1380 } 1381 ag.Type = &typeVar 1382 } 1383 case "location": 1384 if v != nil { 1385 var location string 1386 err = json.Unmarshal(*v, &location) 1387 if err != nil { 1388 return err 1389 } 1390 ag.Location = &location 1391 } 1392 case "tags": 1393 if v != nil { 1394 var tags map[string]*string 1395 err = json.Unmarshal(*v, &tags) 1396 if err != nil { 1397 return err 1398 } 1399 ag.Tags = tags 1400 } 1401 } 1402 } 1403 1404 return nil 1405} 1406 1407// ApplicationGatewayAuthenticationCertificate authentication certificates of an application gateway. 1408type ApplicationGatewayAuthenticationCertificate struct { 1409 *ApplicationGatewayAuthenticationCertificatePropertiesFormat `json:"properties,omitempty"` 1410 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 1411 Name *string `json:"name,omitempty"` 1412 // Etag - A unique read-only string that changes whenever the resource is updated. 1413 Etag *string `json:"etag,omitempty"` 1414 // Type - Type of the resource. 1415 Type *string `json:"type,omitempty"` 1416 // ID - Resource ID. 1417 ID *string `json:"id,omitempty"` 1418} 1419 1420// MarshalJSON is the custom marshaler for ApplicationGatewayAuthenticationCertificate. 1421func (agac ApplicationGatewayAuthenticationCertificate) MarshalJSON() ([]byte, error) { 1422 objectMap := make(map[string]interface{}) 1423 if agac.ApplicationGatewayAuthenticationCertificatePropertiesFormat != nil { 1424 objectMap["properties"] = agac.ApplicationGatewayAuthenticationCertificatePropertiesFormat 1425 } 1426 if agac.Name != nil { 1427 objectMap["name"] = agac.Name 1428 } 1429 if agac.Etag != nil { 1430 objectMap["etag"] = agac.Etag 1431 } 1432 if agac.Type != nil { 1433 objectMap["type"] = agac.Type 1434 } 1435 if agac.ID != nil { 1436 objectMap["id"] = agac.ID 1437 } 1438 return json.Marshal(objectMap) 1439} 1440 1441// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayAuthenticationCertificate struct. 1442func (agac *ApplicationGatewayAuthenticationCertificate) UnmarshalJSON(body []byte) error { 1443 var m map[string]*json.RawMessage 1444 err := json.Unmarshal(body, &m) 1445 if err != nil { 1446 return err 1447 } 1448 for k, v := range m { 1449 switch k { 1450 case "properties": 1451 if v != nil { 1452 var applicationGatewayAuthenticationCertificatePropertiesFormat ApplicationGatewayAuthenticationCertificatePropertiesFormat 1453 err = json.Unmarshal(*v, &applicationGatewayAuthenticationCertificatePropertiesFormat) 1454 if err != nil { 1455 return err 1456 } 1457 agac.ApplicationGatewayAuthenticationCertificatePropertiesFormat = &applicationGatewayAuthenticationCertificatePropertiesFormat 1458 } 1459 case "name": 1460 if v != nil { 1461 var name string 1462 err = json.Unmarshal(*v, &name) 1463 if err != nil { 1464 return err 1465 } 1466 agac.Name = &name 1467 } 1468 case "etag": 1469 if v != nil { 1470 var etag string 1471 err = json.Unmarshal(*v, &etag) 1472 if err != nil { 1473 return err 1474 } 1475 agac.Etag = &etag 1476 } 1477 case "type": 1478 if v != nil { 1479 var typeVar string 1480 err = json.Unmarshal(*v, &typeVar) 1481 if err != nil { 1482 return err 1483 } 1484 agac.Type = &typeVar 1485 } 1486 case "id": 1487 if v != nil { 1488 var ID string 1489 err = json.Unmarshal(*v, &ID) 1490 if err != nil { 1491 return err 1492 } 1493 agac.ID = &ID 1494 } 1495 } 1496 } 1497 1498 return nil 1499} 1500 1501// ApplicationGatewayAuthenticationCertificatePropertiesFormat authentication certificates properties of an 1502// application gateway. 1503type ApplicationGatewayAuthenticationCertificatePropertiesFormat struct { 1504 // Data - Certificate public data. 1505 Data *string `json:"data,omitempty"` 1506 // ProvisioningState - Provisioning state of the authentication certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 1507 ProvisioningState *string `json:"provisioningState,omitempty"` 1508} 1509 1510// ApplicationGatewayAvailableSslOptions response for ApplicationGatewayAvailableSslOptions API service call. 1511type ApplicationGatewayAvailableSslOptions struct { 1512 autorest.Response `json:"-"` 1513 *ApplicationGatewayAvailableSslOptionsPropertiesFormat `json:"properties,omitempty"` 1514 // ID - Resource ID. 1515 ID *string `json:"id,omitempty"` 1516 // Name - Resource name. 1517 Name *string `json:"name,omitempty"` 1518 // Type - Resource type. 1519 Type *string `json:"type,omitempty"` 1520 // Location - Resource location. 1521 Location *string `json:"location,omitempty"` 1522 // Tags - Resource tags. 1523 Tags map[string]*string `json:"tags"` 1524} 1525 1526// MarshalJSON is the custom marshaler for ApplicationGatewayAvailableSslOptions. 1527func (agaso ApplicationGatewayAvailableSslOptions) MarshalJSON() ([]byte, error) { 1528 objectMap := make(map[string]interface{}) 1529 if agaso.ApplicationGatewayAvailableSslOptionsPropertiesFormat != nil { 1530 objectMap["properties"] = agaso.ApplicationGatewayAvailableSslOptionsPropertiesFormat 1531 } 1532 if agaso.ID != nil { 1533 objectMap["id"] = agaso.ID 1534 } 1535 if agaso.Name != nil { 1536 objectMap["name"] = agaso.Name 1537 } 1538 if agaso.Type != nil { 1539 objectMap["type"] = agaso.Type 1540 } 1541 if agaso.Location != nil { 1542 objectMap["location"] = agaso.Location 1543 } 1544 if agaso.Tags != nil { 1545 objectMap["tags"] = agaso.Tags 1546 } 1547 return json.Marshal(objectMap) 1548} 1549 1550// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayAvailableSslOptions struct. 1551func (agaso *ApplicationGatewayAvailableSslOptions) UnmarshalJSON(body []byte) error { 1552 var m map[string]*json.RawMessage 1553 err := json.Unmarshal(body, &m) 1554 if err != nil { 1555 return err 1556 } 1557 for k, v := range m { 1558 switch k { 1559 case "properties": 1560 if v != nil { 1561 var applicationGatewayAvailableSslOptionsPropertiesFormat ApplicationGatewayAvailableSslOptionsPropertiesFormat 1562 err = json.Unmarshal(*v, &applicationGatewayAvailableSslOptionsPropertiesFormat) 1563 if err != nil { 1564 return err 1565 } 1566 agaso.ApplicationGatewayAvailableSslOptionsPropertiesFormat = &applicationGatewayAvailableSslOptionsPropertiesFormat 1567 } 1568 case "id": 1569 if v != nil { 1570 var ID string 1571 err = json.Unmarshal(*v, &ID) 1572 if err != nil { 1573 return err 1574 } 1575 agaso.ID = &ID 1576 } 1577 case "name": 1578 if v != nil { 1579 var name string 1580 err = json.Unmarshal(*v, &name) 1581 if err != nil { 1582 return err 1583 } 1584 agaso.Name = &name 1585 } 1586 case "type": 1587 if v != nil { 1588 var typeVar string 1589 err = json.Unmarshal(*v, &typeVar) 1590 if err != nil { 1591 return err 1592 } 1593 agaso.Type = &typeVar 1594 } 1595 case "location": 1596 if v != nil { 1597 var location string 1598 err = json.Unmarshal(*v, &location) 1599 if err != nil { 1600 return err 1601 } 1602 agaso.Location = &location 1603 } 1604 case "tags": 1605 if v != nil { 1606 var tags map[string]*string 1607 err = json.Unmarshal(*v, &tags) 1608 if err != nil { 1609 return err 1610 } 1611 agaso.Tags = tags 1612 } 1613 } 1614 } 1615 1616 return nil 1617} 1618 1619// ApplicationGatewayAvailableSslOptionsPropertiesFormat properties of ApplicationGatewayAvailableSslOptions 1620type ApplicationGatewayAvailableSslOptionsPropertiesFormat struct { 1621 // PredefinedPolicies - List of available Ssl predefined policy. 1622 PredefinedPolicies *[]SubResource `json:"predefinedPolicies,omitempty"` 1623 // DefaultPolicy - Name of the Ssl predefined policy applied by default to application gateway. Possible values include: 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S' 1624 DefaultPolicy ApplicationGatewaySslPolicyName `json:"defaultPolicy,omitempty"` 1625 // AvailableCipherSuites - List of available Ssl cipher suites. 1626 AvailableCipherSuites *[]ApplicationGatewaySslCipherSuite `json:"availableCipherSuites,omitempty"` 1627 // AvailableProtocols - List of available Ssl protocols. 1628 AvailableProtocols *[]ApplicationGatewaySslProtocol `json:"availableProtocols,omitempty"` 1629} 1630 1631// ApplicationGatewayAvailableSslPredefinedPolicies response for ApplicationGatewayAvailableSslOptions API service 1632// call. 1633type ApplicationGatewayAvailableSslPredefinedPolicies struct { 1634 autorest.Response `json:"-"` 1635 // Value - List of available Ssl predefined policy. 1636 Value *[]ApplicationGatewaySslPredefinedPolicy `json:"value,omitempty"` 1637 // NextLink - URL to get the next set of results. 1638 NextLink *string `json:"nextLink,omitempty"` 1639} 1640 1641// ApplicationGatewayAvailableSslPredefinedPoliciesIterator provides access to a complete listing of 1642// ApplicationGatewaySslPredefinedPolicy values. 1643type ApplicationGatewayAvailableSslPredefinedPoliciesIterator struct { 1644 i int 1645 page ApplicationGatewayAvailableSslPredefinedPoliciesPage 1646} 1647 1648// Next advances to the next value. If there was an error making 1649// the request the iterator does not advance and the error is returned. 1650func (iter *ApplicationGatewayAvailableSslPredefinedPoliciesIterator) Next() error { 1651 iter.i++ 1652 if iter.i < len(iter.page.Values()) { 1653 return nil 1654 } 1655 err := iter.page.Next() 1656 if err != nil { 1657 iter.i-- 1658 return err 1659 } 1660 iter.i = 0 1661 return nil 1662} 1663 1664// NotDone returns true if the enumeration should be started or is not yet complete. 1665func (iter ApplicationGatewayAvailableSslPredefinedPoliciesIterator) NotDone() bool { 1666 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1667} 1668 1669// Response returns the raw server response from the last page request. 1670func (iter ApplicationGatewayAvailableSslPredefinedPoliciesIterator) Response() ApplicationGatewayAvailableSslPredefinedPolicies { 1671 return iter.page.Response() 1672} 1673 1674// Value returns the current value or a zero-initialized value if the 1675// iterator has advanced beyond the end of the collection. 1676func (iter ApplicationGatewayAvailableSslPredefinedPoliciesIterator) Value() ApplicationGatewaySslPredefinedPolicy { 1677 if !iter.page.NotDone() { 1678 return ApplicationGatewaySslPredefinedPolicy{} 1679 } 1680 return iter.page.Values()[iter.i] 1681} 1682 1683// IsEmpty returns true if the ListResult contains no values. 1684func (agaspp ApplicationGatewayAvailableSslPredefinedPolicies) IsEmpty() bool { 1685 return agaspp.Value == nil || len(*agaspp.Value) == 0 1686} 1687 1688// applicationGatewayAvailableSslPredefinedPoliciesPreparer prepares a request to retrieve the next set of results. 1689// It returns nil if no more results exist. 1690func (agaspp ApplicationGatewayAvailableSslPredefinedPolicies) applicationGatewayAvailableSslPredefinedPoliciesPreparer() (*http.Request, error) { 1691 if agaspp.NextLink == nil || len(to.String(agaspp.NextLink)) < 1 { 1692 return nil, nil 1693 } 1694 return autorest.Prepare(&http.Request{}, 1695 autorest.AsJSON(), 1696 autorest.AsGet(), 1697 autorest.WithBaseURL(to.String(agaspp.NextLink))) 1698} 1699 1700// ApplicationGatewayAvailableSslPredefinedPoliciesPage contains a page of ApplicationGatewaySslPredefinedPolicy 1701// values. 1702type ApplicationGatewayAvailableSslPredefinedPoliciesPage struct { 1703 fn func(ApplicationGatewayAvailableSslPredefinedPolicies) (ApplicationGatewayAvailableSslPredefinedPolicies, error) 1704 agaspp ApplicationGatewayAvailableSslPredefinedPolicies 1705} 1706 1707// Next advances to the next page of values. If there was an error making 1708// the request the page does not advance and the error is returned. 1709func (page *ApplicationGatewayAvailableSslPredefinedPoliciesPage) Next() error { 1710 next, err := page.fn(page.agaspp) 1711 if err != nil { 1712 return err 1713 } 1714 page.agaspp = next 1715 return nil 1716} 1717 1718// NotDone returns true if the page enumeration should be started or is not yet complete. 1719func (page ApplicationGatewayAvailableSslPredefinedPoliciesPage) NotDone() bool { 1720 return !page.agaspp.IsEmpty() 1721} 1722 1723// Response returns the raw server response from the last page request. 1724func (page ApplicationGatewayAvailableSslPredefinedPoliciesPage) Response() ApplicationGatewayAvailableSslPredefinedPolicies { 1725 return page.agaspp 1726} 1727 1728// Values returns the slice of values for the current page or nil if there are no values. 1729func (page ApplicationGatewayAvailableSslPredefinedPoliciesPage) Values() []ApplicationGatewaySslPredefinedPolicy { 1730 if page.agaspp.IsEmpty() { 1731 return nil 1732 } 1733 return *page.agaspp.Value 1734} 1735 1736// ApplicationGatewayAvailableWafRuleSetsResult response for ApplicationGatewayAvailableWafRuleSets API service 1737// call. 1738type ApplicationGatewayAvailableWafRuleSetsResult struct { 1739 autorest.Response `json:"-"` 1740 // Value - The list of application gateway rule sets. 1741 Value *[]ApplicationGatewayFirewallRuleSet `json:"value,omitempty"` 1742} 1743 1744// ApplicationGatewayBackendAddress backend address of an application gateway. 1745type ApplicationGatewayBackendAddress struct { 1746 // Fqdn - Fully qualified domain name (FQDN). 1747 Fqdn *string `json:"fqdn,omitempty"` 1748 // IPAddress - IP address 1749 IPAddress *string `json:"ipAddress,omitempty"` 1750} 1751 1752// ApplicationGatewayBackendAddressPool backend Address Pool of an application gateway. 1753type ApplicationGatewayBackendAddressPool struct { 1754 *ApplicationGatewayBackendAddressPoolPropertiesFormat `json:"properties,omitempty"` 1755 // Name - Resource that is unique within a resource group. This name can be used to access the resource. 1756 Name *string `json:"name,omitempty"` 1757 // Etag - A unique read-only string that changes whenever the resource is updated. 1758 Etag *string `json:"etag,omitempty"` 1759 // Type - Type of the resource. 1760 Type *string `json:"type,omitempty"` 1761 // ID - Resource ID. 1762 ID *string `json:"id,omitempty"` 1763} 1764 1765// MarshalJSON is the custom marshaler for ApplicationGatewayBackendAddressPool. 1766func (agbap ApplicationGatewayBackendAddressPool) MarshalJSON() ([]byte, error) { 1767 objectMap := make(map[string]interface{}) 1768 if agbap.ApplicationGatewayBackendAddressPoolPropertiesFormat != nil { 1769 objectMap["properties"] = agbap.ApplicationGatewayBackendAddressPoolPropertiesFormat 1770 } 1771 if agbap.Name != nil { 1772 objectMap["name"] = agbap.Name 1773 } 1774 if agbap.Etag != nil { 1775 objectMap["etag"] = agbap.Etag 1776 } 1777 if agbap.Type != nil { 1778 objectMap["type"] = agbap.Type 1779 } 1780 if agbap.ID != nil { 1781 objectMap["id"] = agbap.ID 1782 } 1783 return json.Marshal(objectMap) 1784} 1785 1786// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayBackendAddressPool struct. 1787func (agbap *ApplicationGatewayBackendAddressPool) UnmarshalJSON(body []byte) error { 1788 var m map[string]*json.RawMessage 1789 err := json.Unmarshal(body, &m) 1790 if err != nil { 1791 return err 1792 } 1793 for k, v := range m { 1794 switch k { 1795 case "properties": 1796 if v != nil { 1797 var applicationGatewayBackendAddressPoolPropertiesFormat ApplicationGatewayBackendAddressPoolPropertiesFormat 1798 err = json.Unmarshal(*v, &applicationGatewayBackendAddressPoolPropertiesFormat) 1799 if err != nil { 1800 return err 1801 } 1802 agbap.ApplicationGatewayBackendAddressPoolPropertiesFormat = &applicationGatewayBackendAddressPoolPropertiesFormat 1803 } 1804 case "name": 1805 if v != nil { 1806 var name string 1807 err = json.Unmarshal(*v, &name) 1808 if err != nil { 1809 return err 1810 } 1811 agbap.Name = &name 1812 } 1813 case "etag": 1814 if v != nil { 1815 var etag string 1816 err = json.Unmarshal(*v, &etag) 1817 if err != nil { 1818 return err 1819 } 1820 agbap.Etag = &etag 1821 } 1822 case "type": 1823 if v != nil { 1824 var typeVar string 1825 err = json.Unmarshal(*v, &typeVar) 1826 if err != nil { 1827 return err 1828 } 1829 agbap.Type = &typeVar 1830 } 1831 case "id": 1832 if v != nil { 1833 var ID string 1834 err = json.Unmarshal(*v, &ID) 1835 if err != nil { 1836 return err 1837 } 1838 agbap.ID = &ID 1839 } 1840 } 1841 } 1842 1843 return nil 1844} 1845 1846// ApplicationGatewayBackendAddressPoolPropertiesFormat properties of Backend Address Pool of an application 1847// gateway. 1848type ApplicationGatewayBackendAddressPoolPropertiesFormat struct { 1849 // BackendIPConfigurations - Collection of references to IPs defined in network interfaces. 1850 BackendIPConfigurations *[]InterfaceIPConfiguration `json:"backendIPConfigurations,omitempty"` 1851 // BackendAddresses - Backend addresses 1852 BackendAddresses *[]ApplicationGatewayBackendAddress `json:"backendAddresses,omitempty"` 1853 // ProvisioningState - Provisioning state of the backend address pool resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 1854 ProvisioningState *string `json:"provisioningState,omitempty"` 1855} 1856 1857// ApplicationGatewayBackendHealth list of ApplicationGatewayBackendHealthPool resources. 1858type ApplicationGatewayBackendHealth struct { 1859 autorest.Response `json:"-"` 1860 BackendAddressPools *[]ApplicationGatewayBackendHealthPool `json:"backendAddressPools,omitempty"` 1861} 1862 1863// ApplicationGatewayBackendHealthHTTPSettings application gateway BackendHealthHttp settings. 1864type ApplicationGatewayBackendHealthHTTPSettings struct { 1865 // BackendHTTPSettings - Reference of an ApplicationGatewayBackendHttpSettings resource. 1866 BackendHTTPSettings *ApplicationGatewayBackendHTTPSettings `json:"backendHttpSettings,omitempty"` 1867 // Servers - List of ApplicationGatewayBackendHealthServer resources. 1868 Servers *[]ApplicationGatewayBackendHealthServer `json:"servers,omitempty"` 1869} 1870 1871// ApplicationGatewayBackendHealthPool application gateway BackendHealth pool. 1872type ApplicationGatewayBackendHealthPool struct { 1873 // BackendAddressPool - Reference of an ApplicationGatewayBackendAddressPool resource. 1874 BackendAddressPool *ApplicationGatewayBackendAddressPool `json:"backendAddressPool,omitempty"` 1875 // BackendHTTPSettingsCollection - List of ApplicationGatewayBackendHealthHttpSettings resources. 1876 BackendHTTPSettingsCollection *[]ApplicationGatewayBackendHealthHTTPSettings `json:"backendHttpSettingsCollection,omitempty"` 1877} 1878 1879// ApplicationGatewayBackendHealthServer application gateway backendhealth http settings. 1880type ApplicationGatewayBackendHealthServer struct { 1881 // Address - IP address or FQDN of backend server. 1882 Address *string `json:"address,omitempty"` 1883 // IPConfiguration - Reference of IP configuration of backend server. 1884 IPConfiguration *InterfaceIPConfiguration `json:"ipConfiguration,omitempty"` 1885 // Health - Health of backend server. Possible values include: 'Unknown', 'Up', 'Down', 'Partial', 'Draining' 1886 Health ApplicationGatewayBackendHealthServerHealth `json:"health,omitempty"` 1887} 1888 1889// ApplicationGatewayBackendHTTPSettings backend address pool settings of an application gateway. 1890type ApplicationGatewayBackendHTTPSettings struct { 1891 *ApplicationGatewayBackendHTTPSettingsPropertiesFormat `json:"properties,omitempty"` 1892 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 1893 Name *string `json:"name,omitempty"` 1894 // Etag - A unique read-only string that changes whenever the resource is updated. 1895 Etag *string `json:"etag,omitempty"` 1896 // Type - Type of the resource. 1897 Type *string `json:"type,omitempty"` 1898 // ID - Resource ID. 1899 ID *string `json:"id,omitempty"` 1900} 1901 1902// MarshalJSON is the custom marshaler for ApplicationGatewayBackendHTTPSettings. 1903func (agbhs ApplicationGatewayBackendHTTPSettings) MarshalJSON() ([]byte, error) { 1904 objectMap := make(map[string]interface{}) 1905 if agbhs.ApplicationGatewayBackendHTTPSettingsPropertiesFormat != nil { 1906 objectMap["properties"] = agbhs.ApplicationGatewayBackendHTTPSettingsPropertiesFormat 1907 } 1908 if agbhs.Name != nil { 1909 objectMap["name"] = agbhs.Name 1910 } 1911 if agbhs.Etag != nil { 1912 objectMap["etag"] = agbhs.Etag 1913 } 1914 if agbhs.Type != nil { 1915 objectMap["type"] = agbhs.Type 1916 } 1917 if agbhs.ID != nil { 1918 objectMap["id"] = agbhs.ID 1919 } 1920 return json.Marshal(objectMap) 1921} 1922 1923// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayBackendHTTPSettings struct. 1924func (agbhs *ApplicationGatewayBackendHTTPSettings) UnmarshalJSON(body []byte) error { 1925 var m map[string]*json.RawMessage 1926 err := json.Unmarshal(body, &m) 1927 if err != nil { 1928 return err 1929 } 1930 for k, v := range m { 1931 switch k { 1932 case "properties": 1933 if v != nil { 1934 var applicationGatewayBackendHTTPSettingsPropertiesFormat ApplicationGatewayBackendHTTPSettingsPropertiesFormat 1935 err = json.Unmarshal(*v, &applicationGatewayBackendHTTPSettingsPropertiesFormat) 1936 if err != nil { 1937 return err 1938 } 1939 agbhs.ApplicationGatewayBackendHTTPSettingsPropertiesFormat = &applicationGatewayBackendHTTPSettingsPropertiesFormat 1940 } 1941 case "name": 1942 if v != nil { 1943 var name string 1944 err = json.Unmarshal(*v, &name) 1945 if err != nil { 1946 return err 1947 } 1948 agbhs.Name = &name 1949 } 1950 case "etag": 1951 if v != nil { 1952 var etag string 1953 err = json.Unmarshal(*v, &etag) 1954 if err != nil { 1955 return err 1956 } 1957 agbhs.Etag = &etag 1958 } 1959 case "type": 1960 if v != nil { 1961 var typeVar string 1962 err = json.Unmarshal(*v, &typeVar) 1963 if err != nil { 1964 return err 1965 } 1966 agbhs.Type = &typeVar 1967 } 1968 case "id": 1969 if v != nil { 1970 var ID string 1971 err = json.Unmarshal(*v, &ID) 1972 if err != nil { 1973 return err 1974 } 1975 agbhs.ID = &ID 1976 } 1977 } 1978 } 1979 1980 return nil 1981} 1982 1983// ApplicationGatewayBackendHTTPSettingsPropertiesFormat properties of Backend address pool settings of an 1984// application gateway. 1985type ApplicationGatewayBackendHTTPSettingsPropertiesFormat struct { 1986 // Port - Port 1987 Port *int32 `json:"port,omitempty"` 1988 // Protocol - Protocol. Possible values include: 'HTTP', 'HTTPS' 1989 Protocol ApplicationGatewayProtocol `json:"protocol,omitempty"` 1990 // CookieBasedAffinity - Cookie based affinity. Possible values include: 'Enabled', 'Disabled' 1991 CookieBasedAffinity ApplicationGatewayCookieBasedAffinity `json:"cookieBasedAffinity,omitempty"` 1992 // 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. 1993 RequestTimeout *int32 `json:"requestTimeout,omitempty"` 1994 // Probe - Probe resource of an application gateway. 1995 Probe *SubResource `json:"probe,omitempty"` 1996 // AuthenticationCertificates - Array of references to application gateway authentication certificates. 1997 AuthenticationCertificates *[]SubResource `json:"authenticationCertificates,omitempty"` 1998 // ConnectionDraining - Connection draining of the backend http settings resource. 1999 ConnectionDraining *ApplicationGatewayConnectionDraining `json:"connectionDraining,omitempty"` 2000 // HostName - Host header to be sent to the backend servers. 2001 HostName *string `json:"hostName,omitempty"` 2002 // PickHostNameFromBackendAddress - Whether to pick host header should be picked from the host name of the backend server. Default value is false. 2003 PickHostNameFromBackendAddress *bool `json:"pickHostNameFromBackendAddress,omitempty"` 2004 // AffinityCookieName - Cookie name to use for the affinity cookie. 2005 AffinityCookieName *string `json:"affinityCookieName,omitempty"` 2006 // ProbeEnabled - Whether the probe is enabled. Default value is false. 2007 ProbeEnabled *bool `json:"probeEnabled,omitempty"` 2008 // Path - Path which should be used as a prefix for all HTTP requests. Null means no path will be prefixed. Default value is null. 2009 Path *string `json:"path,omitempty"` 2010 // ProvisioningState - Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2011 ProvisioningState *string `json:"provisioningState,omitempty"` 2012} 2013 2014// ApplicationGatewayConnectionDraining connection draining allows open connections to a backend server to be 2015// active for a specified time after the backend server got removed from the configuration. 2016type ApplicationGatewayConnectionDraining struct { 2017 // Enabled - Whether connection draining is enabled or not. 2018 Enabled *bool `json:"enabled,omitempty"` 2019 // DrainTimeoutInSec - The number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds. 2020 DrainTimeoutInSec *int32 `json:"drainTimeoutInSec,omitempty"` 2021} 2022 2023// ApplicationGatewayFirewallDisabledRuleGroup allows to disable rules within a rule group or an entire rule group. 2024type ApplicationGatewayFirewallDisabledRuleGroup struct { 2025 // RuleGroupName - The name of the rule group that will be disabled. 2026 RuleGroupName *string `json:"ruleGroupName,omitempty"` 2027 // Rules - The list of rules that will be disabled. If null, all rules of the rule group will be disabled. 2028 Rules *[]int32 `json:"rules,omitempty"` 2029} 2030 2031// ApplicationGatewayFirewallRule a web application firewall rule. 2032type ApplicationGatewayFirewallRule struct { 2033 // RuleID - The identifier of the web application firewall rule. 2034 RuleID *int32 `json:"ruleId,omitempty"` 2035 // Description - The description of the web application firewall rule. 2036 Description *string `json:"description,omitempty"` 2037} 2038 2039// ApplicationGatewayFirewallRuleGroup a web application firewall rule group. 2040type ApplicationGatewayFirewallRuleGroup struct { 2041 // RuleGroupName - The name of the web application firewall rule group. 2042 RuleGroupName *string `json:"ruleGroupName,omitempty"` 2043 // Description - The description of the web application firewall rule group. 2044 Description *string `json:"description,omitempty"` 2045 // Rules - The rules of the web application firewall rule group. 2046 Rules *[]ApplicationGatewayFirewallRule `json:"rules,omitempty"` 2047} 2048 2049// ApplicationGatewayFirewallRuleSet a web application firewall rule set. 2050type ApplicationGatewayFirewallRuleSet struct { 2051 *ApplicationGatewayFirewallRuleSetPropertiesFormat `json:"properties,omitempty"` 2052 // ID - Resource ID. 2053 ID *string `json:"id,omitempty"` 2054 // Name - Resource name. 2055 Name *string `json:"name,omitempty"` 2056 // Type - Resource type. 2057 Type *string `json:"type,omitempty"` 2058 // Location - Resource location. 2059 Location *string `json:"location,omitempty"` 2060 // Tags - Resource tags. 2061 Tags map[string]*string `json:"tags"` 2062} 2063 2064// MarshalJSON is the custom marshaler for ApplicationGatewayFirewallRuleSet. 2065func (agfrs ApplicationGatewayFirewallRuleSet) MarshalJSON() ([]byte, error) { 2066 objectMap := make(map[string]interface{}) 2067 if agfrs.ApplicationGatewayFirewallRuleSetPropertiesFormat != nil { 2068 objectMap["properties"] = agfrs.ApplicationGatewayFirewallRuleSetPropertiesFormat 2069 } 2070 if agfrs.ID != nil { 2071 objectMap["id"] = agfrs.ID 2072 } 2073 if agfrs.Name != nil { 2074 objectMap["name"] = agfrs.Name 2075 } 2076 if agfrs.Type != nil { 2077 objectMap["type"] = agfrs.Type 2078 } 2079 if agfrs.Location != nil { 2080 objectMap["location"] = agfrs.Location 2081 } 2082 if agfrs.Tags != nil { 2083 objectMap["tags"] = agfrs.Tags 2084 } 2085 return json.Marshal(objectMap) 2086} 2087 2088// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayFirewallRuleSet struct. 2089func (agfrs *ApplicationGatewayFirewallRuleSet) UnmarshalJSON(body []byte) error { 2090 var m map[string]*json.RawMessage 2091 err := json.Unmarshal(body, &m) 2092 if err != nil { 2093 return err 2094 } 2095 for k, v := range m { 2096 switch k { 2097 case "properties": 2098 if v != nil { 2099 var applicationGatewayFirewallRuleSetPropertiesFormat ApplicationGatewayFirewallRuleSetPropertiesFormat 2100 err = json.Unmarshal(*v, &applicationGatewayFirewallRuleSetPropertiesFormat) 2101 if err != nil { 2102 return err 2103 } 2104 agfrs.ApplicationGatewayFirewallRuleSetPropertiesFormat = &applicationGatewayFirewallRuleSetPropertiesFormat 2105 } 2106 case "id": 2107 if v != nil { 2108 var ID string 2109 err = json.Unmarshal(*v, &ID) 2110 if err != nil { 2111 return err 2112 } 2113 agfrs.ID = &ID 2114 } 2115 case "name": 2116 if v != nil { 2117 var name string 2118 err = json.Unmarshal(*v, &name) 2119 if err != nil { 2120 return err 2121 } 2122 agfrs.Name = &name 2123 } 2124 case "type": 2125 if v != nil { 2126 var typeVar string 2127 err = json.Unmarshal(*v, &typeVar) 2128 if err != nil { 2129 return err 2130 } 2131 agfrs.Type = &typeVar 2132 } 2133 case "location": 2134 if v != nil { 2135 var location string 2136 err = json.Unmarshal(*v, &location) 2137 if err != nil { 2138 return err 2139 } 2140 agfrs.Location = &location 2141 } 2142 case "tags": 2143 if v != nil { 2144 var tags map[string]*string 2145 err = json.Unmarshal(*v, &tags) 2146 if err != nil { 2147 return err 2148 } 2149 agfrs.Tags = tags 2150 } 2151 } 2152 } 2153 2154 return nil 2155} 2156 2157// ApplicationGatewayFirewallRuleSetPropertiesFormat properties of the web application firewall rule set. 2158type ApplicationGatewayFirewallRuleSetPropertiesFormat struct { 2159 // ProvisioningState - The provisioning state of the web application firewall rule set. 2160 ProvisioningState *string `json:"provisioningState,omitempty"` 2161 // RuleSetType - The type of the web application firewall rule set. 2162 RuleSetType *string `json:"ruleSetType,omitempty"` 2163 // RuleSetVersion - The version of the web application firewall rule set type. 2164 RuleSetVersion *string `json:"ruleSetVersion,omitempty"` 2165 // RuleGroups - The rule groups of the web application firewall rule set. 2166 RuleGroups *[]ApplicationGatewayFirewallRuleGroup `json:"ruleGroups,omitempty"` 2167} 2168 2169// ApplicationGatewayFrontendIPConfiguration frontend IP configuration of an application gateway. 2170type ApplicationGatewayFrontendIPConfiguration struct { 2171 *ApplicationGatewayFrontendIPConfigurationPropertiesFormat `json:"properties,omitempty"` 2172 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2173 Name *string `json:"name,omitempty"` 2174 // Etag - A unique read-only string that changes whenever the resource is updated. 2175 Etag *string `json:"etag,omitempty"` 2176 // Type - Type of the resource. 2177 Type *string `json:"type,omitempty"` 2178 // ID - Resource ID. 2179 ID *string `json:"id,omitempty"` 2180} 2181 2182// MarshalJSON is the custom marshaler for ApplicationGatewayFrontendIPConfiguration. 2183func (agfic ApplicationGatewayFrontendIPConfiguration) MarshalJSON() ([]byte, error) { 2184 objectMap := make(map[string]interface{}) 2185 if agfic.ApplicationGatewayFrontendIPConfigurationPropertiesFormat != nil { 2186 objectMap["properties"] = agfic.ApplicationGatewayFrontendIPConfigurationPropertiesFormat 2187 } 2188 if agfic.Name != nil { 2189 objectMap["name"] = agfic.Name 2190 } 2191 if agfic.Etag != nil { 2192 objectMap["etag"] = agfic.Etag 2193 } 2194 if agfic.Type != nil { 2195 objectMap["type"] = agfic.Type 2196 } 2197 if agfic.ID != nil { 2198 objectMap["id"] = agfic.ID 2199 } 2200 return json.Marshal(objectMap) 2201} 2202 2203// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayFrontendIPConfiguration struct. 2204func (agfic *ApplicationGatewayFrontendIPConfiguration) UnmarshalJSON(body []byte) error { 2205 var m map[string]*json.RawMessage 2206 err := json.Unmarshal(body, &m) 2207 if err != nil { 2208 return err 2209 } 2210 for k, v := range m { 2211 switch k { 2212 case "properties": 2213 if v != nil { 2214 var applicationGatewayFrontendIPConfigurationPropertiesFormat ApplicationGatewayFrontendIPConfigurationPropertiesFormat 2215 err = json.Unmarshal(*v, &applicationGatewayFrontendIPConfigurationPropertiesFormat) 2216 if err != nil { 2217 return err 2218 } 2219 agfic.ApplicationGatewayFrontendIPConfigurationPropertiesFormat = &applicationGatewayFrontendIPConfigurationPropertiesFormat 2220 } 2221 case "name": 2222 if v != nil { 2223 var name string 2224 err = json.Unmarshal(*v, &name) 2225 if err != nil { 2226 return err 2227 } 2228 agfic.Name = &name 2229 } 2230 case "etag": 2231 if v != nil { 2232 var etag string 2233 err = json.Unmarshal(*v, &etag) 2234 if err != nil { 2235 return err 2236 } 2237 agfic.Etag = &etag 2238 } 2239 case "type": 2240 if v != nil { 2241 var typeVar string 2242 err = json.Unmarshal(*v, &typeVar) 2243 if err != nil { 2244 return err 2245 } 2246 agfic.Type = &typeVar 2247 } 2248 case "id": 2249 if v != nil { 2250 var ID string 2251 err = json.Unmarshal(*v, &ID) 2252 if err != nil { 2253 return err 2254 } 2255 agfic.ID = &ID 2256 } 2257 } 2258 } 2259 2260 return nil 2261} 2262 2263// ApplicationGatewayFrontendIPConfigurationPropertiesFormat properties of Frontend IP configuration of an 2264// application gateway. 2265type ApplicationGatewayFrontendIPConfigurationPropertiesFormat struct { 2266 // PrivateIPAddress - PrivateIPAddress of the network interface IP Configuration. 2267 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 2268 // PrivateIPAllocationMethod - PrivateIP allocation method. Possible values include: 'Static', 'Dynamic' 2269 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 2270 // Subnet - Reference of the subnet resource. 2271 Subnet *SubResource `json:"subnet,omitempty"` 2272 // PublicIPAddress - Reference of the PublicIP resource. 2273 PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"` 2274 // ProvisioningState - Provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2275 ProvisioningState *string `json:"provisioningState,omitempty"` 2276} 2277 2278// ApplicationGatewayFrontendPort frontend port of an application gateway. 2279type ApplicationGatewayFrontendPort struct { 2280 *ApplicationGatewayFrontendPortPropertiesFormat `json:"properties,omitempty"` 2281 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2282 Name *string `json:"name,omitempty"` 2283 // Etag - A unique read-only string that changes whenever the resource is updated. 2284 Etag *string `json:"etag,omitempty"` 2285 // Type - Type of the resource. 2286 Type *string `json:"type,omitempty"` 2287 // ID - Resource ID. 2288 ID *string `json:"id,omitempty"` 2289} 2290 2291// MarshalJSON is the custom marshaler for ApplicationGatewayFrontendPort. 2292func (agfp ApplicationGatewayFrontendPort) MarshalJSON() ([]byte, error) { 2293 objectMap := make(map[string]interface{}) 2294 if agfp.ApplicationGatewayFrontendPortPropertiesFormat != nil { 2295 objectMap["properties"] = agfp.ApplicationGatewayFrontendPortPropertiesFormat 2296 } 2297 if agfp.Name != nil { 2298 objectMap["name"] = agfp.Name 2299 } 2300 if agfp.Etag != nil { 2301 objectMap["etag"] = agfp.Etag 2302 } 2303 if agfp.Type != nil { 2304 objectMap["type"] = agfp.Type 2305 } 2306 if agfp.ID != nil { 2307 objectMap["id"] = agfp.ID 2308 } 2309 return json.Marshal(objectMap) 2310} 2311 2312// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayFrontendPort struct. 2313func (agfp *ApplicationGatewayFrontendPort) UnmarshalJSON(body []byte) error { 2314 var m map[string]*json.RawMessage 2315 err := json.Unmarshal(body, &m) 2316 if err != nil { 2317 return err 2318 } 2319 for k, v := range m { 2320 switch k { 2321 case "properties": 2322 if v != nil { 2323 var applicationGatewayFrontendPortPropertiesFormat ApplicationGatewayFrontendPortPropertiesFormat 2324 err = json.Unmarshal(*v, &applicationGatewayFrontendPortPropertiesFormat) 2325 if err != nil { 2326 return err 2327 } 2328 agfp.ApplicationGatewayFrontendPortPropertiesFormat = &applicationGatewayFrontendPortPropertiesFormat 2329 } 2330 case "name": 2331 if v != nil { 2332 var name string 2333 err = json.Unmarshal(*v, &name) 2334 if err != nil { 2335 return err 2336 } 2337 agfp.Name = &name 2338 } 2339 case "etag": 2340 if v != nil { 2341 var etag string 2342 err = json.Unmarshal(*v, &etag) 2343 if err != nil { 2344 return err 2345 } 2346 agfp.Etag = &etag 2347 } 2348 case "type": 2349 if v != nil { 2350 var typeVar string 2351 err = json.Unmarshal(*v, &typeVar) 2352 if err != nil { 2353 return err 2354 } 2355 agfp.Type = &typeVar 2356 } 2357 case "id": 2358 if v != nil { 2359 var ID string 2360 err = json.Unmarshal(*v, &ID) 2361 if err != nil { 2362 return err 2363 } 2364 agfp.ID = &ID 2365 } 2366 } 2367 } 2368 2369 return nil 2370} 2371 2372// ApplicationGatewayFrontendPortPropertiesFormat properties of Frontend port of an application gateway. 2373type ApplicationGatewayFrontendPortPropertiesFormat struct { 2374 // Port - Frontend port 2375 Port *int32 `json:"port,omitempty"` 2376 // ProvisioningState - Provisioning state of the frontend port resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2377 ProvisioningState *string `json:"provisioningState,omitempty"` 2378} 2379 2380// ApplicationGatewayHTTPListener http listener of an application gateway. 2381type ApplicationGatewayHTTPListener struct { 2382 *ApplicationGatewayHTTPListenerPropertiesFormat `json:"properties,omitempty"` 2383 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2384 Name *string `json:"name,omitempty"` 2385 // Etag - A unique read-only string that changes whenever the resource is updated. 2386 Etag *string `json:"etag,omitempty"` 2387 // Type - Type of the resource. 2388 Type *string `json:"type,omitempty"` 2389 // ID - Resource ID. 2390 ID *string `json:"id,omitempty"` 2391} 2392 2393// MarshalJSON is the custom marshaler for ApplicationGatewayHTTPListener. 2394func (aghl ApplicationGatewayHTTPListener) MarshalJSON() ([]byte, error) { 2395 objectMap := make(map[string]interface{}) 2396 if aghl.ApplicationGatewayHTTPListenerPropertiesFormat != nil { 2397 objectMap["properties"] = aghl.ApplicationGatewayHTTPListenerPropertiesFormat 2398 } 2399 if aghl.Name != nil { 2400 objectMap["name"] = aghl.Name 2401 } 2402 if aghl.Etag != nil { 2403 objectMap["etag"] = aghl.Etag 2404 } 2405 if aghl.Type != nil { 2406 objectMap["type"] = aghl.Type 2407 } 2408 if aghl.ID != nil { 2409 objectMap["id"] = aghl.ID 2410 } 2411 return json.Marshal(objectMap) 2412} 2413 2414// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayHTTPListener struct. 2415func (aghl *ApplicationGatewayHTTPListener) UnmarshalJSON(body []byte) error { 2416 var m map[string]*json.RawMessage 2417 err := json.Unmarshal(body, &m) 2418 if err != nil { 2419 return err 2420 } 2421 for k, v := range m { 2422 switch k { 2423 case "properties": 2424 if v != nil { 2425 var applicationGatewayHTTPListenerPropertiesFormat ApplicationGatewayHTTPListenerPropertiesFormat 2426 err = json.Unmarshal(*v, &applicationGatewayHTTPListenerPropertiesFormat) 2427 if err != nil { 2428 return err 2429 } 2430 aghl.ApplicationGatewayHTTPListenerPropertiesFormat = &applicationGatewayHTTPListenerPropertiesFormat 2431 } 2432 case "name": 2433 if v != nil { 2434 var name string 2435 err = json.Unmarshal(*v, &name) 2436 if err != nil { 2437 return err 2438 } 2439 aghl.Name = &name 2440 } 2441 case "etag": 2442 if v != nil { 2443 var etag string 2444 err = json.Unmarshal(*v, &etag) 2445 if err != nil { 2446 return err 2447 } 2448 aghl.Etag = &etag 2449 } 2450 case "type": 2451 if v != nil { 2452 var typeVar string 2453 err = json.Unmarshal(*v, &typeVar) 2454 if err != nil { 2455 return err 2456 } 2457 aghl.Type = &typeVar 2458 } 2459 case "id": 2460 if v != nil { 2461 var ID string 2462 err = json.Unmarshal(*v, &ID) 2463 if err != nil { 2464 return err 2465 } 2466 aghl.ID = &ID 2467 } 2468 } 2469 } 2470 2471 return nil 2472} 2473 2474// ApplicationGatewayHTTPListenerPropertiesFormat properties of HTTP listener of an application gateway. 2475type ApplicationGatewayHTTPListenerPropertiesFormat struct { 2476 // FrontendIPConfiguration - Frontend IP configuration resource of an application gateway. 2477 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 2478 // FrontendPort - Frontend port resource of an application gateway. 2479 FrontendPort *SubResource `json:"frontendPort,omitempty"` 2480 // Protocol - Protocol. Possible values include: 'HTTP', 'HTTPS' 2481 Protocol ApplicationGatewayProtocol `json:"protocol,omitempty"` 2482 // HostName - Host name of HTTP listener. 2483 HostName *string `json:"hostName,omitempty"` 2484 // SslCertificate - SSL certificate resource of an application gateway. 2485 SslCertificate *SubResource `json:"sslCertificate,omitempty"` 2486 // RequireServerNameIndication - Applicable only if protocol is https. Enables SNI for multi-hosting. 2487 RequireServerNameIndication *bool `json:"requireServerNameIndication,omitempty"` 2488 // ProvisioningState - Provisioning state of the HTTP listener resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2489 ProvisioningState *string `json:"provisioningState,omitempty"` 2490} 2491 2492// ApplicationGatewayIPConfiguration IP configuration of an application gateway. Currently 1 public and 1 private 2493// IP configuration is allowed. 2494type ApplicationGatewayIPConfiguration struct { 2495 *ApplicationGatewayIPConfigurationPropertiesFormat `json:"properties,omitempty"` 2496 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2497 Name *string `json:"name,omitempty"` 2498 // Etag - A unique read-only string that changes whenever the resource is updated. 2499 Etag *string `json:"etag,omitempty"` 2500 // Type - Type of the resource. 2501 Type *string `json:"type,omitempty"` 2502 // ID - Resource ID. 2503 ID *string `json:"id,omitempty"` 2504} 2505 2506// MarshalJSON is the custom marshaler for ApplicationGatewayIPConfiguration. 2507func (agic ApplicationGatewayIPConfiguration) MarshalJSON() ([]byte, error) { 2508 objectMap := make(map[string]interface{}) 2509 if agic.ApplicationGatewayIPConfigurationPropertiesFormat != nil { 2510 objectMap["properties"] = agic.ApplicationGatewayIPConfigurationPropertiesFormat 2511 } 2512 if agic.Name != nil { 2513 objectMap["name"] = agic.Name 2514 } 2515 if agic.Etag != nil { 2516 objectMap["etag"] = agic.Etag 2517 } 2518 if agic.Type != nil { 2519 objectMap["type"] = agic.Type 2520 } 2521 if agic.ID != nil { 2522 objectMap["id"] = agic.ID 2523 } 2524 return json.Marshal(objectMap) 2525} 2526 2527// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayIPConfiguration struct. 2528func (agic *ApplicationGatewayIPConfiguration) UnmarshalJSON(body []byte) error { 2529 var m map[string]*json.RawMessage 2530 err := json.Unmarshal(body, &m) 2531 if err != nil { 2532 return err 2533 } 2534 for k, v := range m { 2535 switch k { 2536 case "properties": 2537 if v != nil { 2538 var applicationGatewayIPConfigurationPropertiesFormat ApplicationGatewayIPConfigurationPropertiesFormat 2539 err = json.Unmarshal(*v, &applicationGatewayIPConfigurationPropertiesFormat) 2540 if err != nil { 2541 return err 2542 } 2543 agic.ApplicationGatewayIPConfigurationPropertiesFormat = &applicationGatewayIPConfigurationPropertiesFormat 2544 } 2545 case "name": 2546 if v != nil { 2547 var name string 2548 err = json.Unmarshal(*v, &name) 2549 if err != nil { 2550 return err 2551 } 2552 agic.Name = &name 2553 } 2554 case "etag": 2555 if v != nil { 2556 var etag string 2557 err = json.Unmarshal(*v, &etag) 2558 if err != nil { 2559 return err 2560 } 2561 agic.Etag = &etag 2562 } 2563 case "type": 2564 if v != nil { 2565 var typeVar string 2566 err = json.Unmarshal(*v, &typeVar) 2567 if err != nil { 2568 return err 2569 } 2570 agic.Type = &typeVar 2571 } 2572 case "id": 2573 if v != nil { 2574 var ID string 2575 err = json.Unmarshal(*v, &ID) 2576 if err != nil { 2577 return err 2578 } 2579 agic.ID = &ID 2580 } 2581 } 2582 } 2583 2584 return nil 2585} 2586 2587// ApplicationGatewayIPConfigurationPropertiesFormat properties of IP configuration of an application gateway. 2588type ApplicationGatewayIPConfigurationPropertiesFormat struct { 2589 // Subnet - Reference of the subnet resource. A subnet from where application gateway gets its private address. 2590 Subnet *SubResource `json:"subnet,omitempty"` 2591 // ProvisioningState - Provisioning state of the application gateway subnet resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2592 ProvisioningState *string `json:"provisioningState,omitempty"` 2593} 2594 2595// ApplicationGatewayListResult response for ListApplicationGateways API service call. 2596type ApplicationGatewayListResult struct { 2597 autorest.Response `json:"-"` 2598 // Value - List of an application gateways in a resource group. 2599 Value *[]ApplicationGateway `json:"value,omitempty"` 2600 // NextLink - URL to get the next set of results. 2601 NextLink *string `json:"nextLink,omitempty"` 2602} 2603 2604// ApplicationGatewayListResultIterator provides access to a complete listing of ApplicationGateway values. 2605type ApplicationGatewayListResultIterator struct { 2606 i int 2607 page ApplicationGatewayListResultPage 2608} 2609 2610// Next advances to the next value. If there was an error making 2611// the request the iterator does not advance and the error is returned. 2612func (iter *ApplicationGatewayListResultIterator) Next() error { 2613 iter.i++ 2614 if iter.i < len(iter.page.Values()) { 2615 return nil 2616 } 2617 err := iter.page.Next() 2618 if err != nil { 2619 iter.i-- 2620 return err 2621 } 2622 iter.i = 0 2623 return nil 2624} 2625 2626// NotDone returns true if the enumeration should be started or is not yet complete. 2627func (iter ApplicationGatewayListResultIterator) NotDone() bool { 2628 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 2629} 2630 2631// Response returns the raw server response from the last page request. 2632func (iter ApplicationGatewayListResultIterator) Response() ApplicationGatewayListResult { 2633 return iter.page.Response() 2634} 2635 2636// Value returns the current value or a zero-initialized value if the 2637// iterator has advanced beyond the end of the collection. 2638func (iter ApplicationGatewayListResultIterator) Value() ApplicationGateway { 2639 if !iter.page.NotDone() { 2640 return ApplicationGateway{} 2641 } 2642 return iter.page.Values()[iter.i] 2643} 2644 2645// IsEmpty returns true if the ListResult contains no values. 2646func (aglr ApplicationGatewayListResult) IsEmpty() bool { 2647 return aglr.Value == nil || len(*aglr.Value) == 0 2648} 2649 2650// applicationGatewayListResultPreparer prepares a request to retrieve the next set of results. 2651// It returns nil if no more results exist. 2652func (aglr ApplicationGatewayListResult) applicationGatewayListResultPreparer() (*http.Request, error) { 2653 if aglr.NextLink == nil || len(to.String(aglr.NextLink)) < 1 { 2654 return nil, nil 2655 } 2656 return autorest.Prepare(&http.Request{}, 2657 autorest.AsJSON(), 2658 autorest.AsGet(), 2659 autorest.WithBaseURL(to.String(aglr.NextLink))) 2660} 2661 2662// ApplicationGatewayListResultPage contains a page of ApplicationGateway values. 2663type ApplicationGatewayListResultPage struct { 2664 fn func(ApplicationGatewayListResult) (ApplicationGatewayListResult, error) 2665 aglr ApplicationGatewayListResult 2666} 2667 2668// Next advances to the next page of values. If there was an error making 2669// the request the page does not advance and the error is returned. 2670func (page *ApplicationGatewayListResultPage) Next() error { 2671 next, err := page.fn(page.aglr) 2672 if err != nil { 2673 return err 2674 } 2675 page.aglr = next 2676 return nil 2677} 2678 2679// NotDone returns true if the page enumeration should be started or is not yet complete. 2680func (page ApplicationGatewayListResultPage) NotDone() bool { 2681 return !page.aglr.IsEmpty() 2682} 2683 2684// Response returns the raw server response from the last page request. 2685func (page ApplicationGatewayListResultPage) Response() ApplicationGatewayListResult { 2686 return page.aglr 2687} 2688 2689// Values returns the slice of values for the current page or nil if there are no values. 2690func (page ApplicationGatewayListResultPage) Values() []ApplicationGateway { 2691 if page.aglr.IsEmpty() { 2692 return nil 2693 } 2694 return *page.aglr.Value 2695} 2696 2697// ApplicationGatewayPathRule path rule of URL path map of an application gateway. 2698type ApplicationGatewayPathRule struct { 2699 *ApplicationGatewayPathRulePropertiesFormat `json:"properties,omitempty"` 2700 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2701 Name *string `json:"name,omitempty"` 2702 // Etag - A unique read-only string that changes whenever the resource is updated. 2703 Etag *string `json:"etag,omitempty"` 2704 // Type - Type of the resource. 2705 Type *string `json:"type,omitempty"` 2706 // ID - Resource ID. 2707 ID *string `json:"id,omitempty"` 2708} 2709 2710// MarshalJSON is the custom marshaler for ApplicationGatewayPathRule. 2711func (agpr ApplicationGatewayPathRule) MarshalJSON() ([]byte, error) { 2712 objectMap := make(map[string]interface{}) 2713 if agpr.ApplicationGatewayPathRulePropertiesFormat != nil { 2714 objectMap["properties"] = agpr.ApplicationGatewayPathRulePropertiesFormat 2715 } 2716 if agpr.Name != nil { 2717 objectMap["name"] = agpr.Name 2718 } 2719 if agpr.Etag != nil { 2720 objectMap["etag"] = agpr.Etag 2721 } 2722 if agpr.Type != nil { 2723 objectMap["type"] = agpr.Type 2724 } 2725 if agpr.ID != nil { 2726 objectMap["id"] = agpr.ID 2727 } 2728 return json.Marshal(objectMap) 2729} 2730 2731// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayPathRule struct. 2732func (agpr *ApplicationGatewayPathRule) UnmarshalJSON(body []byte) error { 2733 var m map[string]*json.RawMessage 2734 err := json.Unmarshal(body, &m) 2735 if err != nil { 2736 return err 2737 } 2738 for k, v := range m { 2739 switch k { 2740 case "properties": 2741 if v != nil { 2742 var applicationGatewayPathRulePropertiesFormat ApplicationGatewayPathRulePropertiesFormat 2743 err = json.Unmarshal(*v, &applicationGatewayPathRulePropertiesFormat) 2744 if err != nil { 2745 return err 2746 } 2747 agpr.ApplicationGatewayPathRulePropertiesFormat = &applicationGatewayPathRulePropertiesFormat 2748 } 2749 case "name": 2750 if v != nil { 2751 var name string 2752 err = json.Unmarshal(*v, &name) 2753 if err != nil { 2754 return err 2755 } 2756 agpr.Name = &name 2757 } 2758 case "etag": 2759 if v != nil { 2760 var etag string 2761 err = json.Unmarshal(*v, &etag) 2762 if err != nil { 2763 return err 2764 } 2765 agpr.Etag = &etag 2766 } 2767 case "type": 2768 if v != nil { 2769 var typeVar string 2770 err = json.Unmarshal(*v, &typeVar) 2771 if err != nil { 2772 return err 2773 } 2774 agpr.Type = &typeVar 2775 } 2776 case "id": 2777 if v != nil { 2778 var ID string 2779 err = json.Unmarshal(*v, &ID) 2780 if err != nil { 2781 return err 2782 } 2783 agpr.ID = &ID 2784 } 2785 } 2786 } 2787 2788 return nil 2789} 2790 2791// ApplicationGatewayPathRulePropertiesFormat properties of path rule of an application gateway. 2792type ApplicationGatewayPathRulePropertiesFormat struct { 2793 // Paths - Path rules of URL path map. 2794 Paths *[]string `json:"paths,omitempty"` 2795 // BackendAddressPool - Backend address pool resource of URL path map path rule. 2796 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 2797 // BackendHTTPSettings - Backend http settings resource of URL path map path rule. 2798 BackendHTTPSettings *SubResource `json:"backendHttpSettings,omitempty"` 2799 // RedirectConfiguration - Redirect configuration resource of URL path map path rule. 2800 RedirectConfiguration *SubResource `json:"redirectConfiguration,omitempty"` 2801 // ProvisioningState - Path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2802 ProvisioningState *string `json:"provisioningState,omitempty"` 2803} 2804 2805// ApplicationGatewayProbe probe of the application gateway. 2806type ApplicationGatewayProbe struct { 2807 *ApplicationGatewayProbePropertiesFormat `json:"properties,omitempty"` 2808 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2809 Name *string `json:"name,omitempty"` 2810 // Etag - A unique read-only string that changes whenever the resource is updated. 2811 Etag *string `json:"etag,omitempty"` 2812 // Type - Type of the resource. 2813 Type *string `json:"type,omitempty"` 2814 // ID - Resource ID. 2815 ID *string `json:"id,omitempty"` 2816} 2817 2818// MarshalJSON is the custom marshaler for ApplicationGatewayProbe. 2819func (agp ApplicationGatewayProbe) MarshalJSON() ([]byte, error) { 2820 objectMap := make(map[string]interface{}) 2821 if agp.ApplicationGatewayProbePropertiesFormat != nil { 2822 objectMap["properties"] = agp.ApplicationGatewayProbePropertiesFormat 2823 } 2824 if agp.Name != nil { 2825 objectMap["name"] = agp.Name 2826 } 2827 if agp.Etag != nil { 2828 objectMap["etag"] = agp.Etag 2829 } 2830 if agp.Type != nil { 2831 objectMap["type"] = agp.Type 2832 } 2833 if agp.ID != nil { 2834 objectMap["id"] = agp.ID 2835 } 2836 return json.Marshal(objectMap) 2837} 2838 2839// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayProbe struct. 2840func (agp *ApplicationGatewayProbe) UnmarshalJSON(body []byte) error { 2841 var m map[string]*json.RawMessage 2842 err := json.Unmarshal(body, &m) 2843 if err != nil { 2844 return err 2845 } 2846 for k, v := range m { 2847 switch k { 2848 case "properties": 2849 if v != nil { 2850 var applicationGatewayProbePropertiesFormat ApplicationGatewayProbePropertiesFormat 2851 err = json.Unmarshal(*v, &applicationGatewayProbePropertiesFormat) 2852 if err != nil { 2853 return err 2854 } 2855 agp.ApplicationGatewayProbePropertiesFormat = &applicationGatewayProbePropertiesFormat 2856 } 2857 case "name": 2858 if v != nil { 2859 var name string 2860 err = json.Unmarshal(*v, &name) 2861 if err != nil { 2862 return err 2863 } 2864 agp.Name = &name 2865 } 2866 case "etag": 2867 if v != nil { 2868 var etag string 2869 err = json.Unmarshal(*v, &etag) 2870 if err != nil { 2871 return err 2872 } 2873 agp.Etag = &etag 2874 } 2875 case "type": 2876 if v != nil { 2877 var typeVar string 2878 err = json.Unmarshal(*v, &typeVar) 2879 if err != nil { 2880 return err 2881 } 2882 agp.Type = &typeVar 2883 } 2884 case "id": 2885 if v != nil { 2886 var ID string 2887 err = json.Unmarshal(*v, &ID) 2888 if err != nil { 2889 return err 2890 } 2891 agp.ID = &ID 2892 } 2893 } 2894 } 2895 2896 return nil 2897} 2898 2899// ApplicationGatewayProbeHealthResponseMatch application gateway probe health response match 2900type ApplicationGatewayProbeHealthResponseMatch struct { 2901 // Body - Body that must be contained in the health response. Default value is empty. 2902 Body *string `json:"body,omitempty"` 2903 // StatusCodes - Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. 2904 StatusCodes *[]string `json:"statusCodes,omitempty"` 2905} 2906 2907// ApplicationGatewayProbePropertiesFormat properties of probe of an application gateway. 2908type ApplicationGatewayProbePropertiesFormat struct { 2909 // Protocol - Protocol. Possible values include: 'HTTP', 'HTTPS' 2910 Protocol ApplicationGatewayProtocol `json:"protocol,omitempty"` 2911 // Host - Host name to send the probe to. 2912 Host *string `json:"host,omitempty"` 2913 // Path - Relative path of probe. Valid path starts from '/'. Probe is sent to <Protocol>://<host>:<port><path> 2914 Path *string `json:"path,omitempty"` 2915 // Interval - The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. 2916 Interval *int32 `json:"interval,omitempty"` 2917 // 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. 2918 Timeout *int32 `json:"timeout,omitempty"` 2919 // 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. 2920 UnhealthyThreshold *int32 `json:"unhealthyThreshold,omitempty"` 2921 // PickHostNameFromBackendHTTPSettings - Whether the host header should be picked from the backend http settings. Default value is false. 2922 PickHostNameFromBackendHTTPSettings *bool `json:"pickHostNameFromBackendHttpSettings,omitempty"` 2923 // MinServers - Minimum number of servers that are always marked healthy. Default value is 0. 2924 MinServers *int32 `json:"minServers,omitempty"` 2925 // Match - Criterion for classifying a healthy probe response. 2926 Match *ApplicationGatewayProbeHealthResponseMatch `json:"match,omitempty"` 2927 // ProvisioningState - Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2928 ProvisioningState *string `json:"provisioningState,omitempty"` 2929} 2930 2931// ApplicationGatewayPropertiesFormat properties of the application gateway. 2932type ApplicationGatewayPropertiesFormat struct { 2933 // Sku - SKU of the application gateway resource. 2934 Sku *ApplicationGatewaySku `json:"sku,omitempty"` 2935 // SslPolicy - SSL policy of the application gateway resource. 2936 SslPolicy *ApplicationGatewaySslPolicy `json:"sslPolicy,omitempty"` 2937 // OperationalState - Operational state of the application gateway resource. Possible values include: 'Stopped', 'Starting', 'Running', 'Stopping' 2938 OperationalState ApplicationGatewayOperationalState `json:"operationalState,omitempty"` 2939 // GatewayIPConfigurations - Subnets of application the gateway resource. 2940 GatewayIPConfigurations *[]ApplicationGatewayIPConfiguration `json:"gatewayIPConfigurations,omitempty"` 2941 // AuthenticationCertificates - Authentication certificates of the application gateway resource. 2942 AuthenticationCertificates *[]ApplicationGatewayAuthenticationCertificate `json:"authenticationCertificates,omitempty"` 2943 // SslCertificates - SSL certificates of the application gateway resource. 2944 SslCertificates *[]ApplicationGatewaySslCertificate `json:"sslCertificates,omitempty"` 2945 // FrontendIPConfigurations - Frontend IP addresses of the application gateway resource. 2946 FrontendIPConfigurations *[]ApplicationGatewayFrontendIPConfiguration `json:"frontendIPConfigurations,omitempty"` 2947 // FrontendPorts - Frontend ports of the application gateway resource. 2948 FrontendPorts *[]ApplicationGatewayFrontendPort `json:"frontendPorts,omitempty"` 2949 // Probes - Probes of the application gateway resource. 2950 Probes *[]ApplicationGatewayProbe `json:"probes,omitempty"` 2951 // BackendAddressPools - Backend address pool of the application gateway resource. 2952 BackendAddressPools *[]ApplicationGatewayBackendAddressPool `json:"backendAddressPools,omitempty"` 2953 // BackendHTTPSettingsCollection - Backend http settings of the application gateway resource. 2954 BackendHTTPSettingsCollection *[]ApplicationGatewayBackendHTTPSettings `json:"backendHttpSettingsCollection,omitempty"` 2955 // HTTPListeners - Http listeners of the application gateway resource. 2956 HTTPListeners *[]ApplicationGatewayHTTPListener `json:"httpListeners,omitempty"` 2957 // URLPathMaps - URL path map of the application gateway resource. 2958 URLPathMaps *[]ApplicationGatewayURLPathMap `json:"urlPathMaps,omitempty"` 2959 // RequestRoutingRules - Request routing rules of the application gateway resource. 2960 RequestRoutingRules *[]ApplicationGatewayRequestRoutingRule `json:"requestRoutingRules,omitempty"` 2961 // RedirectConfigurations - Redirect configurations of the application gateway resource. 2962 RedirectConfigurations *[]ApplicationGatewayRedirectConfiguration `json:"redirectConfigurations,omitempty"` 2963 // WebApplicationFirewallConfiguration - Web application firewall configuration. 2964 WebApplicationFirewallConfiguration *ApplicationGatewayWebApplicationFirewallConfiguration `json:"webApplicationFirewallConfiguration,omitempty"` 2965 // EnableHTTP2 - Whether HTTP2 is enabled on the application gateway resource. 2966 EnableHTTP2 *bool `json:"enableHttp2,omitempty"` 2967 // ResourceGUID - Resource GUID property of the application gateway resource. 2968 ResourceGUID *string `json:"resourceGuid,omitempty"` 2969 // ProvisioningState - Provisioning state of the application gateway resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 2970 ProvisioningState *string `json:"provisioningState,omitempty"` 2971} 2972 2973// ApplicationGatewayRedirectConfiguration redirect configuration of an application gateway. 2974type ApplicationGatewayRedirectConfiguration struct { 2975 *ApplicationGatewayRedirectConfigurationPropertiesFormat `json:"properties,omitempty"` 2976 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 2977 Name *string `json:"name,omitempty"` 2978 // Etag - A unique read-only string that changes whenever the resource is updated. 2979 Etag *string `json:"etag,omitempty"` 2980 // Type - Type of the resource. 2981 Type *string `json:"type,omitempty"` 2982 // ID - Resource ID. 2983 ID *string `json:"id,omitempty"` 2984} 2985 2986// MarshalJSON is the custom marshaler for ApplicationGatewayRedirectConfiguration. 2987func (agrc ApplicationGatewayRedirectConfiguration) MarshalJSON() ([]byte, error) { 2988 objectMap := make(map[string]interface{}) 2989 if agrc.ApplicationGatewayRedirectConfigurationPropertiesFormat != nil { 2990 objectMap["properties"] = agrc.ApplicationGatewayRedirectConfigurationPropertiesFormat 2991 } 2992 if agrc.Name != nil { 2993 objectMap["name"] = agrc.Name 2994 } 2995 if agrc.Etag != nil { 2996 objectMap["etag"] = agrc.Etag 2997 } 2998 if agrc.Type != nil { 2999 objectMap["type"] = agrc.Type 3000 } 3001 if agrc.ID != nil { 3002 objectMap["id"] = agrc.ID 3003 } 3004 return json.Marshal(objectMap) 3005} 3006 3007// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayRedirectConfiguration struct. 3008func (agrc *ApplicationGatewayRedirectConfiguration) UnmarshalJSON(body []byte) error { 3009 var m map[string]*json.RawMessage 3010 err := json.Unmarshal(body, &m) 3011 if err != nil { 3012 return err 3013 } 3014 for k, v := range m { 3015 switch k { 3016 case "properties": 3017 if v != nil { 3018 var applicationGatewayRedirectConfigurationPropertiesFormat ApplicationGatewayRedirectConfigurationPropertiesFormat 3019 err = json.Unmarshal(*v, &applicationGatewayRedirectConfigurationPropertiesFormat) 3020 if err != nil { 3021 return err 3022 } 3023 agrc.ApplicationGatewayRedirectConfigurationPropertiesFormat = &applicationGatewayRedirectConfigurationPropertiesFormat 3024 } 3025 case "name": 3026 if v != nil { 3027 var name string 3028 err = json.Unmarshal(*v, &name) 3029 if err != nil { 3030 return err 3031 } 3032 agrc.Name = &name 3033 } 3034 case "etag": 3035 if v != nil { 3036 var etag string 3037 err = json.Unmarshal(*v, &etag) 3038 if err != nil { 3039 return err 3040 } 3041 agrc.Etag = &etag 3042 } 3043 case "type": 3044 if v != nil { 3045 var typeVar string 3046 err = json.Unmarshal(*v, &typeVar) 3047 if err != nil { 3048 return err 3049 } 3050 agrc.Type = &typeVar 3051 } 3052 case "id": 3053 if v != nil { 3054 var ID string 3055 err = json.Unmarshal(*v, &ID) 3056 if err != nil { 3057 return err 3058 } 3059 agrc.ID = &ID 3060 } 3061 } 3062 } 3063 3064 return nil 3065} 3066 3067// ApplicationGatewayRedirectConfigurationPropertiesFormat properties of redirect configuration of the application 3068// gateway. 3069type ApplicationGatewayRedirectConfigurationPropertiesFormat struct { 3070 // RedirectType - Supported http redirection types - Permanent, Temporary, Found, SeeOther. Possible values include: 'Permanent', 'Found', 'SeeOther', 'Temporary' 3071 RedirectType ApplicationGatewayRedirectType `json:"redirectType,omitempty"` 3072 // TargetListener - Reference to a listener to redirect the request to. 3073 TargetListener *SubResource `json:"targetListener,omitempty"` 3074 // TargetURL - Url to redirect the request to. 3075 TargetURL *string `json:"targetUrl,omitempty"` 3076 // IncludePath - Include path in the redirected url. 3077 IncludePath *bool `json:"includePath,omitempty"` 3078 // IncludeQueryString - Include query string in the redirected url. 3079 IncludeQueryString *bool `json:"includeQueryString,omitempty"` 3080 // RequestRoutingRules - Request routing specifying redirect configuration. 3081 RequestRoutingRules *[]SubResource `json:"requestRoutingRules,omitempty"` 3082 // URLPathMaps - Url path maps specifying default redirect configuration. 3083 URLPathMaps *[]SubResource `json:"urlPathMaps,omitempty"` 3084 // PathRules - Path rules specifying redirect configuration. 3085 PathRules *[]SubResource `json:"pathRules,omitempty"` 3086} 3087 3088// ApplicationGatewayRequestRoutingRule request routing rule of an application gateway. 3089type ApplicationGatewayRequestRoutingRule struct { 3090 *ApplicationGatewayRequestRoutingRulePropertiesFormat `json:"properties,omitempty"` 3091 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 3092 Name *string `json:"name,omitempty"` 3093 // Etag - A unique read-only string that changes whenever the resource is updated. 3094 Etag *string `json:"etag,omitempty"` 3095 // Type - Type of the resource. 3096 Type *string `json:"type,omitempty"` 3097 // ID - Resource ID. 3098 ID *string `json:"id,omitempty"` 3099} 3100 3101// MarshalJSON is the custom marshaler for ApplicationGatewayRequestRoutingRule. 3102func (agrrr ApplicationGatewayRequestRoutingRule) MarshalJSON() ([]byte, error) { 3103 objectMap := make(map[string]interface{}) 3104 if agrrr.ApplicationGatewayRequestRoutingRulePropertiesFormat != nil { 3105 objectMap["properties"] = agrrr.ApplicationGatewayRequestRoutingRulePropertiesFormat 3106 } 3107 if agrrr.Name != nil { 3108 objectMap["name"] = agrrr.Name 3109 } 3110 if agrrr.Etag != nil { 3111 objectMap["etag"] = agrrr.Etag 3112 } 3113 if agrrr.Type != nil { 3114 objectMap["type"] = agrrr.Type 3115 } 3116 if agrrr.ID != nil { 3117 objectMap["id"] = agrrr.ID 3118 } 3119 return json.Marshal(objectMap) 3120} 3121 3122// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayRequestRoutingRule struct. 3123func (agrrr *ApplicationGatewayRequestRoutingRule) UnmarshalJSON(body []byte) error { 3124 var m map[string]*json.RawMessage 3125 err := json.Unmarshal(body, &m) 3126 if err != nil { 3127 return err 3128 } 3129 for k, v := range m { 3130 switch k { 3131 case "properties": 3132 if v != nil { 3133 var applicationGatewayRequestRoutingRulePropertiesFormat ApplicationGatewayRequestRoutingRulePropertiesFormat 3134 err = json.Unmarshal(*v, &applicationGatewayRequestRoutingRulePropertiesFormat) 3135 if err != nil { 3136 return err 3137 } 3138 agrrr.ApplicationGatewayRequestRoutingRulePropertiesFormat = &applicationGatewayRequestRoutingRulePropertiesFormat 3139 } 3140 case "name": 3141 if v != nil { 3142 var name string 3143 err = json.Unmarshal(*v, &name) 3144 if err != nil { 3145 return err 3146 } 3147 agrrr.Name = &name 3148 } 3149 case "etag": 3150 if v != nil { 3151 var etag string 3152 err = json.Unmarshal(*v, &etag) 3153 if err != nil { 3154 return err 3155 } 3156 agrrr.Etag = &etag 3157 } 3158 case "type": 3159 if v != nil { 3160 var typeVar string 3161 err = json.Unmarshal(*v, &typeVar) 3162 if err != nil { 3163 return err 3164 } 3165 agrrr.Type = &typeVar 3166 } 3167 case "id": 3168 if v != nil { 3169 var ID string 3170 err = json.Unmarshal(*v, &ID) 3171 if err != nil { 3172 return err 3173 } 3174 agrrr.ID = &ID 3175 } 3176 } 3177 } 3178 3179 return nil 3180} 3181 3182// ApplicationGatewayRequestRoutingRulePropertiesFormat properties of request routing rule of the application 3183// gateway. 3184type ApplicationGatewayRequestRoutingRulePropertiesFormat struct { 3185 // RuleType - Rule type. Possible values include: 'Basic', 'PathBasedRouting' 3186 RuleType ApplicationGatewayRequestRoutingRuleType `json:"ruleType,omitempty"` 3187 // BackendAddressPool - Backend address pool resource of the application gateway. 3188 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 3189 // BackendHTTPSettings - Frontend port resource of the application gateway. 3190 BackendHTTPSettings *SubResource `json:"backendHttpSettings,omitempty"` 3191 // HTTPListener - Http listener resource of the application gateway. 3192 HTTPListener *SubResource `json:"httpListener,omitempty"` 3193 // URLPathMap - URL path map resource of the application gateway. 3194 URLPathMap *SubResource `json:"urlPathMap,omitempty"` 3195 // RedirectConfiguration - Redirect configuration resource of the application gateway. 3196 RedirectConfiguration *SubResource `json:"redirectConfiguration,omitempty"` 3197 // ProvisioningState - Provisioning state of the request routing rule resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 3198 ProvisioningState *string `json:"provisioningState,omitempty"` 3199} 3200 3201// ApplicationGatewaysBackendHealthFuture an abstraction for monitoring and retrieving the results of a 3202// long-running operation. 3203type ApplicationGatewaysBackendHealthFuture struct { 3204 azure.Future 3205} 3206 3207// Result returns the result of the asynchronous operation. 3208// If the operation has not completed it will return an error. 3209func (future *ApplicationGatewaysBackendHealthFuture) Result(client ApplicationGatewaysClient) (agbh ApplicationGatewayBackendHealth, err error) { 3210 var done bool 3211 done, err = future.Done(client) 3212 if err != nil { 3213 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysBackendHealthFuture", "Result", future.Response(), "Polling failure") 3214 return 3215 } 3216 if !done { 3217 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysBackendHealthFuture") 3218 return 3219 } 3220 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3221 if agbh.Response.Response, err = future.GetResult(sender); err == nil && agbh.Response.Response.StatusCode != http.StatusNoContent { 3222 agbh, err = client.BackendHealthResponder(agbh.Response.Response) 3223 if err != nil { 3224 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysBackendHealthFuture", "Result", agbh.Response.Response, "Failure responding to request") 3225 } 3226 } 3227 return 3228} 3229 3230// ApplicationGatewaysCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 3231// long-running operation. 3232type ApplicationGatewaysCreateOrUpdateFuture struct { 3233 azure.Future 3234} 3235 3236// Result returns the result of the asynchronous operation. 3237// If the operation has not completed it will return an error. 3238func (future *ApplicationGatewaysCreateOrUpdateFuture) Result(client ApplicationGatewaysClient) (ag ApplicationGateway, err error) { 3239 var done bool 3240 done, err = future.Done(client) 3241 if err != nil { 3242 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 3243 return 3244 } 3245 if !done { 3246 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysCreateOrUpdateFuture") 3247 return 3248 } 3249 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3250 if ag.Response.Response, err = future.GetResult(sender); err == nil && ag.Response.Response.StatusCode != http.StatusNoContent { 3251 ag, err = client.CreateOrUpdateResponder(ag.Response.Response) 3252 if err != nil { 3253 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysCreateOrUpdateFuture", "Result", ag.Response.Response, "Failure responding to request") 3254 } 3255 } 3256 return 3257} 3258 3259// ApplicationGatewaysDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 3260// operation. 3261type ApplicationGatewaysDeleteFuture struct { 3262 azure.Future 3263} 3264 3265// Result returns the result of the asynchronous operation. 3266// If the operation has not completed it will return an error. 3267func (future *ApplicationGatewaysDeleteFuture) Result(client ApplicationGatewaysClient) (ar autorest.Response, err error) { 3268 var done bool 3269 done, err = future.Done(client) 3270 if err != nil { 3271 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysDeleteFuture", "Result", future.Response(), "Polling failure") 3272 return 3273 } 3274 if !done { 3275 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysDeleteFuture") 3276 return 3277 } 3278 ar.Response = future.Response() 3279 return 3280} 3281 3282// ApplicationGatewaySku SKU of an application gateway 3283type ApplicationGatewaySku struct { 3284 // Name - Name of an application gateway SKU. Possible values include: 'StandardSmall', 'StandardMedium', 'StandardLarge', 'WAFMedium', 'WAFLarge' 3285 Name ApplicationGatewaySkuName `json:"name,omitempty"` 3286 // Tier - Tier of an application gateway. Possible values include: 'Standard', 'WAF' 3287 Tier ApplicationGatewayTier `json:"tier,omitempty"` 3288 // Capacity - Capacity (instance count) of an application gateway. 3289 Capacity *int32 `json:"capacity,omitempty"` 3290} 3291 3292// ApplicationGatewaySslCertificate SSL certificates of an application gateway. 3293type ApplicationGatewaySslCertificate struct { 3294 *ApplicationGatewaySslCertificatePropertiesFormat `json:"properties,omitempty"` 3295 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 3296 Name *string `json:"name,omitempty"` 3297 // Etag - A unique read-only string that changes whenever the resource is updated. 3298 Etag *string `json:"etag,omitempty"` 3299 // Type - Type of the resource. 3300 Type *string `json:"type,omitempty"` 3301 // ID - Resource ID. 3302 ID *string `json:"id,omitempty"` 3303} 3304 3305// MarshalJSON is the custom marshaler for ApplicationGatewaySslCertificate. 3306func (agsc ApplicationGatewaySslCertificate) MarshalJSON() ([]byte, error) { 3307 objectMap := make(map[string]interface{}) 3308 if agsc.ApplicationGatewaySslCertificatePropertiesFormat != nil { 3309 objectMap["properties"] = agsc.ApplicationGatewaySslCertificatePropertiesFormat 3310 } 3311 if agsc.Name != nil { 3312 objectMap["name"] = agsc.Name 3313 } 3314 if agsc.Etag != nil { 3315 objectMap["etag"] = agsc.Etag 3316 } 3317 if agsc.Type != nil { 3318 objectMap["type"] = agsc.Type 3319 } 3320 if agsc.ID != nil { 3321 objectMap["id"] = agsc.ID 3322 } 3323 return json.Marshal(objectMap) 3324} 3325 3326// UnmarshalJSON is the custom unmarshaler for ApplicationGatewaySslCertificate struct. 3327func (agsc *ApplicationGatewaySslCertificate) UnmarshalJSON(body []byte) error { 3328 var m map[string]*json.RawMessage 3329 err := json.Unmarshal(body, &m) 3330 if err != nil { 3331 return err 3332 } 3333 for k, v := range m { 3334 switch k { 3335 case "properties": 3336 if v != nil { 3337 var applicationGatewaySslCertificatePropertiesFormat ApplicationGatewaySslCertificatePropertiesFormat 3338 err = json.Unmarshal(*v, &applicationGatewaySslCertificatePropertiesFormat) 3339 if err != nil { 3340 return err 3341 } 3342 agsc.ApplicationGatewaySslCertificatePropertiesFormat = &applicationGatewaySslCertificatePropertiesFormat 3343 } 3344 case "name": 3345 if v != nil { 3346 var name string 3347 err = json.Unmarshal(*v, &name) 3348 if err != nil { 3349 return err 3350 } 3351 agsc.Name = &name 3352 } 3353 case "etag": 3354 if v != nil { 3355 var etag string 3356 err = json.Unmarshal(*v, &etag) 3357 if err != nil { 3358 return err 3359 } 3360 agsc.Etag = &etag 3361 } 3362 case "type": 3363 if v != nil { 3364 var typeVar string 3365 err = json.Unmarshal(*v, &typeVar) 3366 if err != nil { 3367 return err 3368 } 3369 agsc.Type = &typeVar 3370 } 3371 case "id": 3372 if v != nil { 3373 var ID string 3374 err = json.Unmarshal(*v, &ID) 3375 if err != nil { 3376 return err 3377 } 3378 agsc.ID = &ID 3379 } 3380 } 3381 } 3382 3383 return nil 3384} 3385 3386// ApplicationGatewaySslCertificatePropertiesFormat properties of SSL certificates of an application gateway. 3387type ApplicationGatewaySslCertificatePropertiesFormat struct { 3388 // Data - Base-64 encoded pfx certificate. Only applicable in PUT Request. 3389 Data *string `json:"data,omitempty"` 3390 // Password - Password for the pfx file specified in data. Only applicable in PUT request. 3391 Password *string `json:"password,omitempty"` 3392 // PublicCertData - Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request. 3393 PublicCertData *string `json:"publicCertData,omitempty"` 3394 // ProvisioningState - Provisioning state of the SSL certificate resource Possible values are: 'Updating', 'Deleting', and 'Failed'. 3395 ProvisioningState *string `json:"provisioningState,omitempty"` 3396} 3397 3398// ApplicationGatewaySslPolicy application Gateway Ssl policy. 3399type ApplicationGatewaySslPolicy struct { 3400 // DisabledSslProtocols - Ssl protocols to be disabled on application gateway. 3401 DisabledSslProtocols *[]ApplicationGatewaySslProtocol `json:"disabledSslProtocols,omitempty"` 3402 // PolicyType - Type of Ssl Policy. Possible values include: 'Predefined', 'Custom' 3403 PolicyType ApplicationGatewaySslPolicyType `json:"policyType,omitempty"` 3404 // PolicyName - Name of Ssl predefined policy. Possible values include: 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S' 3405 PolicyName ApplicationGatewaySslPolicyName `json:"policyName,omitempty"` 3406 // CipherSuites - Ssl cipher suites to be enabled in the specified order to application gateway. 3407 CipherSuites *[]ApplicationGatewaySslCipherSuite `json:"cipherSuites,omitempty"` 3408 // MinProtocolVersion - Minimum version of Ssl protocol to be supported on application gateway. Possible values include: 'TLSv10', 'TLSv11', 'TLSv12' 3409 MinProtocolVersion ApplicationGatewaySslProtocol `json:"minProtocolVersion,omitempty"` 3410} 3411 3412// ApplicationGatewaySslPredefinedPolicy an Ssl predefined policy 3413type ApplicationGatewaySslPredefinedPolicy struct { 3414 autorest.Response `json:"-"` 3415 // Name - Name of Ssl predefined policy. 3416 Name *string `json:"name,omitempty"` 3417 *ApplicationGatewaySslPredefinedPolicyPropertiesFormat `json:"properties,omitempty"` 3418 // ID - Resource ID. 3419 ID *string `json:"id,omitempty"` 3420} 3421 3422// MarshalJSON is the custom marshaler for ApplicationGatewaySslPredefinedPolicy. 3423func (agspp ApplicationGatewaySslPredefinedPolicy) MarshalJSON() ([]byte, error) { 3424 objectMap := make(map[string]interface{}) 3425 if agspp.Name != nil { 3426 objectMap["name"] = agspp.Name 3427 } 3428 if agspp.ApplicationGatewaySslPredefinedPolicyPropertiesFormat != nil { 3429 objectMap["properties"] = agspp.ApplicationGatewaySslPredefinedPolicyPropertiesFormat 3430 } 3431 if agspp.ID != nil { 3432 objectMap["id"] = agspp.ID 3433 } 3434 return json.Marshal(objectMap) 3435} 3436 3437// UnmarshalJSON is the custom unmarshaler for ApplicationGatewaySslPredefinedPolicy struct. 3438func (agspp *ApplicationGatewaySslPredefinedPolicy) UnmarshalJSON(body []byte) error { 3439 var m map[string]*json.RawMessage 3440 err := json.Unmarshal(body, &m) 3441 if err != nil { 3442 return err 3443 } 3444 for k, v := range m { 3445 switch k { 3446 case "name": 3447 if v != nil { 3448 var name string 3449 err = json.Unmarshal(*v, &name) 3450 if err != nil { 3451 return err 3452 } 3453 agspp.Name = &name 3454 } 3455 case "properties": 3456 if v != nil { 3457 var applicationGatewaySslPredefinedPolicyPropertiesFormat ApplicationGatewaySslPredefinedPolicyPropertiesFormat 3458 err = json.Unmarshal(*v, &applicationGatewaySslPredefinedPolicyPropertiesFormat) 3459 if err != nil { 3460 return err 3461 } 3462 agspp.ApplicationGatewaySslPredefinedPolicyPropertiesFormat = &applicationGatewaySslPredefinedPolicyPropertiesFormat 3463 } 3464 case "id": 3465 if v != nil { 3466 var ID string 3467 err = json.Unmarshal(*v, &ID) 3468 if err != nil { 3469 return err 3470 } 3471 agspp.ID = &ID 3472 } 3473 } 3474 } 3475 3476 return nil 3477} 3478 3479// ApplicationGatewaySslPredefinedPolicyPropertiesFormat properties of ApplicationGatewaySslPredefinedPolicy 3480type ApplicationGatewaySslPredefinedPolicyPropertiesFormat struct { 3481 // CipherSuites - Ssl cipher suites to be enabled in the specified order for application gateway. 3482 CipherSuites *[]ApplicationGatewaySslCipherSuite `json:"cipherSuites,omitempty"` 3483 // MinProtocolVersion - Minimum version of Ssl protocol to be supported on application gateway. Possible values include: 'TLSv10', 'TLSv11', 'TLSv12' 3484 MinProtocolVersion ApplicationGatewaySslProtocol `json:"minProtocolVersion,omitempty"` 3485} 3486 3487// ApplicationGatewaysStartFuture an abstraction for monitoring and retrieving the results of a long-running 3488// operation. 3489type ApplicationGatewaysStartFuture struct { 3490 azure.Future 3491} 3492 3493// Result returns the result of the asynchronous operation. 3494// If the operation has not completed it will return an error. 3495func (future *ApplicationGatewaysStartFuture) Result(client ApplicationGatewaysClient) (ar autorest.Response, err error) { 3496 var done bool 3497 done, err = future.Done(client) 3498 if err != nil { 3499 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysStartFuture", "Result", future.Response(), "Polling failure") 3500 return 3501 } 3502 if !done { 3503 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysStartFuture") 3504 return 3505 } 3506 ar.Response = future.Response() 3507 return 3508} 3509 3510// ApplicationGatewaysStopFuture an abstraction for monitoring and retrieving the results of a long-running 3511// operation. 3512type ApplicationGatewaysStopFuture struct { 3513 azure.Future 3514} 3515 3516// Result returns the result of the asynchronous operation. 3517// If the operation has not completed it will return an error. 3518func (future *ApplicationGatewaysStopFuture) Result(client ApplicationGatewaysClient) (ar autorest.Response, err error) { 3519 var done bool 3520 done, err = future.Done(client) 3521 if err != nil { 3522 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysStopFuture", "Result", future.Response(), "Polling failure") 3523 return 3524 } 3525 if !done { 3526 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysStopFuture") 3527 return 3528 } 3529 ar.Response = future.Response() 3530 return 3531} 3532 3533// ApplicationGatewaysUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 3534// operation. 3535type ApplicationGatewaysUpdateTagsFuture struct { 3536 azure.Future 3537} 3538 3539// Result returns the result of the asynchronous operation. 3540// If the operation has not completed it will return an error. 3541func (future *ApplicationGatewaysUpdateTagsFuture) Result(client ApplicationGatewaysClient) (ag ApplicationGateway, err error) { 3542 var done bool 3543 done, err = future.Done(client) 3544 if err != nil { 3545 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysUpdateTagsFuture", "Result", future.Response(), "Polling failure") 3546 return 3547 } 3548 if !done { 3549 err = azure.NewAsyncOpIncompleteError("network.ApplicationGatewaysUpdateTagsFuture") 3550 return 3551 } 3552 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3553 if ag.Response.Response, err = future.GetResult(sender); err == nil && ag.Response.Response.StatusCode != http.StatusNoContent { 3554 ag, err = client.UpdateTagsResponder(ag.Response.Response) 3555 if err != nil { 3556 err = autorest.NewErrorWithError(err, "network.ApplicationGatewaysUpdateTagsFuture", "Result", ag.Response.Response, "Failure responding to request") 3557 } 3558 } 3559 return 3560} 3561 3562// ApplicationGatewayURLPathMap urlPathMaps give a url path to the backend mapping information for 3563// PathBasedRouting. 3564type ApplicationGatewayURLPathMap struct { 3565 *ApplicationGatewayURLPathMapPropertiesFormat `json:"properties,omitempty"` 3566 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 3567 Name *string `json:"name,omitempty"` 3568 // Etag - A unique read-only string that changes whenever the resource is updated. 3569 Etag *string `json:"etag,omitempty"` 3570 // Type - Type of the resource. 3571 Type *string `json:"type,omitempty"` 3572 // ID - Resource ID. 3573 ID *string `json:"id,omitempty"` 3574} 3575 3576// MarshalJSON is the custom marshaler for ApplicationGatewayURLPathMap. 3577func (agupm ApplicationGatewayURLPathMap) MarshalJSON() ([]byte, error) { 3578 objectMap := make(map[string]interface{}) 3579 if agupm.ApplicationGatewayURLPathMapPropertiesFormat != nil { 3580 objectMap["properties"] = agupm.ApplicationGatewayURLPathMapPropertiesFormat 3581 } 3582 if agupm.Name != nil { 3583 objectMap["name"] = agupm.Name 3584 } 3585 if agupm.Etag != nil { 3586 objectMap["etag"] = agupm.Etag 3587 } 3588 if agupm.Type != nil { 3589 objectMap["type"] = agupm.Type 3590 } 3591 if agupm.ID != nil { 3592 objectMap["id"] = agupm.ID 3593 } 3594 return json.Marshal(objectMap) 3595} 3596 3597// UnmarshalJSON is the custom unmarshaler for ApplicationGatewayURLPathMap struct. 3598func (agupm *ApplicationGatewayURLPathMap) UnmarshalJSON(body []byte) error { 3599 var m map[string]*json.RawMessage 3600 err := json.Unmarshal(body, &m) 3601 if err != nil { 3602 return err 3603 } 3604 for k, v := range m { 3605 switch k { 3606 case "properties": 3607 if v != nil { 3608 var applicationGatewayURLPathMapPropertiesFormat ApplicationGatewayURLPathMapPropertiesFormat 3609 err = json.Unmarshal(*v, &applicationGatewayURLPathMapPropertiesFormat) 3610 if err != nil { 3611 return err 3612 } 3613 agupm.ApplicationGatewayURLPathMapPropertiesFormat = &applicationGatewayURLPathMapPropertiesFormat 3614 } 3615 case "name": 3616 if v != nil { 3617 var name string 3618 err = json.Unmarshal(*v, &name) 3619 if err != nil { 3620 return err 3621 } 3622 agupm.Name = &name 3623 } 3624 case "etag": 3625 if v != nil { 3626 var etag string 3627 err = json.Unmarshal(*v, &etag) 3628 if err != nil { 3629 return err 3630 } 3631 agupm.Etag = &etag 3632 } 3633 case "type": 3634 if v != nil { 3635 var typeVar string 3636 err = json.Unmarshal(*v, &typeVar) 3637 if err != nil { 3638 return err 3639 } 3640 agupm.Type = &typeVar 3641 } 3642 case "id": 3643 if v != nil { 3644 var ID string 3645 err = json.Unmarshal(*v, &ID) 3646 if err != nil { 3647 return err 3648 } 3649 agupm.ID = &ID 3650 } 3651 } 3652 } 3653 3654 return nil 3655} 3656 3657// ApplicationGatewayURLPathMapPropertiesFormat properties of UrlPathMap of the application gateway. 3658type ApplicationGatewayURLPathMapPropertiesFormat struct { 3659 // DefaultBackendAddressPool - Default backend address pool resource of URL path map. 3660 DefaultBackendAddressPool *SubResource `json:"defaultBackendAddressPool,omitempty"` 3661 // DefaultBackendHTTPSettings - Default backend http settings resource of URL path map. 3662 DefaultBackendHTTPSettings *SubResource `json:"defaultBackendHttpSettings,omitempty"` 3663 // DefaultRedirectConfiguration - Default redirect configuration resource of URL path map. 3664 DefaultRedirectConfiguration *SubResource `json:"defaultRedirectConfiguration,omitempty"` 3665 // PathRules - Path rule of URL path map resource. 3666 PathRules *[]ApplicationGatewayPathRule `json:"pathRules,omitempty"` 3667 // ProvisioningState - Provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 3668 ProvisioningState *string `json:"provisioningState,omitempty"` 3669} 3670 3671// ApplicationGatewayWebApplicationFirewallConfiguration application gateway web application firewall 3672// configuration. 3673type ApplicationGatewayWebApplicationFirewallConfiguration struct { 3674 // Enabled - Whether the web application firewall is enabled or not. 3675 Enabled *bool `json:"enabled,omitempty"` 3676 // FirewallMode - Web application firewall mode. Possible values include: 'Detection', 'Prevention' 3677 FirewallMode ApplicationGatewayFirewallMode `json:"firewallMode,omitempty"` 3678 // RuleSetType - The type of the web application firewall rule set. Possible values are: 'OWASP'. 3679 RuleSetType *string `json:"ruleSetType,omitempty"` 3680 // RuleSetVersion - The version of the rule set type. 3681 RuleSetVersion *string `json:"ruleSetVersion,omitempty"` 3682 // DisabledRuleGroups - The disabled rule groups. 3683 DisabledRuleGroups *[]ApplicationGatewayFirewallDisabledRuleGroup `json:"disabledRuleGroups,omitempty"` 3684 // RequestBodyCheck - Whether allow WAF to check request Body. 3685 RequestBodyCheck *bool `json:"requestBodyCheck,omitempty"` 3686 // MaxRequestBodySize - Maxium request body size for WAF. 3687 MaxRequestBodySize *int32 `json:"maxRequestBodySize,omitempty"` 3688} 3689 3690// ApplicationSecurityGroup an application security group in a resource group. 3691type ApplicationSecurityGroup struct { 3692 autorest.Response `json:"-"` 3693 // ApplicationSecurityGroupPropertiesFormat - Properties of the application security group. 3694 *ApplicationSecurityGroupPropertiesFormat `json:"properties,omitempty"` 3695 // Etag - A unique read-only string that changes whenever the resource is updated. 3696 Etag *string `json:"etag,omitempty"` 3697 // ID - Resource ID. 3698 ID *string `json:"id,omitempty"` 3699 // Name - Resource name. 3700 Name *string `json:"name,omitempty"` 3701 // Type - Resource type. 3702 Type *string `json:"type,omitempty"` 3703 // Location - Resource location. 3704 Location *string `json:"location,omitempty"` 3705 // Tags - Resource tags. 3706 Tags map[string]*string `json:"tags"` 3707} 3708 3709// MarshalJSON is the custom marshaler for ApplicationSecurityGroup. 3710func (asg ApplicationSecurityGroup) MarshalJSON() ([]byte, error) { 3711 objectMap := make(map[string]interface{}) 3712 if asg.ApplicationSecurityGroupPropertiesFormat != nil { 3713 objectMap["properties"] = asg.ApplicationSecurityGroupPropertiesFormat 3714 } 3715 if asg.Etag != nil { 3716 objectMap["etag"] = asg.Etag 3717 } 3718 if asg.ID != nil { 3719 objectMap["id"] = asg.ID 3720 } 3721 if asg.Name != nil { 3722 objectMap["name"] = asg.Name 3723 } 3724 if asg.Type != nil { 3725 objectMap["type"] = asg.Type 3726 } 3727 if asg.Location != nil { 3728 objectMap["location"] = asg.Location 3729 } 3730 if asg.Tags != nil { 3731 objectMap["tags"] = asg.Tags 3732 } 3733 return json.Marshal(objectMap) 3734} 3735 3736// UnmarshalJSON is the custom unmarshaler for ApplicationSecurityGroup struct. 3737func (asg *ApplicationSecurityGroup) UnmarshalJSON(body []byte) error { 3738 var m map[string]*json.RawMessage 3739 err := json.Unmarshal(body, &m) 3740 if err != nil { 3741 return err 3742 } 3743 for k, v := range m { 3744 switch k { 3745 case "properties": 3746 if v != nil { 3747 var applicationSecurityGroupPropertiesFormat ApplicationSecurityGroupPropertiesFormat 3748 err = json.Unmarshal(*v, &applicationSecurityGroupPropertiesFormat) 3749 if err != nil { 3750 return err 3751 } 3752 asg.ApplicationSecurityGroupPropertiesFormat = &applicationSecurityGroupPropertiesFormat 3753 } 3754 case "etag": 3755 if v != nil { 3756 var etag string 3757 err = json.Unmarshal(*v, &etag) 3758 if err != nil { 3759 return err 3760 } 3761 asg.Etag = &etag 3762 } 3763 case "id": 3764 if v != nil { 3765 var ID string 3766 err = json.Unmarshal(*v, &ID) 3767 if err != nil { 3768 return err 3769 } 3770 asg.ID = &ID 3771 } 3772 case "name": 3773 if v != nil { 3774 var name string 3775 err = json.Unmarshal(*v, &name) 3776 if err != nil { 3777 return err 3778 } 3779 asg.Name = &name 3780 } 3781 case "type": 3782 if v != nil { 3783 var typeVar string 3784 err = json.Unmarshal(*v, &typeVar) 3785 if err != nil { 3786 return err 3787 } 3788 asg.Type = &typeVar 3789 } 3790 case "location": 3791 if v != nil { 3792 var location string 3793 err = json.Unmarshal(*v, &location) 3794 if err != nil { 3795 return err 3796 } 3797 asg.Location = &location 3798 } 3799 case "tags": 3800 if v != nil { 3801 var tags map[string]*string 3802 err = json.Unmarshal(*v, &tags) 3803 if err != nil { 3804 return err 3805 } 3806 asg.Tags = tags 3807 } 3808 } 3809 } 3810 3811 return nil 3812} 3813 3814// ApplicationSecurityGroupListResult a list of application security groups. 3815type ApplicationSecurityGroupListResult struct { 3816 autorest.Response `json:"-"` 3817 // Value - A list of application security groups. 3818 Value *[]ApplicationSecurityGroup `json:"value,omitempty"` 3819 // NextLink - The URL to get the next set of results. 3820 NextLink *string `json:"nextLink,omitempty"` 3821} 3822 3823// ApplicationSecurityGroupListResultIterator provides access to a complete listing of ApplicationSecurityGroup 3824// values. 3825type ApplicationSecurityGroupListResultIterator struct { 3826 i int 3827 page ApplicationSecurityGroupListResultPage 3828} 3829 3830// Next advances to the next value. If there was an error making 3831// the request the iterator does not advance and the error is returned. 3832func (iter *ApplicationSecurityGroupListResultIterator) Next() error { 3833 iter.i++ 3834 if iter.i < len(iter.page.Values()) { 3835 return nil 3836 } 3837 err := iter.page.Next() 3838 if err != nil { 3839 iter.i-- 3840 return err 3841 } 3842 iter.i = 0 3843 return nil 3844} 3845 3846// NotDone returns true if the enumeration should be started or is not yet complete. 3847func (iter ApplicationSecurityGroupListResultIterator) NotDone() bool { 3848 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 3849} 3850 3851// Response returns the raw server response from the last page request. 3852func (iter ApplicationSecurityGroupListResultIterator) Response() ApplicationSecurityGroupListResult { 3853 return iter.page.Response() 3854} 3855 3856// Value returns the current value or a zero-initialized value if the 3857// iterator has advanced beyond the end of the collection. 3858func (iter ApplicationSecurityGroupListResultIterator) Value() ApplicationSecurityGroup { 3859 if !iter.page.NotDone() { 3860 return ApplicationSecurityGroup{} 3861 } 3862 return iter.page.Values()[iter.i] 3863} 3864 3865// IsEmpty returns true if the ListResult contains no values. 3866func (asglr ApplicationSecurityGroupListResult) IsEmpty() bool { 3867 return asglr.Value == nil || len(*asglr.Value) == 0 3868} 3869 3870// applicationSecurityGroupListResultPreparer prepares a request to retrieve the next set of results. 3871// It returns nil if no more results exist. 3872func (asglr ApplicationSecurityGroupListResult) applicationSecurityGroupListResultPreparer() (*http.Request, error) { 3873 if asglr.NextLink == nil || len(to.String(asglr.NextLink)) < 1 { 3874 return nil, nil 3875 } 3876 return autorest.Prepare(&http.Request{}, 3877 autorest.AsJSON(), 3878 autorest.AsGet(), 3879 autorest.WithBaseURL(to.String(asglr.NextLink))) 3880} 3881 3882// ApplicationSecurityGroupListResultPage contains a page of ApplicationSecurityGroup values. 3883type ApplicationSecurityGroupListResultPage struct { 3884 fn func(ApplicationSecurityGroupListResult) (ApplicationSecurityGroupListResult, error) 3885 asglr ApplicationSecurityGroupListResult 3886} 3887 3888// Next advances to the next page of values. If there was an error making 3889// the request the page does not advance and the error is returned. 3890func (page *ApplicationSecurityGroupListResultPage) Next() error { 3891 next, err := page.fn(page.asglr) 3892 if err != nil { 3893 return err 3894 } 3895 page.asglr = next 3896 return nil 3897} 3898 3899// NotDone returns true if the page enumeration should be started or is not yet complete. 3900func (page ApplicationSecurityGroupListResultPage) NotDone() bool { 3901 return !page.asglr.IsEmpty() 3902} 3903 3904// Response returns the raw server response from the last page request. 3905func (page ApplicationSecurityGroupListResultPage) Response() ApplicationSecurityGroupListResult { 3906 return page.asglr 3907} 3908 3909// Values returns the slice of values for the current page or nil if there are no values. 3910func (page ApplicationSecurityGroupListResultPage) Values() []ApplicationSecurityGroup { 3911 if page.asglr.IsEmpty() { 3912 return nil 3913 } 3914 return *page.asglr.Value 3915} 3916 3917// ApplicationSecurityGroupPropertiesFormat application security group properties. 3918type ApplicationSecurityGroupPropertiesFormat struct { 3919 // ResourceGUID - 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. 3920 ResourceGUID *string `json:"resourceGuid,omitempty"` 3921 // ProvisioningState - The provisioning state of the application security group resource. Possible values are: 'Succeeded', 'Updating', 'Deleting', and 'Failed'. 3922 ProvisioningState *string `json:"provisioningState,omitempty"` 3923} 3924 3925// ApplicationSecurityGroupsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 3926// long-running operation. 3927type ApplicationSecurityGroupsCreateOrUpdateFuture struct { 3928 azure.Future 3929} 3930 3931// Result returns the result of the asynchronous operation. 3932// If the operation has not completed it will return an error. 3933func (future *ApplicationSecurityGroupsCreateOrUpdateFuture) Result(client ApplicationSecurityGroupsClient) (asg ApplicationSecurityGroup, err error) { 3934 var done bool 3935 done, err = future.Done(client) 3936 if err != nil { 3937 err = autorest.NewErrorWithError(err, "network.ApplicationSecurityGroupsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 3938 return 3939 } 3940 if !done { 3941 err = azure.NewAsyncOpIncompleteError("network.ApplicationSecurityGroupsCreateOrUpdateFuture") 3942 return 3943 } 3944 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3945 if asg.Response.Response, err = future.GetResult(sender); err == nil && asg.Response.Response.StatusCode != http.StatusNoContent { 3946 asg, err = client.CreateOrUpdateResponder(asg.Response.Response) 3947 if err != nil { 3948 err = autorest.NewErrorWithError(err, "network.ApplicationSecurityGroupsCreateOrUpdateFuture", "Result", asg.Response.Response, "Failure responding to request") 3949 } 3950 } 3951 return 3952} 3953 3954// ApplicationSecurityGroupsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 3955// operation. 3956type ApplicationSecurityGroupsDeleteFuture struct { 3957 azure.Future 3958} 3959 3960// Result returns the result of the asynchronous operation. 3961// If the operation has not completed it will return an error. 3962func (future *ApplicationSecurityGroupsDeleteFuture) Result(client ApplicationSecurityGroupsClient) (ar autorest.Response, err error) { 3963 var done bool 3964 done, err = future.Done(client) 3965 if err != nil { 3966 err = autorest.NewErrorWithError(err, "network.ApplicationSecurityGroupsDeleteFuture", "Result", future.Response(), "Polling failure") 3967 return 3968 } 3969 if !done { 3970 err = azure.NewAsyncOpIncompleteError("network.ApplicationSecurityGroupsDeleteFuture") 3971 return 3972 } 3973 ar.Response = future.Response() 3974 return 3975} 3976 3977// AuthorizationListResult response for ListAuthorizations API service call retrieves all authorizations that 3978// belongs to an ExpressRouteCircuit. 3979type AuthorizationListResult struct { 3980 autorest.Response `json:"-"` 3981 // Value - The authorizations in an ExpressRoute Circuit. 3982 Value *[]ExpressRouteCircuitAuthorization `json:"value,omitempty"` 3983 // NextLink - The URL to get the next set of results. 3984 NextLink *string `json:"nextLink,omitempty"` 3985} 3986 3987// AuthorizationListResultIterator provides access to a complete listing of ExpressRouteCircuitAuthorization 3988// values. 3989type AuthorizationListResultIterator struct { 3990 i int 3991 page AuthorizationListResultPage 3992} 3993 3994// Next advances to the next value. If there was an error making 3995// the request the iterator does not advance and the error is returned. 3996func (iter *AuthorizationListResultIterator) Next() error { 3997 iter.i++ 3998 if iter.i < len(iter.page.Values()) { 3999 return nil 4000 } 4001 err := iter.page.Next() 4002 if err != nil { 4003 iter.i-- 4004 return err 4005 } 4006 iter.i = 0 4007 return nil 4008} 4009 4010// NotDone returns true if the enumeration should be started or is not yet complete. 4011func (iter AuthorizationListResultIterator) NotDone() bool { 4012 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 4013} 4014 4015// Response returns the raw server response from the last page request. 4016func (iter AuthorizationListResultIterator) Response() AuthorizationListResult { 4017 return iter.page.Response() 4018} 4019 4020// Value returns the current value or a zero-initialized value if the 4021// iterator has advanced beyond the end of the collection. 4022func (iter AuthorizationListResultIterator) Value() ExpressRouteCircuitAuthorization { 4023 if !iter.page.NotDone() { 4024 return ExpressRouteCircuitAuthorization{} 4025 } 4026 return iter.page.Values()[iter.i] 4027} 4028 4029// IsEmpty returns true if the ListResult contains no values. 4030func (alr AuthorizationListResult) IsEmpty() bool { 4031 return alr.Value == nil || len(*alr.Value) == 0 4032} 4033 4034// authorizationListResultPreparer prepares a request to retrieve the next set of results. 4035// It returns nil if no more results exist. 4036func (alr AuthorizationListResult) authorizationListResultPreparer() (*http.Request, error) { 4037 if alr.NextLink == nil || len(to.String(alr.NextLink)) < 1 { 4038 return nil, nil 4039 } 4040 return autorest.Prepare(&http.Request{}, 4041 autorest.AsJSON(), 4042 autorest.AsGet(), 4043 autorest.WithBaseURL(to.String(alr.NextLink))) 4044} 4045 4046// AuthorizationListResultPage contains a page of ExpressRouteCircuitAuthorization values. 4047type AuthorizationListResultPage struct { 4048 fn func(AuthorizationListResult) (AuthorizationListResult, error) 4049 alr AuthorizationListResult 4050} 4051 4052// Next advances to the next page of values. If there was an error making 4053// the request the page does not advance and the error is returned. 4054func (page *AuthorizationListResultPage) Next() error { 4055 next, err := page.fn(page.alr) 4056 if err != nil { 4057 return err 4058 } 4059 page.alr = next 4060 return nil 4061} 4062 4063// NotDone returns true if the page enumeration should be started or is not yet complete. 4064func (page AuthorizationListResultPage) NotDone() bool { 4065 return !page.alr.IsEmpty() 4066} 4067 4068// Response returns the raw server response from the last page request. 4069func (page AuthorizationListResultPage) Response() AuthorizationListResult { 4070 return page.alr 4071} 4072 4073// Values returns the slice of values for the current page or nil if there are no values. 4074func (page AuthorizationListResultPage) Values() []ExpressRouteCircuitAuthorization { 4075 if page.alr.IsEmpty() { 4076 return nil 4077 } 4078 return *page.alr.Value 4079} 4080 4081// AuthorizationPropertiesFormat ... 4082type AuthorizationPropertiesFormat struct { 4083 // AuthorizationKey - The authorization key. 4084 AuthorizationKey *string `json:"authorizationKey,omitempty"` 4085 // AuthorizationUseStatus - AuthorizationUseStatus. Possible values are: 'Available' and 'InUse'. Possible values include: 'Available', 'InUse' 4086 AuthorizationUseStatus AuthorizationUseStatus `json:"authorizationUseStatus,omitempty"` 4087 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 4088 ProvisioningState *string `json:"provisioningState,omitempty"` 4089} 4090 4091// Availability availability of the metric. 4092type Availability struct { 4093 // TimeGrain - The time grain of the availability. 4094 TimeGrain *string `json:"timeGrain,omitempty"` 4095 // Retention - The retention of the availability. 4096 Retention *string `json:"retention,omitempty"` 4097 // BlobDuration - Duration of the availability blob. 4098 BlobDuration *string `json:"blobDuration,omitempty"` 4099} 4100 4101// AvailableProvidersList list of available countries with details. 4102type AvailableProvidersList struct { 4103 autorest.Response `json:"-"` 4104 // Countries - List of available countries. 4105 Countries *[]AvailableProvidersListCountry `json:"countries,omitempty"` 4106} 4107 4108// AvailableProvidersListCity city or town details. 4109type AvailableProvidersListCity struct { 4110 // CityName - The city or town name. 4111 CityName *string `json:"cityName,omitempty"` 4112 // Providers - A list of Internet service providers. 4113 Providers *[]string `json:"providers,omitempty"` 4114} 4115 4116// AvailableProvidersListCountry country details. 4117type AvailableProvidersListCountry struct { 4118 // CountryName - The country name. 4119 CountryName *string `json:"countryName,omitempty"` 4120 // Providers - A list of Internet service providers. 4121 Providers *[]string `json:"providers,omitempty"` 4122 // States - List of available states in the country. 4123 States *[]AvailableProvidersListState `json:"states,omitempty"` 4124} 4125 4126// AvailableProvidersListParameters constraints that determine the list of available Internet service providers. 4127type AvailableProvidersListParameters struct { 4128 // AzureLocations - A list of Azure regions. 4129 AzureLocations *[]string `json:"azureLocations,omitempty"` 4130 // Country - The country for available providers list. 4131 Country *string `json:"country,omitempty"` 4132 // State - The state for available providers list. 4133 State *string `json:"state,omitempty"` 4134 // City - The city or town for available providers list. 4135 City *string `json:"city,omitempty"` 4136} 4137 4138// AvailableProvidersListState state details. 4139type AvailableProvidersListState struct { 4140 // StateName - The state name. 4141 StateName *string `json:"stateName,omitempty"` 4142 // Providers - A list of Internet service providers. 4143 Providers *[]string `json:"providers,omitempty"` 4144 // Cities - List of available cities or towns in the state. 4145 Cities *[]AvailableProvidersListCity `json:"cities,omitempty"` 4146} 4147 4148// AzureAsyncOperationResult the response body contains the status of the specified asynchronous operation, 4149// indicating whether it has succeeded, is in progress, or has failed. Note that this status is distinct from the 4150// HTTP status code returned for the Get Operation Status operation itself. If the asynchronous operation 4151// succeeded, the response body includes the HTTP status code for the successful request. If the asynchronous 4152// operation failed, the response body includes the HTTP status code for the failed request and error information 4153// regarding the failure. 4154type AzureAsyncOperationResult struct { 4155 // Status - Status of the Azure async operation. Possible values are: 'InProgress', 'Succeeded', and 'Failed'. Possible values include: 'OperationStatusInProgress', 'OperationStatusSucceeded', 'OperationStatusFailed' 4156 Status OperationStatus `json:"status,omitempty"` 4157 Error *Error `json:"error,omitempty"` 4158} 4159 4160// AzureReachabilityReport azure reachability report details. 4161type AzureReachabilityReport struct { 4162 autorest.Response `json:"-"` 4163 // AggregationLevel - The aggregation level of Azure reachability report. Can be Country, State or City. 4164 AggregationLevel *string `json:"aggregationLevel,omitempty"` 4165 ProviderLocation *AzureReachabilityReportLocation `json:"providerLocation,omitempty"` 4166 // ReachabilityReport - List of Azure reachability report items. 4167 ReachabilityReport *[]AzureReachabilityReportItem `json:"reachabilityReport,omitempty"` 4168} 4169 4170// AzureReachabilityReportItem azure reachability report details for a given provider location. 4171type AzureReachabilityReportItem struct { 4172 // Provider - The Internet service provider. 4173 Provider *string `json:"provider,omitempty"` 4174 // AzureLocation - The Azure region. 4175 AzureLocation *string `json:"azureLocation,omitempty"` 4176 // Latencies - List of latency details for each of the time series. 4177 Latencies *[]AzureReachabilityReportLatencyInfo `json:"latencies,omitempty"` 4178} 4179 4180// AzureReachabilityReportLatencyInfo details on latency for a time series. 4181type AzureReachabilityReportLatencyInfo struct { 4182 // TimeStamp - The time stamp. 4183 TimeStamp *date.Time `json:"timeStamp,omitempty"` 4184 // Score - The relative latency score between 1 and 100, higher values indicating a faster connection. 4185 Score *int32 `json:"score,omitempty"` 4186} 4187 4188// AzureReachabilityReportLocation parameters that define a geographic location. 4189type AzureReachabilityReportLocation struct { 4190 // Country - The name of the country. 4191 Country *string `json:"country,omitempty"` 4192 // State - The name of the state. 4193 State *string `json:"state,omitempty"` 4194 // City - The name of the city or town. 4195 City *string `json:"city,omitempty"` 4196} 4197 4198// AzureReachabilityReportParameters geographic and time constraints for Azure reachability report. 4199type AzureReachabilityReportParameters struct { 4200 ProviderLocation *AzureReachabilityReportLocation `json:"providerLocation,omitempty"` 4201 // Providers - List of Internet service providers. 4202 Providers *[]string `json:"providers,omitempty"` 4203 // AzureLocations - Optional Azure regions to scope the query to. 4204 AzureLocations *[]string `json:"azureLocations,omitempty"` 4205 // StartTime - The start time for the Azure reachability report. 4206 StartTime *date.Time `json:"startTime,omitempty"` 4207 // EndTime - The end time for the Azure reachability report. 4208 EndTime *date.Time `json:"endTime,omitempty"` 4209} 4210 4211// BackendAddressPool pool of backend IP addresses. 4212type BackendAddressPool struct { 4213 autorest.Response `json:"-"` 4214 // BackendAddressPoolPropertiesFormat - Properties of load balancer backend address pool. 4215 *BackendAddressPoolPropertiesFormat `json:"properties,omitempty"` 4216 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 4217 Name *string `json:"name,omitempty"` 4218 // Etag - A unique read-only string that changes whenever the resource is updated. 4219 Etag *string `json:"etag,omitempty"` 4220 // ID - Resource ID. 4221 ID *string `json:"id,omitempty"` 4222} 4223 4224// MarshalJSON is the custom marshaler for BackendAddressPool. 4225func (bap BackendAddressPool) MarshalJSON() ([]byte, error) { 4226 objectMap := make(map[string]interface{}) 4227 if bap.BackendAddressPoolPropertiesFormat != nil { 4228 objectMap["properties"] = bap.BackendAddressPoolPropertiesFormat 4229 } 4230 if bap.Name != nil { 4231 objectMap["name"] = bap.Name 4232 } 4233 if bap.Etag != nil { 4234 objectMap["etag"] = bap.Etag 4235 } 4236 if bap.ID != nil { 4237 objectMap["id"] = bap.ID 4238 } 4239 return json.Marshal(objectMap) 4240} 4241 4242// UnmarshalJSON is the custom unmarshaler for BackendAddressPool struct. 4243func (bap *BackendAddressPool) UnmarshalJSON(body []byte) error { 4244 var m map[string]*json.RawMessage 4245 err := json.Unmarshal(body, &m) 4246 if err != nil { 4247 return err 4248 } 4249 for k, v := range m { 4250 switch k { 4251 case "properties": 4252 if v != nil { 4253 var backendAddressPoolPropertiesFormat BackendAddressPoolPropertiesFormat 4254 err = json.Unmarshal(*v, &backendAddressPoolPropertiesFormat) 4255 if err != nil { 4256 return err 4257 } 4258 bap.BackendAddressPoolPropertiesFormat = &backendAddressPoolPropertiesFormat 4259 } 4260 case "name": 4261 if v != nil { 4262 var name string 4263 err = json.Unmarshal(*v, &name) 4264 if err != nil { 4265 return err 4266 } 4267 bap.Name = &name 4268 } 4269 case "etag": 4270 if v != nil { 4271 var etag string 4272 err = json.Unmarshal(*v, &etag) 4273 if err != nil { 4274 return err 4275 } 4276 bap.Etag = &etag 4277 } 4278 case "id": 4279 if v != nil { 4280 var ID string 4281 err = json.Unmarshal(*v, &ID) 4282 if err != nil { 4283 return err 4284 } 4285 bap.ID = &ID 4286 } 4287 } 4288 } 4289 4290 return nil 4291} 4292 4293// BackendAddressPoolPropertiesFormat properties of the backend address pool. 4294type BackendAddressPoolPropertiesFormat struct { 4295 // BackendIPConfigurations - Gets collection of references to IP addresses defined in network interfaces. 4296 BackendIPConfigurations *[]InterfaceIPConfiguration `json:"backendIPConfigurations,omitempty"` 4297 // LoadBalancingRules - Gets load balancing rules that use this backend address pool. 4298 LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty"` 4299 // OutboundNatRule - Gets outbound rules that use this backend address pool. 4300 OutboundNatRule *SubResource `json:"outboundNatRule,omitempty"` 4301 // ProvisioningState - Get provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 4302 ProvisioningState *string `json:"provisioningState,omitempty"` 4303} 4304 4305// BGPCommunity contains bgp community information offered in Service Community resources. 4306type BGPCommunity struct { 4307 // ServiceSupportedRegion - The region which the service support. e.g. For O365, region is Global. 4308 ServiceSupportedRegion *string `json:"serviceSupportedRegion,omitempty"` 4309 // CommunityName - The name of the bgp community. e.g. Skype. 4310 CommunityName *string `json:"communityName,omitempty"` 4311 // CommunityValue - The value of the bgp community. For more information: https://docs.microsoft.com/en-us/azure/expressroute/expressroute-routing. 4312 CommunityValue *string `json:"communityValue,omitempty"` 4313 // CommunityPrefixes - The prefixes that the bgp community contains. 4314 CommunityPrefixes *[]string `json:"communityPrefixes,omitempty"` 4315 // IsAuthorizedToUse - Customer is authorized to use bgp community or not. 4316 IsAuthorizedToUse *bool `json:"isAuthorizedToUse,omitempty"` 4317 // ServiceGroup - The service group of the bgp community contains. 4318 ServiceGroup *string `json:"serviceGroup,omitempty"` 4319} 4320 4321// BgpPeerStatus BGP peer status details 4322type BgpPeerStatus struct { 4323 // LocalAddress - The virtual network gateway's local address 4324 LocalAddress *string `json:"localAddress,omitempty"` 4325 // Neighbor - The remote BGP peer 4326 Neighbor *string `json:"neighbor,omitempty"` 4327 // Asn - The autonomous system number of the remote BGP peer 4328 Asn *int32 `json:"asn,omitempty"` 4329 // State - The BGP peer state. Possible values include: 'BgpPeerStateUnknown', 'BgpPeerStateStopped', 'BgpPeerStateIdle', 'BgpPeerStateConnecting', 'BgpPeerStateConnected' 4330 State BgpPeerState `json:"state,omitempty"` 4331 // ConnectedDuration - For how long the peering has been up 4332 ConnectedDuration *string `json:"connectedDuration,omitempty"` 4333 // RoutesReceived - The number of routes learned from this peer 4334 RoutesReceived *int64 `json:"routesReceived,omitempty"` 4335 // MessagesSent - The number of BGP messages sent 4336 MessagesSent *int64 `json:"messagesSent,omitempty"` 4337 // MessagesReceived - The number of BGP messages received 4338 MessagesReceived *int64 `json:"messagesReceived,omitempty"` 4339} 4340 4341// BgpPeerStatusListResult response for list BGP peer status API service call 4342type BgpPeerStatusListResult struct { 4343 autorest.Response `json:"-"` 4344 // Value - List of BGP peers 4345 Value *[]BgpPeerStatus `json:"value,omitempty"` 4346} 4347 4348// BgpServiceCommunity service Community Properties. 4349type BgpServiceCommunity struct { 4350 *BgpServiceCommunityPropertiesFormat `json:"properties,omitempty"` 4351 // ID - Resource ID. 4352 ID *string `json:"id,omitempty"` 4353 // Name - Resource name. 4354 Name *string `json:"name,omitempty"` 4355 // Type - Resource type. 4356 Type *string `json:"type,omitempty"` 4357 // Location - Resource location. 4358 Location *string `json:"location,omitempty"` 4359 // Tags - Resource tags. 4360 Tags map[string]*string `json:"tags"` 4361} 4362 4363// MarshalJSON is the custom marshaler for BgpServiceCommunity. 4364func (bsc BgpServiceCommunity) MarshalJSON() ([]byte, error) { 4365 objectMap := make(map[string]interface{}) 4366 if bsc.BgpServiceCommunityPropertiesFormat != nil { 4367 objectMap["properties"] = bsc.BgpServiceCommunityPropertiesFormat 4368 } 4369 if bsc.ID != nil { 4370 objectMap["id"] = bsc.ID 4371 } 4372 if bsc.Name != nil { 4373 objectMap["name"] = bsc.Name 4374 } 4375 if bsc.Type != nil { 4376 objectMap["type"] = bsc.Type 4377 } 4378 if bsc.Location != nil { 4379 objectMap["location"] = bsc.Location 4380 } 4381 if bsc.Tags != nil { 4382 objectMap["tags"] = bsc.Tags 4383 } 4384 return json.Marshal(objectMap) 4385} 4386 4387// UnmarshalJSON is the custom unmarshaler for BgpServiceCommunity struct. 4388func (bsc *BgpServiceCommunity) UnmarshalJSON(body []byte) error { 4389 var m map[string]*json.RawMessage 4390 err := json.Unmarshal(body, &m) 4391 if err != nil { 4392 return err 4393 } 4394 for k, v := range m { 4395 switch k { 4396 case "properties": 4397 if v != nil { 4398 var bgpServiceCommunityPropertiesFormat BgpServiceCommunityPropertiesFormat 4399 err = json.Unmarshal(*v, &bgpServiceCommunityPropertiesFormat) 4400 if err != nil { 4401 return err 4402 } 4403 bsc.BgpServiceCommunityPropertiesFormat = &bgpServiceCommunityPropertiesFormat 4404 } 4405 case "id": 4406 if v != nil { 4407 var ID string 4408 err = json.Unmarshal(*v, &ID) 4409 if err != nil { 4410 return err 4411 } 4412 bsc.ID = &ID 4413 } 4414 case "name": 4415 if v != nil { 4416 var name string 4417 err = json.Unmarshal(*v, &name) 4418 if err != nil { 4419 return err 4420 } 4421 bsc.Name = &name 4422 } 4423 case "type": 4424 if v != nil { 4425 var typeVar string 4426 err = json.Unmarshal(*v, &typeVar) 4427 if err != nil { 4428 return err 4429 } 4430 bsc.Type = &typeVar 4431 } 4432 case "location": 4433 if v != nil { 4434 var location string 4435 err = json.Unmarshal(*v, &location) 4436 if err != nil { 4437 return err 4438 } 4439 bsc.Location = &location 4440 } 4441 case "tags": 4442 if v != nil { 4443 var tags map[string]*string 4444 err = json.Unmarshal(*v, &tags) 4445 if err != nil { 4446 return err 4447 } 4448 bsc.Tags = tags 4449 } 4450 } 4451 } 4452 4453 return nil 4454} 4455 4456// BgpServiceCommunityListResult response for the ListServiceCommunity API service call. 4457type BgpServiceCommunityListResult struct { 4458 autorest.Response `json:"-"` 4459 // Value - A list of service community resources. 4460 Value *[]BgpServiceCommunity `json:"value,omitempty"` 4461 // NextLink - The URL to get the next set of results. 4462 NextLink *string `json:"nextLink,omitempty"` 4463} 4464 4465// BgpServiceCommunityListResultIterator provides access to a complete listing of BgpServiceCommunity values. 4466type BgpServiceCommunityListResultIterator struct { 4467 i int 4468 page BgpServiceCommunityListResultPage 4469} 4470 4471// Next advances to the next value. If there was an error making 4472// the request the iterator does not advance and the error is returned. 4473func (iter *BgpServiceCommunityListResultIterator) Next() error { 4474 iter.i++ 4475 if iter.i < len(iter.page.Values()) { 4476 return nil 4477 } 4478 err := iter.page.Next() 4479 if err != nil { 4480 iter.i-- 4481 return err 4482 } 4483 iter.i = 0 4484 return nil 4485} 4486 4487// NotDone returns true if the enumeration should be started or is not yet complete. 4488func (iter BgpServiceCommunityListResultIterator) NotDone() bool { 4489 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 4490} 4491 4492// Response returns the raw server response from the last page request. 4493func (iter BgpServiceCommunityListResultIterator) Response() BgpServiceCommunityListResult { 4494 return iter.page.Response() 4495} 4496 4497// Value returns the current value or a zero-initialized value if the 4498// iterator has advanced beyond the end of the collection. 4499func (iter BgpServiceCommunityListResultIterator) Value() BgpServiceCommunity { 4500 if !iter.page.NotDone() { 4501 return BgpServiceCommunity{} 4502 } 4503 return iter.page.Values()[iter.i] 4504} 4505 4506// IsEmpty returns true if the ListResult contains no values. 4507func (bsclr BgpServiceCommunityListResult) IsEmpty() bool { 4508 return bsclr.Value == nil || len(*bsclr.Value) == 0 4509} 4510 4511// bgpServiceCommunityListResultPreparer prepares a request to retrieve the next set of results. 4512// It returns nil if no more results exist. 4513func (bsclr BgpServiceCommunityListResult) bgpServiceCommunityListResultPreparer() (*http.Request, error) { 4514 if bsclr.NextLink == nil || len(to.String(bsclr.NextLink)) < 1 { 4515 return nil, nil 4516 } 4517 return autorest.Prepare(&http.Request{}, 4518 autorest.AsJSON(), 4519 autorest.AsGet(), 4520 autorest.WithBaseURL(to.String(bsclr.NextLink))) 4521} 4522 4523// BgpServiceCommunityListResultPage contains a page of BgpServiceCommunity values. 4524type BgpServiceCommunityListResultPage struct { 4525 fn func(BgpServiceCommunityListResult) (BgpServiceCommunityListResult, error) 4526 bsclr BgpServiceCommunityListResult 4527} 4528 4529// Next advances to the next page of values. If there was an error making 4530// the request the page does not advance and the error is returned. 4531func (page *BgpServiceCommunityListResultPage) Next() error { 4532 next, err := page.fn(page.bsclr) 4533 if err != nil { 4534 return err 4535 } 4536 page.bsclr = next 4537 return nil 4538} 4539 4540// NotDone returns true if the page enumeration should be started or is not yet complete. 4541func (page BgpServiceCommunityListResultPage) NotDone() bool { 4542 return !page.bsclr.IsEmpty() 4543} 4544 4545// Response returns the raw server response from the last page request. 4546func (page BgpServiceCommunityListResultPage) Response() BgpServiceCommunityListResult { 4547 return page.bsclr 4548} 4549 4550// Values returns the slice of values for the current page or nil if there are no values. 4551func (page BgpServiceCommunityListResultPage) Values() []BgpServiceCommunity { 4552 if page.bsclr.IsEmpty() { 4553 return nil 4554 } 4555 return *page.bsclr.Value 4556} 4557 4558// BgpServiceCommunityPropertiesFormat properties of Service Community. 4559type BgpServiceCommunityPropertiesFormat struct { 4560 // ServiceName - The name of the bgp community. e.g. Skype. 4561 ServiceName *string `json:"serviceName,omitempty"` 4562 // BgpCommunities - Get a list of bgp communities. 4563 BgpCommunities *[]BGPCommunity `json:"bgpCommunities,omitempty"` 4564} 4565 4566// BgpSettings BGP settings details 4567type BgpSettings struct { 4568 // Asn - The BGP speaker's ASN. 4569 Asn *int64 `json:"asn,omitempty"` 4570 // BgpPeeringAddress - The BGP peering address and BGP identifier of this BGP speaker. 4571 BgpPeeringAddress *string `json:"bgpPeeringAddress,omitempty"` 4572 // PeerWeight - The weight added to routes learned from this BGP speaker. 4573 PeerWeight *int32 `json:"peerWeight,omitempty"` 4574} 4575 4576// ConnectionMonitor parameters that define the operation to create a connection monitor. 4577type ConnectionMonitor struct { 4578 // Location - Connection monitor location. 4579 Location *string `json:"location,omitempty"` 4580 // Tags - Connection monitor tags. 4581 Tags map[string]*string `json:"tags"` 4582 *ConnectionMonitorParameters `json:"properties,omitempty"` 4583} 4584 4585// MarshalJSON is the custom marshaler for ConnectionMonitor. 4586func (cm ConnectionMonitor) MarshalJSON() ([]byte, error) { 4587 objectMap := make(map[string]interface{}) 4588 if cm.Location != nil { 4589 objectMap["location"] = cm.Location 4590 } 4591 if cm.Tags != nil { 4592 objectMap["tags"] = cm.Tags 4593 } 4594 if cm.ConnectionMonitorParameters != nil { 4595 objectMap["properties"] = cm.ConnectionMonitorParameters 4596 } 4597 return json.Marshal(objectMap) 4598} 4599 4600// UnmarshalJSON is the custom unmarshaler for ConnectionMonitor struct. 4601func (cm *ConnectionMonitor) UnmarshalJSON(body []byte) error { 4602 var m map[string]*json.RawMessage 4603 err := json.Unmarshal(body, &m) 4604 if err != nil { 4605 return err 4606 } 4607 for k, v := range m { 4608 switch k { 4609 case "location": 4610 if v != nil { 4611 var location string 4612 err = json.Unmarshal(*v, &location) 4613 if err != nil { 4614 return err 4615 } 4616 cm.Location = &location 4617 } 4618 case "tags": 4619 if v != nil { 4620 var tags map[string]*string 4621 err = json.Unmarshal(*v, &tags) 4622 if err != nil { 4623 return err 4624 } 4625 cm.Tags = tags 4626 } 4627 case "properties": 4628 if v != nil { 4629 var connectionMonitorParameters ConnectionMonitorParameters 4630 err = json.Unmarshal(*v, &connectionMonitorParameters) 4631 if err != nil { 4632 return err 4633 } 4634 cm.ConnectionMonitorParameters = &connectionMonitorParameters 4635 } 4636 } 4637 } 4638 4639 return nil 4640} 4641 4642// ConnectionMonitorDestination describes the destination of connection monitor. 4643type ConnectionMonitorDestination struct { 4644 // ResourceID - The ID of the resource used as the destination by connection monitor. 4645 ResourceID *string `json:"resourceId,omitempty"` 4646 // Address - Address of the connection monitor destination (IP or domain name). 4647 Address *string `json:"address,omitempty"` 4648 // Port - The destination port used by connection monitor. 4649 Port *int32 `json:"port,omitempty"` 4650} 4651 4652// ConnectionMonitorListResult list of connection monitors. 4653type ConnectionMonitorListResult struct { 4654 autorest.Response `json:"-"` 4655 // Value - Information about connection monitors. 4656 Value *[]ConnectionMonitorResult `json:"value,omitempty"` 4657} 4658 4659// ConnectionMonitorParameters parameters that define the operation to create a connection monitor. 4660type ConnectionMonitorParameters struct { 4661 Source *ConnectionMonitorSource `json:"source,omitempty"` 4662 Destination *ConnectionMonitorDestination `json:"destination,omitempty"` 4663 // AutoStart - Determines if the connection monitor will start automatically once created. 4664 AutoStart *bool `json:"autoStart,omitempty"` 4665 // MonitoringIntervalInSeconds - Monitoring interval in seconds. 4666 MonitoringIntervalInSeconds *int32 `json:"monitoringIntervalInSeconds,omitempty"` 4667} 4668 4669// ConnectionMonitorQueryResult list of connection states snaphots. 4670type ConnectionMonitorQueryResult struct { 4671 autorest.Response `json:"-"` 4672 // States - Information about connection states. 4673 States *[]ConnectionStateSnapshot `json:"states,omitempty"` 4674} 4675 4676// ConnectionMonitorResult information about the connection monitor. 4677type ConnectionMonitorResult struct { 4678 autorest.Response `json:"-"` 4679 // Name - Name of the connection monitor. 4680 Name *string `json:"name,omitempty"` 4681 // ID - ID of the connection monitor. 4682 ID *string `json:"id,omitempty"` 4683 Etag *string `json:"etag,omitempty"` 4684 // Type - Connection monitor type. 4685 Type *string `json:"type,omitempty"` 4686 // Location - Connection monitor location. 4687 Location *string `json:"location,omitempty"` 4688 // Tags - Connection monitor tags. 4689 Tags map[string]*string `json:"tags"` 4690 *ConnectionMonitorResultProperties `json:"properties,omitempty"` 4691} 4692 4693// MarshalJSON is the custom marshaler for ConnectionMonitorResult. 4694func (cmr ConnectionMonitorResult) MarshalJSON() ([]byte, error) { 4695 objectMap := make(map[string]interface{}) 4696 if cmr.Name != nil { 4697 objectMap["name"] = cmr.Name 4698 } 4699 if cmr.ID != nil { 4700 objectMap["id"] = cmr.ID 4701 } 4702 if cmr.Etag != nil { 4703 objectMap["etag"] = cmr.Etag 4704 } 4705 if cmr.Type != nil { 4706 objectMap["type"] = cmr.Type 4707 } 4708 if cmr.Location != nil { 4709 objectMap["location"] = cmr.Location 4710 } 4711 if cmr.Tags != nil { 4712 objectMap["tags"] = cmr.Tags 4713 } 4714 if cmr.ConnectionMonitorResultProperties != nil { 4715 objectMap["properties"] = cmr.ConnectionMonitorResultProperties 4716 } 4717 return json.Marshal(objectMap) 4718} 4719 4720// UnmarshalJSON is the custom unmarshaler for ConnectionMonitorResult struct. 4721func (cmr *ConnectionMonitorResult) UnmarshalJSON(body []byte) error { 4722 var m map[string]*json.RawMessage 4723 err := json.Unmarshal(body, &m) 4724 if err != nil { 4725 return err 4726 } 4727 for k, v := range m { 4728 switch k { 4729 case "name": 4730 if v != nil { 4731 var name string 4732 err = json.Unmarshal(*v, &name) 4733 if err != nil { 4734 return err 4735 } 4736 cmr.Name = &name 4737 } 4738 case "id": 4739 if v != nil { 4740 var ID string 4741 err = json.Unmarshal(*v, &ID) 4742 if err != nil { 4743 return err 4744 } 4745 cmr.ID = &ID 4746 } 4747 case "etag": 4748 if v != nil { 4749 var etag string 4750 err = json.Unmarshal(*v, &etag) 4751 if err != nil { 4752 return err 4753 } 4754 cmr.Etag = &etag 4755 } 4756 case "type": 4757 if v != nil { 4758 var typeVar string 4759 err = json.Unmarshal(*v, &typeVar) 4760 if err != nil { 4761 return err 4762 } 4763 cmr.Type = &typeVar 4764 } 4765 case "location": 4766 if v != nil { 4767 var location string 4768 err = json.Unmarshal(*v, &location) 4769 if err != nil { 4770 return err 4771 } 4772 cmr.Location = &location 4773 } 4774 case "tags": 4775 if v != nil { 4776 var tags map[string]*string 4777 err = json.Unmarshal(*v, &tags) 4778 if err != nil { 4779 return err 4780 } 4781 cmr.Tags = tags 4782 } 4783 case "properties": 4784 if v != nil { 4785 var connectionMonitorResultProperties ConnectionMonitorResultProperties 4786 err = json.Unmarshal(*v, &connectionMonitorResultProperties) 4787 if err != nil { 4788 return err 4789 } 4790 cmr.ConnectionMonitorResultProperties = &connectionMonitorResultProperties 4791 } 4792 } 4793 } 4794 4795 return nil 4796} 4797 4798// ConnectionMonitorResultProperties describes the properties of a connection monitor. 4799type ConnectionMonitorResultProperties struct { 4800 // ProvisioningState - The provisioning state of the connection monitor. Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' 4801 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 4802 // StartTime - The date and time when the connection monitor was started. 4803 StartTime *date.Time `json:"startTime,omitempty"` 4804 // MonitoringStatus - The monitoring status of the connection monitor. 4805 MonitoringStatus *string `json:"monitoringStatus,omitempty"` 4806 Source *ConnectionMonitorSource `json:"source,omitempty"` 4807 Destination *ConnectionMonitorDestination `json:"destination,omitempty"` 4808 // AutoStart - Determines if the connection monitor will start automatically once created. 4809 AutoStart *bool `json:"autoStart,omitempty"` 4810 // MonitoringIntervalInSeconds - Monitoring interval in seconds. 4811 MonitoringIntervalInSeconds *int32 `json:"monitoringIntervalInSeconds,omitempty"` 4812} 4813 4814// ConnectionMonitorsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 4815// long-running operation. 4816type ConnectionMonitorsCreateOrUpdateFuture struct { 4817 azure.Future 4818} 4819 4820// Result returns the result of the asynchronous operation. 4821// If the operation has not completed it will return an error. 4822func (future *ConnectionMonitorsCreateOrUpdateFuture) Result(client ConnectionMonitorsClient) (cmr ConnectionMonitorResult, err error) { 4823 var done bool 4824 done, err = future.Done(client) 4825 if err != nil { 4826 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 4827 return 4828 } 4829 if !done { 4830 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsCreateOrUpdateFuture") 4831 return 4832 } 4833 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 4834 if cmr.Response.Response, err = future.GetResult(sender); err == nil && cmr.Response.Response.StatusCode != http.StatusNoContent { 4835 cmr, err = client.CreateOrUpdateResponder(cmr.Response.Response) 4836 if err != nil { 4837 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsCreateOrUpdateFuture", "Result", cmr.Response.Response, "Failure responding to request") 4838 } 4839 } 4840 return 4841} 4842 4843// ConnectionMonitorsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 4844// operation. 4845type ConnectionMonitorsDeleteFuture struct { 4846 azure.Future 4847} 4848 4849// Result returns the result of the asynchronous operation. 4850// If the operation has not completed it will return an error. 4851func (future *ConnectionMonitorsDeleteFuture) Result(client ConnectionMonitorsClient) (ar autorest.Response, err error) { 4852 var done bool 4853 done, err = future.Done(client) 4854 if err != nil { 4855 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsDeleteFuture", "Result", future.Response(), "Polling failure") 4856 return 4857 } 4858 if !done { 4859 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsDeleteFuture") 4860 return 4861 } 4862 ar.Response = future.Response() 4863 return 4864} 4865 4866// ConnectionMonitorSource describes the source of connection monitor. 4867type ConnectionMonitorSource struct { 4868 // ResourceID - The ID of the resource used as the source by connection monitor. 4869 ResourceID *string `json:"resourceId,omitempty"` 4870 // Port - The source port used by connection monitor. 4871 Port *int32 `json:"port,omitempty"` 4872} 4873 4874// ConnectionMonitorsQueryFuture an abstraction for monitoring and retrieving the results of a long-running 4875// operation. 4876type ConnectionMonitorsQueryFuture struct { 4877 azure.Future 4878} 4879 4880// Result returns the result of the asynchronous operation. 4881// If the operation has not completed it will return an error. 4882func (future *ConnectionMonitorsQueryFuture) Result(client ConnectionMonitorsClient) (cmqr ConnectionMonitorQueryResult, err error) { 4883 var done bool 4884 done, err = future.Done(client) 4885 if err != nil { 4886 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsQueryFuture", "Result", future.Response(), "Polling failure") 4887 return 4888 } 4889 if !done { 4890 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsQueryFuture") 4891 return 4892 } 4893 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 4894 if cmqr.Response.Response, err = future.GetResult(sender); err == nil && cmqr.Response.Response.StatusCode != http.StatusNoContent { 4895 cmqr, err = client.QueryResponder(cmqr.Response.Response) 4896 if err != nil { 4897 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsQueryFuture", "Result", cmqr.Response.Response, "Failure responding to request") 4898 } 4899 } 4900 return 4901} 4902 4903// ConnectionMonitorsStartFuture an abstraction for monitoring and retrieving the results of a long-running 4904// operation. 4905type ConnectionMonitorsStartFuture struct { 4906 azure.Future 4907} 4908 4909// Result returns the result of the asynchronous operation. 4910// If the operation has not completed it will return an error. 4911func (future *ConnectionMonitorsStartFuture) Result(client ConnectionMonitorsClient) (ar autorest.Response, err error) { 4912 var done bool 4913 done, err = future.Done(client) 4914 if err != nil { 4915 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsStartFuture", "Result", future.Response(), "Polling failure") 4916 return 4917 } 4918 if !done { 4919 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsStartFuture") 4920 return 4921 } 4922 ar.Response = future.Response() 4923 return 4924} 4925 4926// ConnectionMonitorsStopFuture an abstraction for monitoring and retrieving the results of a long-running 4927// operation. 4928type ConnectionMonitorsStopFuture struct { 4929 azure.Future 4930} 4931 4932// Result returns the result of the asynchronous operation. 4933// If the operation has not completed it will return an error. 4934func (future *ConnectionMonitorsStopFuture) Result(client ConnectionMonitorsClient) (ar autorest.Response, err error) { 4935 var done bool 4936 done, err = future.Done(client) 4937 if err != nil { 4938 err = autorest.NewErrorWithError(err, "network.ConnectionMonitorsStopFuture", "Result", future.Response(), "Polling failure") 4939 return 4940 } 4941 if !done { 4942 err = azure.NewAsyncOpIncompleteError("network.ConnectionMonitorsStopFuture") 4943 return 4944 } 4945 ar.Response = future.Response() 4946 return 4947} 4948 4949// ConnectionResetSharedKey the virtual network connection reset shared key 4950type ConnectionResetSharedKey struct { 4951 autorest.Response `json:"-"` 4952 // KeyLength - The virtual network connection reset shared key length, should between 1 and 128. 4953 KeyLength *int32 `json:"keyLength,omitempty"` 4954} 4955 4956// ConnectionSharedKey response for GetConnectionSharedKey API service call 4957type ConnectionSharedKey struct { 4958 autorest.Response `json:"-"` 4959 // Value - The virtual network connection shared key value. 4960 Value *string `json:"value,omitempty"` 4961} 4962 4963// ConnectionStateSnapshot connection state snapshot. 4964type ConnectionStateSnapshot struct { 4965 // ConnectionState - The connection state. Possible values include: 'ConnectionStateReachable', 'ConnectionStateUnreachable', 'ConnectionStateUnknown' 4966 ConnectionState ConnectionState `json:"connectionState,omitempty"` 4967 // StartTime - The start time of the connection snapshot. 4968 StartTime *date.Time `json:"startTime,omitempty"` 4969 // EndTime - The end time of the connection snapshot. 4970 EndTime *date.Time `json:"endTime,omitempty"` 4971 // EvaluationState - Connectivity analysis evaluation state. Possible values include: 'NotStarted', 'InProgress', 'Completed' 4972 EvaluationState EvaluationState `json:"evaluationState,omitempty"` 4973 // Hops - List of hops between the source and the destination. 4974 Hops *[]ConnectivityHop `json:"hops,omitempty"` 4975} 4976 4977// ConnectivityDestination parameters that define destination of connection. 4978type ConnectivityDestination struct { 4979 // ResourceID - The ID of the resource to which a connection attempt will be made. 4980 ResourceID *string `json:"resourceId,omitempty"` 4981 // Address - The IP address or URI the resource to which a connection attempt will be made. 4982 Address *string `json:"address,omitempty"` 4983 // Port - Port on which check connectivity will be performed. 4984 Port *int32 `json:"port,omitempty"` 4985} 4986 4987// ConnectivityHop information about a hop between the source and the destination. 4988type ConnectivityHop struct { 4989 // Type - The type of the hop. 4990 Type *string `json:"type,omitempty"` 4991 // ID - The ID of the hop. 4992 ID *string `json:"id,omitempty"` 4993 // Address - The IP address of the hop. 4994 Address *string `json:"address,omitempty"` 4995 // ResourceID - The ID of the resource corresponding to this hop. 4996 ResourceID *string `json:"resourceId,omitempty"` 4997 // NextHopIds - List of next hop identifiers. 4998 NextHopIds *[]string `json:"nextHopIds,omitempty"` 4999 // Issues - List of issues. 5000 Issues *[]ConnectivityIssue `json:"issues,omitempty"` 5001} 5002 5003// ConnectivityInformation information on the connectivity status. 5004type ConnectivityInformation struct { 5005 autorest.Response `json:"-"` 5006 // Hops - List of hops between the source and the destination. 5007 Hops *[]ConnectivityHop `json:"hops,omitempty"` 5008 // ConnectionStatus - The connection status. Possible values include: 'ConnectionStatusUnknown', 'ConnectionStatusConnected', 'ConnectionStatusDisconnected', 'ConnectionStatusDegraded' 5009 ConnectionStatus ConnectionStatus `json:"connectionStatus,omitempty"` 5010 // AvgLatencyInMs - Average latency in milliseconds. 5011 AvgLatencyInMs *int32 `json:"avgLatencyInMs,omitempty"` 5012 // MinLatencyInMs - Minimum latency in milliseconds. 5013 MinLatencyInMs *int32 `json:"minLatencyInMs,omitempty"` 5014 // MaxLatencyInMs - Maximum latency in milliseconds. 5015 MaxLatencyInMs *int32 `json:"maxLatencyInMs,omitempty"` 5016 // ProbesSent - Total number of probes sent. 5017 ProbesSent *int32 `json:"probesSent,omitempty"` 5018 // ProbesFailed - Number of failed probes. 5019 ProbesFailed *int32 `json:"probesFailed,omitempty"` 5020} 5021 5022// ConnectivityIssue information about an issue encountered in the process of checking for connectivity. 5023type ConnectivityIssue struct { 5024 // Origin - The origin of the issue. Possible values include: 'OriginLocal', 'OriginInbound', 'OriginOutbound' 5025 Origin Origin `json:"origin,omitempty"` 5026 // Severity - The severity of the issue. Possible values include: 'SeverityError', 'SeverityWarning' 5027 Severity Severity `json:"severity,omitempty"` 5028 // Type - The type of issue. Possible values include: 'IssueTypeUnknown', 'IssueTypeAgentStopped', 'IssueTypeGuestFirewall', 'IssueTypeDNSResolution', 'IssueTypeSocketBind', 'IssueTypeNetworkSecurityRule', 'IssueTypeUserDefinedRoute', 'IssueTypePortThrottled', 'IssueTypePlatform' 5029 Type IssueType `json:"type,omitempty"` 5030 // Context - Provides additional context on the issue. 5031 Context *[]map[string]*string `json:"context,omitempty"` 5032} 5033 5034// ConnectivityParameters parameters that determine how the connectivity check will be performed. 5035type ConnectivityParameters struct { 5036 Source *ConnectivitySource `json:"source,omitempty"` 5037 Destination *ConnectivityDestination `json:"destination,omitempty"` 5038} 5039 5040// ConnectivitySource parameters that define the source of the connection. 5041type ConnectivitySource struct { 5042 // ResourceID - The ID of the resource from which a connectivity check will be initiated. 5043 ResourceID *string `json:"resourceId,omitempty"` 5044 // Port - The source port from which a connectivity check will be performed. 5045 Port *int32 `json:"port,omitempty"` 5046} 5047 5048// DhcpOptions dhcpOptions contains an array of DNS servers available to VMs deployed in the virtual network. 5049// Standard DHCP option for a subnet overrides VNET DHCP options. 5050type DhcpOptions struct { 5051 // DNSServers - The list of DNS servers IP addresses. 5052 DNSServers *[]string `json:"dnsServers,omitempty"` 5053} 5054 5055// Dimension dimension of the metric. 5056type Dimension struct { 5057 // Name - The name of the dimension. 5058 Name *string `json:"name,omitempty"` 5059 // DisplayName - The display name of the dimension. 5060 DisplayName *string `json:"displayName,omitempty"` 5061 // InternalName - The internal name of the dimension. 5062 InternalName *string `json:"internalName,omitempty"` 5063} 5064 5065// DNSNameAvailabilityResult response for the CheckDnsNameAvailability API service call. 5066type DNSNameAvailabilityResult struct { 5067 autorest.Response `json:"-"` 5068 // Available - Domain availability (True/False). 5069 Available *bool `json:"available,omitempty"` 5070} 5071 5072// EffectiveNetworkSecurityGroup effective network security group. 5073type EffectiveNetworkSecurityGroup struct { 5074 // NetworkSecurityGroup - The ID of network security group that is applied. 5075 NetworkSecurityGroup *SubResource `json:"networkSecurityGroup,omitempty"` 5076 // Association - Associated resources. 5077 Association *EffectiveNetworkSecurityGroupAssociation `json:"association,omitempty"` 5078 // EffectiveSecurityRules - A collection of effective security rules. 5079 EffectiveSecurityRules *[]EffectiveNetworkSecurityRule `json:"effectiveSecurityRules,omitempty"` 5080 // TagMap - Mapping of tags to list of IP Addresses included within the tag. 5081 TagMap map[string][]string `json:"tagMap"` 5082} 5083 5084// MarshalJSON is the custom marshaler for EffectiveNetworkSecurityGroup. 5085func (ensg EffectiveNetworkSecurityGroup) MarshalJSON() ([]byte, error) { 5086 objectMap := make(map[string]interface{}) 5087 if ensg.NetworkSecurityGroup != nil { 5088 objectMap["networkSecurityGroup"] = ensg.NetworkSecurityGroup 5089 } 5090 if ensg.Association != nil { 5091 objectMap["association"] = ensg.Association 5092 } 5093 if ensg.EffectiveSecurityRules != nil { 5094 objectMap["effectiveSecurityRules"] = ensg.EffectiveSecurityRules 5095 } 5096 if ensg.TagMap != nil { 5097 objectMap["tagMap"] = ensg.TagMap 5098 } 5099 return json.Marshal(objectMap) 5100} 5101 5102// EffectiveNetworkSecurityGroupAssociation the effective network security group association. 5103type EffectiveNetworkSecurityGroupAssociation struct { 5104 // Subnet - The ID of the subnet if assigned. 5105 Subnet *SubResource `json:"subnet,omitempty"` 5106 // NetworkInterface - The ID of the network interface if assigned. 5107 NetworkInterface *SubResource `json:"networkInterface,omitempty"` 5108} 5109 5110// EffectiveNetworkSecurityGroupListResult response for list effective network security groups API service call. 5111type EffectiveNetworkSecurityGroupListResult struct { 5112 autorest.Response `json:"-"` 5113 // Value - A list of effective network security groups. 5114 Value *[]EffectiveNetworkSecurityGroup `json:"value,omitempty"` 5115 // NextLink - The URL to get the next set of results. 5116 NextLink *string `json:"nextLink,omitempty"` 5117} 5118 5119// EffectiveNetworkSecurityRule effective network security rules. 5120type EffectiveNetworkSecurityRule struct { 5121 // Name - The name of the security rule specified by the user (if created by the user). 5122 Name *string `json:"name,omitempty"` 5123 // Protocol - The network protocol this rule applies to. Possible values are: 'Tcp', 'Udp', and 'All'. Possible values include: 'TCP', 'UDP', 'All' 5124 Protocol EffectiveSecurityRuleProtocol `json:"protocol,omitempty"` 5125 // SourcePortRange - The source port or range. 5126 SourcePortRange *string `json:"sourcePortRange,omitempty"` 5127 // DestinationPortRange - The destination port or range. 5128 DestinationPortRange *string `json:"destinationPortRange,omitempty"` 5129 // SourcePortRanges - The source port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as seperator (e.g. 100-400), or an asterix (*) 5130 SourcePortRanges *[]string `json:"sourcePortRanges,omitempty"` 5131 // DestinationPortRanges - The destination port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as seperator (e.g. 100-400), or an asterix (*) 5132 DestinationPortRanges *[]string `json:"destinationPortRanges,omitempty"` 5133 // SourceAddressPrefix - The source address prefix. 5134 SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"` 5135 // DestinationAddressPrefix - The destination address prefix. 5136 DestinationAddressPrefix *string `json:"destinationAddressPrefix,omitempty"` 5137 // SourceAddressPrefixes - The source address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AureLoadBalancer, Internet), System Tags, and the asterix (*). 5138 SourceAddressPrefixes *[]string `json:"sourceAddressPrefixes,omitempty"` 5139 // DestinationAddressPrefixes - The destination address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AureLoadBalancer, Internet), System Tags, and the asterix (*). 5140 DestinationAddressPrefixes *[]string `json:"destinationAddressPrefixes,omitempty"` 5141 // ExpandedSourceAddressPrefix - The expanded source address prefix. 5142 ExpandedSourceAddressPrefix *[]string `json:"expandedSourceAddressPrefix,omitempty"` 5143 // ExpandedDestinationAddressPrefix - Expanded destination address prefix. 5144 ExpandedDestinationAddressPrefix *[]string `json:"expandedDestinationAddressPrefix,omitempty"` 5145 // Access - Whether network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'. Possible values include: 'SecurityRuleAccessAllow', 'SecurityRuleAccessDeny' 5146 Access SecurityRuleAccess `json:"access,omitempty"` 5147 // Priority - The priority of the rule. 5148 Priority *int32 `json:"priority,omitempty"` 5149 // Direction - The direction of the rule. Possible values are: 'Inbound and Outbound'. Possible values include: 'SecurityRuleDirectionInbound', 'SecurityRuleDirectionOutbound' 5150 Direction SecurityRuleDirection `json:"direction,omitempty"` 5151} 5152 5153// EffectiveRoute effective Route 5154type EffectiveRoute struct { 5155 // Name - The name of the user defined route. This is optional. 5156 Name *string `json:"name,omitempty"` 5157 // Source - Who created the route. Possible values are: 'Unknown', 'User', 'VirtualNetworkGateway', and 'Default'. Possible values include: 'EffectiveRouteSourceUnknown', 'EffectiveRouteSourceUser', 'EffectiveRouteSourceVirtualNetworkGateway', 'EffectiveRouteSourceDefault' 5158 Source EffectiveRouteSource `json:"source,omitempty"` 5159 // State - The value of effective route. Possible values are: 'Active' and 'Invalid'. Possible values include: 'Active', 'Invalid' 5160 State EffectiveRouteState `json:"state,omitempty"` 5161 // AddressPrefix - The address prefixes of the effective routes in CIDR notation. 5162 AddressPrefix *[]string `json:"addressPrefix,omitempty"` 5163 // NextHopIPAddress - The IP address of the next hop of the effective route. 5164 NextHopIPAddress *[]string `json:"nextHopIpAddress,omitempty"` 5165 // 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' 5166 NextHopType RouteNextHopType `json:"nextHopType,omitempty"` 5167} 5168 5169// EffectiveRouteListResult response for list effective route API service call. 5170type EffectiveRouteListResult struct { 5171 autorest.Response `json:"-"` 5172 // Value - A list of effective routes. 5173 Value *[]EffectiveRoute `json:"value,omitempty"` 5174 // NextLink - The URL to get the next set of results. 5175 NextLink *string `json:"nextLink,omitempty"` 5176} 5177 5178// EndpointServiceResult endpoint service. 5179type EndpointServiceResult struct { 5180 // Name - Name of the endpoint service. 5181 Name *string `json:"name,omitempty"` 5182 // Type - Type of the endpoint service. 5183 Type *string `json:"type,omitempty"` 5184 // ID - Resource ID. 5185 ID *string `json:"id,omitempty"` 5186} 5187 5188// EndpointServicesListResult response for the ListAvailableEndpointServices API service call. 5189type EndpointServicesListResult struct { 5190 autorest.Response `json:"-"` 5191 // Value - List of available endpoint services in a region. 5192 Value *[]EndpointServiceResult `json:"value,omitempty"` 5193 // NextLink - The URL to get the next set of results. 5194 NextLink *string `json:"nextLink,omitempty"` 5195} 5196 5197// EndpointServicesListResultIterator provides access to a complete listing of EndpointServiceResult values. 5198type EndpointServicesListResultIterator struct { 5199 i int 5200 page EndpointServicesListResultPage 5201} 5202 5203// Next advances to the next value. If there was an error making 5204// the request the iterator does not advance and the error is returned. 5205func (iter *EndpointServicesListResultIterator) Next() error { 5206 iter.i++ 5207 if iter.i < len(iter.page.Values()) { 5208 return nil 5209 } 5210 err := iter.page.Next() 5211 if err != nil { 5212 iter.i-- 5213 return err 5214 } 5215 iter.i = 0 5216 return nil 5217} 5218 5219// NotDone returns true if the enumeration should be started or is not yet complete. 5220func (iter EndpointServicesListResultIterator) NotDone() bool { 5221 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 5222} 5223 5224// Response returns the raw server response from the last page request. 5225func (iter EndpointServicesListResultIterator) Response() EndpointServicesListResult { 5226 return iter.page.Response() 5227} 5228 5229// Value returns the current value or a zero-initialized value if the 5230// iterator has advanced beyond the end of the collection. 5231func (iter EndpointServicesListResultIterator) Value() EndpointServiceResult { 5232 if !iter.page.NotDone() { 5233 return EndpointServiceResult{} 5234 } 5235 return iter.page.Values()[iter.i] 5236} 5237 5238// IsEmpty returns true if the ListResult contains no values. 5239func (eslr EndpointServicesListResult) IsEmpty() bool { 5240 return eslr.Value == nil || len(*eslr.Value) == 0 5241} 5242 5243// endpointServicesListResultPreparer prepares a request to retrieve the next set of results. 5244// It returns nil if no more results exist. 5245func (eslr EndpointServicesListResult) endpointServicesListResultPreparer() (*http.Request, error) { 5246 if eslr.NextLink == nil || len(to.String(eslr.NextLink)) < 1 { 5247 return nil, nil 5248 } 5249 return autorest.Prepare(&http.Request{}, 5250 autorest.AsJSON(), 5251 autorest.AsGet(), 5252 autorest.WithBaseURL(to.String(eslr.NextLink))) 5253} 5254 5255// EndpointServicesListResultPage contains a page of EndpointServiceResult values. 5256type EndpointServicesListResultPage struct { 5257 fn func(EndpointServicesListResult) (EndpointServicesListResult, error) 5258 eslr EndpointServicesListResult 5259} 5260 5261// Next advances to the next page of values. If there was an error making 5262// the request the page does not advance and the error is returned. 5263func (page *EndpointServicesListResultPage) Next() error { 5264 next, err := page.fn(page.eslr) 5265 if err != nil { 5266 return err 5267 } 5268 page.eslr = next 5269 return nil 5270} 5271 5272// NotDone returns true if the page enumeration should be started or is not yet complete. 5273func (page EndpointServicesListResultPage) NotDone() bool { 5274 return !page.eslr.IsEmpty() 5275} 5276 5277// Response returns the raw server response from the last page request. 5278func (page EndpointServicesListResultPage) Response() EndpointServicesListResult { 5279 return page.eslr 5280} 5281 5282// Values returns the slice of values for the current page or nil if there are no values. 5283func (page EndpointServicesListResultPage) Values() []EndpointServiceResult { 5284 if page.eslr.IsEmpty() { 5285 return nil 5286 } 5287 return *page.eslr.Value 5288} 5289 5290// Error ... 5291type Error struct { 5292 Code *string `json:"code,omitempty"` 5293 Message *string `json:"message,omitempty"` 5294 Target *string `json:"target,omitempty"` 5295 Details *[]ErrorDetails `json:"details,omitempty"` 5296 InnerError *string `json:"innerError,omitempty"` 5297} 5298 5299// ErrorDetails ... 5300type ErrorDetails struct { 5301 Code *string `json:"code,omitempty"` 5302 Target *string `json:"target,omitempty"` 5303 Message *string `json:"message,omitempty"` 5304} 5305 5306// ExpressRouteCircuit expressRouteCircuit resource 5307type ExpressRouteCircuit struct { 5308 autorest.Response `json:"-"` 5309 // Sku - The SKU. 5310 Sku *ExpressRouteCircuitSku `json:"sku,omitempty"` 5311 *ExpressRouteCircuitPropertiesFormat `json:"properties,omitempty"` 5312 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 5313 Etag *string `json:"etag,omitempty"` 5314 // ID - Resource ID. 5315 ID *string `json:"id,omitempty"` 5316 // Name - Resource name. 5317 Name *string `json:"name,omitempty"` 5318 // Type - Resource type. 5319 Type *string `json:"type,omitempty"` 5320 // Location - Resource location. 5321 Location *string `json:"location,omitempty"` 5322 // Tags - Resource tags. 5323 Tags map[string]*string `json:"tags"` 5324} 5325 5326// MarshalJSON is the custom marshaler for ExpressRouteCircuit. 5327func (erc ExpressRouteCircuit) MarshalJSON() ([]byte, error) { 5328 objectMap := make(map[string]interface{}) 5329 if erc.Sku != nil { 5330 objectMap["sku"] = erc.Sku 5331 } 5332 if erc.ExpressRouteCircuitPropertiesFormat != nil { 5333 objectMap["properties"] = erc.ExpressRouteCircuitPropertiesFormat 5334 } 5335 if erc.Etag != nil { 5336 objectMap["etag"] = erc.Etag 5337 } 5338 if erc.ID != nil { 5339 objectMap["id"] = erc.ID 5340 } 5341 if erc.Name != nil { 5342 objectMap["name"] = erc.Name 5343 } 5344 if erc.Type != nil { 5345 objectMap["type"] = erc.Type 5346 } 5347 if erc.Location != nil { 5348 objectMap["location"] = erc.Location 5349 } 5350 if erc.Tags != nil { 5351 objectMap["tags"] = erc.Tags 5352 } 5353 return json.Marshal(objectMap) 5354} 5355 5356// UnmarshalJSON is the custom unmarshaler for ExpressRouteCircuit struct. 5357func (erc *ExpressRouteCircuit) UnmarshalJSON(body []byte) error { 5358 var m map[string]*json.RawMessage 5359 err := json.Unmarshal(body, &m) 5360 if err != nil { 5361 return err 5362 } 5363 for k, v := range m { 5364 switch k { 5365 case "sku": 5366 if v != nil { 5367 var sku ExpressRouteCircuitSku 5368 err = json.Unmarshal(*v, &sku) 5369 if err != nil { 5370 return err 5371 } 5372 erc.Sku = &sku 5373 } 5374 case "properties": 5375 if v != nil { 5376 var expressRouteCircuitPropertiesFormat ExpressRouteCircuitPropertiesFormat 5377 err = json.Unmarshal(*v, &expressRouteCircuitPropertiesFormat) 5378 if err != nil { 5379 return err 5380 } 5381 erc.ExpressRouteCircuitPropertiesFormat = &expressRouteCircuitPropertiesFormat 5382 } 5383 case "etag": 5384 if v != nil { 5385 var etag string 5386 err = json.Unmarshal(*v, &etag) 5387 if err != nil { 5388 return err 5389 } 5390 erc.Etag = &etag 5391 } 5392 case "id": 5393 if v != nil { 5394 var ID string 5395 err = json.Unmarshal(*v, &ID) 5396 if err != nil { 5397 return err 5398 } 5399 erc.ID = &ID 5400 } 5401 case "name": 5402 if v != nil { 5403 var name string 5404 err = json.Unmarshal(*v, &name) 5405 if err != nil { 5406 return err 5407 } 5408 erc.Name = &name 5409 } 5410 case "type": 5411 if v != nil { 5412 var typeVar string 5413 err = json.Unmarshal(*v, &typeVar) 5414 if err != nil { 5415 return err 5416 } 5417 erc.Type = &typeVar 5418 } 5419 case "location": 5420 if v != nil { 5421 var location string 5422 err = json.Unmarshal(*v, &location) 5423 if err != nil { 5424 return err 5425 } 5426 erc.Location = &location 5427 } 5428 case "tags": 5429 if v != nil { 5430 var tags map[string]*string 5431 err = json.Unmarshal(*v, &tags) 5432 if err != nil { 5433 return err 5434 } 5435 erc.Tags = tags 5436 } 5437 } 5438 } 5439 5440 return nil 5441} 5442 5443// ExpressRouteCircuitArpTable the ARP table associated with the ExpressRouteCircuit. 5444type ExpressRouteCircuitArpTable struct { 5445 // Age - Age 5446 Age *int32 `json:"age,omitempty"` 5447 // Interface - Interface 5448 Interface *string `json:"interface,omitempty"` 5449 // IPAddress - The IP address. 5450 IPAddress *string `json:"ipAddress,omitempty"` 5451 // MacAddress - The MAC address. 5452 MacAddress *string `json:"macAddress,omitempty"` 5453} 5454 5455// ExpressRouteCircuitAuthorization authorization in an ExpressRouteCircuit resource. 5456type ExpressRouteCircuitAuthorization struct { 5457 autorest.Response `json:"-"` 5458 *AuthorizationPropertiesFormat `json:"properties,omitempty"` 5459 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 5460 Name *string `json:"name,omitempty"` 5461 // Etag - A unique read-only string that changes whenever the resource is updated. 5462 Etag *string `json:"etag,omitempty"` 5463 // ID - Resource ID. 5464 ID *string `json:"id,omitempty"` 5465} 5466 5467// MarshalJSON is the custom marshaler for ExpressRouteCircuitAuthorization. 5468func (erca ExpressRouteCircuitAuthorization) MarshalJSON() ([]byte, error) { 5469 objectMap := make(map[string]interface{}) 5470 if erca.AuthorizationPropertiesFormat != nil { 5471 objectMap["properties"] = erca.AuthorizationPropertiesFormat 5472 } 5473 if erca.Name != nil { 5474 objectMap["name"] = erca.Name 5475 } 5476 if erca.Etag != nil { 5477 objectMap["etag"] = erca.Etag 5478 } 5479 if erca.ID != nil { 5480 objectMap["id"] = erca.ID 5481 } 5482 return json.Marshal(objectMap) 5483} 5484 5485// UnmarshalJSON is the custom unmarshaler for ExpressRouteCircuitAuthorization struct. 5486func (erca *ExpressRouteCircuitAuthorization) UnmarshalJSON(body []byte) error { 5487 var m map[string]*json.RawMessage 5488 err := json.Unmarshal(body, &m) 5489 if err != nil { 5490 return err 5491 } 5492 for k, v := range m { 5493 switch k { 5494 case "properties": 5495 if v != nil { 5496 var authorizationPropertiesFormat AuthorizationPropertiesFormat 5497 err = json.Unmarshal(*v, &authorizationPropertiesFormat) 5498 if err != nil { 5499 return err 5500 } 5501 erca.AuthorizationPropertiesFormat = &authorizationPropertiesFormat 5502 } 5503 case "name": 5504 if v != nil { 5505 var name string 5506 err = json.Unmarshal(*v, &name) 5507 if err != nil { 5508 return err 5509 } 5510 erca.Name = &name 5511 } 5512 case "etag": 5513 if v != nil { 5514 var etag string 5515 err = json.Unmarshal(*v, &etag) 5516 if err != nil { 5517 return err 5518 } 5519 erca.Etag = &etag 5520 } 5521 case "id": 5522 if v != nil { 5523 var ID string 5524 err = json.Unmarshal(*v, &ID) 5525 if err != nil { 5526 return err 5527 } 5528 erca.ID = &ID 5529 } 5530 } 5531 } 5532 5533 return nil 5534} 5535 5536// ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results 5537// of a long-running operation. 5538type ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture struct { 5539 azure.Future 5540} 5541 5542// Result returns the result of the asynchronous operation. 5543// If the operation has not completed it will return an error. 5544func (future *ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture) Result(client ExpressRouteCircuitAuthorizationsClient) (erca ExpressRouteCircuitAuthorization, err error) { 5545 var done bool 5546 done, err = future.Done(client) 5547 if err != nil { 5548 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 5549 return 5550 } 5551 if !done { 5552 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture") 5553 return 5554 } 5555 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5556 if erca.Response.Response, err = future.GetResult(sender); err == nil && erca.Response.Response.StatusCode != http.StatusNoContent { 5557 erca, err = client.CreateOrUpdateResponder(erca.Response.Response) 5558 if err != nil { 5559 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture", "Result", erca.Response.Response, "Failure responding to request") 5560 } 5561 } 5562 return 5563} 5564 5565// ExpressRouteCircuitAuthorizationsDeleteFuture an abstraction for monitoring and retrieving the results of a 5566// long-running operation. 5567type ExpressRouteCircuitAuthorizationsDeleteFuture struct { 5568 azure.Future 5569} 5570 5571// Result returns the result of the asynchronous operation. 5572// If the operation has not completed it will return an error. 5573func (future *ExpressRouteCircuitAuthorizationsDeleteFuture) Result(client ExpressRouteCircuitAuthorizationsClient) (ar autorest.Response, err error) { 5574 var done bool 5575 done, err = future.Done(client) 5576 if err != nil { 5577 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitAuthorizationsDeleteFuture", "Result", future.Response(), "Polling failure") 5578 return 5579 } 5580 if !done { 5581 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitAuthorizationsDeleteFuture") 5582 return 5583 } 5584 ar.Response = future.Response() 5585 return 5586} 5587 5588// ExpressRouteCircuitListResult response for ListExpressRouteCircuit API service call. 5589type ExpressRouteCircuitListResult struct { 5590 autorest.Response `json:"-"` 5591 // Value - A list of ExpressRouteCircuits in a resource group. 5592 Value *[]ExpressRouteCircuit `json:"value,omitempty"` 5593 // NextLink - The URL to get the next set of results. 5594 NextLink *string `json:"nextLink,omitempty"` 5595} 5596 5597// ExpressRouteCircuitListResultIterator provides access to a complete listing of ExpressRouteCircuit values. 5598type ExpressRouteCircuitListResultIterator struct { 5599 i int 5600 page ExpressRouteCircuitListResultPage 5601} 5602 5603// Next advances to the next value. If there was an error making 5604// the request the iterator does not advance and the error is returned. 5605func (iter *ExpressRouteCircuitListResultIterator) Next() error { 5606 iter.i++ 5607 if iter.i < len(iter.page.Values()) { 5608 return nil 5609 } 5610 err := iter.page.Next() 5611 if err != nil { 5612 iter.i-- 5613 return err 5614 } 5615 iter.i = 0 5616 return nil 5617} 5618 5619// NotDone returns true if the enumeration should be started or is not yet complete. 5620func (iter ExpressRouteCircuitListResultIterator) NotDone() bool { 5621 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 5622} 5623 5624// Response returns the raw server response from the last page request. 5625func (iter ExpressRouteCircuitListResultIterator) Response() ExpressRouteCircuitListResult { 5626 return iter.page.Response() 5627} 5628 5629// Value returns the current value or a zero-initialized value if the 5630// iterator has advanced beyond the end of the collection. 5631func (iter ExpressRouteCircuitListResultIterator) Value() ExpressRouteCircuit { 5632 if !iter.page.NotDone() { 5633 return ExpressRouteCircuit{} 5634 } 5635 return iter.page.Values()[iter.i] 5636} 5637 5638// IsEmpty returns true if the ListResult contains no values. 5639func (erclr ExpressRouteCircuitListResult) IsEmpty() bool { 5640 return erclr.Value == nil || len(*erclr.Value) == 0 5641} 5642 5643// expressRouteCircuitListResultPreparer prepares a request to retrieve the next set of results. 5644// It returns nil if no more results exist. 5645func (erclr ExpressRouteCircuitListResult) expressRouteCircuitListResultPreparer() (*http.Request, error) { 5646 if erclr.NextLink == nil || len(to.String(erclr.NextLink)) < 1 { 5647 return nil, nil 5648 } 5649 return autorest.Prepare(&http.Request{}, 5650 autorest.AsJSON(), 5651 autorest.AsGet(), 5652 autorest.WithBaseURL(to.String(erclr.NextLink))) 5653} 5654 5655// ExpressRouteCircuitListResultPage contains a page of ExpressRouteCircuit values. 5656type ExpressRouteCircuitListResultPage struct { 5657 fn func(ExpressRouteCircuitListResult) (ExpressRouteCircuitListResult, error) 5658 erclr ExpressRouteCircuitListResult 5659} 5660 5661// Next advances to the next page of values. If there was an error making 5662// the request the page does not advance and the error is returned. 5663func (page *ExpressRouteCircuitListResultPage) Next() error { 5664 next, err := page.fn(page.erclr) 5665 if err != nil { 5666 return err 5667 } 5668 page.erclr = next 5669 return nil 5670} 5671 5672// NotDone returns true if the page enumeration should be started or is not yet complete. 5673func (page ExpressRouteCircuitListResultPage) NotDone() bool { 5674 return !page.erclr.IsEmpty() 5675} 5676 5677// Response returns the raw server response from the last page request. 5678func (page ExpressRouteCircuitListResultPage) Response() ExpressRouteCircuitListResult { 5679 return page.erclr 5680} 5681 5682// Values returns the slice of values for the current page or nil if there are no values. 5683func (page ExpressRouteCircuitListResultPage) Values() []ExpressRouteCircuit { 5684 if page.erclr.IsEmpty() { 5685 return nil 5686 } 5687 return *page.erclr.Value 5688} 5689 5690// ExpressRouteCircuitPeering peering in an ExpressRouteCircuit resource. 5691type ExpressRouteCircuitPeering struct { 5692 autorest.Response `json:"-"` 5693 *ExpressRouteCircuitPeeringPropertiesFormat `json:"properties,omitempty"` 5694 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 5695 Name *string `json:"name,omitempty"` 5696 // Etag - A unique read-only string that changes whenever the resource is updated. 5697 Etag *string `json:"etag,omitempty"` 5698 // ID - Resource ID. 5699 ID *string `json:"id,omitempty"` 5700} 5701 5702// MarshalJSON is the custom marshaler for ExpressRouteCircuitPeering. 5703func (ercp ExpressRouteCircuitPeering) MarshalJSON() ([]byte, error) { 5704 objectMap := make(map[string]interface{}) 5705 if ercp.ExpressRouteCircuitPeeringPropertiesFormat != nil { 5706 objectMap["properties"] = ercp.ExpressRouteCircuitPeeringPropertiesFormat 5707 } 5708 if ercp.Name != nil { 5709 objectMap["name"] = ercp.Name 5710 } 5711 if ercp.Etag != nil { 5712 objectMap["etag"] = ercp.Etag 5713 } 5714 if ercp.ID != nil { 5715 objectMap["id"] = ercp.ID 5716 } 5717 return json.Marshal(objectMap) 5718} 5719 5720// UnmarshalJSON is the custom unmarshaler for ExpressRouteCircuitPeering struct. 5721func (ercp *ExpressRouteCircuitPeering) UnmarshalJSON(body []byte) error { 5722 var m map[string]*json.RawMessage 5723 err := json.Unmarshal(body, &m) 5724 if err != nil { 5725 return err 5726 } 5727 for k, v := range m { 5728 switch k { 5729 case "properties": 5730 if v != nil { 5731 var expressRouteCircuitPeeringPropertiesFormat ExpressRouteCircuitPeeringPropertiesFormat 5732 err = json.Unmarshal(*v, &expressRouteCircuitPeeringPropertiesFormat) 5733 if err != nil { 5734 return err 5735 } 5736 ercp.ExpressRouteCircuitPeeringPropertiesFormat = &expressRouteCircuitPeeringPropertiesFormat 5737 } 5738 case "name": 5739 if v != nil { 5740 var name string 5741 err = json.Unmarshal(*v, &name) 5742 if err != nil { 5743 return err 5744 } 5745 ercp.Name = &name 5746 } 5747 case "etag": 5748 if v != nil { 5749 var etag string 5750 err = json.Unmarshal(*v, &etag) 5751 if err != nil { 5752 return err 5753 } 5754 ercp.Etag = &etag 5755 } 5756 case "id": 5757 if v != nil { 5758 var ID string 5759 err = json.Unmarshal(*v, &ID) 5760 if err != nil { 5761 return err 5762 } 5763 ercp.ID = &ID 5764 } 5765 } 5766 } 5767 5768 return nil 5769} 5770 5771// ExpressRouteCircuitPeeringConfig specifies the peering configuration. 5772type ExpressRouteCircuitPeeringConfig struct { 5773 // AdvertisedPublicPrefixes - The reference of AdvertisedPublicPrefixes. 5774 AdvertisedPublicPrefixes *[]string `json:"advertisedPublicPrefixes,omitempty"` 5775 // AdvertisedCommunities - The communities of bgp peering. Spepcified for microsoft peering 5776 AdvertisedCommunities *[]string `json:"advertisedCommunities,omitempty"` 5777 // AdvertisedPublicPrefixesState - AdvertisedPublicPrefixState of the Peering resource. Possible values are 'NotConfigured', 'Configuring', 'Configured', and 'ValidationNeeded'. Possible values include: 'NotConfigured', 'Configuring', 'Configured', 'ValidationNeeded' 5778 AdvertisedPublicPrefixesState ExpressRouteCircuitPeeringAdvertisedPublicPrefixState `json:"advertisedPublicPrefixesState,omitempty"` 5779 // LegacyMode - The legacy mode of the peering. 5780 LegacyMode *int32 `json:"legacyMode,omitempty"` 5781 // CustomerASN - The CustomerASN of the peering. 5782 CustomerASN *int32 `json:"customerASN,omitempty"` 5783 // RoutingRegistryName - The RoutingRegistryName of the configuration. 5784 RoutingRegistryName *string `json:"routingRegistryName,omitempty"` 5785} 5786 5787// ExpressRouteCircuitPeeringListResult response for ListPeering API service call retrieves all peerings that 5788// belong to an ExpressRouteCircuit. 5789type ExpressRouteCircuitPeeringListResult struct { 5790 autorest.Response `json:"-"` 5791 // Value - The peerings in an express route circuit. 5792 Value *[]ExpressRouteCircuitPeering `json:"value,omitempty"` 5793 // NextLink - The URL to get the next set of results. 5794 NextLink *string `json:"nextLink,omitempty"` 5795} 5796 5797// ExpressRouteCircuitPeeringListResultIterator provides access to a complete listing of ExpressRouteCircuitPeering 5798// values. 5799type ExpressRouteCircuitPeeringListResultIterator struct { 5800 i int 5801 page ExpressRouteCircuitPeeringListResultPage 5802} 5803 5804// Next advances to the next value. If there was an error making 5805// the request the iterator does not advance and the error is returned. 5806func (iter *ExpressRouteCircuitPeeringListResultIterator) Next() error { 5807 iter.i++ 5808 if iter.i < len(iter.page.Values()) { 5809 return nil 5810 } 5811 err := iter.page.Next() 5812 if err != nil { 5813 iter.i-- 5814 return err 5815 } 5816 iter.i = 0 5817 return nil 5818} 5819 5820// NotDone returns true if the enumeration should be started or is not yet complete. 5821func (iter ExpressRouteCircuitPeeringListResultIterator) NotDone() bool { 5822 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 5823} 5824 5825// Response returns the raw server response from the last page request. 5826func (iter ExpressRouteCircuitPeeringListResultIterator) Response() ExpressRouteCircuitPeeringListResult { 5827 return iter.page.Response() 5828} 5829 5830// Value returns the current value or a zero-initialized value if the 5831// iterator has advanced beyond the end of the collection. 5832func (iter ExpressRouteCircuitPeeringListResultIterator) Value() ExpressRouteCircuitPeering { 5833 if !iter.page.NotDone() { 5834 return ExpressRouteCircuitPeering{} 5835 } 5836 return iter.page.Values()[iter.i] 5837} 5838 5839// IsEmpty returns true if the ListResult contains no values. 5840func (ercplr ExpressRouteCircuitPeeringListResult) IsEmpty() bool { 5841 return ercplr.Value == nil || len(*ercplr.Value) == 0 5842} 5843 5844// expressRouteCircuitPeeringListResultPreparer prepares a request to retrieve the next set of results. 5845// It returns nil if no more results exist. 5846func (ercplr ExpressRouteCircuitPeeringListResult) expressRouteCircuitPeeringListResultPreparer() (*http.Request, error) { 5847 if ercplr.NextLink == nil || len(to.String(ercplr.NextLink)) < 1 { 5848 return nil, nil 5849 } 5850 return autorest.Prepare(&http.Request{}, 5851 autorest.AsJSON(), 5852 autorest.AsGet(), 5853 autorest.WithBaseURL(to.String(ercplr.NextLink))) 5854} 5855 5856// ExpressRouteCircuitPeeringListResultPage contains a page of ExpressRouteCircuitPeering values. 5857type ExpressRouteCircuitPeeringListResultPage struct { 5858 fn func(ExpressRouteCircuitPeeringListResult) (ExpressRouteCircuitPeeringListResult, error) 5859 ercplr ExpressRouteCircuitPeeringListResult 5860} 5861 5862// Next advances to the next page of values. If there was an error making 5863// the request the page does not advance and the error is returned. 5864func (page *ExpressRouteCircuitPeeringListResultPage) Next() error { 5865 next, err := page.fn(page.ercplr) 5866 if err != nil { 5867 return err 5868 } 5869 page.ercplr = next 5870 return nil 5871} 5872 5873// NotDone returns true if the page enumeration should be started or is not yet complete. 5874func (page ExpressRouteCircuitPeeringListResultPage) NotDone() bool { 5875 return !page.ercplr.IsEmpty() 5876} 5877 5878// Response returns the raw server response from the last page request. 5879func (page ExpressRouteCircuitPeeringListResultPage) Response() ExpressRouteCircuitPeeringListResult { 5880 return page.ercplr 5881} 5882 5883// Values returns the slice of values for the current page or nil if there are no values. 5884func (page ExpressRouteCircuitPeeringListResultPage) Values() []ExpressRouteCircuitPeering { 5885 if page.ercplr.IsEmpty() { 5886 return nil 5887 } 5888 return *page.ercplr.Value 5889} 5890 5891// ExpressRouteCircuitPeeringPropertiesFormat ... 5892type ExpressRouteCircuitPeeringPropertiesFormat struct { 5893 // PeeringType - The PeeringType. Possible values are: 'AzurePublicPeering', 'AzurePrivatePeering', and 'MicrosoftPeering'. Possible values include: 'AzurePublicPeering', 'AzurePrivatePeering', 'MicrosoftPeering' 5894 PeeringType ExpressRouteCircuitPeeringType `json:"peeringType,omitempty"` 5895 // State - The state of peering. Possible values are: 'Disabled' and 'Enabled'. Possible values include: 'ExpressRouteCircuitPeeringStateDisabled', 'ExpressRouteCircuitPeeringStateEnabled' 5896 State ExpressRouteCircuitPeeringState `json:"state,omitempty"` 5897 // AzureASN - The Azure ASN. 5898 AzureASN *int32 `json:"azureASN,omitempty"` 5899 // PeerASN - The peer ASN. 5900 PeerASN *int64 `json:"peerASN,omitempty"` 5901 // PrimaryPeerAddressPrefix - The primary address prefix. 5902 PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"` 5903 // SecondaryPeerAddressPrefix - The secondary address prefix. 5904 SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"` 5905 // PrimaryAzurePort - The primary port. 5906 PrimaryAzurePort *string `json:"primaryAzurePort,omitempty"` 5907 // SecondaryAzurePort - The secondary port. 5908 SecondaryAzurePort *string `json:"secondaryAzurePort,omitempty"` 5909 // SharedKey - The shared key. 5910 SharedKey *string `json:"sharedKey,omitempty"` 5911 // VlanID - The VLAN ID. 5912 VlanID *int32 `json:"vlanId,omitempty"` 5913 // MicrosoftPeeringConfig - The Microsoft peering configuration. 5914 MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"` 5915 // Stats - Gets peering stats. 5916 Stats *ExpressRouteCircuitStats `json:"stats,omitempty"` 5917 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 5918 ProvisioningState *string `json:"provisioningState,omitempty"` 5919 // GatewayManagerEtag - The GatewayManager Etag. 5920 GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"` 5921 // LastModifiedBy - Gets whether the provider or the customer last modified the peering. 5922 LastModifiedBy *string `json:"lastModifiedBy,omitempty"` 5923 // RouteFilter - The reference of the RouteFilter resource. 5924 RouteFilter *RouteFilter `json:"routeFilter,omitempty"` 5925 // Ipv6PeeringConfig - The IPv6 peering configuration. 5926 Ipv6PeeringConfig *Ipv6ExpressRouteCircuitPeeringConfig `json:"ipv6PeeringConfig,omitempty"` 5927} 5928 5929// ExpressRouteCircuitPeeringsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 5930// long-running operation. 5931type ExpressRouteCircuitPeeringsCreateOrUpdateFuture struct { 5932 azure.Future 5933} 5934 5935// Result returns the result of the asynchronous operation. 5936// If the operation has not completed it will return an error. 5937func (future *ExpressRouteCircuitPeeringsCreateOrUpdateFuture) Result(client ExpressRouteCircuitPeeringsClient) (ercp ExpressRouteCircuitPeering, err error) { 5938 var done bool 5939 done, err = future.Done(client) 5940 if err != nil { 5941 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitPeeringsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 5942 return 5943 } 5944 if !done { 5945 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitPeeringsCreateOrUpdateFuture") 5946 return 5947 } 5948 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5949 if ercp.Response.Response, err = future.GetResult(sender); err == nil && ercp.Response.Response.StatusCode != http.StatusNoContent { 5950 ercp, err = client.CreateOrUpdateResponder(ercp.Response.Response) 5951 if err != nil { 5952 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitPeeringsCreateOrUpdateFuture", "Result", ercp.Response.Response, "Failure responding to request") 5953 } 5954 } 5955 return 5956} 5957 5958// ExpressRouteCircuitPeeringsDeleteFuture an abstraction for monitoring and retrieving the results of a 5959// long-running operation. 5960type ExpressRouteCircuitPeeringsDeleteFuture struct { 5961 azure.Future 5962} 5963 5964// Result returns the result of the asynchronous operation. 5965// If the operation has not completed it will return an error. 5966func (future *ExpressRouteCircuitPeeringsDeleteFuture) Result(client ExpressRouteCircuitPeeringsClient) (ar autorest.Response, err error) { 5967 var done bool 5968 done, err = future.Done(client) 5969 if err != nil { 5970 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitPeeringsDeleteFuture", "Result", future.Response(), "Polling failure") 5971 return 5972 } 5973 if !done { 5974 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitPeeringsDeleteFuture") 5975 return 5976 } 5977 ar.Response = future.Response() 5978 return 5979} 5980 5981// ExpressRouteCircuitPropertiesFormat properties of ExpressRouteCircuit. 5982type ExpressRouteCircuitPropertiesFormat struct { 5983 // AllowClassicOperations - Allow classic operations 5984 AllowClassicOperations *bool `json:"allowClassicOperations,omitempty"` 5985 // CircuitProvisioningState - The CircuitProvisioningState state of the resource. 5986 CircuitProvisioningState *string `json:"circuitProvisioningState,omitempty"` 5987 // ServiceProviderProvisioningState - The ServiceProviderProvisioningState state of the resource. Possible values are 'NotProvisioned', 'Provisioning', 'Provisioned', and 'Deprovisioning'. Possible values include: 'NotProvisioned', 'Provisioning', 'Provisioned', 'Deprovisioning' 5988 ServiceProviderProvisioningState ServiceProviderProvisioningState `json:"serviceProviderProvisioningState,omitempty"` 5989 // Authorizations - The list of authorizations. 5990 Authorizations *[]ExpressRouteCircuitAuthorization `json:"authorizations,omitempty"` 5991 // Peerings - The list of peerings. 5992 Peerings *[]ExpressRouteCircuitPeering `json:"peerings,omitempty"` 5993 // ServiceKey - The ServiceKey. 5994 ServiceKey *string `json:"serviceKey,omitempty"` 5995 // ServiceProviderNotes - The ServiceProviderNotes. 5996 ServiceProviderNotes *string `json:"serviceProviderNotes,omitempty"` 5997 // ServiceProviderProperties - The ServiceProviderProperties. 5998 ServiceProviderProperties *ExpressRouteCircuitServiceProviderProperties `json:"serviceProviderProperties,omitempty"` 5999 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 6000 ProvisioningState *string `json:"provisioningState,omitempty"` 6001 // GatewayManagerEtag - The GatewayManager Etag. 6002 GatewayManagerEtag *string `json:"gatewayManagerEtag,omitempty"` 6003} 6004 6005// ExpressRouteCircuitRoutesTable the routes table associated with the ExpressRouteCircuit 6006type ExpressRouteCircuitRoutesTable struct { 6007 // NetworkProperty - network 6008 NetworkProperty *string `json:"network,omitempty"` 6009 // NextHop - nextHop 6010 NextHop *string `json:"nextHop,omitempty"` 6011 // LocPrf - locPrf 6012 LocPrf *string `json:"locPrf,omitempty"` 6013 // Weight - weight. 6014 Weight *int32 `json:"weight,omitempty"` 6015 // Path - path 6016 Path *string `json:"path,omitempty"` 6017} 6018 6019// ExpressRouteCircuitRoutesTableSummary the routes table associated with the ExpressRouteCircuit. 6020type ExpressRouteCircuitRoutesTableSummary struct { 6021 // Neighbor - Neighbor 6022 Neighbor *string `json:"neighbor,omitempty"` 6023 // V - BGP version number spoken to the neighbor. 6024 V *int32 `json:"v,omitempty"` 6025 // As - Autonomous system number. 6026 As *int32 `json:"as,omitempty"` 6027 // 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. 6028 UpDown *string `json:"upDown,omitempty"` 6029 // StatePfxRcd - Current state of the BGP session, and the number of prefixes that have been received from a neighbor or peer group. 6030 StatePfxRcd *string `json:"statePfxRcd,omitempty"` 6031} 6032 6033// ExpressRouteCircuitsArpTableListResult response for ListArpTable associated with the Express Route Circuits API. 6034type ExpressRouteCircuitsArpTableListResult struct { 6035 autorest.Response `json:"-"` 6036 // Value - Gets list of the ARP table. 6037 Value *[]ExpressRouteCircuitArpTable `json:"value,omitempty"` 6038 // NextLink - The URL to get the next set of results. 6039 NextLink *string `json:"nextLink,omitempty"` 6040} 6041 6042// ExpressRouteCircuitsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 6043// long-running operation. 6044type ExpressRouteCircuitsCreateOrUpdateFuture struct { 6045 azure.Future 6046} 6047 6048// Result returns the result of the asynchronous operation. 6049// If the operation has not completed it will return an error. 6050func (future *ExpressRouteCircuitsCreateOrUpdateFuture) Result(client ExpressRouteCircuitsClient) (erc ExpressRouteCircuit, err error) { 6051 var done bool 6052 done, err = future.Done(client) 6053 if err != nil { 6054 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 6055 return 6056 } 6057 if !done { 6058 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsCreateOrUpdateFuture") 6059 return 6060 } 6061 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6062 if erc.Response.Response, err = future.GetResult(sender); err == nil && erc.Response.Response.StatusCode != http.StatusNoContent { 6063 erc, err = client.CreateOrUpdateResponder(erc.Response.Response) 6064 if err != nil { 6065 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsCreateOrUpdateFuture", "Result", erc.Response.Response, "Failure responding to request") 6066 } 6067 } 6068 return 6069} 6070 6071// ExpressRouteCircuitsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 6072// operation. 6073type ExpressRouteCircuitsDeleteFuture struct { 6074 azure.Future 6075} 6076 6077// Result returns the result of the asynchronous operation. 6078// If the operation has not completed it will return an error. 6079func (future *ExpressRouteCircuitsDeleteFuture) Result(client ExpressRouteCircuitsClient) (ar autorest.Response, err error) { 6080 var done bool 6081 done, err = future.Done(client) 6082 if err != nil { 6083 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsDeleteFuture", "Result", future.Response(), "Polling failure") 6084 return 6085 } 6086 if !done { 6087 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsDeleteFuture") 6088 return 6089 } 6090 ar.Response = future.Response() 6091 return 6092} 6093 6094// ExpressRouteCircuitServiceProviderProperties contains ServiceProviderProperties in an ExpressRouteCircuit. 6095type ExpressRouteCircuitServiceProviderProperties struct { 6096 // ServiceProviderName - The serviceProviderName. 6097 ServiceProviderName *string `json:"serviceProviderName,omitempty"` 6098 // PeeringLocation - The peering location. 6099 PeeringLocation *string `json:"peeringLocation,omitempty"` 6100 // BandwidthInMbps - The BandwidthInMbps. 6101 BandwidthInMbps *int32 `json:"bandwidthInMbps,omitempty"` 6102} 6103 6104// ExpressRouteCircuitSku contains SKU in an ExpressRouteCircuit. 6105type ExpressRouteCircuitSku struct { 6106 // Name - The name of the SKU. 6107 Name *string `json:"name,omitempty"` 6108 // Tier - The tier of the SKU. Possible values are 'Standard' and 'Premium'. Possible values include: 'ExpressRouteCircuitSkuTierStandard', 'ExpressRouteCircuitSkuTierPremium' 6109 Tier ExpressRouteCircuitSkuTier `json:"tier,omitempty"` 6110 // Family - The family of the SKU. Possible values are: 'UnlimitedData' and 'MeteredData'. Possible values include: 'UnlimitedData', 'MeteredData' 6111 Family ExpressRouteCircuitSkuFamily `json:"family,omitempty"` 6112} 6113 6114// ExpressRouteCircuitsListArpTableFuture an abstraction for monitoring and retrieving the results of a 6115// long-running operation. 6116type ExpressRouteCircuitsListArpTableFuture struct { 6117 azure.Future 6118} 6119 6120// Result returns the result of the asynchronous operation. 6121// If the operation has not completed it will return an error. 6122func (future *ExpressRouteCircuitsListArpTableFuture) Result(client ExpressRouteCircuitsClient) (ercatlr ExpressRouteCircuitsArpTableListResult, err error) { 6123 var done bool 6124 done, err = future.Done(client) 6125 if err != nil { 6126 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListArpTableFuture", "Result", future.Response(), "Polling failure") 6127 return 6128 } 6129 if !done { 6130 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsListArpTableFuture") 6131 return 6132 } 6133 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6134 if ercatlr.Response.Response, err = future.GetResult(sender); err == nil && ercatlr.Response.Response.StatusCode != http.StatusNoContent { 6135 ercatlr, err = client.ListArpTableResponder(ercatlr.Response.Response) 6136 if err != nil { 6137 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListArpTableFuture", "Result", ercatlr.Response.Response, "Failure responding to request") 6138 } 6139 } 6140 return 6141} 6142 6143// ExpressRouteCircuitsListRoutesTableFuture an abstraction for monitoring and retrieving the results of a 6144// long-running operation. 6145type ExpressRouteCircuitsListRoutesTableFuture struct { 6146 azure.Future 6147} 6148 6149// Result returns the result of the asynchronous operation. 6150// If the operation has not completed it will return an error. 6151func (future *ExpressRouteCircuitsListRoutesTableFuture) Result(client ExpressRouteCircuitsClient) (ercrtlr ExpressRouteCircuitsRoutesTableListResult, err error) { 6152 var done bool 6153 done, err = future.Done(client) 6154 if err != nil { 6155 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableFuture", "Result", future.Response(), "Polling failure") 6156 return 6157 } 6158 if !done { 6159 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsListRoutesTableFuture") 6160 return 6161 } 6162 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6163 if ercrtlr.Response.Response, err = future.GetResult(sender); err == nil && ercrtlr.Response.Response.StatusCode != http.StatusNoContent { 6164 ercrtlr, err = client.ListRoutesTableResponder(ercrtlr.Response.Response) 6165 if err != nil { 6166 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableFuture", "Result", ercrtlr.Response.Response, "Failure responding to request") 6167 } 6168 } 6169 return 6170} 6171 6172// ExpressRouteCircuitsListRoutesTableSummaryFuture an abstraction for monitoring and retrieving the results of a 6173// long-running operation. 6174type ExpressRouteCircuitsListRoutesTableSummaryFuture struct { 6175 azure.Future 6176} 6177 6178// Result returns the result of the asynchronous operation. 6179// If the operation has not completed it will return an error. 6180func (future *ExpressRouteCircuitsListRoutesTableSummaryFuture) Result(client ExpressRouteCircuitsClient) (ercrtslr ExpressRouteCircuitsRoutesTableSummaryListResult, err error) { 6181 var done bool 6182 done, err = future.Done(client) 6183 if err != nil { 6184 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableSummaryFuture", "Result", future.Response(), "Polling failure") 6185 return 6186 } 6187 if !done { 6188 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsListRoutesTableSummaryFuture") 6189 return 6190 } 6191 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6192 if ercrtslr.Response.Response, err = future.GetResult(sender); err == nil && ercrtslr.Response.Response.StatusCode != http.StatusNoContent { 6193 ercrtslr, err = client.ListRoutesTableSummaryResponder(ercrtslr.Response.Response) 6194 if err != nil { 6195 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsListRoutesTableSummaryFuture", "Result", ercrtslr.Response.Response, "Failure responding to request") 6196 } 6197 } 6198 return 6199} 6200 6201// ExpressRouteCircuitsRoutesTableListResult response for ListRoutesTable associated with the Express Route 6202// Circuits API. 6203type ExpressRouteCircuitsRoutesTableListResult struct { 6204 autorest.Response `json:"-"` 6205 // Value - The list of routes table. 6206 Value *[]ExpressRouteCircuitRoutesTable `json:"value,omitempty"` 6207 // NextLink - The URL to get the next set of results. 6208 NextLink *string `json:"nextLink,omitempty"` 6209} 6210 6211// ExpressRouteCircuitsRoutesTableSummaryListResult response for ListRoutesTable associated with the Express Route 6212// Circuits API. 6213type ExpressRouteCircuitsRoutesTableSummaryListResult struct { 6214 autorest.Response `json:"-"` 6215 // Value - A list of the routes table. 6216 Value *[]ExpressRouteCircuitRoutesTableSummary `json:"value,omitempty"` 6217 // NextLink - The URL to get the next set of results. 6218 NextLink *string `json:"nextLink,omitempty"` 6219} 6220 6221// ExpressRouteCircuitStats contains stats associated with the peering. 6222type ExpressRouteCircuitStats struct { 6223 autorest.Response `json:"-"` 6224 // PrimarybytesIn - Gets BytesIn of the peering. 6225 PrimarybytesIn *int64 `json:"primarybytesIn,omitempty"` 6226 // PrimarybytesOut - Gets BytesOut of the peering. 6227 PrimarybytesOut *int64 `json:"primarybytesOut,omitempty"` 6228 // SecondarybytesIn - Gets BytesIn of the peering. 6229 SecondarybytesIn *int64 `json:"secondarybytesIn,omitempty"` 6230 // SecondarybytesOut - Gets BytesOut of the peering. 6231 SecondarybytesOut *int64 `json:"secondarybytesOut,omitempty"` 6232} 6233 6234// ExpressRouteCircuitsUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 6235// operation. 6236type ExpressRouteCircuitsUpdateTagsFuture struct { 6237 azure.Future 6238} 6239 6240// Result returns the result of the asynchronous operation. 6241// If the operation has not completed it will return an error. 6242func (future *ExpressRouteCircuitsUpdateTagsFuture) Result(client ExpressRouteCircuitsClient) (erc ExpressRouteCircuit, err error) { 6243 var done bool 6244 done, err = future.Done(client) 6245 if err != nil { 6246 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsUpdateTagsFuture", "Result", future.Response(), "Polling failure") 6247 return 6248 } 6249 if !done { 6250 err = azure.NewAsyncOpIncompleteError("network.ExpressRouteCircuitsUpdateTagsFuture") 6251 return 6252 } 6253 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6254 if erc.Response.Response, err = future.GetResult(sender); err == nil && erc.Response.Response.StatusCode != http.StatusNoContent { 6255 erc, err = client.UpdateTagsResponder(erc.Response.Response) 6256 if err != nil { 6257 err = autorest.NewErrorWithError(err, "network.ExpressRouteCircuitsUpdateTagsFuture", "Result", erc.Response.Response, "Failure responding to request") 6258 } 6259 } 6260 return 6261} 6262 6263// ExpressRouteServiceProvider a ExpressRouteResourceProvider object. 6264type ExpressRouteServiceProvider struct { 6265 *ExpressRouteServiceProviderPropertiesFormat `json:"properties,omitempty"` 6266 // ID - Resource ID. 6267 ID *string `json:"id,omitempty"` 6268 // Name - Resource name. 6269 Name *string `json:"name,omitempty"` 6270 // Type - Resource type. 6271 Type *string `json:"type,omitempty"` 6272 // Location - Resource location. 6273 Location *string `json:"location,omitempty"` 6274 // Tags - Resource tags. 6275 Tags map[string]*string `json:"tags"` 6276} 6277 6278// MarshalJSON is the custom marshaler for ExpressRouteServiceProvider. 6279func (ersp ExpressRouteServiceProvider) MarshalJSON() ([]byte, error) { 6280 objectMap := make(map[string]interface{}) 6281 if ersp.ExpressRouteServiceProviderPropertiesFormat != nil { 6282 objectMap["properties"] = ersp.ExpressRouteServiceProviderPropertiesFormat 6283 } 6284 if ersp.ID != nil { 6285 objectMap["id"] = ersp.ID 6286 } 6287 if ersp.Name != nil { 6288 objectMap["name"] = ersp.Name 6289 } 6290 if ersp.Type != nil { 6291 objectMap["type"] = ersp.Type 6292 } 6293 if ersp.Location != nil { 6294 objectMap["location"] = ersp.Location 6295 } 6296 if ersp.Tags != nil { 6297 objectMap["tags"] = ersp.Tags 6298 } 6299 return json.Marshal(objectMap) 6300} 6301 6302// UnmarshalJSON is the custom unmarshaler for ExpressRouteServiceProvider struct. 6303func (ersp *ExpressRouteServiceProvider) UnmarshalJSON(body []byte) error { 6304 var m map[string]*json.RawMessage 6305 err := json.Unmarshal(body, &m) 6306 if err != nil { 6307 return err 6308 } 6309 for k, v := range m { 6310 switch k { 6311 case "properties": 6312 if v != nil { 6313 var expressRouteServiceProviderPropertiesFormat ExpressRouteServiceProviderPropertiesFormat 6314 err = json.Unmarshal(*v, &expressRouteServiceProviderPropertiesFormat) 6315 if err != nil { 6316 return err 6317 } 6318 ersp.ExpressRouteServiceProviderPropertiesFormat = &expressRouteServiceProviderPropertiesFormat 6319 } 6320 case "id": 6321 if v != nil { 6322 var ID string 6323 err = json.Unmarshal(*v, &ID) 6324 if err != nil { 6325 return err 6326 } 6327 ersp.ID = &ID 6328 } 6329 case "name": 6330 if v != nil { 6331 var name string 6332 err = json.Unmarshal(*v, &name) 6333 if err != nil { 6334 return err 6335 } 6336 ersp.Name = &name 6337 } 6338 case "type": 6339 if v != nil { 6340 var typeVar string 6341 err = json.Unmarshal(*v, &typeVar) 6342 if err != nil { 6343 return err 6344 } 6345 ersp.Type = &typeVar 6346 } 6347 case "location": 6348 if v != nil { 6349 var location string 6350 err = json.Unmarshal(*v, &location) 6351 if err != nil { 6352 return err 6353 } 6354 ersp.Location = &location 6355 } 6356 case "tags": 6357 if v != nil { 6358 var tags map[string]*string 6359 err = json.Unmarshal(*v, &tags) 6360 if err != nil { 6361 return err 6362 } 6363 ersp.Tags = tags 6364 } 6365 } 6366 } 6367 6368 return nil 6369} 6370 6371// ExpressRouteServiceProviderBandwidthsOffered contains bandwidths offered in ExpressRouteServiceProvider 6372// resources. 6373type ExpressRouteServiceProviderBandwidthsOffered struct { 6374 // OfferName - The OfferName. 6375 OfferName *string `json:"offerName,omitempty"` 6376 // ValueInMbps - The ValueInMbps. 6377 ValueInMbps *int32 `json:"valueInMbps,omitempty"` 6378} 6379 6380// ExpressRouteServiceProviderListResult response for the ListExpressRouteServiceProvider API service call. 6381type ExpressRouteServiceProviderListResult struct { 6382 autorest.Response `json:"-"` 6383 // Value - A list of ExpressRouteResourceProvider resources. 6384 Value *[]ExpressRouteServiceProvider `json:"value,omitempty"` 6385 // NextLink - The URL to get the next set of results. 6386 NextLink *string `json:"nextLink,omitempty"` 6387} 6388 6389// ExpressRouteServiceProviderListResultIterator provides access to a complete listing of 6390// ExpressRouteServiceProvider values. 6391type ExpressRouteServiceProviderListResultIterator struct { 6392 i int 6393 page ExpressRouteServiceProviderListResultPage 6394} 6395 6396// Next advances to the next value. If there was an error making 6397// the request the iterator does not advance and the error is returned. 6398func (iter *ExpressRouteServiceProviderListResultIterator) Next() error { 6399 iter.i++ 6400 if iter.i < len(iter.page.Values()) { 6401 return nil 6402 } 6403 err := iter.page.Next() 6404 if err != nil { 6405 iter.i-- 6406 return err 6407 } 6408 iter.i = 0 6409 return nil 6410} 6411 6412// NotDone returns true if the enumeration should be started or is not yet complete. 6413func (iter ExpressRouteServiceProviderListResultIterator) NotDone() bool { 6414 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 6415} 6416 6417// Response returns the raw server response from the last page request. 6418func (iter ExpressRouteServiceProviderListResultIterator) Response() ExpressRouteServiceProviderListResult { 6419 return iter.page.Response() 6420} 6421 6422// Value returns the current value or a zero-initialized value if the 6423// iterator has advanced beyond the end of the collection. 6424func (iter ExpressRouteServiceProviderListResultIterator) Value() ExpressRouteServiceProvider { 6425 if !iter.page.NotDone() { 6426 return ExpressRouteServiceProvider{} 6427 } 6428 return iter.page.Values()[iter.i] 6429} 6430 6431// IsEmpty returns true if the ListResult contains no values. 6432func (ersplr ExpressRouteServiceProviderListResult) IsEmpty() bool { 6433 return ersplr.Value == nil || len(*ersplr.Value) == 0 6434} 6435 6436// expressRouteServiceProviderListResultPreparer prepares a request to retrieve the next set of results. 6437// It returns nil if no more results exist. 6438func (ersplr ExpressRouteServiceProviderListResult) expressRouteServiceProviderListResultPreparer() (*http.Request, error) { 6439 if ersplr.NextLink == nil || len(to.String(ersplr.NextLink)) < 1 { 6440 return nil, nil 6441 } 6442 return autorest.Prepare(&http.Request{}, 6443 autorest.AsJSON(), 6444 autorest.AsGet(), 6445 autorest.WithBaseURL(to.String(ersplr.NextLink))) 6446} 6447 6448// ExpressRouteServiceProviderListResultPage contains a page of ExpressRouteServiceProvider values. 6449type ExpressRouteServiceProviderListResultPage struct { 6450 fn func(ExpressRouteServiceProviderListResult) (ExpressRouteServiceProviderListResult, error) 6451 ersplr ExpressRouteServiceProviderListResult 6452} 6453 6454// Next advances to the next page of values. If there was an error making 6455// the request the page does not advance and the error is returned. 6456func (page *ExpressRouteServiceProviderListResultPage) Next() error { 6457 next, err := page.fn(page.ersplr) 6458 if err != nil { 6459 return err 6460 } 6461 page.ersplr = next 6462 return nil 6463} 6464 6465// NotDone returns true if the page enumeration should be started or is not yet complete. 6466func (page ExpressRouteServiceProviderListResultPage) NotDone() bool { 6467 return !page.ersplr.IsEmpty() 6468} 6469 6470// Response returns the raw server response from the last page request. 6471func (page ExpressRouteServiceProviderListResultPage) Response() ExpressRouteServiceProviderListResult { 6472 return page.ersplr 6473} 6474 6475// Values returns the slice of values for the current page or nil if there are no values. 6476func (page ExpressRouteServiceProviderListResultPage) Values() []ExpressRouteServiceProvider { 6477 if page.ersplr.IsEmpty() { 6478 return nil 6479 } 6480 return *page.ersplr.Value 6481} 6482 6483// ExpressRouteServiceProviderPropertiesFormat properties of ExpressRouteServiceProvider. 6484type ExpressRouteServiceProviderPropertiesFormat struct { 6485 // PeeringLocations - Get a list of peering locations. 6486 PeeringLocations *[]string `json:"peeringLocations,omitempty"` 6487 // BandwidthsOffered - Gets bandwidths offered. 6488 BandwidthsOffered *[]ExpressRouteServiceProviderBandwidthsOffered `json:"bandwidthsOffered,omitempty"` 6489 // ProvisioningState - Gets the provisioning state of the resource. 6490 ProvisioningState *string `json:"provisioningState,omitempty"` 6491} 6492 6493// FlowLogInformation information on the configuration of flow log and traffic analytics (optional). 6494type FlowLogInformation struct { 6495 autorest.Response `json:"-"` 6496 // TargetResourceID - The ID of the resource to configure for flow logging. 6497 TargetResourceID *string `json:"targetResourceId,omitempty"` 6498 *FlowLogProperties `json:"properties,omitempty"` 6499 *TrafficAnalyticsProperties `json:"flowAnalyticsConfiguration,omitempty"` 6500} 6501 6502// MarshalJSON is the custom marshaler for FlowLogInformation. 6503func (fli FlowLogInformation) MarshalJSON() ([]byte, error) { 6504 objectMap := make(map[string]interface{}) 6505 if fli.TargetResourceID != nil { 6506 objectMap["targetResourceId"] = fli.TargetResourceID 6507 } 6508 if fli.FlowLogProperties != nil { 6509 objectMap["properties"] = fli.FlowLogProperties 6510 } 6511 if fli.TrafficAnalyticsProperties != nil { 6512 objectMap["flowAnalyticsConfiguration"] = fli.TrafficAnalyticsProperties 6513 } 6514 return json.Marshal(objectMap) 6515} 6516 6517// UnmarshalJSON is the custom unmarshaler for FlowLogInformation struct. 6518func (fli *FlowLogInformation) UnmarshalJSON(body []byte) error { 6519 var m map[string]*json.RawMessage 6520 err := json.Unmarshal(body, &m) 6521 if err != nil { 6522 return err 6523 } 6524 for k, v := range m { 6525 switch k { 6526 case "targetResourceId": 6527 if v != nil { 6528 var targetResourceID string 6529 err = json.Unmarshal(*v, &targetResourceID) 6530 if err != nil { 6531 return err 6532 } 6533 fli.TargetResourceID = &targetResourceID 6534 } 6535 case "properties": 6536 if v != nil { 6537 var flowLogProperties FlowLogProperties 6538 err = json.Unmarshal(*v, &flowLogProperties) 6539 if err != nil { 6540 return err 6541 } 6542 fli.FlowLogProperties = &flowLogProperties 6543 } 6544 case "flowAnalyticsConfiguration": 6545 if v != nil { 6546 var trafficAnalyticsProperties TrafficAnalyticsProperties 6547 err = json.Unmarshal(*v, &trafficAnalyticsProperties) 6548 if err != nil { 6549 return err 6550 } 6551 fli.TrafficAnalyticsProperties = &trafficAnalyticsProperties 6552 } 6553 } 6554 } 6555 6556 return nil 6557} 6558 6559// FlowLogProperties parameters that define the configuration of flow log. 6560type FlowLogProperties struct { 6561 // StorageID - ID of the storage account which is used to store the flow log. 6562 StorageID *string `json:"storageId,omitempty"` 6563 // Enabled - Flag to enable/disable flow logging. 6564 Enabled *bool `json:"enabled,omitempty"` 6565 RetentionPolicy *RetentionPolicyParameters `json:"retentionPolicy,omitempty"` 6566} 6567 6568// FlowLogStatusParameters parameters that define a resource to query flow log and traffic analytics (optional) 6569// status. 6570type FlowLogStatusParameters struct { 6571 // TargetResourceID - The target resource where getting the flow logging and traffic analytics (optional) status. 6572 TargetResourceID *string `json:"targetResourceId,omitempty"` 6573} 6574 6575// FrontendIPConfiguration frontend IP address of the load balancer. 6576type FrontendIPConfiguration struct { 6577 autorest.Response `json:"-"` 6578 // FrontendIPConfigurationPropertiesFormat - Properties of the load balancer probe. 6579 *FrontendIPConfigurationPropertiesFormat `json:"properties,omitempty"` 6580 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 6581 Name *string `json:"name,omitempty"` 6582 // Etag - A unique read-only string that changes whenever the resource is updated. 6583 Etag *string `json:"etag,omitempty"` 6584 // Zones - A list of availability zones denoting the IP allocated for the resource needs to come from. 6585 Zones *[]string `json:"zones,omitempty"` 6586 // ID - Resource ID. 6587 ID *string `json:"id,omitempty"` 6588} 6589 6590// MarshalJSON is the custom marshaler for FrontendIPConfiguration. 6591func (fic FrontendIPConfiguration) MarshalJSON() ([]byte, error) { 6592 objectMap := make(map[string]interface{}) 6593 if fic.FrontendIPConfigurationPropertiesFormat != nil { 6594 objectMap["properties"] = fic.FrontendIPConfigurationPropertiesFormat 6595 } 6596 if fic.Name != nil { 6597 objectMap["name"] = fic.Name 6598 } 6599 if fic.Etag != nil { 6600 objectMap["etag"] = fic.Etag 6601 } 6602 if fic.Zones != nil { 6603 objectMap["zones"] = fic.Zones 6604 } 6605 if fic.ID != nil { 6606 objectMap["id"] = fic.ID 6607 } 6608 return json.Marshal(objectMap) 6609} 6610 6611// UnmarshalJSON is the custom unmarshaler for FrontendIPConfiguration struct. 6612func (fic *FrontendIPConfiguration) UnmarshalJSON(body []byte) error { 6613 var m map[string]*json.RawMessage 6614 err := json.Unmarshal(body, &m) 6615 if err != nil { 6616 return err 6617 } 6618 for k, v := range m { 6619 switch k { 6620 case "properties": 6621 if v != nil { 6622 var frontendIPConfigurationPropertiesFormat FrontendIPConfigurationPropertiesFormat 6623 err = json.Unmarshal(*v, &frontendIPConfigurationPropertiesFormat) 6624 if err != nil { 6625 return err 6626 } 6627 fic.FrontendIPConfigurationPropertiesFormat = &frontendIPConfigurationPropertiesFormat 6628 } 6629 case "name": 6630 if v != nil { 6631 var name string 6632 err = json.Unmarshal(*v, &name) 6633 if err != nil { 6634 return err 6635 } 6636 fic.Name = &name 6637 } 6638 case "etag": 6639 if v != nil { 6640 var etag string 6641 err = json.Unmarshal(*v, &etag) 6642 if err != nil { 6643 return err 6644 } 6645 fic.Etag = &etag 6646 } 6647 case "zones": 6648 if v != nil { 6649 var zones []string 6650 err = json.Unmarshal(*v, &zones) 6651 if err != nil { 6652 return err 6653 } 6654 fic.Zones = &zones 6655 } 6656 case "id": 6657 if v != nil { 6658 var ID string 6659 err = json.Unmarshal(*v, &ID) 6660 if err != nil { 6661 return err 6662 } 6663 fic.ID = &ID 6664 } 6665 } 6666 } 6667 6668 return nil 6669} 6670 6671// FrontendIPConfigurationPropertiesFormat properties of Frontend IP Configuration of the load balancer. 6672type FrontendIPConfigurationPropertiesFormat struct { 6673 // InboundNatRules - Read only. Inbound rules URIs that use this frontend IP. 6674 InboundNatRules *[]SubResource `json:"inboundNatRules,omitempty"` 6675 // InboundNatPools - Read only. Inbound pools URIs that use this frontend IP. 6676 InboundNatPools *[]SubResource `json:"inboundNatPools,omitempty"` 6677 // OutboundNatRules - Read only. Outbound rules URIs that use this frontend IP. 6678 OutboundNatRules *[]SubResource `json:"outboundNatRules,omitempty"` 6679 // LoadBalancingRules - Gets load balancing rules URIs that use this frontend IP. 6680 LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty"` 6681 // PrivateIPAddress - The private IP address of the IP configuration. 6682 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 6683 // PrivateIPAllocationMethod - The Private IP allocation method. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 6684 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 6685 // Subnet - The reference of the subnet resource. 6686 Subnet *Subnet `json:"subnet,omitempty"` 6687 // PublicIPAddress - The reference of the Public IP resource. 6688 PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"` 6689 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 6690 ProvisioningState *string `json:"provisioningState,omitempty"` 6691} 6692 6693// GatewayRoute gateway routing details 6694type GatewayRoute struct { 6695 // LocalAddress - The gateway's local address 6696 LocalAddress *string `json:"localAddress,omitempty"` 6697 // NetworkProperty - The route's network prefix 6698 NetworkProperty *string `json:"network,omitempty"` 6699 // NextHop - The route's next hop 6700 NextHop *string `json:"nextHop,omitempty"` 6701 // SourcePeer - The peer this route was learned from 6702 SourcePeer *string `json:"sourcePeer,omitempty"` 6703 // Origin - The source this route was learned from 6704 Origin *string `json:"origin,omitempty"` 6705 // AsPath - The route's AS path sequence 6706 AsPath *string `json:"asPath,omitempty"` 6707 // Weight - The route's weight 6708 Weight *int32 `json:"weight,omitempty"` 6709} 6710 6711// GatewayRouteListResult list of virtual network gateway routes 6712type GatewayRouteListResult struct { 6713 autorest.Response `json:"-"` 6714 // Value - List of gateway routes 6715 Value *[]GatewayRoute `json:"value,omitempty"` 6716} 6717 6718// InboundNatPool inbound NAT pool of the load balancer. 6719type InboundNatPool struct { 6720 // InboundNatPoolPropertiesFormat - Properties of load balancer inbound nat pool. 6721 *InboundNatPoolPropertiesFormat `json:"properties,omitempty"` 6722 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 6723 Name *string `json:"name,omitempty"` 6724 // Etag - A unique read-only string that changes whenever the resource is updated. 6725 Etag *string `json:"etag,omitempty"` 6726 // ID - Resource ID. 6727 ID *string `json:"id,omitempty"` 6728} 6729 6730// MarshalJSON is the custom marshaler for InboundNatPool. 6731func (inp InboundNatPool) MarshalJSON() ([]byte, error) { 6732 objectMap := make(map[string]interface{}) 6733 if inp.InboundNatPoolPropertiesFormat != nil { 6734 objectMap["properties"] = inp.InboundNatPoolPropertiesFormat 6735 } 6736 if inp.Name != nil { 6737 objectMap["name"] = inp.Name 6738 } 6739 if inp.Etag != nil { 6740 objectMap["etag"] = inp.Etag 6741 } 6742 if inp.ID != nil { 6743 objectMap["id"] = inp.ID 6744 } 6745 return json.Marshal(objectMap) 6746} 6747 6748// UnmarshalJSON is the custom unmarshaler for InboundNatPool struct. 6749func (inp *InboundNatPool) UnmarshalJSON(body []byte) error { 6750 var m map[string]*json.RawMessage 6751 err := json.Unmarshal(body, &m) 6752 if err != nil { 6753 return err 6754 } 6755 for k, v := range m { 6756 switch k { 6757 case "properties": 6758 if v != nil { 6759 var inboundNatPoolPropertiesFormat InboundNatPoolPropertiesFormat 6760 err = json.Unmarshal(*v, &inboundNatPoolPropertiesFormat) 6761 if err != nil { 6762 return err 6763 } 6764 inp.InboundNatPoolPropertiesFormat = &inboundNatPoolPropertiesFormat 6765 } 6766 case "name": 6767 if v != nil { 6768 var name string 6769 err = json.Unmarshal(*v, &name) 6770 if err != nil { 6771 return err 6772 } 6773 inp.Name = &name 6774 } 6775 case "etag": 6776 if v != nil { 6777 var etag string 6778 err = json.Unmarshal(*v, &etag) 6779 if err != nil { 6780 return err 6781 } 6782 inp.Etag = &etag 6783 } 6784 case "id": 6785 if v != nil { 6786 var ID string 6787 err = json.Unmarshal(*v, &ID) 6788 if err != nil { 6789 return err 6790 } 6791 inp.ID = &ID 6792 } 6793 } 6794 } 6795 6796 return nil 6797} 6798 6799// InboundNatPoolPropertiesFormat properties of Inbound NAT pool. 6800type InboundNatPoolPropertiesFormat struct { 6801 // FrontendIPConfiguration - A reference to frontend IP addresses. 6802 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 6803 // Protocol - Possible values include: 'TransportProtocolUDP', 'TransportProtocolTCP', 'TransportProtocolAll' 6804 Protocol TransportProtocol `json:"protocol,omitempty"` 6805 // 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. 6806 FrontendPortRangeStart *int32 `json:"frontendPortRangeStart,omitempty"` 6807 // 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. 6808 FrontendPortRangeEnd *int32 `json:"frontendPortRangeEnd,omitempty"` 6809 // BackendPort - The port used for internal connections on the endpoint. Acceptable values are between 1 and 65535. 6810 BackendPort *int32 `json:"backendPort,omitempty"` 6811 // 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. 6812 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 6813 // 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. 6814 EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"` 6815 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 6816 ProvisioningState *string `json:"provisioningState,omitempty"` 6817} 6818 6819// InboundNatRule inbound NAT rule of the load balancer. 6820type InboundNatRule struct { 6821 autorest.Response `json:"-"` 6822 // InboundNatRulePropertiesFormat - Properties of load balancer inbound nat rule. 6823 *InboundNatRulePropertiesFormat `json:"properties,omitempty"` 6824 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 6825 Name *string `json:"name,omitempty"` 6826 // Etag - A unique read-only string that changes whenever the resource is updated. 6827 Etag *string `json:"etag,omitempty"` 6828 // ID - Resource ID. 6829 ID *string `json:"id,omitempty"` 6830} 6831 6832// MarshalJSON is the custom marshaler for InboundNatRule. 6833func (inr InboundNatRule) MarshalJSON() ([]byte, error) { 6834 objectMap := make(map[string]interface{}) 6835 if inr.InboundNatRulePropertiesFormat != nil { 6836 objectMap["properties"] = inr.InboundNatRulePropertiesFormat 6837 } 6838 if inr.Name != nil { 6839 objectMap["name"] = inr.Name 6840 } 6841 if inr.Etag != nil { 6842 objectMap["etag"] = inr.Etag 6843 } 6844 if inr.ID != nil { 6845 objectMap["id"] = inr.ID 6846 } 6847 return json.Marshal(objectMap) 6848} 6849 6850// UnmarshalJSON is the custom unmarshaler for InboundNatRule struct. 6851func (inr *InboundNatRule) UnmarshalJSON(body []byte) error { 6852 var m map[string]*json.RawMessage 6853 err := json.Unmarshal(body, &m) 6854 if err != nil { 6855 return err 6856 } 6857 for k, v := range m { 6858 switch k { 6859 case "properties": 6860 if v != nil { 6861 var inboundNatRulePropertiesFormat InboundNatRulePropertiesFormat 6862 err = json.Unmarshal(*v, &inboundNatRulePropertiesFormat) 6863 if err != nil { 6864 return err 6865 } 6866 inr.InboundNatRulePropertiesFormat = &inboundNatRulePropertiesFormat 6867 } 6868 case "name": 6869 if v != nil { 6870 var name string 6871 err = json.Unmarshal(*v, &name) 6872 if err != nil { 6873 return err 6874 } 6875 inr.Name = &name 6876 } 6877 case "etag": 6878 if v != nil { 6879 var etag string 6880 err = json.Unmarshal(*v, &etag) 6881 if err != nil { 6882 return err 6883 } 6884 inr.Etag = &etag 6885 } 6886 case "id": 6887 if v != nil { 6888 var ID string 6889 err = json.Unmarshal(*v, &ID) 6890 if err != nil { 6891 return err 6892 } 6893 inr.ID = &ID 6894 } 6895 } 6896 } 6897 6898 return nil 6899} 6900 6901// InboundNatRuleListResult response for ListInboundNatRule API service call. 6902type InboundNatRuleListResult struct { 6903 autorest.Response `json:"-"` 6904 // Value - A list of inbound nat rules in a load balancer. 6905 Value *[]InboundNatRule `json:"value,omitempty"` 6906 // NextLink - The URL to get the next set of results. 6907 NextLink *string `json:"nextLink,omitempty"` 6908} 6909 6910// InboundNatRuleListResultIterator provides access to a complete listing of InboundNatRule values. 6911type InboundNatRuleListResultIterator struct { 6912 i int 6913 page InboundNatRuleListResultPage 6914} 6915 6916// Next advances to the next value. If there was an error making 6917// the request the iterator does not advance and the error is returned. 6918func (iter *InboundNatRuleListResultIterator) Next() error { 6919 iter.i++ 6920 if iter.i < len(iter.page.Values()) { 6921 return nil 6922 } 6923 err := iter.page.Next() 6924 if err != nil { 6925 iter.i-- 6926 return err 6927 } 6928 iter.i = 0 6929 return nil 6930} 6931 6932// NotDone returns true if the enumeration should be started or is not yet complete. 6933func (iter InboundNatRuleListResultIterator) NotDone() bool { 6934 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 6935} 6936 6937// Response returns the raw server response from the last page request. 6938func (iter InboundNatRuleListResultIterator) Response() InboundNatRuleListResult { 6939 return iter.page.Response() 6940} 6941 6942// Value returns the current value or a zero-initialized value if the 6943// iterator has advanced beyond the end of the collection. 6944func (iter InboundNatRuleListResultIterator) Value() InboundNatRule { 6945 if !iter.page.NotDone() { 6946 return InboundNatRule{} 6947 } 6948 return iter.page.Values()[iter.i] 6949} 6950 6951// IsEmpty returns true if the ListResult contains no values. 6952func (inrlr InboundNatRuleListResult) IsEmpty() bool { 6953 return inrlr.Value == nil || len(*inrlr.Value) == 0 6954} 6955 6956// inboundNatRuleListResultPreparer prepares a request to retrieve the next set of results. 6957// It returns nil if no more results exist. 6958func (inrlr InboundNatRuleListResult) inboundNatRuleListResultPreparer() (*http.Request, error) { 6959 if inrlr.NextLink == nil || len(to.String(inrlr.NextLink)) < 1 { 6960 return nil, nil 6961 } 6962 return autorest.Prepare(&http.Request{}, 6963 autorest.AsJSON(), 6964 autorest.AsGet(), 6965 autorest.WithBaseURL(to.String(inrlr.NextLink))) 6966} 6967 6968// InboundNatRuleListResultPage contains a page of InboundNatRule values. 6969type InboundNatRuleListResultPage struct { 6970 fn func(InboundNatRuleListResult) (InboundNatRuleListResult, error) 6971 inrlr InboundNatRuleListResult 6972} 6973 6974// Next advances to the next page of values. If there was an error making 6975// the request the page does not advance and the error is returned. 6976func (page *InboundNatRuleListResultPage) Next() error { 6977 next, err := page.fn(page.inrlr) 6978 if err != nil { 6979 return err 6980 } 6981 page.inrlr = next 6982 return nil 6983} 6984 6985// NotDone returns true if the page enumeration should be started or is not yet complete. 6986func (page InboundNatRuleListResultPage) NotDone() bool { 6987 return !page.inrlr.IsEmpty() 6988} 6989 6990// Response returns the raw server response from the last page request. 6991func (page InboundNatRuleListResultPage) Response() InboundNatRuleListResult { 6992 return page.inrlr 6993} 6994 6995// Values returns the slice of values for the current page or nil if there are no values. 6996func (page InboundNatRuleListResultPage) Values() []InboundNatRule { 6997 if page.inrlr.IsEmpty() { 6998 return nil 6999 } 7000 return *page.inrlr.Value 7001} 7002 7003// InboundNatRulePropertiesFormat properties of the inbound NAT rule. 7004type InboundNatRulePropertiesFormat struct { 7005 // FrontendIPConfiguration - A reference to frontend IP addresses. 7006 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 7007 // BackendIPConfiguration - 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. 7008 BackendIPConfiguration *InterfaceIPConfiguration `json:"backendIPConfiguration,omitempty"` 7009 // Protocol - Possible values include: 'TransportProtocolUDP', 'TransportProtocolTCP', 'TransportProtocolAll' 7010 Protocol TransportProtocol `json:"protocol,omitempty"` 7011 // 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. 7012 FrontendPort *int32 `json:"frontendPort,omitempty"` 7013 // BackendPort - The port used for the internal endpoint. Acceptable values range from 1 to 65535. 7014 BackendPort *int32 `json:"backendPort,omitempty"` 7015 // 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. 7016 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 7017 // 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. 7018 EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"` 7019 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 7020 ProvisioningState *string `json:"provisioningState,omitempty"` 7021} 7022 7023// InboundNatRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 7024// operation. 7025type InboundNatRulesCreateOrUpdateFuture struct { 7026 azure.Future 7027} 7028 7029// Result returns the result of the asynchronous operation. 7030// If the operation has not completed it will return an error. 7031func (future *InboundNatRulesCreateOrUpdateFuture) Result(client InboundNatRulesClient) (inr InboundNatRule, err error) { 7032 var done bool 7033 done, err = future.Done(client) 7034 if err != nil { 7035 err = autorest.NewErrorWithError(err, "network.InboundNatRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 7036 return 7037 } 7038 if !done { 7039 err = azure.NewAsyncOpIncompleteError("network.InboundNatRulesCreateOrUpdateFuture") 7040 return 7041 } 7042 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7043 if inr.Response.Response, err = future.GetResult(sender); err == nil && inr.Response.Response.StatusCode != http.StatusNoContent { 7044 inr, err = client.CreateOrUpdateResponder(inr.Response.Response) 7045 if err != nil { 7046 err = autorest.NewErrorWithError(err, "network.InboundNatRulesCreateOrUpdateFuture", "Result", inr.Response.Response, "Failure responding to request") 7047 } 7048 } 7049 return 7050} 7051 7052// InboundNatRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 7053// operation. 7054type InboundNatRulesDeleteFuture struct { 7055 azure.Future 7056} 7057 7058// Result returns the result of the asynchronous operation. 7059// If the operation has not completed it will return an error. 7060func (future *InboundNatRulesDeleteFuture) Result(client InboundNatRulesClient) (ar autorest.Response, err error) { 7061 var done bool 7062 done, err = future.Done(client) 7063 if err != nil { 7064 err = autorest.NewErrorWithError(err, "network.InboundNatRulesDeleteFuture", "Result", future.Response(), "Polling failure") 7065 return 7066 } 7067 if !done { 7068 err = azure.NewAsyncOpIncompleteError("network.InboundNatRulesDeleteFuture") 7069 return 7070 } 7071 ar.Response = future.Response() 7072 return 7073} 7074 7075// Interface a network interface in a resource group. 7076type Interface struct { 7077 autorest.Response `json:"-"` 7078 // InterfacePropertiesFormat - Properties of the network interface. 7079 *InterfacePropertiesFormat `json:"properties,omitempty"` 7080 // Etag - A unique read-only string that changes whenever the resource is updated. 7081 Etag *string `json:"etag,omitempty"` 7082 // ID - Resource ID. 7083 ID *string `json:"id,omitempty"` 7084 // Name - Resource name. 7085 Name *string `json:"name,omitempty"` 7086 // Type - Resource type. 7087 Type *string `json:"type,omitempty"` 7088 // Location - Resource location. 7089 Location *string `json:"location,omitempty"` 7090 // Tags - Resource tags. 7091 Tags map[string]*string `json:"tags"` 7092} 7093 7094// MarshalJSON is the custom marshaler for Interface. 7095func (i Interface) MarshalJSON() ([]byte, error) { 7096 objectMap := make(map[string]interface{}) 7097 if i.InterfacePropertiesFormat != nil { 7098 objectMap["properties"] = i.InterfacePropertiesFormat 7099 } 7100 if i.Etag != nil { 7101 objectMap["etag"] = i.Etag 7102 } 7103 if i.ID != nil { 7104 objectMap["id"] = i.ID 7105 } 7106 if i.Name != nil { 7107 objectMap["name"] = i.Name 7108 } 7109 if i.Type != nil { 7110 objectMap["type"] = i.Type 7111 } 7112 if i.Location != nil { 7113 objectMap["location"] = i.Location 7114 } 7115 if i.Tags != nil { 7116 objectMap["tags"] = i.Tags 7117 } 7118 return json.Marshal(objectMap) 7119} 7120 7121// UnmarshalJSON is the custom unmarshaler for Interface struct. 7122func (i *Interface) UnmarshalJSON(body []byte) error { 7123 var m map[string]*json.RawMessage 7124 err := json.Unmarshal(body, &m) 7125 if err != nil { 7126 return err 7127 } 7128 for k, v := range m { 7129 switch k { 7130 case "properties": 7131 if v != nil { 7132 var interfacePropertiesFormat InterfacePropertiesFormat 7133 err = json.Unmarshal(*v, &interfacePropertiesFormat) 7134 if err != nil { 7135 return err 7136 } 7137 i.InterfacePropertiesFormat = &interfacePropertiesFormat 7138 } 7139 case "etag": 7140 if v != nil { 7141 var etag string 7142 err = json.Unmarshal(*v, &etag) 7143 if err != nil { 7144 return err 7145 } 7146 i.Etag = &etag 7147 } 7148 case "id": 7149 if v != nil { 7150 var ID string 7151 err = json.Unmarshal(*v, &ID) 7152 if err != nil { 7153 return err 7154 } 7155 i.ID = &ID 7156 } 7157 case "name": 7158 if v != nil { 7159 var name string 7160 err = json.Unmarshal(*v, &name) 7161 if err != nil { 7162 return err 7163 } 7164 i.Name = &name 7165 } 7166 case "type": 7167 if v != nil { 7168 var typeVar string 7169 err = json.Unmarshal(*v, &typeVar) 7170 if err != nil { 7171 return err 7172 } 7173 i.Type = &typeVar 7174 } 7175 case "location": 7176 if v != nil { 7177 var location string 7178 err = json.Unmarshal(*v, &location) 7179 if err != nil { 7180 return err 7181 } 7182 i.Location = &location 7183 } 7184 case "tags": 7185 if v != nil { 7186 var tags map[string]*string 7187 err = json.Unmarshal(*v, &tags) 7188 if err != nil { 7189 return err 7190 } 7191 i.Tags = tags 7192 } 7193 } 7194 } 7195 7196 return nil 7197} 7198 7199// InterfaceAssociation network interface and its custom security rules. 7200type InterfaceAssociation struct { 7201 // ID - Network interface ID. 7202 ID *string `json:"id,omitempty"` 7203 // SecurityRules - Collection of custom security rules. 7204 SecurityRules *[]SecurityRule `json:"securityRules,omitempty"` 7205} 7206 7207// InterfaceDNSSettings DNS settings of a network interface. 7208type InterfaceDNSSettings struct { 7209 // 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. 7210 DNSServers *[]string `json:"dnsServers,omitempty"` 7211 // 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. 7212 AppliedDNSServers *[]string `json:"appliedDnsServers,omitempty"` 7213 // InternalDNSNameLabel - Relative DNS name for this NIC used for internal communications between VMs in the same virtual network. 7214 InternalDNSNameLabel *string `json:"internalDnsNameLabel,omitempty"` 7215 // InternalFqdn - Fully qualified DNS name supporting internal communications between VMs in the same virtual network. 7216 InternalFqdn *string `json:"internalFqdn,omitempty"` 7217 // 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. 7218 InternalDomainNameSuffix *string `json:"internalDomainNameSuffix,omitempty"` 7219} 7220 7221// InterfaceIPConfiguration iPConfiguration in a network interface. 7222type InterfaceIPConfiguration struct { 7223 autorest.Response `json:"-"` 7224 // InterfaceIPConfigurationPropertiesFormat - Network interface IP configuration properties. 7225 *InterfaceIPConfigurationPropertiesFormat `json:"properties,omitempty"` 7226 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 7227 Name *string `json:"name,omitempty"` 7228 // Etag - A unique read-only string that changes whenever the resource is updated. 7229 Etag *string `json:"etag,omitempty"` 7230 // ID - Resource ID. 7231 ID *string `json:"id,omitempty"` 7232} 7233 7234// MarshalJSON is the custom marshaler for InterfaceIPConfiguration. 7235func (iic InterfaceIPConfiguration) MarshalJSON() ([]byte, error) { 7236 objectMap := make(map[string]interface{}) 7237 if iic.InterfaceIPConfigurationPropertiesFormat != nil { 7238 objectMap["properties"] = iic.InterfaceIPConfigurationPropertiesFormat 7239 } 7240 if iic.Name != nil { 7241 objectMap["name"] = iic.Name 7242 } 7243 if iic.Etag != nil { 7244 objectMap["etag"] = iic.Etag 7245 } 7246 if iic.ID != nil { 7247 objectMap["id"] = iic.ID 7248 } 7249 return json.Marshal(objectMap) 7250} 7251 7252// UnmarshalJSON is the custom unmarshaler for InterfaceIPConfiguration struct. 7253func (iic *InterfaceIPConfiguration) UnmarshalJSON(body []byte) error { 7254 var m map[string]*json.RawMessage 7255 err := json.Unmarshal(body, &m) 7256 if err != nil { 7257 return err 7258 } 7259 for k, v := range m { 7260 switch k { 7261 case "properties": 7262 if v != nil { 7263 var interfaceIPConfigurationPropertiesFormat InterfaceIPConfigurationPropertiesFormat 7264 err = json.Unmarshal(*v, &interfaceIPConfigurationPropertiesFormat) 7265 if err != nil { 7266 return err 7267 } 7268 iic.InterfaceIPConfigurationPropertiesFormat = &interfaceIPConfigurationPropertiesFormat 7269 } 7270 case "name": 7271 if v != nil { 7272 var name string 7273 err = json.Unmarshal(*v, &name) 7274 if err != nil { 7275 return err 7276 } 7277 iic.Name = &name 7278 } 7279 case "etag": 7280 if v != nil { 7281 var etag string 7282 err = json.Unmarshal(*v, &etag) 7283 if err != nil { 7284 return err 7285 } 7286 iic.Etag = &etag 7287 } 7288 case "id": 7289 if v != nil { 7290 var ID string 7291 err = json.Unmarshal(*v, &ID) 7292 if err != nil { 7293 return err 7294 } 7295 iic.ID = &ID 7296 } 7297 } 7298 } 7299 7300 return nil 7301} 7302 7303// InterfaceIPConfigurationListResult response for list ip configurations API service call. 7304type InterfaceIPConfigurationListResult struct { 7305 autorest.Response `json:"-"` 7306 // Value - A list of ip configurations. 7307 Value *[]InterfaceIPConfiguration `json:"value,omitempty"` 7308 // NextLink - The URL to get the next set of results. 7309 NextLink *string `json:"nextLink,omitempty"` 7310} 7311 7312// InterfaceIPConfigurationListResultIterator provides access to a complete listing of InterfaceIPConfiguration 7313// values. 7314type InterfaceIPConfigurationListResultIterator struct { 7315 i int 7316 page InterfaceIPConfigurationListResultPage 7317} 7318 7319// Next advances to the next value. If there was an error making 7320// the request the iterator does not advance and the error is returned. 7321func (iter *InterfaceIPConfigurationListResultIterator) Next() error { 7322 iter.i++ 7323 if iter.i < len(iter.page.Values()) { 7324 return nil 7325 } 7326 err := iter.page.Next() 7327 if err != nil { 7328 iter.i-- 7329 return err 7330 } 7331 iter.i = 0 7332 return nil 7333} 7334 7335// NotDone returns true if the enumeration should be started or is not yet complete. 7336func (iter InterfaceIPConfigurationListResultIterator) NotDone() bool { 7337 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7338} 7339 7340// Response returns the raw server response from the last page request. 7341func (iter InterfaceIPConfigurationListResultIterator) Response() InterfaceIPConfigurationListResult { 7342 return iter.page.Response() 7343} 7344 7345// Value returns the current value or a zero-initialized value if the 7346// iterator has advanced beyond the end of the collection. 7347func (iter InterfaceIPConfigurationListResultIterator) Value() InterfaceIPConfiguration { 7348 if !iter.page.NotDone() { 7349 return InterfaceIPConfiguration{} 7350 } 7351 return iter.page.Values()[iter.i] 7352} 7353 7354// IsEmpty returns true if the ListResult contains no values. 7355func (iiclr InterfaceIPConfigurationListResult) IsEmpty() bool { 7356 return iiclr.Value == nil || len(*iiclr.Value) == 0 7357} 7358 7359// interfaceIPConfigurationListResultPreparer prepares a request to retrieve the next set of results. 7360// It returns nil if no more results exist. 7361func (iiclr InterfaceIPConfigurationListResult) interfaceIPConfigurationListResultPreparer() (*http.Request, error) { 7362 if iiclr.NextLink == nil || len(to.String(iiclr.NextLink)) < 1 { 7363 return nil, nil 7364 } 7365 return autorest.Prepare(&http.Request{}, 7366 autorest.AsJSON(), 7367 autorest.AsGet(), 7368 autorest.WithBaseURL(to.String(iiclr.NextLink))) 7369} 7370 7371// InterfaceIPConfigurationListResultPage contains a page of InterfaceIPConfiguration values. 7372type InterfaceIPConfigurationListResultPage struct { 7373 fn func(InterfaceIPConfigurationListResult) (InterfaceIPConfigurationListResult, error) 7374 iiclr InterfaceIPConfigurationListResult 7375} 7376 7377// Next advances to the next page of values. If there was an error making 7378// the request the page does not advance and the error is returned. 7379func (page *InterfaceIPConfigurationListResultPage) Next() error { 7380 next, err := page.fn(page.iiclr) 7381 if err != nil { 7382 return err 7383 } 7384 page.iiclr = next 7385 return nil 7386} 7387 7388// NotDone returns true if the page enumeration should be started or is not yet complete. 7389func (page InterfaceIPConfigurationListResultPage) NotDone() bool { 7390 return !page.iiclr.IsEmpty() 7391} 7392 7393// Response returns the raw server response from the last page request. 7394func (page InterfaceIPConfigurationListResultPage) Response() InterfaceIPConfigurationListResult { 7395 return page.iiclr 7396} 7397 7398// Values returns the slice of values for the current page or nil if there are no values. 7399func (page InterfaceIPConfigurationListResultPage) Values() []InterfaceIPConfiguration { 7400 if page.iiclr.IsEmpty() { 7401 return nil 7402 } 7403 return *page.iiclr.Value 7404} 7405 7406// InterfaceIPConfigurationPropertiesFormat properties of IP configuration. 7407type InterfaceIPConfigurationPropertiesFormat struct { 7408 // ApplicationGatewayBackendAddressPools - The reference of ApplicationGatewayBackendAddressPool resource. 7409 ApplicationGatewayBackendAddressPools *[]ApplicationGatewayBackendAddressPool `json:"applicationGatewayBackendAddressPools,omitempty"` 7410 // LoadBalancerBackendAddressPools - The reference of LoadBalancerBackendAddressPool resource. 7411 LoadBalancerBackendAddressPools *[]BackendAddressPool `json:"loadBalancerBackendAddressPools,omitempty"` 7412 // LoadBalancerInboundNatRules - A list of references of LoadBalancerInboundNatRules. 7413 LoadBalancerInboundNatRules *[]InboundNatRule `json:"loadBalancerInboundNatRules,omitempty"` 7414 // PrivateIPAddress - Private IP address of the IP configuration. 7415 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 7416 // PrivateIPAllocationMethod - Defines how a private IP address is assigned. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 7417 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 7418 // 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' 7419 PrivateIPAddressVersion IPVersion `json:"privateIPAddressVersion,omitempty"` 7420 // Subnet - Subnet bound to the IP configuration. 7421 Subnet *Subnet `json:"subnet,omitempty"` 7422 // Primary - Gets whether this is a primary customer address on the network interface. 7423 Primary *bool `json:"primary,omitempty"` 7424 // PublicIPAddress - Public IP address bound to the IP configuration. 7425 PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"` 7426 // ApplicationSecurityGroups - Application security groups in which the IP configuration is included. 7427 ApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"applicationSecurityGroups,omitempty"` 7428 // ProvisioningState - The provisioning state of the network interface IP configuration. Possible values are: 'Updating', 'Deleting', and 'Failed'. 7429 ProvisioningState *string `json:"provisioningState,omitempty"` 7430} 7431 7432// InterfaceListResult response for the ListNetworkInterface API service call. 7433type InterfaceListResult struct { 7434 autorest.Response `json:"-"` 7435 // Value - A list of network interfaces in a resource group. 7436 Value *[]Interface `json:"value,omitempty"` 7437 // NextLink - The URL to get the next set of results. 7438 NextLink *string `json:"nextLink,omitempty"` 7439} 7440 7441// InterfaceListResultIterator provides access to a complete listing of Interface values. 7442type InterfaceListResultIterator struct { 7443 i int 7444 page InterfaceListResultPage 7445} 7446 7447// Next advances to the next value. If there was an error making 7448// the request the iterator does not advance and the error is returned. 7449func (iter *InterfaceListResultIterator) Next() error { 7450 iter.i++ 7451 if iter.i < len(iter.page.Values()) { 7452 return nil 7453 } 7454 err := iter.page.Next() 7455 if err != nil { 7456 iter.i-- 7457 return err 7458 } 7459 iter.i = 0 7460 return nil 7461} 7462 7463// NotDone returns true if the enumeration should be started or is not yet complete. 7464func (iter InterfaceListResultIterator) NotDone() bool { 7465 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7466} 7467 7468// Response returns the raw server response from the last page request. 7469func (iter InterfaceListResultIterator) Response() InterfaceListResult { 7470 return iter.page.Response() 7471} 7472 7473// Value returns the current value or a zero-initialized value if the 7474// iterator has advanced beyond the end of the collection. 7475func (iter InterfaceListResultIterator) Value() Interface { 7476 if !iter.page.NotDone() { 7477 return Interface{} 7478 } 7479 return iter.page.Values()[iter.i] 7480} 7481 7482// IsEmpty returns true if the ListResult contains no values. 7483func (ilr InterfaceListResult) IsEmpty() bool { 7484 return ilr.Value == nil || len(*ilr.Value) == 0 7485} 7486 7487// interfaceListResultPreparer prepares a request to retrieve the next set of results. 7488// It returns nil if no more results exist. 7489func (ilr InterfaceListResult) interfaceListResultPreparer() (*http.Request, error) { 7490 if ilr.NextLink == nil || len(to.String(ilr.NextLink)) < 1 { 7491 return nil, nil 7492 } 7493 return autorest.Prepare(&http.Request{}, 7494 autorest.AsJSON(), 7495 autorest.AsGet(), 7496 autorest.WithBaseURL(to.String(ilr.NextLink))) 7497} 7498 7499// InterfaceListResultPage contains a page of Interface values. 7500type InterfaceListResultPage struct { 7501 fn func(InterfaceListResult) (InterfaceListResult, error) 7502 ilr InterfaceListResult 7503} 7504 7505// Next advances to the next page of values. If there was an error making 7506// the request the page does not advance and the error is returned. 7507func (page *InterfaceListResultPage) Next() error { 7508 next, err := page.fn(page.ilr) 7509 if err != nil { 7510 return err 7511 } 7512 page.ilr = next 7513 return nil 7514} 7515 7516// NotDone returns true if the page enumeration should be started or is not yet complete. 7517func (page InterfaceListResultPage) NotDone() bool { 7518 return !page.ilr.IsEmpty() 7519} 7520 7521// Response returns the raw server response from the last page request. 7522func (page InterfaceListResultPage) Response() InterfaceListResult { 7523 return page.ilr 7524} 7525 7526// Values returns the slice of values for the current page or nil if there are no values. 7527func (page InterfaceListResultPage) Values() []Interface { 7528 if page.ilr.IsEmpty() { 7529 return nil 7530 } 7531 return *page.ilr.Value 7532} 7533 7534// InterfaceLoadBalancerListResult response for list ip configurations API service call. 7535type InterfaceLoadBalancerListResult struct { 7536 autorest.Response `json:"-"` 7537 // Value - A list of load balancers. 7538 Value *[]LoadBalancer `json:"value,omitempty"` 7539 // NextLink - The URL to get the next set of results. 7540 NextLink *string `json:"nextLink,omitempty"` 7541} 7542 7543// InterfaceLoadBalancerListResultIterator provides access to a complete listing of LoadBalancer values. 7544type InterfaceLoadBalancerListResultIterator struct { 7545 i int 7546 page InterfaceLoadBalancerListResultPage 7547} 7548 7549// Next advances to the next value. If there was an error making 7550// the request the iterator does not advance and the error is returned. 7551func (iter *InterfaceLoadBalancerListResultIterator) Next() error { 7552 iter.i++ 7553 if iter.i < len(iter.page.Values()) { 7554 return nil 7555 } 7556 err := iter.page.Next() 7557 if err != nil { 7558 iter.i-- 7559 return err 7560 } 7561 iter.i = 0 7562 return nil 7563} 7564 7565// NotDone returns true if the enumeration should be started or is not yet complete. 7566func (iter InterfaceLoadBalancerListResultIterator) NotDone() bool { 7567 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7568} 7569 7570// Response returns the raw server response from the last page request. 7571func (iter InterfaceLoadBalancerListResultIterator) Response() InterfaceLoadBalancerListResult { 7572 return iter.page.Response() 7573} 7574 7575// Value returns the current value or a zero-initialized value if the 7576// iterator has advanced beyond the end of the collection. 7577func (iter InterfaceLoadBalancerListResultIterator) Value() LoadBalancer { 7578 if !iter.page.NotDone() { 7579 return LoadBalancer{} 7580 } 7581 return iter.page.Values()[iter.i] 7582} 7583 7584// IsEmpty returns true if the ListResult contains no values. 7585func (ilblr InterfaceLoadBalancerListResult) IsEmpty() bool { 7586 return ilblr.Value == nil || len(*ilblr.Value) == 0 7587} 7588 7589// interfaceLoadBalancerListResultPreparer prepares a request to retrieve the next set of results. 7590// It returns nil if no more results exist. 7591func (ilblr InterfaceLoadBalancerListResult) interfaceLoadBalancerListResultPreparer() (*http.Request, error) { 7592 if ilblr.NextLink == nil || len(to.String(ilblr.NextLink)) < 1 { 7593 return nil, nil 7594 } 7595 return autorest.Prepare(&http.Request{}, 7596 autorest.AsJSON(), 7597 autorest.AsGet(), 7598 autorest.WithBaseURL(to.String(ilblr.NextLink))) 7599} 7600 7601// InterfaceLoadBalancerListResultPage contains a page of LoadBalancer values. 7602type InterfaceLoadBalancerListResultPage struct { 7603 fn func(InterfaceLoadBalancerListResult) (InterfaceLoadBalancerListResult, error) 7604 ilblr InterfaceLoadBalancerListResult 7605} 7606 7607// Next advances to the next page of values. If there was an error making 7608// the request the page does not advance and the error is returned. 7609func (page *InterfaceLoadBalancerListResultPage) Next() error { 7610 next, err := page.fn(page.ilblr) 7611 if err != nil { 7612 return err 7613 } 7614 page.ilblr = next 7615 return nil 7616} 7617 7618// NotDone returns true if the page enumeration should be started or is not yet complete. 7619func (page InterfaceLoadBalancerListResultPage) NotDone() bool { 7620 return !page.ilblr.IsEmpty() 7621} 7622 7623// Response returns the raw server response from the last page request. 7624func (page InterfaceLoadBalancerListResultPage) Response() InterfaceLoadBalancerListResult { 7625 return page.ilblr 7626} 7627 7628// Values returns the slice of values for the current page or nil if there are no values. 7629func (page InterfaceLoadBalancerListResultPage) Values() []LoadBalancer { 7630 if page.ilblr.IsEmpty() { 7631 return nil 7632 } 7633 return *page.ilblr.Value 7634} 7635 7636// InterfacePropertiesFormat networkInterface properties. 7637type InterfacePropertiesFormat struct { 7638 // VirtualMachine - The reference of a virtual machine. 7639 VirtualMachine *SubResource `json:"virtualMachine,omitempty"` 7640 // NetworkSecurityGroup - The reference of the NetworkSecurityGroup resource. 7641 NetworkSecurityGroup *SecurityGroup `json:"networkSecurityGroup,omitempty"` 7642 // IPConfigurations - A list of IPConfigurations of the network interface. 7643 IPConfigurations *[]InterfaceIPConfiguration `json:"ipConfigurations,omitempty"` 7644 // DNSSettings - The DNS settings in network interface. 7645 DNSSettings *InterfaceDNSSettings `json:"dnsSettings,omitempty"` 7646 // MacAddress - The MAC address of the network interface. 7647 MacAddress *string `json:"macAddress,omitempty"` 7648 // Primary - Gets whether this is a primary network interface on a virtual machine. 7649 Primary *bool `json:"primary,omitempty"` 7650 // EnableAcceleratedNetworking - If the network interface is accelerated networking enabled. 7651 EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"` 7652 // EnableIPForwarding - Indicates whether IP forwarding is enabled on this network interface. 7653 EnableIPForwarding *bool `json:"enableIPForwarding,omitempty"` 7654 // ResourceGUID - The resource GUID property of the network interface resource. 7655 ResourceGUID *string `json:"resourceGuid,omitempty"` 7656 // ProvisioningState - The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 7657 ProvisioningState *string `json:"provisioningState,omitempty"` 7658} 7659 7660// InterfacesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 7661// operation. 7662type InterfacesCreateOrUpdateFuture struct { 7663 azure.Future 7664} 7665 7666// Result returns the result of the asynchronous operation. 7667// If the operation has not completed it will return an error. 7668func (future *InterfacesCreateOrUpdateFuture) Result(client InterfacesClient) (i Interface, err error) { 7669 var done bool 7670 done, err = future.Done(client) 7671 if err != nil { 7672 err = autorest.NewErrorWithError(err, "network.InterfacesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 7673 return 7674 } 7675 if !done { 7676 err = azure.NewAsyncOpIncompleteError("network.InterfacesCreateOrUpdateFuture") 7677 return 7678 } 7679 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7680 if i.Response.Response, err = future.GetResult(sender); err == nil && i.Response.Response.StatusCode != http.StatusNoContent { 7681 i, err = client.CreateOrUpdateResponder(i.Response.Response) 7682 if err != nil { 7683 err = autorest.NewErrorWithError(err, "network.InterfacesCreateOrUpdateFuture", "Result", i.Response.Response, "Failure responding to request") 7684 } 7685 } 7686 return 7687} 7688 7689// InterfacesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 7690type InterfacesDeleteFuture struct { 7691 azure.Future 7692} 7693 7694// Result returns the result of the asynchronous operation. 7695// If the operation has not completed it will return an error. 7696func (future *InterfacesDeleteFuture) Result(client InterfacesClient) (ar autorest.Response, err error) { 7697 var done bool 7698 done, err = future.Done(client) 7699 if err != nil { 7700 err = autorest.NewErrorWithError(err, "network.InterfacesDeleteFuture", "Result", future.Response(), "Polling failure") 7701 return 7702 } 7703 if !done { 7704 err = azure.NewAsyncOpIncompleteError("network.InterfacesDeleteFuture") 7705 return 7706 } 7707 ar.Response = future.Response() 7708 return 7709} 7710 7711// InterfacesGetEffectiveRouteTableFuture an abstraction for monitoring and retrieving the results of a 7712// long-running operation. 7713type InterfacesGetEffectiveRouteTableFuture struct { 7714 azure.Future 7715} 7716 7717// Result returns the result of the asynchronous operation. 7718// If the operation has not completed it will return an error. 7719func (future *InterfacesGetEffectiveRouteTableFuture) Result(client InterfacesClient) (erlr EffectiveRouteListResult, err error) { 7720 var done bool 7721 done, err = future.Done(client) 7722 if err != nil { 7723 err = autorest.NewErrorWithError(err, "network.InterfacesGetEffectiveRouteTableFuture", "Result", future.Response(), "Polling failure") 7724 return 7725 } 7726 if !done { 7727 err = azure.NewAsyncOpIncompleteError("network.InterfacesGetEffectiveRouteTableFuture") 7728 return 7729 } 7730 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7731 if erlr.Response.Response, err = future.GetResult(sender); err == nil && erlr.Response.Response.StatusCode != http.StatusNoContent { 7732 erlr, err = client.GetEffectiveRouteTableResponder(erlr.Response.Response) 7733 if err != nil { 7734 err = autorest.NewErrorWithError(err, "network.InterfacesGetEffectiveRouteTableFuture", "Result", erlr.Response.Response, "Failure responding to request") 7735 } 7736 } 7737 return 7738} 7739 7740// InterfacesListEffectiveNetworkSecurityGroupsFuture an abstraction for monitoring and retrieving the results of a 7741// long-running operation. 7742type InterfacesListEffectiveNetworkSecurityGroupsFuture struct { 7743 azure.Future 7744} 7745 7746// Result returns the result of the asynchronous operation. 7747// If the operation has not completed it will return an error. 7748func (future *InterfacesListEffectiveNetworkSecurityGroupsFuture) Result(client InterfacesClient) (ensglr EffectiveNetworkSecurityGroupListResult, err error) { 7749 var done bool 7750 done, err = future.Done(client) 7751 if err != nil { 7752 err = autorest.NewErrorWithError(err, "network.InterfacesListEffectiveNetworkSecurityGroupsFuture", "Result", future.Response(), "Polling failure") 7753 return 7754 } 7755 if !done { 7756 err = azure.NewAsyncOpIncompleteError("network.InterfacesListEffectiveNetworkSecurityGroupsFuture") 7757 return 7758 } 7759 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7760 if ensglr.Response.Response, err = future.GetResult(sender); err == nil && ensglr.Response.Response.StatusCode != http.StatusNoContent { 7761 ensglr, err = client.ListEffectiveNetworkSecurityGroupsResponder(ensglr.Response.Response) 7762 if err != nil { 7763 err = autorest.NewErrorWithError(err, "network.InterfacesListEffectiveNetworkSecurityGroupsFuture", "Result", ensglr.Response.Response, "Failure responding to request") 7764 } 7765 } 7766 return 7767} 7768 7769// InterfacesUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running operation. 7770type InterfacesUpdateTagsFuture struct { 7771 azure.Future 7772} 7773 7774// Result returns the result of the asynchronous operation. 7775// If the operation has not completed it will return an error. 7776func (future *InterfacesUpdateTagsFuture) Result(client InterfacesClient) (i Interface, err error) { 7777 var done bool 7778 done, err = future.Done(client) 7779 if err != nil { 7780 err = autorest.NewErrorWithError(err, "network.InterfacesUpdateTagsFuture", "Result", future.Response(), "Polling failure") 7781 return 7782 } 7783 if !done { 7784 err = azure.NewAsyncOpIncompleteError("network.InterfacesUpdateTagsFuture") 7785 return 7786 } 7787 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7788 if i.Response.Response, err = future.GetResult(sender); err == nil && i.Response.Response.StatusCode != http.StatusNoContent { 7789 i, err = client.UpdateTagsResponder(i.Response.Response) 7790 if err != nil { 7791 err = autorest.NewErrorWithError(err, "network.InterfacesUpdateTagsFuture", "Result", i.Response.Response, "Failure responding to request") 7792 } 7793 } 7794 return 7795} 7796 7797// IPAddressAvailabilityResult response for CheckIPAddressAvailability API service call 7798type IPAddressAvailabilityResult struct { 7799 autorest.Response `json:"-"` 7800 // Available - Private IP address availability. 7801 Available *bool `json:"available,omitempty"` 7802 // AvailableIPAddresses - Contains other available private IP addresses if the asked for address is taken. 7803 AvailableIPAddresses *[]string `json:"availableIPAddresses,omitempty"` 7804} 7805 7806// IPConfiguration IP configuration 7807type IPConfiguration struct { 7808 // IPConfigurationPropertiesFormat - Properties of the IP configuration 7809 *IPConfigurationPropertiesFormat `json:"properties,omitempty"` 7810 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 7811 Name *string `json:"name,omitempty"` 7812 // Etag - A unique read-only string that changes whenever the resource is updated. 7813 Etag *string `json:"etag,omitempty"` 7814 // ID - Resource ID. 7815 ID *string `json:"id,omitempty"` 7816} 7817 7818// MarshalJSON is the custom marshaler for IPConfiguration. 7819func (ic IPConfiguration) MarshalJSON() ([]byte, error) { 7820 objectMap := make(map[string]interface{}) 7821 if ic.IPConfigurationPropertiesFormat != nil { 7822 objectMap["properties"] = ic.IPConfigurationPropertiesFormat 7823 } 7824 if ic.Name != nil { 7825 objectMap["name"] = ic.Name 7826 } 7827 if ic.Etag != nil { 7828 objectMap["etag"] = ic.Etag 7829 } 7830 if ic.ID != nil { 7831 objectMap["id"] = ic.ID 7832 } 7833 return json.Marshal(objectMap) 7834} 7835 7836// UnmarshalJSON is the custom unmarshaler for IPConfiguration struct. 7837func (ic *IPConfiguration) UnmarshalJSON(body []byte) error { 7838 var m map[string]*json.RawMessage 7839 err := json.Unmarshal(body, &m) 7840 if err != nil { 7841 return err 7842 } 7843 for k, v := range m { 7844 switch k { 7845 case "properties": 7846 if v != nil { 7847 var IPConfigurationPropertiesFormat IPConfigurationPropertiesFormat 7848 err = json.Unmarshal(*v, &IPConfigurationPropertiesFormat) 7849 if err != nil { 7850 return err 7851 } 7852 ic.IPConfigurationPropertiesFormat = &IPConfigurationPropertiesFormat 7853 } 7854 case "name": 7855 if v != nil { 7856 var name string 7857 err = json.Unmarshal(*v, &name) 7858 if err != nil { 7859 return err 7860 } 7861 ic.Name = &name 7862 } 7863 case "etag": 7864 if v != nil { 7865 var etag string 7866 err = json.Unmarshal(*v, &etag) 7867 if err != nil { 7868 return err 7869 } 7870 ic.Etag = &etag 7871 } 7872 case "id": 7873 if v != nil { 7874 var ID string 7875 err = json.Unmarshal(*v, &ID) 7876 if err != nil { 7877 return err 7878 } 7879 ic.ID = &ID 7880 } 7881 } 7882 } 7883 7884 return nil 7885} 7886 7887// IPConfigurationPropertiesFormat properties of IP configuration. 7888type IPConfigurationPropertiesFormat struct { 7889 // PrivateIPAddress - The private IP address of the IP configuration. 7890 PrivateIPAddress *string `json:"privateIPAddress,omitempty"` 7891 // PrivateIPAllocationMethod - The private IP allocation method. Possible values are 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 7892 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 7893 // Subnet - The reference of the subnet resource. 7894 Subnet *Subnet `json:"subnet,omitempty"` 7895 // PublicIPAddress - The reference of the public IP resource. 7896 PublicIPAddress *PublicIPAddress `json:"publicIPAddress,omitempty"` 7897 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 7898 ProvisioningState *string `json:"provisioningState,omitempty"` 7899} 7900 7901// IpsecPolicy an IPSec Policy configuration for a virtual network gateway connection 7902type IpsecPolicy struct { 7903 // SaLifeTimeSeconds - The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel. 7904 SaLifeTimeSeconds *int32 `json:"saLifeTimeSeconds,omitempty"` 7905 // SaDataSizeKilobytes - The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel. 7906 SaDataSizeKilobytes *int32 `json:"saDataSizeKilobytes,omitempty"` 7907 // IpsecEncryption - The IPSec encryption algorithm (IKE phase 1). Possible values include: 'IpsecEncryptionNone', 'IpsecEncryptionDES', 'IpsecEncryptionDES3', 'IpsecEncryptionAES128', 'IpsecEncryptionAES192', 'IpsecEncryptionAES256', 'IpsecEncryptionGCMAES128', 'IpsecEncryptionGCMAES192', 'IpsecEncryptionGCMAES256' 7908 IpsecEncryption IpsecEncryption `json:"ipsecEncryption,omitempty"` 7909 // IpsecIntegrity - The IPSec integrity algorithm (IKE phase 1). Possible values include: 'IpsecIntegrityMD5', 'IpsecIntegritySHA1', 'IpsecIntegritySHA256', 'IpsecIntegrityGCMAES128', 'IpsecIntegrityGCMAES192', 'IpsecIntegrityGCMAES256' 7910 IpsecIntegrity IpsecIntegrity `json:"ipsecIntegrity,omitempty"` 7911 // IkeEncryption - The IKE encryption algorithm (IKE phase 2). Possible values include: 'DES', 'DES3', 'AES128', 'AES192', 'AES256' 7912 IkeEncryption IkeEncryption `json:"ikeEncryption,omitempty"` 7913 // IkeIntegrity - The IKE integrity algorithm (IKE phase 2). Possible values include: 'MD5', 'SHA1', 'SHA256', 'SHA384' 7914 IkeIntegrity IkeIntegrity `json:"ikeIntegrity,omitempty"` 7915 // DhGroup - The DH Groups used in IKE Phase 1 for initial SA. Possible values include: 'None', 'DHGroup1', 'DHGroup2', 'DHGroup14', 'DHGroup2048', 'ECP256', 'ECP384', 'DHGroup24' 7916 DhGroup DhGroup `json:"dhGroup,omitempty"` 7917 // PfsGroup - The DH Groups used in IKE Phase 2 for new child SA. Possible values include: 'PfsGroupNone', 'PfsGroupPFS1', 'PfsGroupPFS2', 'PfsGroupPFS2048', 'PfsGroupECP256', 'PfsGroupECP384', 'PfsGroupPFS24' 7918 PfsGroup PfsGroup `json:"pfsGroup,omitempty"` 7919} 7920 7921// IPTag contains the IpTag associated with the public IP address 7922type IPTag struct { 7923 // IPTagType - Gets or sets the ipTag type: Example FirstPartyUsage. 7924 IPTagType *string `json:"ipTagType,omitempty"` 7925 // Tag - Gets or sets value of the IpTag associated with the public IP. Example SQL, Storage etc 7926 Tag *string `json:"tag,omitempty"` 7927} 7928 7929// Ipv6ExpressRouteCircuitPeeringConfig contains IPv6 peering config. 7930type Ipv6ExpressRouteCircuitPeeringConfig struct { 7931 // PrimaryPeerAddressPrefix - The primary address prefix. 7932 PrimaryPeerAddressPrefix *string `json:"primaryPeerAddressPrefix,omitempty"` 7933 // SecondaryPeerAddressPrefix - The secondary address prefix. 7934 SecondaryPeerAddressPrefix *string `json:"secondaryPeerAddressPrefix,omitempty"` 7935 // MicrosoftPeeringConfig - The Microsoft peering configuration. 7936 MicrosoftPeeringConfig *ExpressRouteCircuitPeeringConfig `json:"microsoftPeeringConfig,omitempty"` 7937 // RouteFilter - The reference of the RouteFilter resource. 7938 RouteFilter *RouteFilter `json:"routeFilter,omitempty"` 7939 // State - The state of peering. Possible values are: 'Disabled' and 'Enabled'. Possible values include: 'ExpressRouteCircuitPeeringStateDisabled', 'ExpressRouteCircuitPeeringStateEnabled' 7940 State ExpressRouteCircuitPeeringState `json:"state,omitempty"` 7941} 7942 7943// LoadBalancer loadBalancer resource 7944type LoadBalancer struct { 7945 autorest.Response `json:"-"` 7946 // Sku - The load balancer SKU. 7947 Sku *LoadBalancerSku `json:"sku,omitempty"` 7948 // LoadBalancerPropertiesFormat - Properties of load balancer. 7949 *LoadBalancerPropertiesFormat `json:"properties,omitempty"` 7950 // Etag - A unique read-only string that changes whenever the resource is updated. 7951 Etag *string `json:"etag,omitempty"` 7952 // ID - Resource ID. 7953 ID *string `json:"id,omitempty"` 7954 // Name - Resource name. 7955 Name *string `json:"name,omitempty"` 7956 // Type - Resource type. 7957 Type *string `json:"type,omitempty"` 7958 // Location - Resource location. 7959 Location *string `json:"location,omitempty"` 7960 // Tags - Resource tags. 7961 Tags map[string]*string `json:"tags"` 7962} 7963 7964// MarshalJSON is the custom marshaler for LoadBalancer. 7965func (lb LoadBalancer) MarshalJSON() ([]byte, error) { 7966 objectMap := make(map[string]interface{}) 7967 if lb.Sku != nil { 7968 objectMap["sku"] = lb.Sku 7969 } 7970 if lb.LoadBalancerPropertiesFormat != nil { 7971 objectMap["properties"] = lb.LoadBalancerPropertiesFormat 7972 } 7973 if lb.Etag != nil { 7974 objectMap["etag"] = lb.Etag 7975 } 7976 if lb.ID != nil { 7977 objectMap["id"] = lb.ID 7978 } 7979 if lb.Name != nil { 7980 objectMap["name"] = lb.Name 7981 } 7982 if lb.Type != nil { 7983 objectMap["type"] = lb.Type 7984 } 7985 if lb.Location != nil { 7986 objectMap["location"] = lb.Location 7987 } 7988 if lb.Tags != nil { 7989 objectMap["tags"] = lb.Tags 7990 } 7991 return json.Marshal(objectMap) 7992} 7993 7994// UnmarshalJSON is the custom unmarshaler for LoadBalancer struct. 7995func (lb *LoadBalancer) UnmarshalJSON(body []byte) error { 7996 var m map[string]*json.RawMessage 7997 err := json.Unmarshal(body, &m) 7998 if err != nil { 7999 return err 8000 } 8001 for k, v := range m { 8002 switch k { 8003 case "sku": 8004 if v != nil { 8005 var sku LoadBalancerSku 8006 err = json.Unmarshal(*v, &sku) 8007 if err != nil { 8008 return err 8009 } 8010 lb.Sku = &sku 8011 } 8012 case "properties": 8013 if v != nil { 8014 var loadBalancerPropertiesFormat LoadBalancerPropertiesFormat 8015 err = json.Unmarshal(*v, &loadBalancerPropertiesFormat) 8016 if err != nil { 8017 return err 8018 } 8019 lb.LoadBalancerPropertiesFormat = &loadBalancerPropertiesFormat 8020 } 8021 case "etag": 8022 if v != nil { 8023 var etag string 8024 err = json.Unmarshal(*v, &etag) 8025 if err != nil { 8026 return err 8027 } 8028 lb.Etag = &etag 8029 } 8030 case "id": 8031 if v != nil { 8032 var ID string 8033 err = json.Unmarshal(*v, &ID) 8034 if err != nil { 8035 return err 8036 } 8037 lb.ID = &ID 8038 } 8039 case "name": 8040 if v != nil { 8041 var name string 8042 err = json.Unmarshal(*v, &name) 8043 if err != nil { 8044 return err 8045 } 8046 lb.Name = &name 8047 } 8048 case "type": 8049 if v != nil { 8050 var typeVar string 8051 err = json.Unmarshal(*v, &typeVar) 8052 if err != nil { 8053 return err 8054 } 8055 lb.Type = &typeVar 8056 } 8057 case "location": 8058 if v != nil { 8059 var location string 8060 err = json.Unmarshal(*v, &location) 8061 if err != nil { 8062 return err 8063 } 8064 lb.Location = &location 8065 } 8066 case "tags": 8067 if v != nil { 8068 var tags map[string]*string 8069 err = json.Unmarshal(*v, &tags) 8070 if err != nil { 8071 return err 8072 } 8073 lb.Tags = tags 8074 } 8075 } 8076 } 8077 8078 return nil 8079} 8080 8081// LoadBalancerBackendAddressPoolListResult response for ListBackendAddressPool API service call. 8082type LoadBalancerBackendAddressPoolListResult struct { 8083 autorest.Response `json:"-"` 8084 // Value - A list of backend address pools in a load balancer. 8085 Value *[]BackendAddressPool `json:"value,omitempty"` 8086 // NextLink - The URL to get the next set of results. 8087 NextLink *string `json:"nextLink,omitempty"` 8088} 8089 8090// LoadBalancerBackendAddressPoolListResultIterator provides access to a complete listing of BackendAddressPool 8091// values. 8092type LoadBalancerBackendAddressPoolListResultIterator struct { 8093 i int 8094 page LoadBalancerBackendAddressPoolListResultPage 8095} 8096 8097// Next advances to the next value. If there was an error making 8098// the request the iterator does not advance and the error is returned. 8099func (iter *LoadBalancerBackendAddressPoolListResultIterator) Next() error { 8100 iter.i++ 8101 if iter.i < len(iter.page.Values()) { 8102 return nil 8103 } 8104 err := iter.page.Next() 8105 if err != nil { 8106 iter.i-- 8107 return err 8108 } 8109 iter.i = 0 8110 return nil 8111} 8112 8113// NotDone returns true if the enumeration should be started or is not yet complete. 8114func (iter LoadBalancerBackendAddressPoolListResultIterator) NotDone() bool { 8115 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8116} 8117 8118// Response returns the raw server response from the last page request. 8119func (iter LoadBalancerBackendAddressPoolListResultIterator) Response() LoadBalancerBackendAddressPoolListResult { 8120 return iter.page.Response() 8121} 8122 8123// Value returns the current value or a zero-initialized value if the 8124// iterator has advanced beyond the end of the collection. 8125func (iter LoadBalancerBackendAddressPoolListResultIterator) Value() BackendAddressPool { 8126 if !iter.page.NotDone() { 8127 return BackendAddressPool{} 8128 } 8129 return iter.page.Values()[iter.i] 8130} 8131 8132// IsEmpty returns true if the ListResult contains no values. 8133func (lbbaplr LoadBalancerBackendAddressPoolListResult) IsEmpty() bool { 8134 return lbbaplr.Value == nil || len(*lbbaplr.Value) == 0 8135} 8136 8137// loadBalancerBackendAddressPoolListResultPreparer prepares a request to retrieve the next set of results. 8138// It returns nil if no more results exist. 8139func (lbbaplr LoadBalancerBackendAddressPoolListResult) loadBalancerBackendAddressPoolListResultPreparer() (*http.Request, error) { 8140 if lbbaplr.NextLink == nil || len(to.String(lbbaplr.NextLink)) < 1 { 8141 return nil, nil 8142 } 8143 return autorest.Prepare(&http.Request{}, 8144 autorest.AsJSON(), 8145 autorest.AsGet(), 8146 autorest.WithBaseURL(to.String(lbbaplr.NextLink))) 8147} 8148 8149// LoadBalancerBackendAddressPoolListResultPage contains a page of BackendAddressPool values. 8150type LoadBalancerBackendAddressPoolListResultPage struct { 8151 fn func(LoadBalancerBackendAddressPoolListResult) (LoadBalancerBackendAddressPoolListResult, error) 8152 lbbaplr LoadBalancerBackendAddressPoolListResult 8153} 8154 8155// Next advances to the next page of values. If there was an error making 8156// the request the page does not advance and the error is returned. 8157func (page *LoadBalancerBackendAddressPoolListResultPage) Next() error { 8158 next, err := page.fn(page.lbbaplr) 8159 if err != nil { 8160 return err 8161 } 8162 page.lbbaplr = next 8163 return nil 8164} 8165 8166// NotDone returns true if the page enumeration should be started or is not yet complete. 8167func (page LoadBalancerBackendAddressPoolListResultPage) NotDone() bool { 8168 return !page.lbbaplr.IsEmpty() 8169} 8170 8171// Response returns the raw server response from the last page request. 8172func (page LoadBalancerBackendAddressPoolListResultPage) Response() LoadBalancerBackendAddressPoolListResult { 8173 return page.lbbaplr 8174} 8175 8176// Values returns the slice of values for the current page or nil if there are no values. 8177func (page LoadBalancerBackendAddressPoolListResultPage) Values() []BackendAddressPool { 8178 if page.lbbaplr.IsEmpty() { 8179 return nil 8180 } 8181 return *page.lbbaplr.Value 8182} 8183 8184// LoadBalancerFrontendIPConfigurationListResult response for ListFrontendIPConfiguration API service call. 8185type LoadBalancerFrontendIPConfigurationListResult struct { 8186 autorest.Response `json:"-"` 8187 // Value - A list of frontend IP configurations in a load balancer. 8188 Value *[]FrontendIPConfiguration `json:"value,omitempty"` 8189 // NextLink - The URL to get the next set of results. 8190 NextLink *string `json:"nextLink,omitempty"` 8191} 8192 8193// LoadBalancerFrontendIPConfigurationListResultIterator provides access to a complete listing of 8194// FrontendIPConfiguration values. 8195type LoadBalancerFrontendIPConfigurationListResultIterator struct { 8196 i int 8197 page LoadBalancerFrontendIPConfigurationListResultPage 8198} 8199 8200// Next advances to the next value. If there was an error making 8201// the request the iterator does not advance and the error is returned. 8202func (iter *LoadBalancerFrontendIPConfigurationListResultIterator) Next() error { 8203 iter.i++ 8204 if iter.i < len(iter.page.Values()) { 8205 return nil 8206 } 8207 err := iter.page.Next() 8208 if err != nil { 8209 iter.i-- 8210 return err 8211 } 8212 iter.i = 0 8213 return nil 8214} 8215 8216// NotDone returns true if the enumeration should be started or is not yet complete. 8217func (iter LoadBalancerFrontendIPConfigurationListResultIterator) NotDone() bool { 8218 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8219} 8220 8221// Response returns the raw server response from the last page request. 8222func (iter LoadBalancerFrontendIPConfigurationListResultIterator) Response() LoadBalancerFrontendIPConfigurationListResult { 8223 return iter.page.Response() 8224} 8225 8226// Value returns the current value or a zero-initialized value if the 8227// iterator has advanced beyond the end of the collection. 8228func (iter LoadBalancerFrontendIPConfigurationListResultIterator) Value() FrontendIPConfiguration { 8229 if !iter.page.NotDone() { 8230 return FrontendIPConfiguration{} 8231 } 8232 return iter.page.Values()[iter.i] 8233} 8234 8235// IsEmpty returns true if the ListResult contains no values. 8236func (lbficlr LoadBalancerFrontendIPConfigurationListResult) IsEmpty() bool { 8237 return lbficlr.Value == nil || len(*lbficlr.Value) == 0 8238} 8239 8240// loadBalancerFrontendIPConfigurationListResultPreparer prepares a request to retrieve the next set of results. 8241// It returns nil if no more results exist. 8242func (lbficlr LoadBalancerFrontendIPConfigurationListResult) loadBalancerFrontendIPConfigurationListResultPreparer() (*http.Request, error) { 8243 if lbficlr.NextLink == nil || len(to.String(lbficlr.NextLink)) < 1 { 8244 return nil, nil 8245 } 8246 return autorest.Prepare(&http.Request{}, 8247 autorest.AsJSON(), 8248 autorest.AsGet(), 8249 autorest.WithBaseURL(to.String(lbficlr.NextLink))) 8250} 8251 8252// LoadBalancerFrontendIPConfigurationListResultPage contains a page of FrontendIPConfiguration values. 8253type LoadBalancerFrontendIPConfigurationListResultPage struct { 8254 fn func(LoadBalancerFrontendIPConfigurationListResult) (LoadBalancerFrontendIPConfigurationListResult, error) 8255 lbficlr LoadBalancerFrontendIPConfigurationListResult 8256} 8257 8258// Next advances to the next page of values. If there was an error making 8259// the request the page does not advance and the error is returned. 8260func (page *LoadBalancerFrontendIPConfigurationListResultPage) Next() error { 8261 next, err := page.fn(page.lbficlr) 8262 if err != nil { 8263 return err 8264 } 8265 page.lbficlr = next 8266 return nil 8267} 8268 8269// NotDone returns true if the page enumeration should be started or is not yet complete. 8270func (page LoadBalancerFrontendIPConfigurationListResultPage) NotDone() bool { 8271 return !page.lbficlr.IsEmpty() 8272} 8273 8274// Response returns the raw server response from the last page request. 8275func (page LoadBalancerFrontendIPConfigurationListResultPage) Response() LoadBalancerFrontendIPConfigurationListResult { 8276 return page.lbficlr 8277} 8278 8279// Values returns the slice of values for the current page or nil if there are no values. 8280func (page LoadBalancerFrontendIPConfigurationListResultPage) Values() []FrontendIPConfiguration { 8281 if page.lbficlr.IsEmpty() { 8282 return nil 8283 } 8284 return *page.lbficlr.Value 8285} 8286 8287// LoadBalancerListResult response for ListLoadBalancers API service call. 8288type LoadBalancerListResult struct { 8289 autorest.Response `json:"-"` 8290 // Value - A list of load balancers in a resource group. 8291 Value *[]LoadBalancer `json:"value,omitempty"` 8292 // NextLink - The URL to get the next set of results. 8293 NextLink *string `json:"nextLink,omitempty"` 8294} 8295 8296// LoadBalancerListResultIterator provides access to a complete listing of LoadBalancer values. 8297type LoadBalancerListResultIterator struct { 8298 i int 8299 page LoadBalancerListResultPage 8300} 8301 8302// Next advances to the next value. If there was an error making 8303// the request the iterator does not advance and the error is returned. 8304func (iter *LoadBalancerListResultIterator) Next() error { 8305 iter.i++ 8306 if iter.i < len(iter.page.Values()) { 8307 return nil 8308 } 8309 err := iter.page.Next() 8310 if err != nil { 8311 iter.i-- 8312 return err 8313 } 8314 iter.i = 0 8315 return nil 8316} 8317 8318// NotDone returns true if the enumeration should be started or is not yet complete. 8319func (iter LoadBalancerListResultIterator) NotDone() bool { 8320 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8321} 8322 8323// Response returns the raw server response from the last page request. 8324func (iter LoadBalancerListResultIterator) Response() LoadBalancerListResult { 8325 return iter.page.Response() 8326} 8327 8328// Value returns the current value or a zero-initialized value if the 8329// iterator has advanced beyond the end of the collection. 8330func (iter LoadBalancerListResultIterator) Value() LoadBalancer { 8331 if !iter.page.NotDone() { 8332 return LoadBalancer{} 8333 } 8334 return iter.page.Values()[iter.i] 8335} 8336 8337// IsEmpty returns true if the ListResult contains no values. 8338func (lblr LoadBalancerListResult) IsEmpty() bool { 8339 return lblr.Value == nil || len(*lblr.Value) == 0 8340} 8341 8342// loadBalancerListResultPreparer prepares a request to retrieve the next set of results. 8343// It returns nil if no more results exist. 8344func (lblr LoadBalancerListResult) loadBalancerListResultPreparer() (*http.Request, error) { 8345 if lblr.NextLink == nil || len(to.String(lblr.NextLink)) < 1 { 8346 return nil, nil 8347 } 8348 return autorest.Prepare(&http.Request{}, 8349 autorest.AsJSON(), 8350 autorest.AsGet(), 8351 autorest.WithBaseURL(to.String(lblr.NextLink))) 8352} 8353 8354// LoadBalancerListResultPage contains a page of LoadBalancer values. 8355type LoadBalancerListResultPage struct { 8356 fn func(LoadBalancerListResult) (LoadBalancerListResult, error) 8357 lblr LoadBalancerListResult 8358} 8359 8360// Next advances to the next page of values. If there was an error making 8361// the request the page does not advance and the error is returned. 8362func (page *LoadBalancerListResultPage) Next() error { 8363 next, err := page.fn(page.lblr) 8364 if err != nil { 8365 return err 8366 } 8367 page.lblr = next 8368 return nil 8369} 8370 8371// NotDone returns true if the page enumeration should be started or is not yet complete. 8372func (page LoadBalancerListResultPage) NotDone() bool { 8373 return !page.lblr.IsEmpty() 8374} 8375 8376// Response returns the raw server response from the last page request. 8377func (page LoadBalancerListResultPage) Response() LoadBalancerListResult { 8378 return page.lblr 8379} 8380 8381// Values returns the slice of values for the current page or nil if there are no values. 8382func (page LoadBalancerListResultPage) Values() []LoadBalancer { 8383 if page.lblr.IsEmpty() { 8384 return nil 8385 } 8386 return *page.lblr.Value 8387} 8388 8389// LoadBalancerLoadBalancingRuleListResult response for ListLoadBalancingRule API service call. 8390type LoadBalancerLoadBalancingRuleListResult struct { 8391 autorest.Response `json:"-"` 8392 // Value - A list of load balancing rules in a load balancer. 8393 Value *[]LoadBalancingRule `json:"value,omitempty"` 8394 // NextLink - The URL to get the next set of results. 8395 NextLink *string `json:"nextLink,omitempty"` 8396} 8397 8398// LoadBalancerLoadBalancingRuleListResultIterator provides access to a complete listing of LoadBalancingRule 8399// values. 8400type LoadBalancerLoadBalancingRuleListResultIterator struct { 8401 i int 8402 page LoadBalancerLoadBalancingRuleListResultPage 8403} 8404 8405// Next advances to the next value. If there was an error making 8406// the request the iterator does not advance and the error is returned. 8407func (iter *LoadBalancerLoadBalancingRuleListResultIterator) Next() error { 8408 iter.i++ 8409 if iter.i < len(iter.page.Values()) { 8410 return nil 8411 } 8412 err := iter.page.Next() 8413 if err != nil { 8414 iter.i-- 8415 return err 8416 } 8417 iter.i = 0 8418 return nil 8419} 8420 8421// NotDone returns true if the enumeration should be started or is not yet complete. 8422func (iter LoadBalancerLoadBalancingRuleListResultIterator) NotDone() bool { 8423 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8424} 8425 8426// Response returns the raw server response from the last page request. 8427func (iter LoadBalancerLoadBalancingRuleListResultIterator) Response() LoadBalancerLoadBalancingRuleListResult { 8428 return iter.page.Response() 8429} 8430 8431// Value returns the current value or a zero-initialized value if the 8432// iterator has advanced beyond the end of the collection. 8433func (iter LoadBalancerLoadBalancingRuleListResultIterator) Value() LoadBalancingRule { 8434 if !iter.page.NotDone() { 8435 return LoadBalancingRule{} 8436 } 8437 return iter.page.Values()[iter.i] 8438} 8439 8440// IsEmpty returns true if the ListResult contains no values. 8441func (lblbrlr LoadBalancerLoadBalancingRuleListResult) IsEmpty() bool { 8442 return lblbrlr.Value == nil || len(*lblbrlr.Value) == 0 8443} 8444 8445// loadBalancerLoadBalancingRuleListResultPreparer prepares a request to retrieve the next set of results. 8446// It returns nil if no more results exist. 8447func (lblbrlr LoadBalancerLoadBalancingRuleListResult) loadBalancerLoadBalancingRuleListResultPreparer() (*http.Request, error) { 8448 if lblbrlr.NextLink == nil || len(to.String(lblbrlr.NextLink)) < 1 { 8449 return nil, nil 8450 } 8451 return autorest.Prepare(&http.Request{}, 8452 autorest.AsJSON(), 8453 autorest.AsGet(), 8454 autorest.WithBaseURL(to.String(lblbrlr.NextLink))) 8455} 8456 8457// LoadBalancerLoadBalancingRuleListResultPage contains a page of LoadBalancingRule values. 8458type LoadBalancerLoadBalancingRuleListResultPage struct { 8459 fn func(LoadBalancerLoadBalancingRuleListResult) (LoadBalancerLoadBalancingRuleListResult, error) 8460 lblbrlr LoadBalancerLoadBalancingRuleListResult 8461} 8462 8463// Next advances to the next page of values. If there was an error making 8464// the request the page does not advance and the error is returned. 8465func (page *LoadBalancerLoadBalancingRuleListResultPage) Next() error { 8466 next, err := page.fn(page.lblbrlr) 8467 if err != nil { 8468 return err 8469 } 8470 page.lblbrlr = next 8471 return nil 8472} 8473 8474// NotDone returns true if the page enumeration should be started or is not yet complete. 8475func (page LoadBalancerLoadBalancingRuleListResultPage) NotDone() bool { 8476 return !page.lblbrlr.IsEmpty() 8477} 8478 8479// Response returns the raw server response from the last page request. 8480func (page LoadBalancerLoadBalancingRuleListResultPage) Response() LoadBalancerLoadBalancingRuleListResult { 8481 return page.lblbrlr 8482} 8483 8484// Values returns the slice of values for the current page or nil if there are no values. 8485func (page LoadBalancerLoadBalancingRuleListResultPage) Values() []LoadBalancingRule { 8486 if page.lblbrlr.IsEmpty() { 8487 return nil 8488 } 8489 return *page.lblbrlr.Value 8490} 8491 8492// LoadBalancerProbeListResult response for ListProbe API service call. 8493type LoadBalancerProbeListResult struct { 8494 autorest.Response `json:"-"` 8495 // Value - A list of probes in a load balancer. 8496 Value *[]Probe `json:"value,omitempty"` 8497 // NextLink - The URL to get the next set of results. 8498 NextLink *string `json:"nextLink,omitempty"` 8499} 8500 8501// LoadBalancerProbeListResultIterator provides access to a complete listing of Probe values. 8502type LoadBalancerProbeListResultIterator struct { 8503 i int 8504 page LoadBalancerProbeListResultPage 8505} 8506 8507// Next advances to the next value. If there was an error making 8508// the request the iterator does not advance and the error is returned. 8509func (iter *LoadBalancerProbeListResultIterator) Next() error { 8510 iter.i++ 8511 if iter.i < len(iter.page.Values()) { 8512 return nil 8513 } 8514 err := iter.page.Next() 8515 if err != nil { 8516 iter.i-- 8517 return err 8518 } 8519 iter.i = 0 8520 return nil 8521} 8522 8523// NotDone returns true if the enumeration should be started or is not yet complete. 8524func (iter LoadBalancerProbeListResultIterator) NotDone() bool { 8525 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8526} 8527 8528// Response returns the raw server response from the last page request. 8529func (iter LoadBalancerProbeListResultIterator) Response() LoadBalancerProbeListResult { 8530 return iter.page.Response() 8531} 8532 8533// Value returns the current value or a zero-initialized value if the 8534// iterator has advanced beyond the end of the collection. 8535func (iter LoadBalancerProbeListResultIterator) Value() Probe { 8536 if !iter.page.NotDone() { 8537 return Probe{} 8538 } 8539 return iter.page.Values()[iter.i] 8540} 8541 8542// IsEmpty returns true if the ListResult contains no values. 8543func (lbplr LoadBalancerProbeListResult) IsEmpty() bool { 8544 return lbplr.Value == nil || len(*lbplr.Value) == 0 8545} 8546 8547// loadBalancerProbeListResultPreparer prepares a request to retrieve the next set of results. 8548// It returns nil if no more results exist. 8549func (lbplr LoadBalancerProbeListResult) loadBalancerProbeListResultPreparer() (*http.Request, error) { 8550 if lbplr.NextLink == nil || len(to.String(lbplr.NextLink)) < 1 { 8551 return nil, nil 8552 } 8553 return autorest.Prepare(&http.Request{}, 8554 autorest.AsJSON(), 8555 autorest.AsGet(), 8556 autorest.WithBaseURL(to.String(lbplr.NextLink))) 8557} 8558 8559// LoadBalancerProbeListResultPage contains a page of Probe values. 8560type LoadBalancerProbeListResultPage struct { 8561 fn func(LoadBalancerProbeListResult) (LoadBalancerProbeListResult, error) 8562 lbplr LoadBalancerProbeListResult 8563} 8564 8565// Next advances to the next page of values. If there was an error making 8566// the request the page does not advance and the error is returned. 8567func (page *LoadBalancerProbeListResultPage) Next() error { 8568 next, err := page.fn(page.lbplr) 8569 if err != nil { 8570 return err 8571 } 8572 page.lbplr = next 8573 return nil 8574} 8575 8576// NotDone returns true if the page enumeration should be started or is not yet complete. 8577func (page LoadBalancerProbeListResultPage) NotDone() bool { 8578 return !page.lbplr.IsEmpty() 8579} 8580 8581// Response returns the raw server response from the last page request. 8582func (page LoadBalancerProbeListResultPage) Response() LoadBalancerProbeListResult { 8583 return page.lbplr 8584} 8585 8586// Values returns the slice of values for the current page or nil if there are no values. 8587func (page LoadBalancerProbeListResultPage) Values() []Probe { 8588 if page.lbplr.IsEmpty() { 8589 return nil 8590 } 8591 return *page.lbplr.Value 8592} 8593 8594// LoadBalancerPropertiesFormat properties of the load balancer. 8595type LoadBalancerPropertiesFormat struct { 8596 // FrontendIPConfigurations - Object representing the frontend IPs to be used for the load balancer 8597 FrontendIPConfigurations *[]FrontendIPConfiguration `json:"frontendIPConfigurations,omitempty"` 8598 // BackendAddressPools - Collection of backend address pools used by a load balancer 8599 BackendAddressPools *[]BackendAddressPool `json:"backendAddressPools,omitempty"` 8600 // LoadBalancingRules - Object collection representing the load balancing rules Gets the provisioning 8601 LoadBalancingRules *[]LoadBalancingRule `json:"loadBalancingRules,omitempty"` 8602 // Probes - Collection of probe objects used in the load balancer 8603 Probes *[]Probe `json:"probes,omitempty"` 8604 // 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. 8605 InboundNatRules *[]InboundNatRule `json:"inboundNatRules,omitempty"` 8606 // 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. 8607 InboundNatPools *[]InboundNatPool `json:"inboundNatPools,omitempty"` 8608 // OutboundNatRules - The outbound NAT rules. 8609 OutboundNatRules *[]OutboundNatRule `json:"outboundNatRules,omitempty"` 8610 // ResourceGUID - The resource GUID property of the load balancer resource. 8611 ResourceGUID *string `json:"resourceGuid,omitempty"` 8612 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 8613 ProvisioningState *string `json:"provisioningState,omitempty"` 8614} 8615 8616// LoadBalancersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 8617// operation. 8618type LoadBalancersCreateOrUpdateFuture struct { 8619 azure.Future 8620} 8621 8622// Result returns the result of the asynchronous operation. 8623// If the operation has not completed it will return an error. 8624func (future *LoadBalancersCreateOrUpdateFuture) Result(client LoadBalancersClient) (lb LoadBalancer, err error) { 8625 var done bool 8626 done, err = future.Done(client) 8627 if err != nil { 8628 err = autorest.NewErrorWithError(err, "network.LoadBalancersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 8629 return 8630 } 8631 if !done { 8632 err = azure.NewAsyncOpIncompleteError("network.LoadBalancersCreateOrUpdateFuture") 8633 return 8634 } 8635 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 8636 if lb.Response.Response, err = future.GetResult(sender); err == nil && lb.Response.Response.StatusCode != http.StatusNoContent { 8637 lb, err = client.CreateOrUpdateResponder(lb.Response.Response) 8638 if err != nil { 8639 err = autorest.NewErrorWithError(err, "network.LoadBalancersCreateOrUpdateFuture", "Result", lb.Response.Response, "Failure responding to request") 8640 } 8641 } 8642 return 8643} 8644 8645// LoadBalancersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 8646type LoadBalancersDeleteFuture struct { 8647 azure.Future 8648} 8649 8650// Result returns the result of the asynchronous operation. 8651// If the operation has not completed it will return an error. 8652func (future *LoadBalancersDeleteFuture) Result(client LoadBalancersClient) (ar autorest.Response, err error) { 8653 var done bool 8654 done, err = future.Done(client) 8655 if err != nil { 8656 err = autorest.NewErrorWithError(err, "network.LoadBalancersDeleteFuture", "Result", future.Response(), "Polling failure") 8657 return 8658 } 8659 if !done { 8660 err = azure.NewAsyncOpIncompleteError("network.LoadBalancersDeleteFuture") 8661 return 8662 } 8663 ar.Response = future.Response() 8664 return 8665} 8666 8667// LoadBalancerSku SKU of a load balancer 8668type LoadBalancerSku struct { 8669 // Name - Name of a load balancer SKU. Possible values include: 'LoadBalancerSkuNameBasic', 'LoadBalancerSkuNameStandard' 8670 Name LoadBalancerSkuName `json:"name,omitempty"` 8671} 8672 8673// LoadBalancersUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 8674// operation. 8675type LoadBalancersUpdateTagsFuture struct { 8676 azure.Future 8677} 8678 8679// Result returns the result of the asynchronous operation. 8680// If the operation has not completed it will return an error. 8681func (future *LoadBalancersUpdateTagsFuture) Result(client LoadBalancersClient) (lb LoadBalancer, err error) { 8682 var done bool 8683 done, err = future.Done(client) 8684 if err != nil { 8685 err = autorest.NewErrorWithError(err, "network.LoadBalancersUpdateTagsFuture", "Result", future.Response(), "Polling failure") 8686 return 8687 } 8688 if !done { 8689 err = azure.NewAsyncOpIncompleteError("network.LoadBalancersUpdateTagsFuture") 8690 return 8691 } 8692 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 8693 if lb.Response.Response, err = future.GetResult(sender); err == nil && lb.Response.Response.StatusCode != http.StatusNoContent { 8694 lb, err = client.UpdateTagsResponder(lb.Response.Response) 8695 if err != nil { 8696 err = autorest.NewErrorWithError(err, "network.LoadBalancersUpdateTagsFuture", "Result", lb.Response.Response, "Failure responding to request") 8697 } 8698 } 8699 return 8700} 8701 8702// LoadBalancingRule a load balancing rule for a load balancer. 8703type LoadBalancingRule struct { 8704 autorest.Response `json:"-"` 8705 // LoadBalancingRulePropertiesFormat - Properties of load balancer load balancing rule. 8706 *LoadBalancingRulePropertiesFormat `json:"properties,omitempty"` 8707 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 8708 Name *string `json:"name,omitempty"` 8709 // Etag - A unique read-only string that changes whenever the resource is updated. 8710 Etag *string `json:"etag,omitempty"` 8711 // ID - Resource ID. 8712 ID *string `json:"id,omitempty"` 8713} 8714 8715// MarshalJSON is the custom marshaler for LoadBalancingRule. 8716func (lbr LoadBalancingRule) MarshalJSON() ([]byte, error) { 8717 objectMap := make(map[string]interface{}) 8718 if lbr.LoadBalancingRulePropertiesFormat != nil { 8719 objectMap["properties"] = lbr.LoadBalancingRulePropertiesFormat 8720 } 8721 if lbr.Name != nil { 8722 objectMap["name"] = lbr.Name 8723 } 8724 if lbr.Etag != nil { 8725 objectMap["etag"] = lbr.Etag 8726 } 8727 if lbr.ID != nil { 8728 objectMap["id"] = lbr.ID 8729 } 8730 return json.Marshal(objectMap) 8731} 8732 8733// UnmarshalJSON is the custom unmarshaler for LoadBalancingRule struct. 8734func (lbr *LoadBalancingRule) UnmarshalJSON(body []byte) error { 8735 var m map[string]*json.RawMessage 8736 err := json.Unmarshal(body, &m) 8737 if err != nil { 8738 return err 8739 } 8740 for k, v := range m { 8741 switch k { 8742 case "properties": 8743 if v != nil { 8744 var loadBalancingRulePropertiesFormat LoadBalancingRulePropertiesFormat 8745 err = json.Unmarshal(*v, &loadBalancingRulePropertiesFormat) 8746 if err != nil { 8747 return err 8748 } 8749 lbr.LoadBalancingRulePropertiesFormat = &loadBalancingRulePropertiesFormat 8750 } 8751 case "name": 8752 if v != nil { 8753 var name string 8754 err = json.Unmarshal(*v, &name) 8755 if err != nil { 8756 return err 8757 } 8758 lbr.Name = &name 8759 } 8760 case "etag": 8761 if v != nil { 8762 var etag string 8763 err = json.Unmarshal(*v, &etag) 8764 if err != nil { 8765 return err 8766 } 8767 lbr.Etag = &etag 8768 } 8769 case "id": 8770 if v != nil { 8771 var ID string 8772 err = json.Unmarshal(*v, &ID) 8773 if err != nil { 8774 return err 8775 } 8776 lbr.ID = &ID 8777 } 8778 } 8779 } 8780 8781 return nil 8782} 8783 8784// LoadBalancingRulePropertiesFormat properties of the load balancer. 8785type LoadBalancingRulePropertiesFormat struct { 8786 // FrontendIPConfiguration - A reference to frontend IP addresses. 8787 FrontendIPConfiguration *SubResource `json:"frontendIPConfiguration,omitempty"` 8788 // BackendAddressPool - A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs. 8789 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 8790 // Probe - The reference of the load balancer probe used by the load balancing rule. 8791 Probe *SubResource `json:"probe,omitempty"` 8792 // Protocol - Possible values include: 'TransportProtocolUDP', 'TransportProtocolTCP', 'TransportProtocolAll' 8793 Protocol TransportProtocol `json:"protocol,omitempty"` 8794 // LoadDistribution - The load distribution policy for this rule. Possible values are 'Default', 'SourceIP', and 'SourceIPProtocol'. Possible values include: 'Default', 'SourceIP', 'SourceIPProtocol' 8795 LoadDistribution LoadDistribution `json:"loadDistribution,omitempty"` 8796 // 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" 8797 FrontendPort *int32 `json:"frontendPort,omitempty"` 8798 // BackendPort - The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port" 8799 BackendPort *int32 `json:"backendPort,omitempty"` 8800 // 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. 8801 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 8802 // 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. 8803 EnableFloatingIP *bool `json:"enableFloatingIP,omitempty"` 8804 // DisableOutboundSnat - Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the frontend of the load balancing rule. 8805 DisableOutboundSnat *bool `json:"disableOutboundSnat,omitempty"` 8806 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 8807 ProvisioningState *string `json:"provisioningState,omitempty"` 8808} 8809 8810// LocalNetworkGateway a common class for general resource information 8811type LocalNetworkGateway struct { 8812 autorest.Response `json:"-"` 8813 // LocalNetworkGatewayPropertiesFormat - Properties of the local network gateway. 8814 *LocalNetworkGatewayPropertiesFormat `json:"properties,omitempty"` 8815 // Etag - A unique read-only string that changes whenever the resource is updated. 8816 Etag *string `json:"etag,omitempty"` 8817 // ID - Resource ID. 8818 ID *string `json:"id,omitempty"` 8819 // Name - Resource name. 8820 Name *string `json:"name,omitempty"` 8821 // Type - Resource type. 8822 Type *string `json:"type,omitempty"` 8823 // Location - Resource location. 8824 Location *string `json:"location,omitempty"` 8825 // Tags - Resource tags. 8826 Tags map[string]*string `json:"tags"` 8827} 8828 8829// MarshalJSON is the custom marshaler for LocalNetworkGateway. 8830func (lng LocalNetworkGateway) MarshalJSON() ([]byte, error) { 8831 objectMap := make(map[string]interface{}) 8832 if lng.LocalNetworkGatewayPropertiesFormat != nil { 8833 objectMap["properties"] = lng.LocalNetworkGatewayPropertiesFormat 8834 } 8835 if lng.Etag != nil { 8836 objectMap["etag"] = lng.Etag 8837 } 8838 if lng.ID != nil { 8839 objectMap["id"] = lng.ID 8840 } 8841 if lng.Name != nil { 8842 objectMap["name"] = lng.Name 8843 } 8844 if lng.Type != nil { 8845 objectMap["type"] = lng.Type 8846 } 8847 if lng.Location != nil { 8848 objectMap["location"] = lng.Location 8849 } 8850 if lng.Tags != nil { 8851 objectMap["tags"] = lng.Tags 8852 } 8853 return json.Marshal(objectMap) 8854} 8855 8856// UnmarshalJSON is the custom unmarshaler for LocalNetworkGateway struct. 8857func (lng *LocalNetworkGateway) UnmarshalJSON(body []byte) error { 8858 var m map[string]*json.RawMessage 8859 err := json.Unmarshal(body, &m) 8860 if err != nil { 8861 return err 8862 } 8863 for k, v := range m { 8864 switch k { 8865 case "properties": 8866 if v != nil { 8867 var localNetworkGatewayPropertiesFormat LocalNetworkGatewayPropertiesFormat 8868 err = json.Unmarshal(*v, &localNetworkGatewayPropertiesFormat) 8869 if err != nil { 8870 return err 8871 } 8872 lng.LocalNetworkGatewayPropertiesFormat = &localNetworkGatewayPropertiesFormat 8873 } 8874 case "etag": 8875 if v != nil { 8876 var etag string 8877 err = json.Unmarshal(*v, &etag) 8878 if err != nil { 8879 return err 8880 } 8881 lng.Etag = &etag 8882 } 8883 case "id": 8884 if v != nil { 8885 var ID string 8886 err = json.Unmarshal(*v, &ID) 8887 if err != nil { 8888 return err 8889 } 8890 lng.ID = &ID 8891 } 8892 case "name": 8893 if v != nil { 8894 var name string 8895 err = json.Unmarshal(*v, &name) 8896 if err != nil { 8897 return err 8898 } 8899 lng.Name = &name 8900 } 8901 case "type": 8902 if v != nil { 8903 var typeVar string 8904 err = json.Unmarshal(*v, &typeVar) 8905 if err != nil { 8906 return err 8907 } 8908 lng.Type = &typeVar 8909 } 8910 case "location": 8911 if v != nil { 8912 var location string 8913 err = json.Unmarshal(*v, &location) 8914 if err != nil { 8915 return err 8916 } 8917 lng.Location = &location 8918 } 8919 case "tags": 8920 if v != nil { 8921 var tags map[string]*string 8922 err = json.Unmarshal(*v, &tags) 8923 if err != nil { 8924 return err 8925 } 8926 lng.Tags = tags 8927 } 8928 } 8929 } 8930 8931 return nil 8932} 8933 8934// LocalNetworkGatewayListResult response for ListLocalNetworkGateways API service call. 8935type LocalNetworkGatewayListResult struct { 8936 autorest.Response `json:"-"` 8937 // Value - A list of local network gateways that exists in a resource group. 8938 Value *[]LocalNetworkGateway `json:"value,omitempty"` 8939 // NextLink - The URL to get the next set of results. 8940 NextLink *string `json:"nextLink,omitempty"` 8941} 8942 8943// LocalNetworkGatewayListResultIterator provides access to a complete listing of LocalNetworkGateway values. 8944type LocalNetworkGatewayListResultIterator struct { 8945 i int 8946 page LocalNetworkGatewayListResultPage 8947} 8948 8949// Next advances to the next value. If there was an error making 8950// the request the iterator does not advance and the error is returned. 8951func (iter *LocalNetworkGatewayListResultIterator) Next() error { 8952 iter.i++ 8953 if iter.i < len(iter.page.Values()) { 8954 return nil 8955 } 8956 err := iter.page.Next() 8957 if err != nil { 8958 iter.i-- 8959 return err 8960 } 8961 iter.i = 0 8962 return nil 8963} 8964 8965// NotDone returns true if the enumeration should be started or is not yet complete. 8966func (iter LocalNetworkGatewayListResultIterator) NotDone() bool { 8967 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8968} 8969 8970// Response returns the raw server response from the last page request. 8971func (iter LocalNetworkGatewayListResultIterator) Response() LocalNetworkGatewayListResult { 8972 return iter.page.Response() 8973} 8974 8975// Value returns the current value or a zero-initialized value if the 8976// iterator has advanced beyond the end of the collection. 8977func (iter LocalNetworkGatewayListResultIterator) Value() LocalNetworkGateway { 8978 if !iter.page.NotDone() { 8979 return LocalNetworkGateway{} 8980 } 8981 return iter.page.Values()[iter.i] 8982} 8983 8984// IsEmpty returns true if the ListResult contains no values. 8985func (lnglr LocalNetworkGatewayListResult) IsEmpty() bool { 8986 return lnglr.Value == nil || len(*lnglr.Value) == 0 8987} 8988 8989// localNetworkGatewayListResultPreparer prepares a request to retrieve the next set of results. 8990// It returns nil if no more results exist. 8991func (lnglr LocalNetworkGatewayListResult) localNetworkGatewayListResultPreparer() (*http.Request, error) { 8992 if lnglr.NextLink == nil || len(to.String(lnglr.NextLink)) < 1 { 8993 return nil, nil 8994 } 8995 return autorest.Prepare(&http.Request{}, 8996 autorest.AsJSON(), 8997 autorest.AsGet(), 8998 autorest.WithBaseURL(to.String(lnglr.NextLink))) 8999} 9000 9001// LocalNetworkGatewayListResultPage contains a page of LocalNetworkGateway values. 9002type LocalNetworkGatewayListResultPage struct { 9003 fn func(LocalNetworkGatewayListResult) (LocalNetworkGatewayListResult, error) 9004 lnglr LocalNetworkGatewayListResult 9005} 9006 9007// Next advances to the next page of values. If there was an error making 9008// the request the page does not advance and the error is returned. 9009func (page *LocalNetworkGatewayListResultPage) Next() error { 9010 next, err := page.fn(page.lnglr) 9011 if err != nil { 9012 return err 9013 } 9014 page.lnglr = next 9015 return nil 9016} 9017 9018// NotDone returns true if the page enumeration should be started or is not yet complete. 9019func (page LocalNetworkGatewayListResultPage) NotDone() bool { 9020 return !page.lnglr.IsEmpty() 9021} 9022 9023// Response returns the raw server response from the last page request. 9024func (page LocalNetworkGatewayListResultPage) Response() LocalNetworkGatewayListResult { 9025 return page.lnglr 9026} 9027 9028// Values returns the slice of values for the current page or nil if there are no values. 9029func (page LocalNetworkGatewayListResultPage) Values() []LocalNetworkGateway { 9030 if page.lnglr.IsEmpty() { 9031 return nil 9032 } 9033 return *page.lnglr.Value 9034} 9035 9036// LocalNetworkGatewayPropertiesFormat localNetworkGateway properties 9037type LocalNetworkGatewayPropertiesFormat struct { 9038 // LocalNetworkAddressSpace - Local network site address space. 9039 LocalNetworkAddressSpace *AddressSpace `json:"localNetworkAddressSpace,omitempty"` 9040 // GatewayIPAddress - IP address of local network gateway. 9041 GatewayIPAddress *string `json:"gatewayIpAddress,omitempty"` 9042 // BgpSettings - Local network gateway's BGP speaker settings. 9043 BgpSettings *BgpSettings `json:"bgpSettings,omitempty"` 9044 // ResourceGUID - The resource GUID property of the LocalNetworkGateway resource. 9045 ResourceGUID *string `json:"resourceGuid,omitempty"` 9046 // ProvisioningState - The provisioning state of the LocalNetworkGateway resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 9047 ProvisioningState *string `json:"provisioningState,omitempty"` 9048} 9049 9050// LocalNetworkGatewaysCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 9051// long-running operation. 9052type LocalNetworkGatewaysCreateOrUpdateFuture struct { 9053 azure.Future 9054} 9055 9056// Result returns the result of the asynchronous operation. 9057// If the operation has not completed it will return an error. 9058func (future *LocalNetworkGatewaysCreateOrUpdateFuture) Result(client LocalNetworkGatewaysClient) (lng LocalNetworkGateway, err error) { 9059 var done bool 9060 done, err = future.Done(client) 9061 if err != nil { 9062 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 9063 return 9064 } 9065 if !done { 9066 err = azure.NewAsyncOpIncompleteError("network.LocalNetworkGatewaysCreateOrUpdateFuture") 9067 return 9068 } 9069 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9070 if lng.Response.Response, err = future.GetResult(sender); err == nil && lng.Response.Response.StatusCode != http.StatusNoContent { 9071 lng, err = client.CreateOrUpdateResponder(lng.Response.Response) 9072 if err != nil { 9073 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysCreateOrUpdateFuture", "Result", lng.Response.Response, "Failure responding to request") 9074 } 9075 } 9076 return 9077} 9078 9079// LocalNetworkGatewaysDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 9080// operation. 9081type LocalNetworkGatewaysDeleteFuture struct { 9082 azure.Future 9083} 9084 9085// Result returns the result of the asynchronous operation. 9086// If the operation has not completed it will return an error. 9087func (future *LocalNetworkGatewaysDeleteFuture) Result(client LocalNetworkGatewaysClient) (ar autorest.Response, err error) { 9088 var done bool 9089 done, err = future.Done(client) 9090 if err != nil { 9091 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysDeleteFuture", "Result", future.Response(), "Polling failure") 9092 return 9093 } 9094 if !done { 9095 err = azure.NewAsyncOpIncompleteError("network.LocalNetworkGatewaysDeleteFuture") 9096 return 9097 } 9098 ar.Response = future.Response() 9099 return 9100} 9101 9102// LocalNetworkGatewaysUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 9103// operation. 9104type LocalNetworkGatewaysUpdateTagsFuture struct { 9105 azure.Future 9106} 9107 9108// Result returns the result of the asynchronous operation. 9109// If the operation has not completed it will return an error. 9110func (future *LocalNetworkGatewaysUpdateTagsFuture) Result(client LocalNetworkGatewaysClient) (lng LocalNetworkGateway, err error) { 9111 var done bool 9112 done, err = future.Done(client) 9113 if err != nil { 9114 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysUpdateTagsFuture", "Result", future.Response(), "Polling failure") 9115 return 9116 } 9117 if !done { 9118 err = azure.NewAsyncOpIncompleteError("network.LocalNetworkGatewaysUpdateTagsFuture") 9119 return 9120 } 9121 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9122 if lng.Response.Response, err = future.GetResult(sender); err == nil && lng.Response.Response.StatusCode != http.StatusNoContent { 9123 lng, err = client.UpdateTagsResponder(lng.Response.Response) 9124 if err != nil { 9125 err = autorest.NewErrorWithError(err, "network.LocalNetworkGatewaysUpdateTagsFuture", "Result", lng.Response.Response, "Failure responding to request") 9126 } 9127 } 9128 return 9129} 9130 9131// LogSpecification description of logging specification. 9132type LogSpecification struct { 9133 // Name - The name of the specification. 9134 Name *string `json:"name,omitempty"` 9135 // DisplayName - The display name of the specification. 9136 DisplayName *string `json:"displayName,omitempty"` 9137 // BlobDuration - Duration of the blob. 9138 BlobDuration *string `json:"blobDuration,omitempty"` 9139} 9140 9141// MetricSpecification description of metrics specification. 9142type MetricSpecification struct { 9143 // Name - The name of the metric. 9144 Name *string `json:"name,omitempty"` 9145 // DisplayName - The display name of the metric. 9146 DisplayName *string `json:"displayName,omitempty"` 9147 // DisplayDescription - The description of the metric. 9148 DisplayDescription *string `json:"displayDescription,omitempty"` 9149 // Unit - Units the metric to be displayed in. 9150 Unit *string `json:"unit,omitempty"` 9151 // AggregationType - The aggregation type. 9152 AggregationType *string `json:"aggregationType,omitempty"` 9153 // Availabilities - List of availability. 9154 Availabilities *[]Availability `json:"availabilities,omitempty"` 9155 // EnableRegionalMdmAccount - Whether regional MDM account enabled. 9156 EnableRegionalMdmAccount *bool `json:"enableRegionalMdmAccount,omitempty"` 9157 // FillGapWithZero - Whether gaps would be filled with zeros. 9158 FillGapWithZero *bool `json:"fillGapWithZero,omitempty"` 9159 // MetricFilterPattern - Pattern for the filter of the metric. 9160 MetricFilterPattern *string `json:"metricFilterPattern,omitempty"` 9161 // Dimensions - List of dimensions. 9162 Dimensions *[]Dimension `json:"dimensions,omitempty"` 9163 // IsInternal - Whether the metric is internal. 9164 IsInternal *bool `json:"isInternal,omitempty"` 9165 // SourceMdmAccount - The source MDM account. 9166 SourceMdmAccount *string `json:"sourceMdmAccount,omitempty"` 9167 // SourceMdmNamespace - The source MDM namespace. 9168 SourceMdmNamespace *string `json:"sourceMdmNamespace,omitempty"` 9169 // ResourceIDDimensionNameOverride - The resource Id dimension name override. 9170 ResourceIDDimensionNameOverride *string `json:"resourceIdDimensionNameOverride,omitempty"` 9171} 9172 9173// NextHopParameters parameters that define the source and destination endpoint. 9174type NextHopParameters struct { 9175 // TargetResourceID - The resource identifier of the target resource against which the action is to be performed. 9176 TargetResourceID *string `json:"targetResourceId,omitempty"` 9177 // SourceIPAddress - The source IP address. 9178 SourceIPAddress *string `json:"sourceIPAddress,omitempty"` 9179 // DestinationIPAddress - The destination IP address. 9180 DestinationIPAddress *string `json:"destinationIPAddress,omitempty"` 9181 // 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). 9182 TargetNicResourceID *string `json:"targetNicResourceId,omitempty"` 9183} 9184 9185// NextHopResult the information about next hop from the specified VM. 9186type NextHopResult struct { 9187 autorest.Response `json:"-"` 9188 // NextHopType - Next hop type. Possible values include: 'NextHopTypeInternet', 'NextHopTypeVirtualAppliance', 'NextHopTypeVirtualNetworkGateway', 'NextHopTypeVnetLocal', 'NextHopTypeHyperNetGateway', 'NextHopTypeNone' 9189 NextHopType NextHopType `json:"nextHopType,omitempty"` 9190 // NextHopIPAddress - Next hop IP Address 9191 NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"` 9192 // 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'. 9193 RouteTableID *string `json:"routeTableId,omitempty"` 9194} 9195 9196// Operation network REST API operation definition. 9197type Operation struct { 9198 // Name - Operation name: {provider}/{resource}/{operation} 9199 Name *string `json:"name,omitempty"` 9200 // Display - Display metadata associated with the operation. 9201 Display *OperationDisplay `json:"display,omitempty"` 9202 // Origin - Origin of the operation. 9203 Origin *string `json:"origin,omitempty"` 9204 // OperationPropertiesFormat - Operation properties format. 9205 *OperationPropertiesFormat `json:"properties,omitempty"` 9206} 9207 9208// MarshalJSON is the custom marshaler for Operation. 9209func (o Operation) MarshalJSON() ([]byte, error) { 9210 objectMap := make(map[string]interface{}) 9211 if o.Name != nil { 9212 objectMap["name"] = o.Name 9213 } 9214 if o.Display != nil { 9215 objectMap["display"] = o.Display 9216 } 9217 if o.Origin != nil { 9218 objectMap["origin"] = o.Origin 9219 } 9220 if o.OperationPropertiesFormat != nil { 9221 objectMap["properties"] = o.OperationPropertiesFormat 9222 } 9223 return json.Marshal(objectMap) 9224} 9225 9226// UnmarshalJSON is the custom unmarshaler for Operation struct. 9227func (o *Operation) UnmarshalJSON(body []byte) error { 9228 var m map[string]*json.RawMessage 9229 err := json.Unmarshal(body, &m) 9230 if err != nil { 9231 return err 9232 } 9233 for k, v := range m { 9234 switch k { 9235 case "name": 9236 if v != nil { 9237 var name string 9238 err = json.Unmarshal(*v, &name) 9239 if err != nil { 9240 return err 9241 } 9242 o.Name = &name 9243 } 9244 case "display": 9245 if v != nil { 9246 var display OperationDisplay 9247 err = json.Unmarshal(*v, &display) 9248 if err != nil { 9249 return err 9250 } 9251 o.Display = &display 9252 } 9253 case "origin": 9254 if v != nil { 9255 var origin string 9256 err = json.Unmarshal(*v, &origin) 9257 if err != nil { 9258 return err 9259 } 9260 o.Origin = &origin 9261 } 9262 case "properties": 9263 if v != nil { 9264 var operationPropertiesFormat OperationPropertiesFormat 9265 err = json.Unmarshal(*v, &operationPropertiesFormat) 9266 if err != nil { 9267 return err 9268 } 9269 o.OperationPropertiesFormat = &operationPropertiesFormat 9270 } 9271 } 9272 } 9273 9274 return nil 9275} 9276 9277// OperationDisplay display metadata associated with the operation. 9278type OperationDisplay struct { 9279 // Provider - Service provider: Microsoft Network. 9280 Provider *string `json:"provider,omitempty"` 9281 // Resource - Resource on which the operation is performed. 9282 Resource *string `json:"resource,omitempty"` 9283 // Operation - Type of the operation: get, read, delete, etc. 9284 Operation *string `json:"operation,omitempty"` 9285 // Description - Description of the operation. 9286 Description *string `json:"description,omitempty"` 9287} 9288 9289// OperationListResult result of the request to list Network operations. It contains a list of operations and a URL 9290// link to get the next set of results. 9291type OperationListResult struct { 9292 autorest.Response `json:"-"` 9293 // Value - List of Network operations supported by the Network resource provider. 9294 Value *[]Operation `json:"value,omitempty"` 9295 // NextLink - URL to get the next set of operation list results if there are any. 9296 NextLink *string `json:"nextLink,omitempty"` 9297} 9298 9299// OperationListResultIterator provides access to a complete listing of Operation values. 9300type OperationListResultIterator struct { 9301 i int 9302 page OperationListResultPage 9303} 9304 9305// Next advances to the next value. If there was an error making 9306// the request the iterator does not advance and the error is returned. 9307func (iter *OperationListResultIterator) Next() error { 9308 iter.i++ 9309 if iter.i < len(iter.page.Values()) { 9310 return nil 9311 } 9312 err := iter.page.Next() 9313 if err != nil { 9314 iter.i-- 9315 return err 9316 } 9317 iter.i = 0 9318 return nil 9319} 9320 9321// NotDone returns true if the enumeration should be started or is not yet complete. 9322func (iter OperationListResultIterator) NotDone() bool { 9323 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 9324} 9325 9326// Response returns the raw server response from the last page request. 9327func (iter OperationListResultIterator) Response() OperationListResult { 9328 return iter.page.Response() 9329} 9330 9331// Value returns the current value or a zero-initialized value if the 9332// iterator has advanced beyond the end of the collection. 9333func (iter OperationListResultIterator) Value() Operation { 9334 if !iter.page.NotDone() { 9335 return Operation{} 9336 } 9337 return iter.page.Values()[iter.i] 9338} 9339 9340// IsEmpty returns true if the ListResult contains no values. 9341func (olr OperationListResult) IsEmpty() bool { 9342 return olr.Value == nil || len(*olr.Value) == 0 9343} 9344 9345// operationListResultPreparer prepares a request to retrieve the next set of results. 9346// It returns nil if no more results exist. 9347func (olr OperationListResult) operationListResultPreparer() (*http.Request, error) { 9348 if olr.NextLink == nil || len(to.String(olr.NextLink)) < 1 { 9349 return nil, nil 9350 } 9351 return autorest.Prepare(&http.Request{}, 9352 autorest.AsJSON(), 9353 autorest.AsGet(), 9354 autorest.WithBaseURL(to.String(olr.NextLink))) 9355} 9356 9357// OperationListResultPage contains a page of Operation values. 9358type OperationListResultPage struct { 9359 fn func(OperationListResult) (OperationListResult, error) 9360 olr OperationListResult 9361} 9362 9363// Next advances to the next page of values. If there was an error making 9364// the request the page does not advance and the error is returned. 9365func (page *OperationListResultPage) Next() error { 9366 next, err := page.fn(page.olr) 9367 if err != nil { 9368 return err 9369 } 9370 page.olr = next 9371 return nil 9372} 9373 9374// NotDone returns true if the page enumeration should be started or is not yet complete. 9375func (page OperationListResultPage) NotDone() bool { 9376 return !page.olr.IsEmpty() 9377} 9378 9379// Response returns the raw server response from the last page request. 9380func (page OperationListResultPage) Response() OperationListResult { 9381 return page.olr 9382} 9383 9384// Values returns the slice of values for the current page or nil if there are no values. 9385func (page OperationListResultPage) Values() []Operation { 9386 if page.olr.IsEmpty() { 9387 return nil 9388 } 9389 return *page.olr.Value 9390} 9391 9392// OperationPropertiesFormat description of operation properties format. 9393type OperationPropertiesFormat struct { 9394 // ServiceSpecification - Specification of the service. 9395 ServiceSpecification *OperationPropertiesFormatServiceSpecification `json:"serviceSpecification,omitempty"` 9396} 9397 9398// OperationPropertiesFormatServiceSpecification specification of the service. 9399type OperationPropertiesFormatServiceSpecification struct { 9400 // MetricSpecifications - Operation service specification. 9401 MetricSpecifications *[]MetricSpecification `json:"metricSpecifications,omitempty"` 9402 // LogSpecifications - Operation log specification. 9403 LogSpecifications *[]LogSpecification `json:"logSpecifications,omitempty"` 9404} 9405 9406// OutboundNatRule outbound NAT pool of the load balancer. 9407type OutboundNatRule struct { 9408 // OutboundNatRulePropertiesFormat - Properties of load balancer outbound nat rule. 9409 *OutboundNatRulePropertiesFormat `json:"properties,omitempty"` 9410 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 9411 Name *string `json:"name,omitempty"` 9412 // Etag - A unique read-only string that changes whenever the resource is updated. 9413 Etag *string `json:"etag,omitempty"` 9414 // ID - Resource ID. 9415 ID *string `json:"id,omitempty"` 9416} 9417 9418// MarshalJSON is the custom marshaler for OutboundNatRule. 9419func (onr OutboundNatRule) MarshalJSON() ([]byte, error) { 9420 objectMap := make(map[string]interface{}) 9421 if onr.OutboundNatRulePropertiesFormat != nil { 9422 objectMap["properties"] = onr.OutboundNatRulePropertiesFormat 9423 } 9424 if onr.Name != nil { 9425 objectMap["name"] = onr.Name 9426 } 9427 if onr.Etag != nil { 9428 objectMap["etag"] = onr.Etag 9429 } 9430 if onr.ID != nil { 9431 objectMap["id"] = onr.ID 9432 } 9433 return json.Marshal(objectMap) 9434} 9435 9436// UnmarshalJSON is the custom unmarshaler for OutboundNatRule struct. 9437func (onr *OutboundNatRule) UnmarshalJSON(body []byte) error { 9438 var m map[string]*json.RawMessage 9439 err := json.Unmarshal(body, &m) 9440 if err != nil { 9441 return err 9442 } 9443 for k, v := range m { 9444 switch k { 9445 case "properties": 9446 if v != nil { 9447 var outboundNatRulePropertiesFormat OutboundNatRulePropertiesFormat 9448 err = json.Unmarshal(*v, &outboundNatRulePropertiesFormat) 9449 if err != nil { 9450 return err 9451 } 9452 onr.OutboundNatRulePropertiesFormat = &outboundNatRulePropertiesFormat 9453 } 9454 case "name": 9455 if v != nil { 9456 var name string 9457 err = json.Unmarshal(*v, &name) 9458 if err != nil { 9459 return err 9460 } 9461 onr.Name = &name 9462 } 9463 case "etag": 9464 if v != nil { 9465 var etag string 9466 err = json.Unmarshal(*v, &etag) 9467 if err != nil { 9468 return err 9469 } 9470 onr.Etag = &etag 9471 } 9472 case "id": 9473 if v != nil { 9474 var ID string 9475 err = json.Unmarshal(*v, &ID) 9476 if err != nil { 9477 return err 9478 } 9479 onr.ID = &ID 9480 } 9481 } 9482 } 9483 9484 return nil 9485} 9486 9487// OutboundNatRulePropertiesFormat outbound NAT pool of the load balancer. 9488type OutboundNatRulePropertiesFormat struct { 9489 // AllocatedOutboundPorts - The number of outbound ports to be used for NAT. 9490 AllocatedOutboundPorts *int32 `json:"allocatedOutboundPorts,omitempty"` 9491 // FrontendIPConfigurations - The Frontend IP addresses of the load balancer. 9492 FrontendIPConfigurations *[]SubResource `json:"frontendIPConfigurations,omitempty"` 9493 // BackendAddressPool - A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. 9494 BackendAddressPool *SubResource `json:"backendAddressPool,omitempty"` 9495 // ProvisioningState - Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 9496 ProvisioningState *string `json:"provisioningState,omitempty"` 9497} 9498 9499// PacketCapture parameters that define the create packet capture operation. 9500type PacketCapture struct { 9501 // Name - Name of the packet capture. 9502 Name *string `json:"name,omitempty"` 9503 // ID - ID of the packet capture. 9504 ID *string `json:"id,omitempty"` 9505 // Type - Packet capture type. 9506 Type *string `json:"type,omitempty"` 9507 *PacketCaptureParameters `json:"properties,omitempty"` 9508} 9509 9510// MarshalJSON is the custom marshaler for PacketCapture. 9511func (pc PacketCapture) MarshalJSON() ([]byte, error) { 9512 objectMap := make(map[string]interface{}) 9513 if pc.Name != nil { 9514 objectMap["name"] = pc.Name 9515 } 9516 if pc.ID != nil { 9517 objectMap["id"] = pc.ID 9518 } 9519 if pc.Type != nil { 9520 objectMap["type"] = pc.Type 9521 } 9522 if pc.PacketCaptureParameters != nil { 9523 objectMap["properties"] = pc.PacketCaptureParameters 9524 } 9525 return json.Marshal(objectMap) 9526} 9527 9528// UnmarshalJSON is the custom unmarshaler for PacketCapture struct. 9529func (pc *PacketCapture) UnmarshalJSON(body []byte) error { 9530 var m map[string]*json.RawMessage 9531 err := json.Unmarshal(body, &m) 9532 if err != nil { 9533 return err 9534 } 9535 for k, v := range m { 9536 switch k { 9537 case "name": 9538 if v != nil { 9539 var name string 9540 err = json.Unmarshal(*v, &name) 9541 if err != nil { 9542 return err 9543 } 9544 pc.Name = &name 9545 } 9546 case "id": 9547 if v != nil { 9548 var ID string 9549 err = json.Unmarshal(*v, &ID) 9550 if err != nil { 9551 return err 9552 } 9553 pc.ID = &ID 9554 } 9555 case "type": 9556 if v != nil { 9557 var typeVar string 9558 err = json.Unmarshal(*v, &typeVar) 9559 if err != nil { 9560 return err 9561 } 9562 pc.Type = &typeVar 9563 } 9564 case "properties": 9565 if v != nil { 9566 var packetCaptureParameters PacketCaptureParameters 9567 err = json.Unmarshal(*v, &packetCaptureParameters) 9568 if err != nil { 9569 return err 9570 } 9571 pc.PacketCaptureParameters = &packetCaptureParameters 9572 } 9573 } 9574 } 9575 9576 return nil 9577} 9578 9579// PacketCaptureFilter filter that is applied to packet capture request. Multiple filters can be applied. 9580type PacketCaptureFilter struct { 9581 // Protocol - Protocol to be filtered on. Possible values include: 'PcProtocolTCP', 'PcProtocolUDP', 'PcProtocolAny' 9582 Protocol PcProtocol `json:"protocol,omitempty"` 9583 // 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. 9584 LocalIPAddress *string `json:"localIPAddress,omitempty"` 9585 // 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. 9586 RemoteIPAddress *string `json:"remoteIPAddress,omitempty"` 9587 // 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. 9588 LocalPort *string `json:"localPort,omitempty"` 9589 // 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. 9590 RemotePort *string `json:"remotePort,omitempty"` 9591} 9592 9593// PacketCaptureListResult list of packet capture sessions. 9594type PacketCaptureListResult struct { 9595 autorest.Response `json:"-"` 9596 // Value - Information about packet capture sessions. 9597 Value *[]PacketCaptureResult `json:"value,omitempty"` 9598} 9599 9600// PacketCaptureParameters parameters that define the create packet capture operation. 9601type PacketCaptureParameters struct { 9602 // Target - The ID of the targeted resource, only VM is currently supported. 9603 Target *string `json:"target,omitempty"` 9604 // BytesToCapturePerPacket - Number of bytes captured per packet, the remaining bytes are truncated. 9605 BytesToCapturePerPacket *int32 `json:"bytesToCapturePerPacket,omitempty"` 9606 // TotalBytesPerSession - Maximum size of the capture output. 9607 TotalBytesPerSession *int32 `json:"totalBytesPerSession,omitempty"` 9608 // TimeLimitInSeconds - Maximum duration of the capture session in seconds. 9609 TimeLimitInSeconds *int32 `json:"timeLimitInSeconds,omitempty"` 9610 StorageLocation *PacketCaptureStorageLocation `json:"storageLocation,omitempty"` 9611 Filters *[]PacketCaptureFilter `json:"filters,omitempty"` 9612} 9613 9614// PacketCaptureQueryStatusResult status of packet capture session. 9615type PacketCaptureQueryStatusResult struct { 9616 autorest.Response `json:"-"` 9617 // Name - The name of the packet capture resource. 9618 Name *string `json:"name,omitempty"` 9619 // ID - The ID of the packet capture resource. 9620 ID *string `json:"id,omitempty"` 9621 // CaptureStartTime - The start time of the packet capture session. 9622 CaptureStartTime *date.Time `json:"captureStartTime,omitempty"` 9623 // PacketCaptureStatus - The status of the packet capture session. Possible values include: 'PcStatusNotStarted', 'PcStatusRunning', 'PcStatusStopped', 'PcStatusError', 'PcStatusUnknown' 9624 PacketCaptureStatus PcStatus `json:"packetCaptureStatus,omitempty"` 9625 // StopReason - The reason the current packet capture session was stopped. 9626 StopReason *string `json:"stopReason,omitempty"` 9627 // PacketCaptureError - List of errors of packet capture session. 9628 PacketCaptureError *[]PcError `json:"packetCaptureError,omitempty"` 9629} 9630 9631// PacketCaptureResult information about packet capture session. 9632type PacketCaptureResult struct { 9633 autorest.Response `json:"-"` 9634 // Name - Name of the packet capture. 9635 Name *string `json:"name,omitempty"` 9636 // ID - ID of the packet capture. 9637 ID *string `json:"id,omitempty"` 9638 // Type - Packet capture type. 9639 Type *string `json:"type,omitempty"` 9640 Etag *string `json:"etag,omitempty"` 9641 *PacketCaptureResultProperties `json:"properties,omitempty"` 9642} 9643 9644// MarshalJSON is the custom marshaler for PacketCaptureResult. 9645func (pcr PacketCaptureResult) MarshalJSON() ([]byte, error) { 9646 objectMap := make(map[string]interface{}) 9647 if pcr.Name != nil { 9648 objectMap["name"] = pcr.Name 9649 } 9650 if pcr.ID != nil { 9651 objectMap["id"] = pcr.ID 9652 } 9653 if pcr.Type != nil { 9654 objectMap["type"] = pcr.Type 9655 } 9656 if pcr.Etag != nil { 9657 objectMap["etag"] = pcr.Etag 9658 } 9659 if pcr.PacketCaptureResultProperties != nil { 9660 objectMap["properties"] = pcr.PacketCaptureResultProperties 9661 } 9662 return json.Marshal(objectMap) 9663} 9664 9665// UnmarshalJSON is the custom unmarshaler for PacketCaptureResult struct. 9666func (pcr *PacketCaptureResult) UnmarshalJSON(body []byte) error { 9667 var m map[string]*json.RawMessage 9668 err := json.Unmarshal(body, &m) 9669 if err != nil { 9670 return err 9671 } 9672 for k, v := range m { 9673 switch k { 9674 case "name": 9675 if v != nil { 9676 var name string 9677 err = json.Unmarshal(*v, &name) 9678 if err != nil { 9679 return err 9680 } 9681 pcr.Name = &name 9682 } 9683 case "id": 9684 if v != nil { 9685 var ID string 9686 err = json.Unmarshal(*v, &ID) 9687 if err != nil { 9688 return err 9689 } 9690 pcr.ID = &ID 9691 } 9692 case "type": 9693 if v != nil { 9694 var typeVar string 9695 err = json.Unmarshal(*v, &typeVar) 9696 if err != nil { 9697 return err 9698 } 9699 pcr.Type = &typeVar 9700 } 9701 case "etag": 9702 if v != nil { 9703 var etag string 9704 err = json.Unmarshal(*v, &etag) 9705 if err != nil { 9706 return err 9707 } 9708 pcr.Etag = &etag 9709 } 9710 case "properties": 9711 if v != nil { 9712 var packetCaptureResultProperties PacketCaptureResultProperties 9713 err = json.Unmarshal(*v, &packetCaptureResultProperties) 9714 if err != nil { 9715 return err 9716 } 9717 pcr.PacketCaptureResultProperties = &packetCaptureResultProperties 9718 } 9719 } 9720 } 9721 9722 return nil 9723} 9724 9725// PacketCaptureResultProperties describes the properties of a packet capture session. 9726type PacketCaptureResultProperties struct { 9727 // ProvisioningState - The provisioning state of the packet capture session. Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' 9728 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 9729 // Target - The ID of the targeted resource, only VM is currently supported. 9730 Target *string `json:"target,omitempty"` 9731 // BytesToCapturePerPacket - Number of bytes captured per packet, the remaining bytes are truncated. 9732 BytesToCapturePerPacket *int32 `json:"bytesToCapturePerPacket,omitempty"` 9733 // TotalBytesPerSession - Maximum size of the capture output. 9734 TotalBytesPerSession *int32 `json:"totalBytesPerSession,omitempty"` 9735 // TimeLimitInSeconds - Maximum duration of the capture session in seconds. 9736 TimeLimitInSeconds *int32 `json:"timeLimitInSeconds,omitempty"` 9737 StorageLocation *PacketCaptureStorageLocation `json:"storageLocation,omitempty"` 9738 Filters *[]PacketCaptureFilter `json:"filters,omitempty"` 9739} 9740 9741// PacketCapturesCreateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 9742type PacketCapturesCreateFuture struct { 9743 azure.Future 9744} 9745 9746// Result returns the result of the asynchronous operation. 9747// If the operation has not completed it will return an error. 9748func (future *PacketCapturesCreateFuture) Result(client PacketCapturesClient) (pcr PacketCaptureResult, err error) { 9749 var done bool 9750 done, err = future.Done(client) 9751 if err != nil { 9752 err = autorest.NewErrorWithError(err, "network.PacketCapturesCreateFuture", "Result", future.Response(), "Polling failure") 9753 return 9754 } 9755 if !done { 9756 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesCreateFuture") 9757 return 9758 } 9759 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9760 if pcr.Response.Response, err = future.GetResult(sender); err == nil && pcr.Response.Response.StatusCode != http.StatusNoContent { 9761 pcr, err = client.CreateResponder(pcr.Response.Response) 9762 if err != nil { 9763 err = autorest.NewErrorWithError(err, "network.PacketCapturesCreateFuture", "Result", pcr.Response.Response, "Failure responding to request") 9764 } 9765 } 9766 return 9767} 9768 9769// PacketCapturesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 9770type PacketCapturesDeleteFuture struct { 9771 azure.Future 9772} 9773 9774// Result returns the result of the asynchronous operation. 9775// If the operation has not completed it will return an error. 9776func (future *PacketCapturesDeleteFuture) Result(client PacketCapturesClient) (ar autorest.Response, err error) { 9777 var done bool 9778 done, err = future.Done(client) 9779 if err != nil { 9780 err = autorest.NewErrorWithError(err, "network.PacketCapturesDeleteFuture", "Result", future.Response(), "Polling failure") 9781 return 9782 } 9783 if !done { 9784 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesDeleteFuture") 9785 return 9786 } 9787 ar.Response = future.Response() 9788 return 9789} 9790 9791// PacketCapturesGetStatusFuture an abstraction for monitoring and retrieving the results of a long-running 9792// operation. 9793type PacketCapturesGetStatusFuture struct { 9794 azure.Future 9795} 9796 9797// Result returns the result of the asynchronous operation. 9798// If the operation has not completed it will return an error. 9799func (future *PacketCapturesGetStatusFuture) Result(client PacketCapturesClient) (pcqsr PacketCaptureQueryStatusResult, err error) { 9800 var done bool 9801 done, err = future.Done(client) 9802 if err != nil { 9803 err = autorest.NewErrorWithError(err, "network.PacketCapturesGetStatusFuture", "Result", future.Response(), "Polling failure") 9804 return 9805 } 9806 if !done { 9807 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesGetStatusFuture") 9808 return 9809 } 9810 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9811 if pcqsr.Response.Response, err = future.GetResult(sender); err == nil && pcqsr.Response.Response.StatusCode != http.StatusNoContent { 9812 pcqsr, err = client.GetStatusResponder(pcqsr.Response.Response) 9813 if err != nil { 9814 err = autorest.NewErrorWithError(err, "network.PacketCapturesGetStatusFuture", "Result", pcqsr.Response.Response, "Failure responding to request") 9815 } 9816 } 9817 return 9818} 9819 9820// PacketCapturesStopFuture an abstraction for monitoring and retrieving the results of a long-running operation. 9821type PacketCapturesStopFuture struct { 9822 azure.Future 9823} 9824 9825// Result returns the result of the asynchronous operation. 9826// If the operation has not completed it will return an error. 9827func (future *PacketCapturesStopFuture) Result(client PacketCapturesClient) (ar autorest.Response, err error) { 9828 var done bool 9829 done, err = future.Done(client) 9830 if err != nil { 9831 err = autorest.NewErrorWithError(err, "network.PacketCapturesStopFuture", "Result", future.Response(), "Polling failure") 9832 return 9833 } 9834 if !done { 9835 err = azure.NewAsyncOpIncompleteError("network.PacketCapturesStopFuture") 9836 return 9837 } 9838 ar.Response = future.Response() 9839 return 9840} 9841 9842// PacketCaptureStorageLocation describes the storage location for a packet capture session. 9843type PacketCaptureStorageLocation struct { 9844 // StorageID - The ID of the storage account to save the packet capture session. Required if no local file path is provided. 9845 StorageID *string `json:"storageId,omitempty"` 9846 // 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. 9847 StoragePath *string `json:"storagePath,omitempty"` 9848 // 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. 9849 FilePath *string `json:"filePath,omitempty"` 9850} 9851 9852// PatchRouteFilter route Filter Resource. 9853type PatchRouteFilter struct { 9854 *RouteFilterPropertiesFormat `json:"properties,omitempty"` 9855 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 9856 Name *string `json:"name,omitempty"` 9857 // Etag - A unique read-only string that changes whenever the resource is updated. 9858 Etag *string `json:"etag,omitempty"` 9859 // Type - Resource type. 9860 Type *string `json:"type,omitempty"` 9861 // Tags - Resource tags. 9862 Tags map[string]*string `json:"tags"` 9863 // ID - Resource ID. 9864 ID *string `json:"id,omitempty"` 9865} 9866 9867// MarshalJSON is the custom marshaler for PatchRouteFilter. 9868func (prf PatchRouteFilter) MarshalJSON() ([]byte, error) { 9869 objectMap := make(map[string]interface{}) 9870 if prf.RouteFilterPropertiesFormat != nil { 9871 objectMap["properties"] = prf.RouteFilterPropertiesFormat 9872 } 9873 if prf.Name != nil { 9874 objectMap["name"] = prf.Name 9875 } 9876 if prf.Etag != nil { 9877 objectMap["etag"] = prf.Etag 9878 } 9879 if prf.Type != nil { 9880 objectMap["type"] = prf.Type 9881 } 9882 if prf.Tags != nil { 9883 objectMap["tags"] = prf.Tags 9884 } 9885 if prf.ID != nil { 9886 objectMap["id"] = prf.ID 9887 } 9888 return json.Marshal(objectMap) 9889} 9890 9891// UnmarshalJSON is the custom unmarshaler for PatchRouteFilter struct. 9892func (prf *PatchRouteFilter) UnmarshalJSON(body []byte) error { 9893 var m map[string]*json.RawMessage 9894 err := json.Unmarshal(body, &m) 9895 if err != nil { 9896 return err 9897 } 9898 for k, v := range m { 9899 switch k { 9900 case "properties": 9901 if v != nil { 9902 var routeFilterPropertiesFormat RouteFilterPropertiesFormat 9903 err = json.Unmarshal(*v, &routeFilterPropertiesFormat) 9904 if err != nil { 9905 return err 9906 } 9907 prf.RouteFilterPropertiesFormat = &routeFilterPropertiesFormat 9908 } 9909 case "name": 9910 if v != nil { 9911 var name string 9912 err = json.Unmarshal(*v, &name) 9913 if err != nil { 9914 return err 9915 } 9916 prf.Name = &name 9917 } 9918 case "etag": 9919 if v != nil { 9920 var etag string 9921 err = json.Unmarshal(*v, &etag) 9922 if err != nil { 9923 return err 9924 } 9925 prf.Etag = &etag 9926 } 9927 case "type": 9928 if v != nil { 9929 var typeVar string 9930 err = json.Unmarshal(*v, &typeVar) 9931 if err != nil { 9932 return err 9933 } 9934 prf.Type = &typeVar 9935 } 9936 case "tags": 9937 if v != nil { 9938 var tags map[string]*string 9939 err = json.Unmarshal(*v, &tags) 9940 if err != nil { 9941 return err 9942 } 9943 prf.Tags = tags 9944 } 9945 case "id": 9946 if v != nil { 9947 var ID string 9948 err = json.Unmarshal(*v, &ID) 9949 if err != nil { 9950 return err 9951 } 9952 prf.ID = &ID 9953 } 9954 } 9955 } 9956 9957 return nil 9958} 9959 9960// PatchRouteFilterRule route Filter Rule Resource 9961type PatchRouteFilterRule struct { 9962 *RouteFilterRulePropertiesFormat `json:"properties,omitempty"` 9963 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 9964 Name *string `json:"name,omitempty"` 9965 // Etag - A unique read-only string that changes whenever the resource is updated. 9966 Etag *string `json:"etag,omitempty"` 9967 // ID - Resource ID. 9968 ID *string `json:"id,omitempty"` 9969} 9970 9971// MarshalJSON is the custom marshaler for PatchRouteFilterRule. 9972func (prfr PatchRouteFilterRule) MarshalJSON() ([]byte, error) { 9973 objectMap := make(map[string]interface{}) 9974 if prfr.RouteFilterRulePropertiesFormat != nil { 9975 objectMap["properties"] = prfr.RouteFilterRulePropertiesFormat 9976 } 9977 if prfr.Name != nil { 9978 objectMap["name"] = prfr.Name 9979 } 9980 if prfr.Etag != nil { 9981 objectMap["etag"] = prfr.Etag 9982 } 9983 if prfr.ID != nil { 9984 objectMap["id"] = prfr.ID 9985 } 9986 return json.Marshal(objectMap) 9987} 9988 9989// UnmarshalJSON is the custom unmarshaler for PatchRouteFilterRule struct. 9990func (prfr *PatchRouteFilterRule) UnmarshalJSON(body []byte) error { 9991 var m map[string]*json.RawMessage 9992 err := json.Unmarshal(body, &m) 9993 if err != nil { 9994 return err 9995 } 9996 for k, v := range m { 9997 switch k { 9998 case "properties": 9999 if v != nil { 10000 var routeFilterRulePropertiesFormat RouteFilterRulePropertiesFormat 10001 err = json.Unmarshal(*v, &routeFilterRulePropertiesFormat) 10002 if err != nil { 10003 return err 10004 } 10005 prfr.RouteFilterRulePropertiesFormat = &routeFilterRulePropertiesFormat 10006 } 10007 case "name": 10008 if v != nil { 10009 var name string 10010 err = json.Unmarshal(*v, &name) 10011 if err != nil { 10012 return err 10013 } 10014 prfr.Name = &name 10015 } 10016 case "etag": 10017 if v != nil { 10018 var etag string 10019 err = json.Unmarshal(*v, &etag) 10020 if err != nil { 10021 return err 10022 } 10023 prfr.Etag = &etag 10024 } 10025 case "id": 10026 if v != nil { 10027 var ID string 10028 err = json.Unmarshal(*v, &ID) 10029 if err != nil { 10030 return err 10031 } 10032 prfr.ID = &ID 10033 } 10034 } 10035 } 10036 10037 return nil 10038} 10039 10040// Probe a load balancer probe. 10041type Probe struct { 10042 autorest.Response `json:"-"` 10043 // ProbePropertiesFormat - Properties of load balancer probe. 10044 *ProbePropertiesFormat `json:"properties,omitempty"` 10045 // Name - Gets name of the resource that is unique within a resource group. This name can be used to access the resource. 10046 Name *string `json:"name,omitempty"` 10047 // Etag - A unique read-only string that changes whenever the resource is updated. 10048 Etag *string `json:"etag,omitempty"` 10049 // ID - Resource ID. 10050 ID *string `json:"id,omitempty"` 10051} 10052 10053// MarshalJSON is the custom marshaler for Probe. 10054func (p Probe) MarshalJSON() ([]byte, error) { 10055 objectMap := make(map[string]interface{}) 10056 if p.ProbePropertiesFormat != nil { 10057 objectMap["properties"] = p.ProbePropertiesFormat 10058 } 10059 if p.Name != nil { 10060 objectMap["name"] = p.Name 10061 } 10062 if p.Etag != nil { 10063 objectMap["etag"] = p.Etag 10064 } 10065 if p.ID != nil { 10066 objectMap["id"] = p.ID 10067 } 10068 return json.Marshal(objectMap) 10069} 10070 10071// UnmarshalJSON is the custom unmarshaler for Probe struct. 10072func (p *Probe) UnmarshalJSON(body []byte) error { 10073 var m map[string]*json.RawMessage 10074 err := json.Unmarshal(body, &m) 10075 if err != nil { 10076 return err 10077 } 10078 for k, v := range m { 10079 switch k { 10080 case "properties": 10081 if v != nil { 10082 var probePropertiesFormat ProbePropertiesFormat 10083 err = json.Unmarshal(*v, &probePropertiesFormat) 10084 if err != nil { 10085 return err 10086 } 10087 p.ProbePropertiesFormat = &probePropertiesFormat 10088 } 10089 case "name": 10090 if v != nil { 10091 var name string 10092 err = json.Unmarshal(*v, &name) 10093 if err != nil { 10094 return err 10095 } 10096 p.Name = &name 10097 } 10098 case "etag": 10099 if v != nil { 10100 var etag string 10101 err = json.Unmarshal(*v, &etag) 10102 if err != nil { 10103 return err 10104 } 10105 p.Etag = &etag 10106 } 10107 case "id": 10108 if v != nil { 10109 var ID string 10110 err = json.Unmarshal(*v, &ID) 10111 if err != nil { 10112 return err 10113 } 10114 p.ID = &ID 10115 } 10116 } 10117 } 10118 10119 return nil 10120} 10121 10122// ProbePropertiesFormat load balancer probe resource. 10123type ProbePropertiesFormat struct { 10124 // LoadBalancingRules - The load balancer rules that use this probe. 10125 LoadBalancingRules *[]SubResource `json:"loadBalancingRules,omitempty"` 10126 // Protocol - The protocol of the end point. Possible values are: 'Http' or 'Tcp'. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. Possible values include: 'ProbeProtocolHTTP', 'ProbeProtocolTCP' 10127 Protocol ProbeProtocol `json:"protocol,omitempty"` 10128 // Port - The port for communicating the probe. Possible values range from 1 to 65535, inclusive. 10129 Port *int32 `json:"port,omitempty"` 10130 // 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. 10131 IntervalInSeconds *int32 `json:"intervalInSeconds,omitempty"` 10132 // 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. 10133 NumberOfProbes *int32 `json:"numberOfProbes,omitempty"` 10134 // 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. 10135 RequestPath *string `json:"requestPath,omitempty"` 10136 // ProvisioningState - Gets the provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 10137 ProvisioningState *string `json:"provisioningState,omitempty"` 10138} 10139 10140// PublicIPAddress public IP address resource. 10141type PublicIPAddress struct { 10142 autorest.Response `json:"-"` 10143 // Sku - The public IP address SKU. 10144 Sku *PublicIPAddressSku `json:"sku,omitempty"` 10145 // PublicIPAddressPropertiesFormat - Public IP address properties. 10146 *PublicIPAddressPropertiesFormat `json:"properties,omitempty"` 10147 // Etag - A unique read-only string that changes whenever the resource is updated. 10148 Etag *string `json:"etag,omitempty"` 10149 // Zones - A list of availability zones denoting the IP allocated for the resource needs to come from. 10150 Zones *[]string `json:"zones,omitempty"` 10151 // ID - Resource ID. 10152 ID *string `json:"id,omitempty"` 10153 // Name - Resource name. 10154 Name *string `json:"name,omitempty"` 10155 // Type - Resource type. 10156 Type *string `json:"type,omitempty"` 10157 // Location - Resource location. 10158 Location *string `json:"location,omitempty"` 10159 // Tags - Resource tags. 10160 Tags map[string]*string `json:"tags"` 10161} 10162 10163// MarshalJSON is the custom marshaler for PublicIPAddress. 10164func (pia PublicIPAddress) MarshalJSON() ([]byte, error) { 10165 objectMap := make(map[string]interface{}) 10166 if pia.Sku != nil { 10167 objectMap["sku"] = pia.Sku 10168 } 10169 if pia.PublicIPAddressPropertiesFormat != nil { 10170 objectMap["properties"] = pia.PublicIPAddressPropertiesFormat 10171 } 10172 if pia.Etag != nil { 10173 objectMap["etag"] = pia.Etag 10174 } 10175 if pia.Zones != nil { 10176 objectMap["zones"] = pia.Zones 10177 } 10178 if pia.ID != nil { 10179 objectMap["id"] = pia.ID 10180 } 10181 if pia.Name != nil { 10182 objectMap["name"] = pia.Name 10183 } 10184 if pia.Type != nil { 10185 objectMap["type"] = pia.Type 10186 } 10187 if pia.Location != nil { 10188 objectMap["location"] = pia.Location 10189 } 10190 if pia.Tags != nil { 10191 objectMap["tags"] = pia.Tags 10192 } 10193 return json.Marshal(objectMap) 10194} 10195 10196// UnmarshalJSON is the custom unmarshaler for PublicIPAddress struct. 10197func (pia *PublicIPAddress) UnmarshalJSON(body []byte) error { 10198 var m map[string]*json.RawMessage 10199 err := json.Unmarshal(body, &m) 10200 if err != nil { 10201 return err 10202 } 10203 for k, v := range m { 10204 switch k { 10205 case "sku": 10206 if v != nil { 10207 var sku PublicIPAddressSku 10208 err = json.Unmarshal(*v, &sku) 10209 if err != nil { 10210 return err 10211 } 10212 pia.Sku = &sku 10213 } 10214 case "properties": 10215 if v != nil { 10216 var publicIPAddressPropertiesFormat PublicIPAddressPropertiesFormat 10217 err = json.Unmarshal(*v, &publicIPAddressPropertiesFormat) 10218 if err != nil { 10219 return err 10220 } 10221 pia.PublicIPAddressPropertiesFormat = &publicIPAddressPropertiesFormat 10222 } 10223 case "etag": 10224 if v != nil { 10225 var etag string 10226 err = json.Unmarshal(*v, &etag) 10227 if err != nil { 10228 return err 10229 } 10230 pia.Etag = &etag 10231 } 10232 case "zones": 10233 if v != nil { 10234 var zones []string 10235 err = json.Unmarshal(*v, &zones) 10236 if err != nil { 10237 return err 10238 } 10239 pia.Zones = &zones 10240 } 10241 case "id": 10242 if v != nil { 10243 var ID string 10244 err = json.Unmarshal(*v, &ID) 10245 if err != nil { 10246 return err 10247 } 10248 pia.ID = &ID 10249 } 10250 case "name": 10251 if v != nil { 10252 var name string 10253 err = json.Unmarshal(*v, &name) 10254 if err != nil { 10255 return err 10256 } 10257 pia.Name = &name 10258 } 10259 case "type": 10260 if v != nil { 10261 var typeVar string 10262 err = json.Unmarshal(*v, &typeVar) 10263 if err != nil { 10264 return err 10265 } 10266 pia.Type = &typeVar 10267 } 10268 case "location": 10269 if v != nil { 10270 var location string 10271 err = json.Unmarshal(*v, &location) 10272 if err != nil { 10273 return err 10274 } 10275 pia.Location = &location 10276 } 10277 case "tags": 10278 if v != nil { 10279 var tags map[string]*string 10280 err = json.Unmarshal(*v, &tags) 10281 if err != nil { 10282 return err 10283 } 10284 pia.Tags = tags 10285 } 10286 } 10287 } 10288 10289 return nil 10290} 10291 10292// PublicIPAddressDNSSettings contains FQDN of the DNS record associated with the public IP address 10293type PublicIPAddressDNSSettings struct { 10294 // 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. 10295 DomainNameLabel *string `json:"domainNameLabel,omitempty"` 10296 // 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. 10297 Fqdn *string `json:"fqdn,omitempty"` 10298 // 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. 10299 ReverseFqdn *string `json:"reverseFqdn,omitempty"` 10300} 10301 10302// PublicIPAddressesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 10303// operation. 10304type PublicIPAddressesCreateOrUpdateFuture struct { 10305 azure.Future 10306} 10307 10308// Result returns the result of the asynchronous operation. 10309// If the operation has not completed it will return an error. 10310func (future *PublicIPAddressesCreateOrUpdateFuture) Result(client PublicIPAddressesClient) (pia PublicIPAddress, err error) { 10311 var done bool 10312 done, err = future.Done(client) 10313 if err != nil { 10314 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 10315 return 10316 } 10317 if !done { 10318 err = azure.NewAsyncOpIncompleteError("network.PublicIPAddressesCreateOrUpdateFuture") 10319 return 10320 } 10321 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 10322 if pia.Response.Response, err = future.GetResult(sender); err == nil && pia.Response.Response.StatusCode != http.StatusNoContent { 10323 pia, err = client.CreateOrUpdateResponder(pia.Response.Response) 10324 if err != nil { 10325 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesCreateOrUpdateFuture", "Result", pia.Response.Response, "Failure responding to request") 10326 } 10327 } 10328 return 10329} 10330 10331// PublicIPAddressesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 10332// operation. 10333type PublicIPAddressesDeleteFuture struct { 10334 azure.Future 10335} 10336 10337// Result returns the result of the asynchronous operation. 10338// If the operation has not completed it will return an error. 10339func (future *PublicIPAddressesDeleteFuture) Result(client PublicIPAddressesClient) (ar autorest.Response, err error) { 10340 var done bool 10341 done, err = future.Done(client) 10342 if err != nil { 10343 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesDeleteFuture", "Result", future.Response(), "Polling failure") 10344 return 10345 } 10346 if !done { 10347 err = azure.NewAsyncOpIncompleteError("network.PublicIPAddressesDeleteFuture") 10348 return 10349 } 10350 ar.Response = future.Response() 10351 return 10352} 10353 10354// PublicIPAddressesUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 10355// operation. 10356type PublicIPAddressesUpdateTagsFuture struct { 10357 azure.Future 10358} 10359 10360// Result returns the result of the asynchronous operation. 10361// If the operation has not completed it will return an error. 10362func (future *PublicIPAddressesUpdateTagsFuture) Result(client PublicIPAddressesClient) (pia PublicIPAddress, err error) { 10363 var done bool 10364 done, err = future.Done(client) 10365 if err != nil { 10366 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesUpdateTagsFuture", "Result", future.Response(), "Polling failure") 10367 return 10368 } 10369 if !done { 10370 err = azure.NewAsyncOpIncompleteError("network.PublicIPAddressesUpdateTagsFuture") 10371 return 10372 } 10373 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 10374 if pia.Response.Response, err = future.GetResult(sender); err == nil && pia.Response.Response.StatusCode != http.StatusNoContent { 10375 pia, err = client.UpdateTagsResponder(pia.Response.Response) 10376 if err != nil { 10377 err = autorest.NewErrorWithError(err, "network.PublicIPAddressesUpdateTagsFuture", "Result", pia.Response.Response, "Failure responding to request") 10378 } 10379 } 10380 return 10381} 10382 10383// PublicIPAddressListResult response for ListPublicIpAddresses API service call. 10384type PublicIPAddressListResult struct { 10385 autorest.Response `json:"-"` 10386 // Value - A list of public IP addresses that exists in a resource group. 10387 Value *[]PublicIPAddress `json:"value,omitempty"` 10388 // NextLink - The URL to get the next set of results. 10389 NextLink *string `json:"nextLink,omitempty"` 10390} 10391 10392// PublicIPAddressListResultIterator provides access to a complete listing of PublicIPAddress values. 10393type PublicIPAddressListResultIterator struct { 10394 i int 10395 page PublicIPAddressListResultPage 10396} 10397 10398// Next advances to the next value. If there was an error making 10399// the request the iterator does not advance and the error is returned. 10400func (iter *PublicIPAddressListResultIterator) Next() error { 10401 iter.i++ 10402 if iter.i < len(iter.page.Values()) { 10403 return nil 10404 } 10405 err := iter.page.Next() 10406 if err != nil { 10407 iter.i-- 10408 return err 10409 } 10410 iter.i = 0 10411 return nil 10412} 10413 10414// NotDone returns true if the enumeration should be started or is not yet complete. 10415func (iter PublicIPAddressListResultIterator) NotDone() bool { 10416 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10417} 10418 10419// Response returns the raw server response from the last page request. 10420func (iter PublicIPAddressListResultIterator) Response() PublicIPAddressListResult { 10421 return iter.page.Response() 10422} 10423 10424// Value returns the current value or a zero-initialized value if the 10425// iterator has advanced beyond the end of the collection. 10426func (iter PublicIPAddressListResultIterator) Value() PublicIPAddress { 10427 if !iter.page.NotDone() { 10428 return PublicIPAddress{} 10429 } 10430 return iter.page.Values()[iter.i] 10431} 10432 10433// IsEmpty returns true if the ListResult contains no values. 10434func (pialr PublicIPAddressListResult) IsEmpty() bool { 10435 return pialr.Value == nil || len(*pialr.Value) == 0 10436} 10437 10438// publicIPAddressListResultPreparer prepares a request to retrieve the next set of results. 10439// It returns nil if no more results exist. 10440func (pialr PublicIPAddressListResult) publicIPAddressListResultPreparer() (*http.Request, error) { 10441 if pialr.NextLink == nil || len(to.String(pialr.NextLink)) < 1 { 10442 return nil, nil 10443 } 10444 return autorest.Prepare(&http.Request{}, 10445 autorest.AsJSON(), 10446 autorest.AsGet(), 10447 autorest.WithBaseURL(to.String(pialr.NextLink))) 10448} 10449 10450// PublicIPAddressListResultPage contains a page of PublicIPAddress values. 10451type PublicIPAddressListResultPage struct { 10452 fn func(PublicIPAddressListResult) (PublicIPAddressListResult, error) 10453 pialr PublicIPAddressListResult 10454} 10455 10456// Next advances to the next page of values. If there was an error making 10457// the request the page does not advance and the error is returned. 10458func (page *PublicIPAddressListResultPage) Next() error { 10459 next, err := page.fn(page.pialr) 10460 if err != nil { 10461 return err 10462 } 10463 page.pialr = next 10464 return nil 10465} 10466 10467// NotDone returns true if the page enumeration should be started or is not yet complete. 10468func (page PublicIPAddressListResultPage) NotDone() bool { 10469 return !page.pialr.IsEmpty() 10470} 10471 10472// Response returns the raw server response from the last page request. 10473func (page PublicIPAddressListResultPage) Response() PublicIPAddressListResult { 10474 return page.pialr 10475} 10476 10477// Values returns the slice of values for the current page or nil if there are no values. 10478func (page PublicIPAddressListResultPage) Values() []PublicIPAddress { 10479 if page.pialr.IsEmpty() { 10480 return nil 10481 } 10482 return *page.pialr.Value 10483} 10484 10485// PublicIPAddressPropertiesFormat public IP address properties. 10486type PublicIPAddressPropertiesFormat struct { 10487 // PublicIPAllocationMethod - The public IP allocation method. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 10488 PublicIPAllocationMethod IPAllocationMethod `json:"publicIPAllocationMethod,omitempty"` 10489 // PublicIPAddressVersion - The public IP address version. Possible values are: 'IPv4' and 'IPv6'. Possible values include: 'IPv4', 'IPv6' 10490 PublicIPAddressVersion IPVersion `json:"publicIPAddressVersion,omitempty"` 10491 // IPConfiguration - The IP configuration associated with the public IP address. 10492 IPConfiguration *IPConfiguration `json:"ipConfiguration,omitempty"` 10493 // DNSSettings - The FQDN of the DNS record associated with the public IP address. 10494 DNSSettings *PublicIPAddressDNSSettings `json:"dnsSettings,omitempty"` 10495 // IPTags - The list of tags associated with the public IP address. 10496 IPTags *[]IPTag `json:"ipTags,omitempty"` 10497 // IPAddress - The IP address associated with the public IP address resource. 10498 IPAddress *string `json:"ipAddress,omitempty"` 10499 // IdleTimeoutInMinutes - The idle timeout of the public IP address. 10500 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 10501 // ResourceGUID - The resource GUID property of the public IP resource. 10502 ResourceGUID *string `json:"resourceGuid,omitempty"` 10503 // ProvisioningState - The provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 10504 ProvisioningState *string `json:"provisioningState,omitempty"` 10505} 10506 10507// PublicIPAddressSku SKU of a public IP address 10508type PublicIPAddressSku struct { 10509 // Name - Name of a public IP address SKU. Possible values include: 'PublicIPAddressSkuNameBasic', 'PublicIPAddressSkuNameStandard' 10510 Name PublicIPAddressSkuName `json:"name,omitempty"` 10511} 10512 10513// QueryTroubleshootingParameters parameters that define the resource to query the troubleshooting result. 10514type QueryTroubleshootingParameters struct { 10515 // TargetResourceID - The target resource ID to query the troubleshooting result. 10516 TargetResourceID *string `json:"targetResourceId,omitempty"` 10517} 10518 10519// Resource common resource representation. 10520type Resource struct { 10521 // ID - Resource ID. 10522 ID *string `json:"id,omitempty"` 10523 // Name - Resource name. 10524 Name *string `json:"name,omitempty"` 10525 // Type - Resource type. 10526 Type *string `json:"type,omitempty"` 10527 // Location - Resource location. 10528 Location *string `json:"location,omitempty"` 10529 // Tags - Resource tags. 10530 Tags map[string]*string `json:"tags"` 10531} 10532 10533// MarshalJSON is the custom marshaler for Resource. 10534func (r Resource) MarshalJSON() ([]byte, error) { 10535 objectMap := make(map[string]interface{}) 10536 if r.ID != nil { 10537 objectMap["id"] = r.ID 10538 } 10539 if r.Name != nil { 10540 objectMap["name"] = r.Name 10541 } 10542 if r.Type != nil { 10543 objectMap["type"] = r.Type 10544 } 10545 if r.Location != nil { 10546 objectMap["location"] = r.Location 10547 } 10548 if r.Tags != nil { 10549 objectMap["tags"] = r.Tags 10550 } 10551 return json.Marshal(objectMap) 10552} 10553 10554// ResourceNavigationLink resourceNavigationLink resource. 10555type ResourceNavigationLink struct { 10556 // ResourceNavigationLinkFormat - Resource navigation link properties format. 10557 *ResourceNavigationLinkFormat `json:"properties,omitempty"` 10558 // Name - Name of the resource that is unique within a resource group. This name can be used to access the resource. 10559 Name *string `json:"name,omitempty"` 10560 // Etag - A unique read-only string that changes whenever the resource is updated. 10561 Etag *string `json:"etag,omitempty"` 10562 // ID - Resource ID. 10563 ID *string `json:"id,omitempty"` 10564} 10565 10566// MarshalJSON is the custom marshaler for ResourceNavigationLink. 10567func (rnl ResourceNavigationLink) MarshalJSON() ([]byte, error) { 10568 objectMap := make(map[string]interface{}) 10569 if rnl.ResourceNavigationLinkFormat != nil { 10570 objectMap["properties"] = rnl.ResourceNavigationLinkFormat 10571 } 10572 if rnl.Name != nil { 10573 objectMap["name"] = rnl.Name 10574 } 10575 if rnl.Etag != nil { 10576 objectMap["etag"] = rnl.Etag 10577 } 10578 if rnl.ID != nil { 10579 objectMap["id"] = rnl.ID 10580 } 10581 return json.Marshal(objectMap) 10582} 10583 10584// UnmarshalJSON is the custom unmarshaler for ResourceNavigationLink struct. 10585func (rnl *ResourceNavigationLink) UnmarshalJSON(body []byte) error { 10586 var m map[string]*json.RawMessage 10587 err := json.Unmarshal(body, &m) 10588 if err != nil { 10589 return err 10590 } 10591 for k, v := range m { 10592 switch k { 10593 case "properties": 10594 if v != nil { 10595 var resourceNavigationLinkFormat ResourceNavigationLinkFormat 10596 err = json.Unmarshal(*v, &resourceNavigationLinkFormat) 10597 if err != nil { 10598 return err 10599 } 10600 rnl.ResourceNavigationLinkFormat = &resourceNavigationLinkFormat 10601 } 10602 case "name": 10603 if v != nil { 10604 var name string 10605 err = json.Unmarshal(*v, &name) 10606 if err != nil { 10607 return err 10608 } 10609 rnl.Name = &name 10610 } 10611 case "etag": 10612 if v != nil { 10613 var etag string 10614 err = json.Unmarshal(*v, &etag) 10615 if err != nil { 10616 return err 10617 } 10618 rnl.Etag = &etag 10619 } 10620 case "id": 10621 if v != nil { 10622 var ID string 10623 err = json.Unmarshal(*v, &ID) 10624 if err != nil { 10625 return err 10626 } 10627 rnl.ID = &ID 10628 } 10629 } 10630 } 10631 10632 return nil 10633} 10634 10635// ResourceNavigationLinkFormat properties of ResourceNavigationLink. 10636type ResourceNavigationLinkFormat struct { 10637 // LinkedResourceType - Resource type of the linked resource. 10638 LinkedResourceType *string `json:"linkedResourceType,omitempty"` 10639 // Link - Link to the external resource 10640 Link *string `json:"link,omitempty"` 10641 // ProvisioningState - Provisioning state of the ResourceNavigationLink resource. 10642 ProvisioningState *string `json:"provisioningState,omitempty"` 10643} 10644 10645// RetentionPolicyParameters parameters that define the retention policy for flow log. 10646type RetentionPolicyParameters struct { 10647 // Days - Number of days to retain flow log records. 10648 Days *int32 `json:"days,omitempty"` 10649 // Enabled - Flag to enable/disable retention. 10650 Enabled *bool `json:"enabled,omitempty"` 10651} 10652 10653// Route route resource 10654type Route struct { 10655 autorest.Response `json:"-"` 10656 // RoutePropertiesFormat - Properties of the route. 10657 *RoutePropertiesFormat `json:"properties,omitempty"` 10658 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 10659 Name *string `json:"name,omitempty"` 10660 // Etag - A unique read-only string that changes whenever the resource is updated. 10661 Etag *string `json:"etag,omitempty"` 10662 // ID - Resource ID. 10663 ID *string `json:"id,omitempty"` 10664} 10665 10666// MarshalJSON is the custom marshaler for Route. 10667func (r Route) MarshalJSON() ([]byte, error) { 10668 objectMap := make(map[string]interface{}) 10669 if r.RoutePropertiesFormat != nil { 10670 objectMap["properties"] = r.RoutePropertiesFormat 10671 } 10672 if r.Name != nil { 10673 objectMap["name"] = r.Name 10674 } 10675 if r.Etag != nil { 10676 objectMap["etag"] = r.Etag 10677 } 10678 if r.ID != nil { 10679 objectMap["id"] = r.ID 10680 } 10681 return json.Marshal(objectMap) 10682} 10683 10684// UnmarshalJSON is the custom unmarshaler for Route struct. 10685func (r *Route) UnmarshalJSON(body []byte) error { 10686 var m map[string]*json.RawMessage 10687 err := json.Unmarshal(body, &m) 10688 if err != nil { 10689 return err 10690 } 10691 for k, v := range m { 10692 switch k { 10693 case "properties": 10694 if v != nil { 10695 var routePropertiesFormat RoutePropertiesFormat 10696 err = json.Unmarshal(*v, &routePropertiesFormat) 10697 if err != nil { 10698 return err 10699 } 10700 r.RoutePropertiesFormat = &routePropertiesFormat 10701 } 10702 case "name": 10703 if v != nil { 10704 var name string 10705 err = json.Unmarshal(*v, &name) 10706 if err != nil { 10707 return err 10708 } 10709 r.Name = &name 10710 } 10711 case "etag": 10712 if v != nil { 10713 var etag string 10714 err = json.Unmarshal(*v, &etag) 10715 if err != nil { 10716 return err 10717 } 10718 r.Etag = &etag 10719 } 10720 case "id": 10721 if v != nil { 10722 var ID string 10723 err = json.Unmarshal(*v, &ID) 10724 if err != nil { 10725 return err 10726 } 10727 r.ID = &ID 10728 } 10729 } 10730 } 10731 10732 return nil 10733} 10734 10735// RouteFilter route Filter Resource. 10736type RouteFilter struct { 10737 autorest.Response `json:"-"` 10738 *RouteFilterPropertiesFormat `json:"properties,omitempty"` 10739 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 10740 Etag *string `json:"etag,omitempty"` 10741 // ID - Resource ID. 10742 ID *string `json:"id,omitempty"` 10743 // Name - Resource name. 10744 Name *string `json:"name,omitempty"` 10745 // Type - Resource type. 10746 Type *string `json:"type,omitempty"` 10747 // Location - Resource location. 10748 Location *string `json:"location,omitempty"` 10749 // Tags - Resource tags. 10750 Tags map[string]*string `json:"tags"` 10751} 10752 10753// MarshalJSON is the custom marshaler for RouteFilter. 10754func (rf RouteFilter) MarshalJSON() ([]byte, error) { 10755 objectMap := make(map[string]interface{}) 10756 if rf.RouteFilterPropertiesFormat != nil { 10757 objectMap["properties"] = rf.RouteFilterPropertiesFormat 10758 } 10759 if rf.Etag != nil { 10760 objectMap["etag"] = rf.Etag 10761 } 10762 if rf.ID != nil { 10763 objectMap["id"] = rf.ID 10764 } 10765 if rf.Name != nil { 10766 objectMap["name"] = rf.Name 10767 } 10768 if rf.Type != nil { 10769 objectMap["type"] = rf.Type 10770 } 10771 if rf.Location != nil { 10772 objectMap["location"] = rf.Location 10773 } 10774 if rf.Tags != nil { 10775 objectMap["tags"] = rf.Tags 10776 } 10777 return json.Marshal(objectMap) 10778} 10779 10780// UnmarshalJSON is the custom unmarshaler for RouteFilter struct. 10781func (rf *RouteFilter) UnmarshalJSON(body []byte) error { 10782 var m map[string]*json.RawMessage 10783 err := json.Unmarshal(body, &m) 10784 if err != nil { 10785 return err 10786 } 10787 for k, v := range m { 10788 switch k { 10789 case "properties": 10790 if v != nil { 10791 var routeFilterPropertiesFormat RouteFilterPropertiesFormat 10792 err = json.Unmarshal(*v, &routeFilterPropertiesFormat) 10793 if err != nil { 10794 return err 10795 } 10796 rf.RouteFilterPropertiesFormat = &routeFilterPropertiesFormat 10797 } 10798 case "etag": 10799 if v != nil { 10800 var etag string 10801 err = json.Unmarshal(*v, &etag) 10802 if err != nil { 10803 return err 10804 } 10805 rf.Etag = &etag 10806 } 10807 case "id": 10808 if v != nil { 10809 var ID string 10810 err = json.Unmarshal(*v, &ID) 10811 if err != nil { 10812 return err 10813 } 10814 rf.ID = &ID 10815 } 10816 case "name": 10817 if v != nil { 10818 var name string 10819 err = json.Unmarshal(*v, &name) 10820 if err != nil { 10821 return err 10822 } 10823 rf.Name = &name 10824 } 10825 case "type": 10826 if v != nil { 10827 var typeVar string 10828 err = json.Unmarshal(*v, &typeVar) 10829 if err != nil { 10830 return err 10831 } 10832 rf.Type = &typeVar 10833 } 10834 case "location": 10835 if v != nil { 10836 var location string 10837 err = json.Unmarshal(*v, &location) 10838 if err != nil { 10839 return err 10840 } 10841 rf.Location = &location 10842 } 10843 case "tags": 10844 if v != nil { 10845 var tags map[string]*string 10846 err = json.Unmarshal(*v, &tags) 10847 if err != nil { 10848 return err 10849 } 10850 rf.Tags = tags 10851 } 10852 } 10853 } 10854 10855 return nil 10856} 10857 10858// RouteFilterListResult response for the ListRouteFilters API service call. 10859type RouteFilterListResult struct { 10860 autorest.Response `json:"-"` 10861 // Value - Gets a list of route filters in a resource group. 10862 Value *[]RouteFilter `json:"value,omitempty"` 10863 // NextLink - The URL to get the next set of results. 10864 NextLink *string `json:"nextLink,omitempty"` 10865} 10866 10867// RouteFilterListResultIterator provides access to a complete listing of RouteFilter values. 10868type RouteFilterListResultIterator struct { 10869 i int 10870 page RouteFilterListResultPage 10871} 10872 10873// Next advances to the next value. If there was an error making 10874// the request the iterator does not advance and the error is returned. 10875func (iter *RouteFilterListResultIterator) Next() error { 10876 iter.i++ 10877 if iter.i < len(iter.page.Values()) { 10878 return nil 10879 } 10880 err := iter.page.Next() 10881 if err != nil { 10882 iter.i-- 10883 return err 10884 } 10885 iter.i = 0 10886 return nil 10887} 10888 10889// NotDone returns true if the enumeration should be started or is not yet complete. 10890func (iter RouteFilterListResultIterator) NotDone() bool { 10891 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10892} 10893 10894// Response returns the raw server response from the last page request. 10895func (iter RouteFilterListResultIterator) Response() RouteFilterListResult { 10896 return iter.page.Response() 10897} 10898 10899// Value returns the current value or a zero-initialized value if the 10900// iterator has advanced beyond the end of the collection. 10901func (iter RouteFilterListResultIterator) Value() RouteFilter { 10902 if !iter.page.NotDone() { 10903 return RouteFilter{} 10904 } 10905 return iter.page.Values()[iter.i] 10906} 10907 10908// IsEmpty returns true if the ListResult contains no values. 10909func (rflr RouteFilterListResult) IsEmpty() bool { 10910 return rflr.Value == nil || len(*rflr.Value) == 0 10911} 10912 10913// routeFilterListResultPreparer prepares a request to retrieve the next set of results. 10914// It returns nil if no more results exist. 10915func (rflr RouteFilterListResult) routeFilterListResultPreparer() (*http.Request, error) { 10916 if rflr.NextLink == nil || len(to.String(rflr.NextLink)) < 1 { 10917 return nil, nil 10918 } 10919 return autorest.Prepare(&http.Request{}, 10920 autorest.AsJSON(), 10921 autorest.AsGet(), 10922 autorest.WithBaseURL(to.String(rflr.NextLink))) 10923} 10924 10925// RouteFilterListResultPage contains a page of RouteFilter values. 10926type RouteFilterListResultPage struct { 10927 fn func(RouteFilterListResult) (RouteFilterListResult, error) 10928 rflr RouteFilterListResult 10929} 10930 10931// Next advances to the next page of values. If there was an error making 10932// the request the page does not advance and the error is returned. 10933func (page *RouteFilterListResultPage) Next() error { 10934 next, err := page.fn(page.rflr) 10935 if err != nil { 10936 return err 10937 } 10938 page.rflr = next 10939 return nil 10940} 10941 10942// NotDone returns true if the page enumeration should be started or is not yet complete. 10943func (page RouteFilterListResultPage) NotDone() bool { 10944 return !page.rflr.IsEmpty() 10945} 10946 10947// Response returns the raw server response from the last page request. 10948func (page RouteFilterListResultPage) Response() RouteFilterListResult { 10949 return page.rflr 10950} 10951 10952// Values returns the slice of values for the current page or nil if there are no values. 10953func (page RouteFilterListResultPage) Values() []RouteFilter { 10954 if page.rflr.IsEmpty() { 10955 return nil 10956 } 10957 return *page.rflr.Value 10958} 10959 10960// RouteFilterPropertiesFormat route Filter Resource 10961type RouteFilterPropertiesFormat struct { 10962 // Rules - Collection of RouteFilterRules contained within a route filter. 10963 Rules *[]RouteFilterRule `json:"rules,omitempty"` 10964 // Peerings - A collection of references to express route circuit peerings. 10965 Peerings *[]ExpressRouteCircuitPeering `json:"peerings,omitempty"` 10966 // ProvisioningState - The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', 'Succeeded' and 'Failed'. 10967 ProvisioningState *string `json:"provisioningState,omitempty"` 10968} 10969 10970// RouteFilterRule route Filter Rule Resource 10971type RouteFilterRule struct { 10972 autorest.Response `json:"-"` 10973 *RouteFilterRulePropertiesFormat `json:"properties,omitempty"` 10974 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 10975 Name *string `json:"name,omitempty"` 10976 // Location - Resource location. 10977 Location *string `json:"location,omitempty"` 10978 // Etag - A unique read-only string that changes whenever the resource is updated. 10979 Etag *string `json:"etag,omitempty"` 10980 // ID - Resource ID. 10981 ID *string `json:"id,omitempty"` 10982} 10983 10984// MarshalJSON is the custom marshaler for RouteFilterRule. 10985func (rfr RouteFilterRule) MarshalJSON() ([]byte, error) { 10986 objectMap := make(map[string]interface{}) 10987 if rfr.RouteFilterRulePropertiesFormat != nil { 10988 objectMap["properties"] = rfr.RouteFilterRulePropertiesFormat 10989 } 10990 if rfr.Name != nil { 10991 objectMap["name"] = rfr.Name 10992 } 10993 if rfr.Location != nil { 10994 objectMap["location"] = rfr.Location 10995 } 10996 if rfr.Etag != nil { 10997 objectMap["etag"] = rfr.Etag 10998 } 10999 if rfr.ID != nil { 11000 objectMap["id"] = rfr.ID 11001 } 11002 return json.Marshal(objectMap) 11003} 11004 11005// UnmarshalJSON is the custom unmarshaler for RouteFilterRule struct. 11006func (rfr *RouteFilterRule) UnmarshalJSON(body []byte) error { 11007 var m map[string]*json.RawMessage 11008 err := json.Unmarshal(body, &m) 11009 if err != nil { 11010 return err 11011 } 11012 for k, v := range m { 11013 switch k { 11014 case "properties": 11015 if v != nil { 11016 var routeFilterRulePropertiesFormat RouteFilterRulePropertiesFormat 11017 err = json.Unmarshal(*v, &routeFilterRulePropertiesFormat) 11018 if err != nil { 11019 return err 11020 } 11021 rfr.RouteFilterRulePropertiesFormat = &routeFilterRulePropertiesFormat 11022 } 11023 case "name": 11024 if v != nil { 11025 var name string 11026 err = json.Unmarshal(*v, &name) 11027 if err != nil { 11028 return err 11029 } 11030 rfr.Name = &name 11031 } 11032 case "location": 11033 if v != nil { 11034 var location string 11035 err = json.Unmarshal(*v, &location) 11036 if err != nil { 11037 return err 11038 } 11039 rfr.Location = &location 11040 } 11041 case "etag": 11042 if v != nil { 11043 var etag string 11044 err = json.Unmarshal(*v, &etag) 11045 if err != nil { 11046 return err 11047 } 11048 rfr.Etag = &etag 11049 } 11050 case "id": 11051 if v != nil { 11052 var ID string 11053 err = json.Unmarshal(*v, &ID) 11054 if err != nil { 11055 return err 11056 } 11057 rfr.ID = &ID 11058 } 11059 } 11060 } 11061 11062 return nil 11063} 11064 11065// RouteFilterRuleListResult response for the ListRouteFilterRules API service call 11066type RouteFilterRuleListResult struct { 11067 autorest.Response `json:"-"` 11068 // Value - Gets a list of RouteFilterRules in a resource group. 11069 Value *[]RouteFilterRule `json:"value,omitempty"` 11070 // NextLink - The URL to get the next set of results. 11071 NextLink *string `json:"nextLink,omitempty"` 11072} 11073 11074// RouteFilterRuleListResultIterator provides access to a complete listing of RouteFilterRule values. 11075type RouteFilterRuleListResultIterator struct { 11076 i int 11077 page RouteFilterRuleListResultPage 11078} 11079 11080// Next advances to the next value. If there was an error making 11081// the request the iterator does not advance and the error is returned. 11082func (iter *RouteFilterRuleListResultIterator) Next() error { 11083 iter.i++ 11084 if iter.i < len(iter.page.Values()) { 11085 return nil 11086 } 11087 err := iter.page.Next() 11088 if err != nil { 11089 iter.i-- 11090 return err 11091 } 11092 iter.i = 0 11093 return nil 11094} 11095 11096// NotDone returns true if the enumeration should be started or is not yet complete. 11097func (iter RouteFilterRuleListResultIterator) NotDone() bool { 11098 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 11099} 11100 11101// Response returns the raw server response from the last page request. 11102func (iter RouteFilterRuleListResultIterator) Response() RouteFilterRuleListResult { 11103 return iter.page.Response() 11104} 11105 11106// Value returns the current value or a zero-initialized value if the 11107// iterator has advanced beyond the end of the collection. 11108func (iter RouteFilterRuleListResultIterator) Value() RouteFilterRule { 11109 if !iter.page.NotDone() { 11110 return RouteFilterRule{} 11111 } 11112 return iter.page.Values()[iter.i] 11113} 11114 11115// IsEmpty returns true if the ListResult contains no values. 11116func (rfrlr RouteFilterRuleListResult) IsEmpty() bool { 11117 return rfrlr.Value == nil || len(*rfrlr.Value) == 0 11118} 11119 11120// routeFilterRuleListResultPreparer prepares a request to retrieve the next set of results. 11121// It returns nil if no more results exist. 11122func (rfrlr RouteFilterRuleListResult) routeFilterRuleListResultPreparer() (*http.Request, error) { 11123 if rfrlr.NextLink == nil || len(to.String(rfrlr.NextLink)) < 1 { 11124 return nil, nil 11125 } 11126 return autorest.Prepare(&http.Request{}, 11127 autorest.AsJSON(), 11128 autorest.AsGet(), 11129 autorest.WithBaseURL(to.String(rfrlr.NextLink))) 11130} 11131 11132// RouteFilterRuleListResultPage contains a page of RouteFilterRule values. 11133type RouteFilterRuleListResultPage struct { 11134 fn func(RouteFilterRuleListResult) (RouteFilterRuleListResult, error) 11135 rfrlr RouteFilterRuleListResult 11136} 11137 11138// Next advances to the next page of values. If there was an error making 11139// the request the page does not advance and the error is returned. 11140func (page *RouteFilterRuleListResultPage) Next() error { 11141 next, err := page.fn(page.rfrlr) 11142 if err != nil { 11143 return err 11144 } 11145 page.rfrlr = next 11146 return nil 11147} 11148 11149// NotDone returns true if the page enumeration should be started or is not yet complete. 11150func (page RouteFilterRuleListResultPage) NotDone() bool { 11151 return !page.rfrlr.IsEmpty() 11152} 11153 11154// Response returns the raw server response from the last page request. 11155func (page RouteFilterRuleListResultPage) Response() RouteFilterRuleListResult { 11156 return page.rfrlr 11157} 11158 11159// Values returns the slice of values for the current page or nil if there are no values. 11160func (page RouteFilterRuleListResultPage) Values() []RouteFilterRule { 11161 if page.rfrlr.IsEmpty() { 11162 return nil 11163 } 11164 return *page.rfrlr.Value 11165} 11166 11167// RouteFilterRulePropertiesFormat route Filter Rule Resource 11168type RouteFilterRulePropertiesFormat struct { 11169 // Access - The access type of the rule. Valid values are: 'Allow', 'Deny'. Possible values include: 'Allow', 'Deny' 11170 Access Access `json:"access,omitempty"` 11171 // RouteFilterRuleType - The rule type of the rule. Valid value is: 'Community' 11172 RouteFilterRuleType *string `json:"routeFilterRuleType,omitempty"` 11173 // Communities - The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020'] 11174 Communities *[]string `json:"communities,omitempty"` 11175 // ProvisioningState - The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', 'Succeeded' and 'Failed'. 11176 ProvisioningState *string `json:"provisioningState,omitempty"` 11177} 11178 11179// RouteFilterRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 11180// operation. 11181type RouteFilterRulesCreateOrUpdateFuture 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 *RouteFilterRulesCreateOrUpdateFuture) Result(client RouteFilterRulesClient) (rfr RouteFilterRule, err error) { 11188 var done bool 11189 done, err = future.Done(client) 11190 if err != nil { 11191 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 11192 return 11193 } 11194 if !done { 11195 err = azure.NewAsyncOpIncompleteError("network.RouteFilterRulesCreateOrUpdateFuture") 11196 return 11197 } 11198 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11199 if rfr.Response.Response, err = future.GetResult(sender); err == nil && rfr.Response.Response.StatusCode != http.StatusNoContent { 11200 rfr, err = client.CreateOrUpdateResponder(rfr.Response.Response) 11201 if err != nil { 11202 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesCreateOrUpdateFuture", "Result", rfr.Response.Response, "Failure responding to request") 11203 } 11204 } 11205 return 11206} 11207 11208// RouteFilterRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 11209// operation. 11210type RouteFilterRulesDeleteFuture 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 *RouteFilterRulesDeleteFuture) Result(client RouteFilterRulesClient) (ar autorest.Response, err error) { 11217 var done bool 11218 done, err = future.Done(client) 11219 if err != nil { 11220 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesDeleteFuture", "Result", future.Response(), "Polling failure") 11221 return 11222 } 11223 if !done { 11224 err = azure.NewAsyncOpIncompleteError("network.RouteFilterRulesDeleteFuture") 11225 return 11226 } 11227 ar.Response = future.Response() 11228 return 11229} 11230 11231// RouteFilterRulesUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 11232// operation. 11233type RouteFilterRulesUpdateFuture 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 *RouteFilterRulesUpdateFuture) Result(client RouteFilterRulesClient) (rfr RouteFilterRule, err error) { 11240 var done bool 11241 done, err = future.Done(client) 11242 if err != nil { 11243 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesUpdateFuture", "Result", future.Response(), "Polling failure") 11244 return 11245 } 11246 if !done { 11247 err = azure.NewAsyncOpIncompleteError("network.RouteFilterRulesUpdateFuture") 11248 return 11249 } 11250 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11251 if rfr.Response.Response, err = future.GetResult(sender); err == nil && rfr.Response.Response.StatusCode != http.StatusNoContent { 11252 rfr, err = client.UpdateResponder(rfr.Response.Response) 11253 if err != nil { 11254 err = autorest.NewErrorWithError(err, "network.RouteFilterRulesUpdateFuture", "Result", rfr.Response.Response, "Failure responding to request") 11255 } 11256 } 11257 return 11258} 11259 11260// RouteFiltersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 11261// operation. 11262type RouteFiltersCreateOrUpdateFuture struct { 11263 azure.Future 11264} 11265 11266// Result returns the result of the asynchronous operation. 11267// If the operation has not completed it will return an error. 11268func (future *RouteFiltersCreateOrUpdateFuture) Result(client RouteFiltersClient) (rf RouteFilter, err error) { 11269 var done bool 11270 done, err = future.Done(client) 11271 if err != nil { 11272 err = autorest.NewErrorWithError(err, "network.RouteFiltersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 11273 return 11274 } 11275 if !done { 11276 err = azure.NewAsyncOpIncompleteError("network.RouteFiltersCreateOrUpdateFuture") 11277 return 11278 } 11279 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11280 if rf.Response.Response, err = future.GetResult(sender); err == nil && rf.Response.Response.StatusCode != http.StatusNoContent { 11281 rf, err = client.CreateOrUpdateResponder(rf.Response.Response) 11282 if err != nil { 11283 err = autorest.NewErrorWithError(err, "network.RouteFiltersCreateOrUpdateFuture", "Result", rf.Response.Response, "Failure responding to request") 11284 } 11285 } 11286 return 11287} 11288 11289// RouteFiltersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 11290type RouteFiltersDeleteFuture struct { 11291 azure.Future 11292} 11293 11294// Result returns the result of the asynchronous operation. 11295// If the operation has not completed it will return an error. 11296func (future *RouteFiltersDeleteFuture) Result(client RouteFiltersClient) (ar autorest.Response, err error) { 11297 var done bool 11298 done, err = future.Done(client) 11299 if err != nil { 11300 err = autorest.NewErrorWithError(err, "network.RouteFiltersDeleteFuture", "Result", future.Response(), "Polling failure") 11301 return 11302 } 11303 if !done { 11304 err = azure.NewAsyncOpIncompleteError("network.RouteFiltersDeleteFuture") 11305 return 11306 } 11307 ar.Response = future.Response() 11308 return 11309} 11310 11311// RouteFiltersUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 11312type RouteFiltersUpdateFuture struct { 11313 azure.Future 11314} 11315 11316// Result returns the result of the asynchronous operation. 11317// If the operation has not completed it will return an error. 11318func (future *RouteFiltersUpdateFuture) Result(client RouteFiltersClient) (rf RouteFilter, err error) { 11319 var done bool 11320 done, err = future.Done(client) 11321 if err != nil { 11322 err = autorest.NewErrorWithError(err, "network.RouteFiltersUpdateFuture", "Result", future.Response(), "Polling failure") 11323 return 11324 } 11325 if !done { 11326 err = azure.NewAsyncOpIncompleteError("network.RouteFiltersUpdateFuture") 11327 return 11328 } 11329 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11330 if rf.Response.Response, err = future.GetResult(sender); err == nil && rf.Response.Response.StatusCode != http.StatusNoContent { 11331 rf, err = client.UpdateResponder(rf.Response.Response) 11332 if err != nil { 11333 err = autorest.NewErrorWithError(err, "network.RouteFiltersUpdateFuture", "Result", rf.Response.Response, "Failure responding to request") 11334 } 11335 } 11336 return 11337} 11338 11339// RouteListResult response for the ListRoute API service call 11340type RouteListResult struct { 11341 autorest.Response `json:"-"` 11342 // Value - Gets a list of routes in a resource group. 11343 Value *[]Route `json:"value,omitempty"` 11344 // NextLink - The URL to get the next set of results. 11345 NextLink *string `json:"nextLink,omitempty"` 11346} 11347 11348// RouteListResultIterator provides access to a complete listing of Route values. 11349type RouteListResultIterator struct { 11350 i int 11351 page RouteListResultPage 11352} 11353 11354// Next advances to the next value. If there was an error making 11355// the request the iterator does not advance and the error is returned. 11356func (iter *RouteListResultIterator) Next() error { 11357 iter.i++ 11358 if iter.i < len(iter.page.Values()) { 11359 return nil 11360 } 11361 err := iter.page.Next() 11362 if err != nil { 11363 iter.i-- 11364 return err 11365 } 11366 iter.i = 0 11367 return nil 11368} 11369 11370// NotDone returns true if the enumeration should be started or is not yet complete. 11371func (iter RouteListResultIterator) NotDone() bool { 11372 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 11373} 11374 11375// Response returns the raw server response from the last page request. 11376func (iter RouteListResultIterator) Response() RouteListResult { 11377 return iter.page.Response() 11378} 11379 11380// Value returns the current value or a zero-initialized value if the 11381// iterator has advanced beyond the end of the collection. 11382func (iter RouteListResultIterator) Value() Route { 11383 if !iter.page.NotDone() { 11384 return Route{} 11385 } 11386 return iter.page.Values()[iter.i] 11387} 11388 11389// IsEmpty returns true if the ListResult contains no values. 11390func (rlr RouteListResult) IsEmpty() bool { 11391 return rlr.Value == nil || len(*rlr.Value) == 0 11392} 11393 11394// routeListResultPreparer prepares a request to retrieve the next set of results. 11395// It returns nil if no more results exist. 11396func (rlr RouteListResult) routeListResultPreparer() (*http.Request, error) { 11397 if rlr.NextLink == nil || len(to.String(rlr.NextLink)) < 1 { 11398 return nil, nil 11399 } 11400 return autorest.Prepare(&http.Request{}, 11401 autorest.AsJSON(), 11402 autorest.AsGet(), 11403 autorest.WithBaseURL(to.String(rlr.NextLink))) 11404} 11405 11406// RouteListResultPage contains a page of Route values. 11407type RouteListResultPage struct { 11408 fn func(RouteListResult) (RouteListResult, error) 11409 rlr RouteListResult 11410} 11411 11412// Next advances to the next page of values. If there was an error making 11413// the request the page does not advance and the error is returned. 11414func (page *RouteListResultPage) Next() error { 11415 next, err := page.fn(page.rlr) 11416 if err != nil { 11417 return err 11418 } 11419 page.rlr = next 11420 return nil 11421} 11422 11423// NotDone returns true if the page enumeration should be started or is not yet complete. 11424func (page RouteListResultPage) NotDone() bool { 11425 return !page.rlr.IsEmpty() 11426} 11427 11428// Response returns the raw server response from the last page request. 11429func (page RouteListResultPage) Response() RouteListResult { 11430 return page.rlr 11431} 11432 11433// Values returns the slice of values for the current page or nil if there are no values. 11434func (page RouteListResultPage) Values() []Route { 11435 if page.rlr.IsEmpty() { 11436 return nil 11437 } 11438 return *page.rlr.Value 11439} 11440 11441// RoutePropertiesFormat route resource 11442type RoutePropertiesFormat struct { 11443 // AddressPrefix - The destination CIDR to which the route applies. 11444 AddressPrefix *string `json:"addressPrefix,omitempty"` 11445 // 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' 11446 NextHopType RouteNextHopType `json:"nextHopType,omitempty"` 11447 // NextHopIPAddress - The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. 11448 NextHopIPAddress *string `json:"nextHopIpAddress,omitempty"` 11449 // ProvisioningState - The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 11450 ProvisioningState *string `json:"provisioningState,omitempty"` 11451} 11452 11453// RoutesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 11454type RoutesCreateOrUpdateFuture struct { 11455 azure.Future 11456} 11457 11458// Result returns the result of the asynchronous operation. 11459// If the operation has not completed it will return an error. 11460func (future *RoutesCreateOrUpdateFuture) Result(client RoutesClient) (r Route, err error) { 11461 var done bool 11462 done, err = future.Done(client) 11463 if err != nil { 11464 err = autorest.NewErrorWithError(err, "network.RoutesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 11465 return 11466 } 11467 if !done { 11468 err = azure.NewAsyncOpIncompleteError("network.RoutesCreateOrUpdateFuture") 11469 return 11470 } 11471 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11472 if r.Response.Response, err = future.GetResult(sender); err == nil && r.Response.Response.StatusCode != http.StatusNoContent { 11473 r, err = client.CreateOrUpdateResponder(r.Response.Response) 11474 if err != nil { 11475 err = autorest.NewErrorWithError(err, "network.RoutesCreateOrUpdateFuture", "Result", r.Response.Response, "Failure responding to request") 11476 } 11477 } 11478 return 11479} 11480 11481// RoutesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 11482type RoutesDeleteFuture struct { 11483 azure.Future 11484} 11485 11486// Result returns the result of the asynchronous operation. 11487// If the operation has not completed it will return an error. 11488func (future *RoutesDeleteFuture) Result(client RoutesClient) (ar autorest.Response, err error) { 11489 var done bool 11490 done, err = future.Done(client) 11491 if err != nil { 11492 err = autorest.NewErrorWithError(err, "network.RoutesDeleteFuture", "Result", future.Response(), "Polling failure") 11493 return 11494 } 11495 if !done { 11496 err = azure.NewAsyncOpIncompleteError("network.RoutesDeleteFuture") 11497 return 11498 } 11499 ar.Response = future.Response() 11500 return 11501} 11502 11503// RouteTable route table resource. 11504type RouteTable struct { 11505 autorest.Response `json:"-"` 11506 // RouteTablePropertiesFormat - Properties of the route table. 11507 *RouteTablePropertiesFormat `json:"properties,omitempty"` 11508 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 11509 Etag *string `json:"etag,omitempty"` 11510 // ID - Resource ID. 11511 ID *string `json:"id,omitempty"` 11512 // Name - Resource name. 11513 Name *string `json:"name,omitempty"` 11514 // Type - Resource type. 11515 Type *string `json:"type,omitempty"` 11516 // Location - Resource location. 11517 Location *string `json:"location,omitempty"` 11518 // Tags - Resource tags. 11519 Tags map[string]*string `json:"tags"` 11520} 11521 11522// MarshalJSON is the custom marshaler for RouteTable. 11523func (rt RouteTable) MarshalJSON() ([]byte, error) { 11524 objectMap := make(map[string]interface{}) 11525 if rt.RouteTablePropertiesFormat != nil { 11526 objectMap["properties"] = rt.RouteTablePropertiesFormat 11527 } 11528 if rt.Etag != nil { 11529 objectMap["etag"] = rt.Etag 11530 } 11531 if rt.ID != nil { 11532 objectMap["id"] = rt.ID 11533 } 11534 if rt.Name != nil { 11535 objectMap["name"] = rt.Name 11536 } 11537 if rt.Type != nil { 11538 objectMap["type"] = rt.Type 11539 } 11540 if rt.Location != nil { 11541 objectMap["location"] = rt.Location 11542 } 11543 if rt.Tags != nil { 11544 objectMap["tags"] = rt.Tags 11545 } 11546 return json.Marshal(objectMap) 11547} 11548 11549// UnmarshalJSON is the custom unmarshaler for RouteTable struct. 11550func (rt *RouteTable) UnmarshalJSON(body []byte) error { 11551 var m map[string]*json.RawMessage 11552 err := json.Unmarshal(body, &m) 11553 if err != nil { 11554 return err 11555 } 11556 for k, v := range m { 11557 switch k { 11558 case "properties": 11559 if v != nil { 11560 var routeTablePropertiesFormat RouteTablePropertiesFormat 11561 err = json.Unmarshal(*v, &routeTablePropertiesFormat) 11562 if err != nil { 11563 return err 11564 } 11565 rt.RouteTablePropertiesFormat = &routeTablePropertiesFormat 11566 } 11567 case "etag": 11568 if v != nil { 11569 var etag string 11570 err = json.Unmarshal(*v, &etag) 11571 if err != nil { 11572 return err 11573 } 11574 rt.Etag = &etag 11575 } 11576 case "id": 11577 if v != nil { 11578 var ID string 11579 err = json.Unmarshal(*v, &ID) 11580 if err != nil { 11581 return err 11582 } 11583 rt.ID = &ID 11584 } 11585 case "name": 11586 if v != nil { 11587 var name string 11588 err = json.Unmarshal(*v, &name) 11589 if err != nil { 11590 return err 11591 } 11592 rt.Name = &name 11593 } 11594 case "type": 11595 if v != nil { 11596 var typeVar string 11597 err = json.Unmarshal(*v, &typeVar) 11598 if err != nil { 11599 return err 11600 } 11601 rt.Type = &typeVar 11602 } 11603 case "location": 11604 if v != nil { 11605 var location string 11606 err = json.Unmarshal(*v, &location) 11607 if err != nil { 11608 return err 11609 } 11610 rt.Location = &location 11611 } 11612 case "tags": 11613 if v != nil { 11614 var tags map[string]*string 11615 err = json.Unmarshal(*v, &tags) 11616 if err != nil { 11617 return err 11618 } 11619 rt.Tags = tags 11620 } 11621 } 11622 } 11623 11624 return nil 11625} 11626 11627// RouteTableListResult response for the ListRouteTable API service call. 11628type RouteTableListResult struct { 11629 autorest.Response `json:"-"` 11630 // Value - Gets a list of route tables in a resource group. 11631 Value *[]RouteTable `json:"value,omitempty"` 11632 // NextLink - The URL to get the next set of results. 11633 NextLink *string `json:"nextLink,omitempty"` 11634} 11635 11636// RouteTableListResultIterator provides access to a complete listing of RouteTable values. 11637type RouteTableListResultIterator struct { 11638 i int 11639 page RouteTableListResultPage 11640} 11641 11642// Next advances to the next value. If there was an error making 11643// the request the iterator does not advance and the error is returned. 11644func (iter *RouteTableListResultIterator) Next() error { 11645 iter.i++ 11646 if iter.i < len(iter.page.Values()) { 11647 return nil 11648 } 11649 err := iter.page.Next() 11650 if err != nil { 11651 iter.i-- 11652 return err 11653 } 11654 iter.i = 0 11655 return nil 11656} 11657 11658// NotDone returns true if the enumeration should be started or is not yet complete. 11659func (iter RouteTableListResultIterator) NotDone() bool { 11660 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 11661} 11662 11663// Response returns the raw server response from the last page request. 11664func (iter RouteTableListResultIterator) Response() RouteTableListResult { 11665 return iter.page.Response() 11666} 11667 11668// Value returns the current value or a zero-initialized value if the 11669// iterator has advanced beyond the end of the collection. 11670func (iter RouteTableListResultIterator) Value() RouteTable { 11671 if !iter.page.NotDone() { 11672 return RouteTable{} 11673 } 11674 return iter.page.Values()[iter.i] 11675} 11676 11677// IsEmpty returns true if the ListResult contains no values. 11678func (rtlr RouteTableListResult) IsEmpty() bool { 11679 return rtlr.Value == nil || len(*rtlr.Value) == 0 11680} 11681 11682// routeTableListResultPreparer prepares a request to retrieve the next set of results. 11683// It returns nil if no more results exist. 11684func (rtlr RouteTableListResult) routeTableListResultPreparer() (*http.Request, error) { 11685 if rtlr.NextLink == nil || len(to.String(rtlr.NextLink)) < 1 { 11686 return nil, nil 11687 } 11688 return autorest.Prepare(&http.Request{}, 11689 autorest.AsJSON(), 11690 autorest.AsGet(), 11691 autorest.WithBaseURL(to.String(rtlr.NextLink))) 11692} 11693 11694// RouteTableListResultPage contains a page of RouteTable values. 11695type RouteTableListResultPage struct { 11696 fn func(RouteTableListResult) (RouteTableListResult, error) 11697 rtlr RouteTableListResult 11698} 11699 11700// Next advances to the next page of values. If there was an error making 11701// the request the page does not advance and the error is returned. 11702func (page *RouteTableListResultPage) Next() error { 11703 next, err := page.fn(page.rtlr) 11704 if err != nil { 11705 return err 11706 } 11707 page.rtlr = next 11708 return nil 11709} 11710 11711// NotDone returns true if the page enumeration should be started or is not yet complete. 11712func (page RouteTableListResultPage) NotDone() bool { 11713 return !page.rtlr.IsEmpty() 11714} 11715 11716// Response returns the raw server response from the last page request. 11717func (page RouteTableListResultPage) Response() RouteTableListResult { 11718 return page.rtlr 11719} 11720 11721// Values returns the slice of values for the current page or nil if there are no values. 11722func (page RouteTableListResultPage) Values() []RouteTable { 11723 if page.rtlr.IsEmpty() { 11724 return nil 11725 } 11726 return *page.rtlr.Value 11727} 11728 11729// RouteTablePropertiesFormat route Table resource 11730type RouteTablePropertiesFormat struct { 11731 // Routes - Collection of routes contained within a route table. 11732 Routes *[]Route `json:"routes,omitempty"` 11733 // Subnets - A collection of references to subnets. 11734 Subnets *[]Subnet `json:"subnets,omitempty"` 11735 // DisableBgpRoutePropagation - Gets or sets whether to disable the routes learned by BGP on that route table. True means disable. 11736 DisableBgpRoutePropagation *bool `json:"disableBgpRoutePropagation,omitempty"` 11737 // ProvisioningState - The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 11738 ProvisioningState *string `json:"provisioningState,omitempty"` 11739} 11740 11741// RouteTablesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 11742// operation. 11743type RouteTablesCreateOrUpdateFuture struct { 11744 azure.Future 11745} 11746 11747// Result returns the result of the asynchronous operation. 11748// If the operation has not completed it will return an error. 11749func (future *RouteTablesCreateOrUpdateFuture) Result(client RouteTablesClient) (rt RouteTable, err error) { 11750 var done bool 11751 done, err = future.Done(client) 11752 if err != nil { 11753 err = autorest.NewErrorWithError(err, "network.RouteTablesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 11754 return 11755 } 11756 if !done { 11757 err = azure.NewAsyncOpIncompleteError("network.RouteTablesCreateOrUpdateFuture") 11758 return 11759 } 11760 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11761 if rt.Response.Response, err = future.GetResult(sender); err == nil && rt.Response.Response.StatusCode != http.StatusNoContent { 11762 rt, err = client.CreateOrUpdateResponder(rt.Response.Response) 11763 if err != nil { 11764 err = autorest.NewErrorWithError(err, "network.RouteTablesCreateOrUpdateFuture", "Result", rt.Response.Response, "Failure responding to request") 11765 } 11766 } 11767 return 11768} 11769 11770// RouteTablesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 11771type RouteTablesDeleteFuture struct { 11772 azure.Future 11773} 11774 11775// Result returns the result of the asynchronous operation. 11776// If the operation has not completed it will return an error. 11777func (future *RouteTablesDeleteFuture) Result(client RouteTablesClient) (ar autorest.Response, err error) { 11778 var done bool 11779 done, err = future.Done(client) 11780 if err != nil { 11781 err = autorest.NewErrorWithError(err, "network.RouteTablesDeleteFuture", "Result", future.Response(), "Polling failure") 11782 return 11783 } 11784 if !done { 11785 err = azure.NewAsyncOpIncompleteError("network.RouteTablesDeleteFuture") 11786 return 11787 } 11788 ar.Response = future.Response() 11789 return 11790} 11791 11792// RouteTablesUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 11793// operation. 11794type RouteTablesUpdateTagsFuture struct { 11795 azure.Future 11796} 11797 11798// Result returns the result of the asynchronous operation. 11799// If the operation has not completed it will return an error. 11800func (future *RouteTablesUpdateTagsFuture) Result(client RouteTablesClient) (rt RouteTable, err error) { 11801 var done bool 11802 done, err = future.Done(client) 11803 if err != nil { 11804 err = autorest.NewErrorWithError(err, "network.RouteTablesUpdateTagsFuture", "Result", future.Response(), "Polling failure") 11805 return 11806 } 11807 if !done { 11808 err = azure.NewAsyncOpIncompleteError("network.RouteTablesUpdateTagsFuture") 11809 return 11810 } 11811 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 11812 if rt.Response.Response, err = future.GetResult(sender); err == nil && rt.Response.Response.StatusCode != http.StatusNoContent { 11813 rt, err = client.UpdateTagsResponder(rt.Response.Response) 11814 if err != nil { 11815 err = autorest.NewErrorWithError(err, "network.RouteTablesUpdateTagsFuture", "Result", rt.Response.Response, "Failure responding to request") 11816 } 11817 } 11818 return 11819} 11820 11821// SecurityGroup networkSecurityGroup resource. 11822type SecurityGroup struct { 11823 autorest.Response `json:"-"` 11824 // SecurityGroupPropertiesFormat - Properties of the network security group 11825 *SecurityGroupPropertiesFormat `json:"properties,omitempty"` 11826 // Etag - A unique read-only string that changes whenever the resource is updated. 11827 Etag *string `json:"etag,omitempty"` 11828 // ID - Resource ID. 11829 ID *string `json:"id,omitempty"` 11830 // Name - Resource name. 11831 Name *string `json:"name,omitempty"` 11832 // Type - Resource type. 11833 Type *string `json:"type,omitempty"` 11834 // Location - Resource location. 11835 Location *string `json:"location,omitempty"` 11836 // Tags - Resource tags. 11837 Tags map[string]*string `json:"tags"` 11838} 11839 11840// MarshalJSON is the custom marshaler for SecurityGroup. 11841func (sg SecurityGroup) MarshalJSON() ([]byte, error) { 11842 objectMap := make(map[string]interface{}) 11843 if sg.SecurityGroupPropertiesFormat != nil { 11844 objectMap["properties"] = sg.SecurityGroupPropertiesFormat 11845 } 11846 if sg.Etag != nil { 11847 objectMap["etag"] = sg.Etag 11848 } 11849 if sg.ID != nil { 11850 objectMap["id"] = sg.ID 11851 } 11852 if sg.Name != nil { 11853 objectMap["name"] = sg.Name 11854 } 11855 if sg.Type != nil { 11856 objectMap["type"] = sg.Type 11857 } 11858 if sg.Location != nil { 11859 objectMap["location"] = sg.Location 11860 } 11861 if sg.Tags != nil { 11862 objectMap["tags"] = sg.Tags 11863 } 11864 return json.Marshal(objectMap) 11865} 11866 11867// UnmarshalJSON is the custom unmarshaler for SecurityGroup struct. 11868func (sg *SecurityGroup) UnmarshalJSON(body []byte) error { 11869 var m map[string]*json.RawMessage 11870 err := json.Unmarshal(body, &m) 11871 if err != nil { 11872 return err 11873 } 11874 for k, v := range m { 11875 switch k { 11876 case "properties": 11877 if v != nil { 11878 var securityGroupPropertiesFormat SecurityGroupPropertiesFormat 11879 err = json.Unmarshal(*v, &securityGroupPropertiesFormat) 11880 if err != nil { 11881 return err 11882 } 11883 sg.SecurityGroupPropertiesFormat = &securityGroupPropertiesFormat 11884 } 11885 case "etag": 11886 if v != nil { 11887 var etag string 11888 err = json.Unmarshal(*v, &etag) 11889 if err != nil { 11890 return err 11891 } 11892 sg.Etag = &etag 11893 } 11894 case "id": 11895 if v != nil { 11896 var ID string 11897 err = json.Unmarshal(*v, &ID) 11898 if err != nil { 11899 return err 11900 } 11901 sg.ID = &ID 11902 } 11903 case "name": 11904 if v != nil { 11905 var name string 11906 err = json.Unmarshal(*v, &name) 11907 if err != nil { 11908 return err 11909 } 11910 sg.Name = &name 11911 } 11912 case "type": 11913 if v != nil { 11914 var typeVar string 11915 err = json.Unmarshal(*v, &typeVar) 11916 if err != nil { 11917 return err 11918 } 11919 sg.Type = &typeVar 11920 } 11921 case "location": 11922 if v != nil { 11923 var location string 11924 err = json.Unmarshal(*v, &location) 11925 if err != nil { 11926 return err 11927 } 11928 sg.Location = &location 11929 } 11930 case "tags": 11931 if v != nil { 11932 var tags map[string]*string 11933 err = json.Unmarshal(*v, &tags) 11934 if err != nil { 11935 return err 11936 } 11937 sg.Tags = tags 11938 } 11939 } 11940 } 11941 11942 return nil 11943} 11944 11945// SecurityGroupListResult response for ListNetworkSecurityGroups API service call. 11946type SecurityGroupListResult struct { 11947 autorest.Response `json:"-"` 11948 // Value - A list of NetworkSecurityGroup resources. 11949 Value *[]SecurityGroup `json:"value,omitempty"` 11950 // NextLink - The URL to get the next set of results. 11951 NextLink *string `json:"nextLink,omitempty"` 11952} 11953 11954// SecurityGroupListResultIterator provides access to a complete listing of SecurityGroup values. 11955type SecurityGroupListResultIterator struct { 11956 i int 11957 page SecurityGroupListResultPage 11958} 11959 11960// Next advances to the next value. If there was an error making 11961// the request the iterator does not advance and the error is returned. 11962func (iter *SecurityGroupListResultIterator) Next() error { 11963 iter.i++ 11964 if iter.i < len(iter.page.Values()) { 11965 return nil 11966 } 11967 err := iter.page.Next() 11968 if err != nil { 11969 iter.i-- 11970 return err 11971 } 11972 iter.i = 0 11973 return nil 11974} 11975 11976// NotDone returns true if the enumeration should be started or is not yet complete. 11977func (iter SecurityGroupListResultIterator) NotDone() bool { 11978 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 11979} 11980 11981// Response returns the raw server response from the last page request. 11982func (iter SecurityGroupListResultIterator) Response() SecurityGroupListResult { 11983 return iter.page.Response() 11984} 11985 11986// Value returns the current value or a zero-initialized value if the 11987// iterator has advanced beyond the end of the collection. 11988func (iter SecurityGroupListResultIterator) Value() SecurityGroup { 11989 if !iter.page.NotDone() { 11990 return SecurityGroup{} 11991 } 11992 return iter.page.Values()[iter.i] 11993} 11994 11995// IsEmpty returns true if the ListResult contains no values. 11996func (sglr SecurityGroupListResult) IsEmpty() bool { 11997 return sglr.Value == nil || len(*sglr.Value) == 0 11998} 11999 12000// securityGroupListResultPreparer prepares a request to retrieve the next set of results. 12001// It returns nil if no more results exist. 12002func (sglr SecurityGroupListResult) securityGroupListResultPreparer() (*http.Request, error) { 12003 if sglr.NextLink == nil || len(to.String(sglr.NextLink)) < 1 { 12004 return nil, nil 12005 } 12006 return autorest.Prepare(&http.Request{}, 12007 autorest.AsJSON(), 12008 autorest.AsGet(), 12009 autorest.WithBaseURL(to.String(sglr.NextLink))) 12010} 12011 12012// SecurityGroupListResultPage contains a page of SecurityGroup values. 12013type SecurityGroupListResultPage struct { 12014 fn func(SecurityGroupListResult) (SecurityGroupListResult, error) 12015 sglr SecurityGroupListResult 12016} 12017 12018// Next advances to the next page of values. If there was an error making 12019// the request the page does not advance and the error is returned. 12020func (page *SecurityGroupListResultPage) Next() error { 12021 next, err := page.fn(page.sglr) 12022 if err != nil { 12023 return err 12024 } 12025 page.sglr = next 12026 return nil 12027} 12028 12029// NotDone returns true if the page enumeration should be started or is not yet complete. 12030func (page SecurityGroupListResultPage) NotDone() bool { 12031 return !page.sglr.IsEmpty() 12032} 12033 12034// Response returns the raw server response from the last page request. 12035func (page SecurityGroupListResultPage) Response() SecurityGroupListResult { 12036 return page.sglr 12037} 12038 12039// Values returns the slice of values for the current page or nil if there are no values. 12040func (page SecurityGroupListResultPage) Values() []SecurityGroup { 12041 if page.sglr.IsEmpty() { 12042 return nil 12043 } 12044 return *page.sglr.Value 12045} 12046 12047// SecurityGroupNetworkInterface network interface and all its associated security rules. 12048type SecurityGroupNetworkInterface struct { 12049 // ID - ID of the network interface. 12050 ID *string `json:"id,omitempty"` 12051 SecurityRuleAssociations *SecurityRuleAssociations `json:"securityRuleAssociations,omitempty"` 12052} 12053 12054// SecurityGroupPropertiesFormat network Security Group resource. 12055type SecurityGroupPropertiesFormat struct { 12056 // SecurityRules - A collection of security rules of the network security group. 12057 SecurityRules *[]SecurityRule `json:"securityRules,omitempty"` 12058 // DefaultSecurityRules - The default security rules of network security group. 12059 DefaultSecurityRules *[]SecurityRule `json:"defaultSecurityRules,omitempty"` 12060 // NetworkInterfaces - A collection of references to network interfaces. 12061 NetworkInterfaces *[]Interface `json:"networkInterfaces,omitempty"` 12062 // Subnets - A collection of references to subnets. 12063 Subnets *[]Subnet `json:"subnets,omitempty"` 12064 // ResourceGUID - The resource GUID property of the network security group resource. 12065 ResourceGUID *string `json:"resourceGuid,omitempty"` 12066 // ProvisioningState - The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 12067 ProvisioningState *string `json:"provisioningState,omitempty"` 12068} 12069 12070// SecurityGroupsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 12071// operation. 12072type SecurityGroupsCreateOrUpdateFuture struct { 12073 azure.Future 12074} 12075 12076// Result returns the result of the asynchronous operation. 12077// If the operation has not completed it will return an error. 12078func (future *SecurityGroupsCreateOrUpdateFuture) Result(client SecurityGroupsClient) (sg SecurityGroup, err error) { 12079 var done bool 12080 done, err = future.Done(client) 12081 if err != nil { 12082 err = autorest.NewErrorWithError(err, "network.SecurityGroupsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 12083 return 12084 } 12085 if !done { 12086 err = azure.NewAsyncOpIncompleteError("network.SecurityGroupsCreateOrUpdateFuture") 12087 return 12088 } 12089 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 12090 if sg.Response.Response, err = future.GetResult(sender); err == nil && sg.Response.Response.StatusCode != http.StatusNoContent { 12091 sg, err = client.CreateOrUpdateResponder(sg.Response.Response) 12092 if err != nil { 12093 err = autorest.NewErrorWithError(err, "network.SecurityGroupsCreateOrUpdateFuture", "Result", sg.Response.Response, "Failure responding to request") 12094 } 12095 } 12096 return 12097} 12098 12099// SecurityGroupsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 12100type SecurityGroupsDeleteFuture struct { 12101 azure.Future 12102} 12103 12104// Result returns the result of the asynchronous operation. 12105// If the operation has not completed it will return an error. 12106func (future *SecurityGroupsDeleteFuture) Result(client SecurityGroupsClient) (ar autorest.Response, err error) { 12107 var done bool 12108 done, err = future.Done(client) 12109 if err != nil { 12110 err = autorest.NewErrorWithError(err, "network.SecurityGroupsDeleteFuture", "Result", future.Response(), "Polling failure") 12111 return 12112 } 12113 if !done { 12114 err = azure.NewAsyncOpIncompleteError("network.SecurityGroupsDeleteFuture") 12115 return 12116 } 12117 ar.Response = future.Response() 12118 return 12119} 12120 12121// SecurityGroupsUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 12122// operation. 12123type SecurityGroupsUpdateTagsFuture struct { 12124 azure.Future 12125} 12126 12127// Result returns the result of the asynchronous operation. 12128// If the operation has not completed it will return an error. 12129func (future *SecurityGroupsUpdateTagsFuture) Result(client SecurityGroupsClient) (sg SecurityGroup, err error) { 12130 var done bool 12131 done, err = future.Done(client) 12132 if err != nil { 12133 err = autorest.NewErrorWithError(err, "network.SecurityGroupsUpdateTagsFuture", "Result", future.Response(), "Polling failure") 12134 return 12135 } 12136 if !done { 12137 err = azure.NewAsyncOpIncompleteError("network.SecurityGroupsUpdateTagsFuture") 12138 return 12139 } 12140 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 12141 if sg.Response.Response, err = future.GetResult(sender); err == nil && sg.Response.Response.StatusCode != http.StatusNoContent { 12142 sg, err = client.UpdateTagsResponder(sg.Response.Response) 12143 if err != nil { 12144 err = autorest.NewErrorWithError(err, "network.SecurityGroupsUpdateTagsFuture", "Result", sg.Response.Response, "Failure responding to request") 12145 } 12146 } 12147 return 12148} 12149 12150// SecurityGroupViewParameters parameters that define the VM to check security groups for. 12151type SecurityGroupViewParameters struct { 12152 // TargetResourceID - ID of the target VM. 12153 TargetResourceID *string `json:"targetResourceId,omitempty"` 12154} 12155 12156// SecurityGroupViewResult the information about security rules applied to the specified VM. 12157type SecurityGroupViewResult struct { 12158 autorest.Response `json:"-"` 12159 // NetworkInterfaces - List of network interfaces on the specified VM. 12160 NetworkInterfaces *[]SecurityGroupNetworkInterface `json:"networkInterfaces,omitempty"` 12161} 12162 12163// SecurityRule network security rule. 12164type SecurityRule struct { 12165 autorest.Response `json:"-"` 12166 // SecurityRulePropertiesFormat - Properties of the security rule 12167 *SecurityRulePropertiesFormat `json:"properties,omitempty"` 12168 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 12169 Name *string `json:"name,omitempty"` 12170 // Etag - A unique read-only string that changes whenever the resource is updated. 12171 Etag *string `json:"etag,omitempty"` 12172 // ID - Resource ID. 12173 ID *string `json:"id,omitempty"` 12174} 12175 12176// MarshalJSON is the custom marshaler for SecurityRule. 12177func (sr SecurityRule) MarshalJSON() ([]byte, error) { 12178 objectMap := make(map[string]interface{}) 12179 if sr.SecurityRulePropertiesFormat != nil { 12180 objectMap["properties"] = sr.SecurityRulePropertiesFormat 12181 } 12182 if sr.Name != nil { 12183 objectMap["name"] = sr.Name 12184 } 12185 if sr.Etag != nil { 12186 objectMap["etag"] = sr.Etag 12187 } 12188 if sr.ID != nil { 12189 objectMap["id"] = sr.ID 12190 } 12191 return json.Marshal(objectMap) 12192} 12193 12194// UnmarshalJSON is the custom unmarshaler for SecurityRule struct. 12195func (sr *SecurityRule) UnmarshalJSON(body []byte) error { 12196 var m map[string]*json.RawMessage 12197 err := json.Unmarshal(body, &m) 12198 if err != nil { 12199 return err 12200 } 12201 for k, v := range m { 12202 switch k { 12203 case "properties": 12204 if v != nil { 12205 var securityRulePropertiesFormat SecurityRulePropertiesFormat 12206 err = json.Unmarshal(*v, &securityRulePropertiesFormat) 12207 if err != nil { 12208 return err 12209 } 12210 sr.SecurityRulePropertiesFormat = &securityRulePropertiesFormat 12211 } 12212 case "name": 12213 if v != nil { 12214 var name string 12215 err = json.Unmarshal(*v, &name) 12216 if err != nil { 12217 return err 12218 } 12219 sr.Name = &name 12220 } 12221 case "etag": 12222 if v != nil { 12223 var etag string 12224 err = json.Unmarshal(*v, &etag) 12225 if err != nil { 12226 return err 12227 } 12228 sr.Etag = &etag 12229 } 12230 case "id": 12231 if v != nil { 12232 var ID string 12233 err = json.Unmarshal(*v, &ID) 12234 if err != nil { 12235 return err 12236 } 12237 sr.ID = &ID 12238 } 12239 } 12240 } 12241 12242 return nil 12243} 12244 12245// SecurityRuleAssociations all security rules associated with the network interface. 12246type SecurityRuleAssociations struct { 12247 NetworkInterfaceAssociation *InterfaceAssociation `json:"networkInterfaceAssociation,omitempty"` 12248 SubnetAssociation *SubnetAssociation `json:"subnetAssociation,omitempty"` 12249 // DefaultSecurityRules - Collection of default security rules of the network security group. 12250 DefaultSecurityRules *[]SecurityRule `json:"defaultSecurityRules,omitempty"` 12251 // EffectiveSecurityRules - Collection of effective security rules. 12252 EffectiveSecurityRules *[]EffectiveNetworkSecurityRule `json:"effectiveSecurityRules,omitempty"` 12253} 12254 12255// SecurityRuleListResult response for ListSecurityRule API service call. Retrieves all security rules that belongs 12256// to a network security group. 12257type SecurityRuleListResult struct { 12258 autorest.Response `json:"-"` 12259 // Value - The security rules in a network security group. 12260 Value *[]SecurityRule `json:"value,omitempty"` 12261 // NextLink - The URL to get the next set of results. 12262 NextLink *string `json:"nextLink,omitempty"` 12263} 12264 12265// SecurityRuleListResultIterator provides access to a complete listing of SecurityRule values. 12266type SecurityRuleListResultIterator struct { 12267 i int 12268 page SecurityRuleListResultPage 12269} 12270 12271// Next advances to the next value. If there was an error making 12272// the request the iterator does not advance and the error is returned. 12273func (iter *SecurityRuleListResultIterator) Next() error { 12274 iter.i++ 12275 if iter.i < len(iter.page.Values()) { 12276 return nil 12277 } 12278 err := iter.page.Next() 12279 if err != nil { 12280 iter.i-- 12281 return err 12282 } 12283 iter.i = 0 12284 return nil 12285} 12286 12287// NotDone returns true if the enumeration should be started or is not yet complete. 12288func (iter SecurityRuleListResultIterator) NotDone() bool { 12289 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 12290} 12291 12292// Response returns the raw server response from the last page request. 12293func (iter SecurityRuleListResultIterator) Response() SecurityRuleListResult { 12294 return iter.page.Response() 12295} 12296 12297// Value returns the current value or a zero-initialized value if the 12298// iterator has advanced beyond the end of the collection. 12299func (iter SecurityRuleListResultIterator) Value() SecurityRule { 12300 if !iter.page.NotDone() { 12301 return SecurityRule{} 12302 } 12303 return iter.page.Values()[iter.i] 12304} 12305 12306// IsEmpty returns true if the ListResult contains no values. 12307func (srlr SecurityRuleListResult) IsEmpty() bool { 12308 return srlr.Value == nil || len(*srlr.Value) == 0 12309} 12310 12311// securityRuleListResultPreparer prepares a request to retrieve the next set of results. 12312// It returns nil if no more results exist. 12313func (srlr SecurityRuleListResult) securityRuleListResultPreparer() (*http.Request, error) { 12314 if srlr.NextLink == nil || len(to.String(srlr.NextLink)) < 1 { 12315 return nil, nil 12316 } 12317 return autorest.Prepare(&http.Request{}, 12318 autorest.AsJSON(), 12319 autorest.AsGet(), 12320 autorest.WithBaseURL(to.String(srlr.NextLink))) 12321} 12322 12323// SecurityRuleListResultPage contains a page of SecurityRule values. 12324type SecurityRuleListResultPage struct { 12325 fn func(SecurityRuleListResult) (SecurityRuleListResult, error) 12326 srlr SecurityRuleListResult 12327} 12328 12329// Next advances to the next page of values. If there was an error making 12330// the request the page does not advance and the error is returned. 12331func (page *SecurityRuleListResultPage) Next() error { 12332 next, err := page.fn(page.srlr) 12333 if err != nil { 12334 return err 12335 } 12336 page.srlr = next 12337 return nil 12338} 12339 12340// NotDone returns true if the page enumeration should be started or is not yet complete. 12341func (page SecurityRuleListResultPage) NotDone() bool { 12342 return !page.srlr.IsEmpty() 12343} 12344 12345// Response returns the raw server response from the last page request. 12346func (page SecurityRuleListResultPage) Response() SecurityRuleListResult { 12347 return page.srlr 12348} 12349 12350// Values returns the slice of values for the current page or nil if there are no values. 12351func (page SecurityRuleListResultPage) Values() []SecurityRule { 12352 if page.srlr.IsEmpty() { 12353 return nil 12354 } 12355 return *page.srlr.Value 12356} 12357 12358// SecurityRulePropertiesFormat security rule resource. 12359type SecurityRulePropertiesFormat struct { 12360 // Description - A description for this rule. Restricted to 140 chars. 12361 Description *string `json:"description,omitempty"` 12362 // Protocol - Network protocol this rule applies to. Possible values are 'Tcp', 'Udp', and '*'. Possible values include: 'SecurityRuleProtocolTCP', 'SecurityRuleProtocolUDP', 'SecurityRuleProtocolAsterisk' 12363 Protocol SecurityRuleProtocol `json:"protocol,omitempty"` 12364 // SourcePortRange - The source port or range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports. 12365 SourcePortRange *string `json:"sourcePortRange,omitempty"` 12366 // DestinationPortRange - The destination port or range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports. 12367 DestinationPortRange *string `json:"destinationPortRange,omitempty"` 12368 // SourceAddressPrefix - The CIDR or source IP range. Asterix '*' 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. 12369 SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"` 12370 // SourceAddressPrefixes - The CIDR or source IP ranges. 12371 SourceAddressPrefixes *[]string `json:"sourceAddressPrefixes,omitempty"` 12372 // SourceApplicationSecurityGroups - The application security group specified as source. 12373 SourceApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"sourceApplicationSecurityGroups,omitempty"` 12374 // DestinationAddressPrefix - The destination address prefix. CIDR or destination IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. 12375 DestinationAddressPrefix *string `json:"destinationAddressPrefix,omitempty"` 12376 // DestinationAddressPrefixes - The destination address prefixes. CIDR or destination IP ranges. 12377 DestinationAddressPrefixes *[]string `json:"destinationAddressPrefixes,omitempty"` 12378 // DestinationApplicationSecurityGroups - The application security group specified as destination. 12379 DestinationApplicationSecurityGroups *[]ApplicationSecurityGroup `json:"destinationApplicationSecurityGroups,omitempty"` 12380 // SourcePortRanges - The source port ranges. 12381 SourcePortRanges *[]string `json:"sourcePortRanges,omitempty"` 12382 // DestinationPortRanges - The destination port ranges. 12383 DestinationPortRanges *[]string `json:"destinationPortRanges,omitempty"` 12384 // Access - The network traffic is allowed or denied. Possible values are: 'Allow' and 'Deny'. Possible values include: 'SecurityRuleAccessAllow', 'SecurityRuleAccessDeny' 12385 Access SecurityRuleAccess `json:"access,omitempty"` 12386 // 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. 12387 Priority *int32 `json:"priority,omitempty"` 12388 // Direction - The direction of the rule. The direction specifies if rule will be evaluated on incoming or outcoming traffic. Possible values are: 'Inbound' and 'Outbound'. Possible values include: 'SecurityRuleDirectionInbound', 'SecurityRuleDirectionOutbound' 12389 Direction SecurityRuleDirection `json:"direction,omitempty"` 12390 // ProvisioningState - The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 12391 ProvisioningState *string `json:"provisioningState,omitempty"` 12392} 12393 12394// SecurityRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 12395// operation. 12396type SecurityRulesCreateOrUpdateFuture struct { 12397 azure.Future 12398} 12399 12400// Result returns the result of the asynchronous operation. 12401// If the operation has not completed it will return an error. 12402func (future *SecurityRulesCreateOrUpdateFuture) Result(client SecurityRulesClient) (sr SecurityRule, err error) { 12403 var done bool 12404 done, err = future.Done(client) 12405 if err != nil { 12406 err = autorest.NewErrorWithError(err, "network.SecurityRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 12407 return 12408 } 12409 if !done { 12410 err = azure.NewAsyncOpIncompleteError("network.SecurityRulesCreateOrUpdateFuture") 12411 return 12412 } 12413 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 12414 if sr.Response.Response, err = future.GetResult(sender); err == nil && sr.Response.Response.StatusCode != http.StatusNoContent { 12415 sr, err = client.CreateOrUpdateResponder(sr.Response.Response) 12416 if err != nil { 12417 err = autorest.NewErrorWithError(err, "network.SecurityRulesCreateOrUpdateFuture", "Result", sr.Response.Response, "Failure responding to request") 12418 } 12419 } 12420 return 12421} 12422 12423// SecurityRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 12424type SecurityRulesDeleteFuture struct { 12425 azure.Future 12426} 12427 12428// Result returns the result of the asynchronous operation. 12429// If the operation has not completed it will return an error. 12430func (future *SecurityRulesDeleteFuture) Result(client SecurityRulesClient) (ar autorest.Response, err error) { 12431 var done bool 12432 done, err = future.Done(client) 12433 if err != nil { 12434 err = autorest.NewErrorWithError(err, "network.SecurityRulesDeleteFuture", "Result", future.Response(), "Polling failure") 12435 return 12436 } 12437 if !done { 12438 err = azure.NewAsyncOpIncompleteError("network.SecurityRulesDeleteFuture") 12439 return 12440 } 12441 ar.Response = future.Response() 12442 return 12443} 12444 12445// ServiceEndpointPropertiesFormat the service endpoint properties. 12446type ServiceEndpointPropertiesFormat struct { 12447 // Service - The type of the endpoint service. 12448 Service *string `json:"service,omitempty"` 12449 // Locations - A list of locations. 12450 Locations *[]string `json:"locations,omitempty"` 12451 // ProvisioningState - The provisioning state of the resource. 12452 ProvisioningState *string `json:"provisioningState,omitempty"` 12453} 12454 12455// String ... 12456type String struct { 12457 autorest.Response `json:"-"` 12458 Value *string `json:"value,omitempty"` 12459} 12460 12461// Subnet subnet in a virtual network resource. 12462type Subnet struct { 12463 autorest.Response `json:"-"` 12464 // SubnetPropertiesFormat - Properties of the subnet. 12465 *SubnetPropertiesFormat `json:"properties,omitempty"` 12466 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 12467 Name *string `json:"name,omitempty"` 12468 // Etag - A unique read-only string that changes whenever the resource is updated. 12469 Etag *string `json:"etag,omitempty"` 12470 // ID - Resource ID. 12471 ID *string `json:"id,omitempty"` 12472} 12473 12474// MarshalJSON is the custom marshaler for Subnet. 12475func (s Subnet) MarshalJSON() ([]byte, error) { 12476 objectMap := make(map[string]interface{}) 12477 if s.SubnetPropertiesFormat != nil { 12478 objectMap["properties"] = s.SubnetPropertiesFormat 12479 } 12480 if s.Name != nil { 12481 objectMap["name"] = s.Name 12482 } 12483 if s.Etag != nil { 12484 objectMap["etag"] = s.Etag 12485 } 12486 if s.ID != nil { 12487 objectMap["id"] = s.ID 12488 } 12489 return json.Marshal(objectMap) 12490} 12491 12492// UnmarshalJSON is the custom unmarshaler for Subnet struct. 12493func (s *Subnet) UnmarshalJSON(body []byte) error { 12494 var m map[string]*json.RawMessage 12495 err := json.Unmarshal(body, &m) 12496 if err != nil { 12497 return err 12498 } 12499 for k, v := range m { 12500 switch k { 12501 case "properties": 12502 if v != nil { 12503 var subnetPropertiesFormat SubnetPropertiesFormat 12504 err = json.Unmarshal(*v, &subnetPropertiesFormat) 12505 if err != nil { 12506 return err 12507 } 12508 s.SubnetPropertiesFormat = &subnetPropertiesFormat 12509 } 12510 case "name": 12511 if v != nil { 12512 var name string 12513 err = json.Unmarshal(*v, &name) 12514 if err != nil { 12515 return err 12516 } 12517 s.Name = &name 12518 } 12519 case "etag": 12520 if v != nil { 12521 var etag string 12522 err = json.Unmarshal(*v, &etag) 12523 if err != nil { 12524 return err 12525 } 12526 s.Etag = &etag 12527 } 12528 case "id": 12529 if v != nil { 12530 var ID string 12531 err = json.Unmarshal(*v, &ID) 12532 if err != nil { 12533 return err 12534 } 12535 s.ID = &ID 12536 } 12537 } 12538 } 12539 12540 return nil 12541} 12542 12543// SubnetAssociation network interface and its custom security rules. 12544type SubnetAssociation struct { 12545 // ID - Subnet ID. 12546 ID *string `json:"id,omitempty"` 12547 // SecurityRules - Collection of custom security rules. 12548 SecurityRules *[]SecurityRule `json:"securityRules,omitempty"` 12549} 12550 12551// SubnetListResult response for ListSubnets API service callRetrieves all subnet that belongs to a virtual network 12552type SubnetListResult struct { 12553 autorest.Response `json:"-"` 12554 // Value - The subnets in a virtual network. 12555 Value *[]Subnet `json:"value,omitempty"` 12556 // NextLink - The URL to get the next set of results. 12557 NextLink *string `json:"nextLink,omitempty"` 12558} 12559 12560// SubnetListResultIterator provides access to a complete listing of Subnet values. 12561type SubnetListResultIterator struct { 12562 i int 12563 page SubnetListResultPage 12564} 12565 12566// Next advances to the next value. If there was an error making 12567// the request the iterator does not advance and the error is returned. 12568func (iter *SubnetListResultIterator) Next() error { 12569 iter.i++ 12570 if iter.i < len(iter.page.Values()) { 12571 return nil 12572 } 12573 err := iter.page.Next() 12574 if err != nil { 12575 iter.i-- 12576 return err 12577 } 12578 iter.i = 0 12579 return nil 12580} 12581 12582// NotDone returns true if the enumeration should be started or is not yet complete. 12583func (iter SubnetListResultIterator) NotDone() bool { 12584 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 12585} 12586 12587// Response returns the raw server response from the last page request. 12588func (iter SubnetListResultIterator) Response() SubnetListResult { 12589 return iter.page.Response() 12590} 12591 12592// Value returns the current value or a zero-initialized value if the 12593// iterator has advanced beyond the end of the collection. 12594func (iter SubnetListResultIterator) Value() Subnet { 12595 if !iter.page.NotDone() { 12596 return Subnet{} 12597 } 12598 return iter.page.Values()[iter.i] 12599} 12600 12601// IsEmpty returns true if the ListResult contains no values. 12602func (slr SubnetListResult) IsEmpty() bool { 12603 return slr.Value == nil || len(*slr.Value) == 0 12604} 12605 12606// subnetListResultPreparer prepares a request to retrieve the next set of results. 12607// It returns nil if no more results exist. 12608func (slr SubnetListResult) subnetListResultPreparer() (*http.Request, error) { 12609 if slr.NextLink == nil || len(to.String(slr.NextLink)) < 1 { 12610 return nil, nil 12611 } 12612 return autorest.Prepare(&http.Request{}, 12613 autorest.AsJSON(), 12614 autorest.AsGet(), 12615 autorest.WithBaseURL(to.String(slr.NextLink))) 12616} 12617 12618// SubnetListResultPage contains a page of Subnet values. 12619type SubnetListResultPage struct { 12620 fn func(SubnetListResult) (SubnetListResult, error) 12621 slr SubnetListResult 12622} 12623 12624// Next advances to the next page of values. If there was an error making 12625// the request the page does not advance and the error is returned. 12626func (page *SubnetListResultPage) Next() error { 12627 next, err := page.fn(page.slr) 12628 if err != nil { 12629 return err 12630 } 12631 page.slr = next 12632 return nil 12633} 12634 12635// NotDone returns true if the page enumeration should be started or is not yet complete. 12636func (page SubnetListResultPage) NotDone() bool { 12637 return !page.slr.IsEmpty() 12638} 12639 12640// Response returns the raw server response from the last page request. 12641func (page SubnetListResultPage) Response() SubnetListResult { 12642 return page.slr 12643} 12644 12645// Values returns the slice of values for the current page or nil if there are no values. 12646func (page SubnetListResultPage) Values() []Subnet { 12647 if page.slr.IsEmpty() { 12648 return nil 12649 } 12650 return *page.slr.Value 12651} 12652 12653// SubnetPropertiesFormat properties of the subnet. 12654type SubnetPropertiesFormat struct { 12655 // AddressPrefix - The address prefix for the subnet. 12656 AddressPrefix *string `json:"addressPrefix,omitempty"` 12657 // NetworkSecurityGroup - The reference of the NetworkSecurityGroup resource. 12658 NetworkSecurityGroup *SecurityGroup `json:"networkSecurityGroup,omitempty"` 12659 // RouteTable - The reference of the RouteTable resource. 12660 RouteTable *RouteTable `json:"routeTable,omitempty"` 12661 // ServiceEndpoints - An array of service endpoints. 12662 ServiceEndpoints *[]ServiceEndpointPropertiesFormat `json:"serviceEndpoints,omitempty"` 12663 // IPConfigurations - Gets an array of references to the network interface IP configurations using subnet. 12664 IPConfigurations *[]IPConfiguration `json:"ipConfigurations,omitempty"` 12665 // ResourceNavigationLinks - Gets an array of references to the external resources using subnet. 12666 ResourceNavigationLinks *[]ResourceNavigationLink `json:"resourceNavigationLinks,omitempty"` 12667 // ProvisioningState - The provisioning state of the resource. 12668 ProvisioningState *string `json:"provisioningState,omitempty"` 12669} 12670 12671// SubnetsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 12672// operation. 12673type SubnetsCreateOrUpdateFuture struct { 12674 azure.Future 12675} 12676 12677// Result returns the result of the asynchronous operation. 12678// If the operation has not completed it will return an error. 12679func (future *SubnetsCreateOrUpdateFuture) Result(client SubnetsClient) (s Subnet, err error) { 12680 var done bool 12681 done, err = future.Done(client) 12682 if err != nil { 12683 err = autorest.NewErrorWithError(err, "network.SubnetsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 12684 return 12685 } 12686 if !done { 12687 err = azure.NewAsyncOpIncompleteError("network.SubnetsCreateOrUpdateFuture") 12688 return 12689 } 12690 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 12691 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 12692 s, err = client.CreateOrUpdateResponder(s.Response.Response) 12693 if err != nil { 12694 err = autorest.NewErrorWithError(err, "network.SubnetsCreateOrUpdateFuture", "Result", s.Response.Response, "Failure responding to request") 12695 } 12696 } 12697 return 12698} 12699 12700// SubnetsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 12701type SubnetsDeleteFuture struct { 12702 azure.Future 12703} 12704 12705// Result returns the result of the asynchronous operation. 12706// If the operation has not completed it will return an error. 12707func (future *SubnetsDeleteFuture) Result(client SubnetsClient) (ar autorest.Response, err error) { 12708 var done bool 12709 done, err = future.Done(client) 12710 if err != nil { 12711 err = autorest.NewErrorWithError(err, "network.SubnetsDeleteFuture", "Result", future.Response(), "Polling failure") 12712 return 12713 } 12714 if !done { 12715 err = azure.NewAsyncOpIncompleteError("network.SubnetsDeleteFuture") 12716 return 12717 } 12718 ar.Response = future.Response() 12719 return 12720} 12721 12722// SubResource reference to another subresource. 12723type SubResource struct { 12724 // ID - Resource ID. 12725 ID *string `json:"id,omitempty"` 12726} 12727 12728// TagsObject tags object for patch operations. 12729type TagsObject struct { 12730 // Tags - Resource tags. 12731 Tags map[string]*string `json:"tags"` 12732} 12733 12734// MarshalJSON is the custom marshaler for TagsObject. 12735func (toVar TagsObject) MarshalJSON() ([]byte, error) { 12736 objectMap := make(map[string]interface{}) 12737 if toVar.Tags != nil { 12738 objectMap["tags"] = toVar.Tags 12739 } 12740 return json.Marshal(objectMap) 12741} 12742 12743// Topology topology of the specified resource group. 12744type Topology struct { 12745 autorest.Response `json:"-"` 12746 // ID - GUID representing the operation id. 12747 ID *string `json:"id,omitempty"` 12748 // CreatedDateTime - The datetime when the topology was initially created for the resource group. 12749 CreatedDateTime *date.Time `json:"createdDateTime,omitempty"` 12750 // LastModified - The datetime when the topology was last modified. 12751 LastModified *date.Time `json:"lastModified,omitempty"` 12752 Resources *[]TopologyResource `json:"resources,omitempty"` 12753} 12754 12755// TopologyAssociation resources that have an association with the parent resource. 12756type TopologyAssociation struct { 12757 // Name - The name of the resource that is associated with the parent resource. 12758 Name *string `json:"name,omitempty"` 12759 // ResourceID - The ID of the resource that is associated with the parent resource. 12760 ResourceID *string `json:"resourceId,omitempty"` 12761 // AssociationType - The association type of the child resource to the parent resource. Possible values include: 'Associated', 'Contains' 12762 AssociationType AssociationType `json:"associationType,omitempty"` 12763} 12764 12765// TopologyParameters parameters that define the representation of topology. 12766type TopologyParameters struct { 12767 // TargetResourceGroupName - The name of the target resource group to perform topology on. 12768 TargetResourceGroupName *string `json:"targetResourceGroupName,omitempty"` 12769 // TargetVirtualNetwork - The reference of the Virtual Network resource. 12770 TargetVirtualNetwork *SubResource `json:"targetVirtualNetwork,omitempty"` 12771 // TargetSubnet - The reference of the Subnet resource. 12772 TargetSubnet *SubResource `json:"targetSubnet,omitempty"` 12773} 12774 12775// TopologyResource the network resource topology information for the given resource group. 12776type TopologyResource struct { 12777 // Name - Name of the resource. 12778 Name *string `json:"name,omitempty"` 12779 // ID - ID of the resource. 12780 ID *string `json:"id,omitempty"` 12781 // Location - Resource location. 12782 Location *string `json:"location,omitempty"` 12783 // Associations - Holds the associations the resource has with other resources in the resource group. 12784 Associations *[]TopologyAssociation `json:"associations,omitempty"` 12785} 12786 12787// TrafficAnalyticsConfigurationProperties parameters that define the configuration of traffic analytics. 12788type TrafficAnalyticsConfigurationProperties struct { 12789 // Enabled - Flag to enable/disable traffic analytics. 12790 Enabled *bool `json:"enabled,omitempty"` 12791 // WorkspaceID - The resource guid of the attached workspace 12792 WorkspaceID *string `json:"workspaceId,omitempty"` 12793 // WorkspaceRegion - The location of the attached workspace 12794 WorkspaceRegion *string `json:"workspaceRegion,omitempty"` 12795 // WorkspaceResourceID - Resource Id of the attached workspace 12796 WorkspaceResourceID *string `json:"workspaceResourceId,omitempty"` 12797} 12798 12799// TrafficAnalyticsProperties parameters that define the configuration of traffic analytics. 12800type TrafficAnalyticsProperties struct { 12801 NetworkWatcherFlowAnalyticsConfiguration *TrafficAnalyticsConfigurationProperties `json:"networkWatcherFlowAnalyticsConfiguration,omitempty"` 12802} 12803 12804// TroubleshootingDetails information gained from troubleshooting of specified resource. 12805type TroubleshootingDetails struct { 12806 // ID - The id of the get troubleshoot operation. 12807 ID *string `json:"id,omitempty"` 12808 // ReasonType - Reason type of failure. 12809 ReasonType *string `json:"reasonType,omitempty"` 12810 // Summary - A summary of troubleshooting. 12811 Summary *string `json:"summary,omitempty"` 12812 // Detail - Details on troubleshooting results. 12813 Detail *string `json:"detail,omitempty"` 12814 // RecommendedActions - List of recommended actions. 12815 RecommendedActions *[]TroubleshootingRecommendedActions `json:"recommendedActions,omitempty"` 12816} 12817 12818// TroubleshootingParameters parameters that define the resource to troubleshoot. 12819type TroubleshootingParameters struct { 12820 // TargetResourceID - The target resource to troubleshoot. 12821 TargetResourceID *string `json:"targetResourceId,omitempty"` 12822 *TroubleshootingProperties `json:"properties,omitempty"` 12823} 12824 12825// MarshalJSON is the custom marshaler for TroubleshootingParameters. 12826func (tp TroubleshootingParameters) MarshalJSON() ([]byte, error) { 12827 objectMap := make(map[string]interface{}) 12828 if tp.TargetResourceID != nil { 12829 objectMap["targetResourceId"] = tp.TargetResourceID 12830 } 12831 if tp.TroubleshootingProperties != nil { 12832 objectMap["properties"] = tp.TroubleshootingProperties 12833 } 12834 return json.Marshal(objectMap) 12835} 12836 12837// UnmarshalJSON is the custom unmarshaler for TroubleshootingParameters struct. 12838func (tp *TroubleshootingParameters) UnmarshalJSON(body []byte) error { 12839 var m map[string]*json.RawMessage 12840 err := json.Unmarshal(body, &m) 12841 if err != nil { 12842 return err 12843 } 12844 for k, v := range m { 12845 switch k { 12846 case "targetResourceId": 12847 if v != nil { 12848 var targetResourceID string 12849 err = json.Unmarshal(*v, &targetResourceID) 12850 if err != nil { 12851 return err 12852 } 12853 tp.TargetResourceID = &targetResourceID 12854 } 12855 case "properties": 12856 if v != nil { 12857 var troubleshootingProperties TroubleshootingProperties 12858 err = json.Unmarshal(*v, &troubleshootingProperties) 12859 if err != nil { 12860 return err 12861 } 12862 tp.TroubleshootingProperties = &troubleshootingProperties 12863 } 12864 } 12865 } 12866 12867 return nil 12868} 12869 12870// TroubleshootingProperties storage location provided for troubleshoot. 12871type TroubleshootingProperties struct { 12872 // StorageID - The ID for the storage account to save the troubleshoot result. 12873 StorageID *string `json:"storageId,omitempty"` 12874 // StoragePath - The path to the blob to save the troubleshoot result in. 12875 StoragePath *string `json:"storagePath,omitempty"` 12876} 12877 12878// TroubleshootingRecommendedActions recommended actions based on discovered issues. 12879type TroubleshootingRecommendedActions struct { 12880 // ActionID - ID of the recommended action. 12881 ActionID *string `json:"actionId,omitempty"` 12882 // ActionText - Description of recommended actions. 12883 ActionText *string `json:"actionText,omitempty"` 12884 // ActionURI - The uri linking to a documentation for the recommended troubleshooting actions. 12885 ActionURI *string `json:"actionUri,omitempty"` 12886 // ActionURIText - The information from the URI for the recommended troubleshooting actions. 12887 ActionURIText *string `json:"actionUriText,omitempty"` 12888} 12889 12890// TroubleshootingResult troubleshooting information gained from specified resource. 12891type TroubleshootingResult struct { 12892 autorest.Response `json:"-"` 12893 // StartTime - The start time of the troubleshooting. 12894 StartTime *date.Time `json:"startTime,omitempty"` 12895 // EndTime - The end time of the troubleshooting. 12896 EndTime *date.Time `json:"endTime,omitempty"` 12897 // Code - The result code of the troubleshooting. 12898 Code *string `json:"code,omitempty"` 12899 // Results - Information from troubleshooting. 12900 Results *[]TroubleshootingDetails `json:"results,omitempty"` 12901} 12902 12903// TunnelConnectionHealth virtualNetworkGatewayConnection properties 12904type TunnelConnectionHealth struct { 12905 // Tunnel - Tunnel name. 12906 Tunnel *string `json:"tunnel,omitempty"` 12907 // ConnectionStatus - Virtual network Gateway connection status. Possible values include: 'VirtualNetworkGatewayConnectionStatusUnknown', 'VirtualNetworkGatewayConnectionStatusConnecting', 'VirtualNetworkGatewayConnectionStatusConnected', 'VirtualNetworkGatewayConnectionStatusNotConnected' 12908 ConnectionStatus VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty"` 12909 // IngressBytesTransferred - The Ingress Bytes Transferred in this connection 12910 IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty"` 12911 // EgressBytesTransferred - The Egress Bytes Transferred in this connection 12912 EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty"` 12913 // LastConnectionEstablishedUtcTime - The time at which connection was established in Utc format. 12914 LastConnectionEstablishedUtcTime *string `json:"lastConnectionEstablishedUtcTime,omitempty"` 12915} 12916 12917// Usage describes network resource usage. 12918type Usage struct { 12919 // ID - Resource identifier. 12920 ID *string `json:"id,omitempty"` 12921 // Unit - An enum describing the unit of measurement. 12922 Unit *string `json:"unit,omitempty"` 12923 // CurrentValue - The current value of the usage. 12924 CurrentValue *int64 `json:"currentValue,omitempty"` 12925 // Limit - The limit of usage. 12926 Limit *int64 `json:"limit,omitempty"` 12927 // Name - The name of the type of usage. 12928 Name *UsageName `json:"name,omitempty"` 12929} 12930 12931// UsageName the usage names. 12932type UsageName struct { 12933 // Value - A string describing the resource name. 12934 Value *string `json:"value,omitempty"` 12935 // LocalizedValue - A localized string describing the resource name. 12936 LocalizedValue *string `json:"localizedValue,omitempty"` 12937} 12938 12939// UsagesListResult the list usages operation response. 12940type UsagesListResult struct { 12941 autorest.Response `json:"-"` 12942 // Value - The list network resource usages. 12943 Value *[]Usage `json:"value,omitempty"` 12944 // NextLink - URL to get the next set of results. 12945 NextLink *string `json:"nextLink,omitempty"` 12946} 12947 12948// UsagesListResultIterator provides access to a complete listing of Usage values. 12949type UsagesListResultIterator struct { 12950 i int 12951 page UsagesListResultPage 12952} 12953 12954// Next advances to the next value. If there was an error making 12955// the request the iterator does not advance and the error is returned. 12956func (iter *UsagesListResultIterator) Next() error { 12957 iter.i++ 12958 if iter.i < len(iter.page.Values()) { 12959 return nil 12960 } 12961 err := iter.page.Next() 12962 if err != nil { 12963 iter.i-- 12964 return err 12965 } 12966 iter.i = 0 12967 return nil 12968} 12969 12970// NotDone returns true if the enumeration should be started or is not yet complete. 12971func (iter UsagesListResultIterator) NotDone() bool { 12972 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 12973} 12974 12975// Response returns the raw server response from the last page request. 12976func (iter UsagesListResultIterator) Response() UsagesListResult { 12977 return iter.page.Response() 12978} 12979 12980// Value returns the current value or a zero-initialized value if the 12981// iterator has advanced beyond the end of the collection. 12982func (iter UsagesListResultIterator) Value() Usage { 12983 if !iter.page.NotDone() { 12984 return Usage{} 12985 } 12986 return iter.page.Values()[iter.i] 12987} 12988 12989// IsEmpty returns true if the ListResult contains no values. 12990func (ulr UsagesListResult) IsEmpty() bool { 12991 return ulr.Value == nil || len(*ulr.Value) == 0 12992} 12993 12994// usagesListResultPreparer prepares a request to retrieve the next set of results. 12995// It returns nil if no more results exist. 12996func (ulr UsagesListResult) usagesListResultPreparer() (*http.Request, error) { 12997 if ulr.NextLink == nil || len(to.String(ulr.NextLink)) < 1 { 12998 return nil, nil 12999 } 13000 return autorest.Prepare(&http.Request{}, 13001 autorest.AsJSON(), 13002 autorest.AsGet(), 13003 autorest.WithBaseURL(to.String(ulr.NextLink))) 13004} 13005 13006// UsagesListResultPage contains a page of Usage values. 13007type UsagesListResultPage struct { 13008 fn func(UsagesListResult) (UsagesListResult, error) 13009 ulr UsagesListResult 13010} 13011 13012// Next advances to the next page of values. If there was an error making 13013// the request the page does not advance and the error is returned. 13014func (page *UsagesListResultPage) Next() error { 13015 next, err := page.fn(page.ulr) 13016 if err != nil { 13017 return err 13018 } 13019 page.ulr = next 13020 return nil 13021} 13022 13023// NotDone returns true if the page enumeration should be started or is not yet complete. 13024func (page UsagesListResultPage) NotDone() bool { 13025 return !page.ulr.IsEmpty() 13026} 13027 13028// Response returns the raw server response from the last page request. 13029func (page UsagesListResultPage) Response() UsagesListResult { 13030 return page.ulr 13031} 13032 13033// Values returns the slice of values for the current page or nil if there are no values. 13034func (page UsagesListResultPage) Values() []Usage { 13035 if page.ulr.IsEmpty() { 13036 return nil 13037 } 13038 return *page.ulr.Value 13039} 13040 13041// VerificationIPFlowParameters parameters that define the IP flow to be verified. 13042type VerificationIPFlowParameters struct { 13043 // TargetResourceID - The ID of the target resource to perform next-hop on. 13044 TargetResourceID *string `json:"targetResourceId,omitempty"` 13045 // Direction - The direction of the packet represented as a 5-tuple. Possible values include: 'Inbound', 'Outbound' 13046 Direction Direction `json:"direction,omitempty"` 13047 // Protocol - Protocol to be verified on. Possible values include: 'ProtocolTCP', 'ProtocolUDP' 13048 Protocol Protocol `json:"protocol,omitempty"` 13049 // 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. 13050 LocalPort *string `json:"localPort,omitempty"` 13051 // 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. 13052 RemotePort *string `json:"remotePort,omitempty"` 13053 // LocalIPAddress - The local IP address. Acceptable values are valid IPv4 addresses. 13054 LocalIPAddress *string `json:"localIPAddress,omitempty"` 13055 // RemoteIPAddress - The remote IP address. Acceptable values are valid IPv4 addresses. 13056 RemoteIPAddress *string `json:"remoteIPAddress,omitempty"` 13057 // 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). 13058 TargetNicResourceID *string `json:"targetNicResourceId,omitempty"` 13059} 13060 13061// VerificationIPFlowResult results of IP flow verification on the target resource. 13062type VerificationIPFlowResult struct { 13063 autorest.Response `json:"-"` 13064 // Access - Indicates whether the traffic is allowed or denied. Possible values include: 'Allow', 'Deny' 13065 Access Access `json:"access,omitempty"` 13066 // RuleName - Name of the rule. If input is not matched against any security rule, it is not displayed. 13067 RuleName *string `json:"ruleName,omitempty"` 13068} 13069 13070// VirtualNetwork virtual Network resource. 13071type VirtualNetwork struct { 13072 autorest.Response `json:"-"` 13073 // VirtualNetworkPropertiesFormat - Properties of the virtual network. 13074 *VirtualNetworkPropertiesFormat `json:"properties,omitempty"` 13075 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 13076 Etag *string `json:"etag,omitempty"` 13077 // ID - Resource ID. 13078 ID *string `json:"id,omitempty"` 13079 // Name - Resource name. 13080 Name *string `json:"name,omitempty"` 13081 // Type - Resource type. 13082 Type *string `json:"type,omitempty"` 13083 // Location - Resource location. 13084 Location *string `json:"location,omitempty"` 13085 // Tags - Resource tags. 13086 Tags map[string]*string `json:"tags"` 13087} 13088 13089// MarshalJSON is the custom marshaler for VirtualNetwork. 13090func (vn VirtualNetwork) MarshalJSON() ([]byte, error) { 13091 objectMap := make(map[string]interface{}) 13092 if vn.VirtualNetworkPropertiesFormat != nil { 13093 objectMap["properties"] = vn.VirtualNetworkPropertiesFormat 13094 } 13095 if vn.Etag != nil { 13096 objectMap["etag"] = vn.Etag 13097 } 13098 if vn.ID != nil { 13099 objectMap["id"] = vn.ID 13100 } 13101 if vn.Name != nil { 13102 objectMap["name"] = vn.Name 13103 } 13104 if vn.Type != nil { 13105 objectMap["type"] = vn.Type 13106 } 13107 if vn.Location != nil { 13108 objectMap["location"] = vn.Location 13109 } 13110 if vn.Tags != nil { 13111 objectMap["tags"] = vn.Tags 13112 } 13113 return json.Marshal(objectMap) 13114} 13115 13116// UnmarshalJSON is the custom unmarshaler for VirtualNetwork struct. 13117func (vn *VirtualNetwork) UnmarshalJSON(body []byte) error { 13118 var m map[string]*json.RawMessage 13119 err := json.Unmarshal(body, &m) 13120 if err != nil { 13121 return err 13122 } 13123 for k, v := range m { 13124 switch k { 13125 case "properties": 13126 if v != nil { 13127 var virtualNetworkPropertiesFormat VirtualNetworkPropertiesFormat 13128 err = json.Unmarshal(*v, &virtualNetworkPropertiesFormat) 13129 if err != nil { 13130 return err 13131 } 13132 vn.VirtualNetworkPropertiesFormat = &virtualNetworkPropertiesFormat 13133 } 13134 case "etag": 13135 if v != nil { 13136 var etag string 13137 err = json.Unmarshal(*v, &etag) 13138 if err != nil { 13139 return err 13140 } 13141 vn.Etag = &etag 13142 } 13143 case "id": 13144 if v != nil { 13145 var ID string 13146 err = json.Unmarshal(*v, &ID) 13147 if err != nil { 13148 return err 13149 } 13150 vn.ID = &ID 13151 } 13152 case "name": 13153 if v != nil { 13154 var name string 13155 err = json.Unmarshal(*v, &name) 13156 if err != nil { 13157 return err 13158 } 13159 vn.Name = &name 13160 } 13161 case "type": 13162 if v != nil { 13163 var typeVar string 13164 err = json.Unmarshal(*v, &typeVar) 13165 if err != nil { 13166 return err 13167 } 13168 vn.Type = &typeVar 13169 } 13170 case "location": 13171 if v != nil { 13172 var location string 13173 err = json.Unmarshal(*v, &location) 13174 if err != nil { 13175 return err 13176 } 13177 vn.Location = &location 13178 } 13179 case "tags": 13180 if v != nil { 13181 var tags map[string]*string 13182 err = json.Unmarshal(*v, &tags) 13183 if err != nil { 13184 return err 13185 } 13186 vn.Tags = tags 13187 } 13188 } 13189 } 13190 13191 return nil 13192} 13193 13194// VirtualNetworkConnectionGatewayReference a reference to VirtualNetworkGateway or LocalNetworkGateway resource. 13195type VirtualNetworkConnectionGatewayReference struct { 13196 // ID - The ID of VirtualNetworkGateway or LocalNetworkGateway resource. 13197 ID *string `json:"id,omitempty"` 13198} 13199 13200// VirtualNetworkGateway a common class for general resource information 13201type VirtualNetworkGateway struct { 13202 autorest.Response `json:"-"` 13203 // VirtualNetworkGatewayPropertiesFormat - Properties of the virtual network gateway. 13204 *VirtualNetworkGatewayPropertiesFormat `json:"properties,omitempty"` 13205 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 13206 Etag *string `json:"etag,omitempty"` 13207 // ID - Resource ID. 13208 ID *string `json:"id,omitempty"` 13209 // Name - Resource name. 13210 Name *string `json:"name,omitempty"` 13211 // Type - Resource type. 13212 Type *string `json:"type,omitempty"` 13213 // Location - Resource location. 13214 Location *string `json:"location,omitempty"` 13215 // Tags - Resource tags. 13216 Tags map[string]*string `json:"tags"` 13217} 13218 13219// MarshalJSON is the custom marshaler for VirtualNetworkGateway. 13220func (vng VirtualNetworkGateway) MarshalJSON() ([]byte, error) { 13221 objectMap := make(map[string]interface{}) 13222 if vng.VirtualNetworkGatewayPropertiesFormat != nil { 13223 objectMap["properties"] = vng.VirtualNetworkGatewayPropertiesFormat 13224 } 13225 if vng.Etag != nil { 13226 objectMap["etag"] = vng.Etag 13227 } 13228 if vng.ID != nil { 13229 objectMap["id"] = vng.ID 13230 } 13231 if vng.Name != nil { 13232 objectMap["name"] = vng.Name 13233 } 13234 if vng.Type != nil { 13235 objectMap["type"] = vng.Type 13236 } 13237 if vng.Location != nil { 13238 objectMap["location"] = vng.Location 13239 } 13240 if vng.Tags != nil { 13241 objectMap["tags"] = vng.Tags 13242 } 13243 return json.Marshal(objectMap) 13244} 13245 13246// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGateway struct. 13247func (vng *VirtualNetworkGateway) UnmarshalJSON(body []byte) error { 13248 var m map[string]*json.RawMessage 13249 err := json.Unmarshal(body, &m) 13250 if err != nil { 13251 return err 13252 } 13253 for k, v := range m { 13254 switch k { 13255 case "properties": 13256 if v != nil { 13257 var virtualNetworkGatewayPropertiesFormat VirtualNetworkGatewayPropertiesFormat 13258 err = json.Unmarshal(*v, &virtualNetworkGatewayPropertiesFormat) 13259 if err != nil { 13260 return err 13261 } 13262 vng.VirtualNetworkGatewayPropertiesFormat = &virtualNetworkGatewayPropertiesFormat 13263 } 13264 case "etag": 13265 if v != nil { 13266 var etag string 13267 err = json.Unmarshal(*v, &etag) 13268 if err != nil { 13269 return err 13270 } 13271 vng.Etag = &etag 13272 } 13273 case "id": 13274 if v != nil { 13275 var ID string 13276 err = json.Unmarshal(*v, &ID) 13277 if err != nil { 13278 return err 13279 } 13280 vng.ID = &ID 13281 } 13282 case "name": 13283 if v != nil { 13284 var name string 13285 err = json.Unmarshal(*v, &name) 13286 if err != nil { 13287 return err 13288 } 13289 vng.Name = &name 13290 } 13291 case "type": 13292 if v != nil { 13293 var typeVar string 13294 err = json.Unmarshal(*v, &typeVar) 13295 if err != nil { 13296 return err 13297 } 13298 vng.Type = &typeVar 13299 } 13300 case "location": 13301 if v != nil { 13302 var location string 13303 err = json.Unmarshal(*v, &location) 13304 if err != nil { 13305 return err 13306 } 13307 vng.Location = &location 13308 } 13309 case "tags": 13310 if v != nil { 13311 var tags map[string]*string 13312 err = json.Unmarshal(*v, &tags) 13313 if err != nil { 13314 return err 13315 } 13316 vng.Tags = tags 13317 } 13318 } 13319 } 13320 13321 return nil 13322} 13323 13324// VirtualNetworkGatewayConnection a common class for general resource information 13325type VirtualNetworkGatewayConnection struct { 13326 autorest.Response `json:"-"` 13327 // VirtualNetworkGatewayConnectionPropertiesFormat - Properties of the virtual network gateway connection. 13328 *VirtualNetworkGatewayConnectionPropertiesFormat `json:"properties,omitempty"` 13329 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 13330 Etag *string `json:"etag,omitempty"` 13331 // ID - Resource ID. 13332 ID *string `json:"id,omitempty"` 13333 // Name - Resource name. 13334 Name *string `json:"name,omitempty"` 13335 // Type - Resource type. 13336 Type *string `json:"type,omitempty"` 13337 // Location - Resource location. 13338 Location *string `json:"location,omitempty"` 13339 // Tags - Resource tags. 13340 Tags map[string]*string `json:"tags"` 13341} 13342 13343// MarshalJSON is the custom marshaler for VirtualNetworkGatewayConnection. 13344func (vngc VirtualNetworkGatewayConnection) MarshalJSON() ([]byte, error) { 13345 objectMap := make(map[string]interface{}) 13346 if vngc.VirtualNetworkGatewayConnectionPropertiesFormat != nil { 13347 objectMap["properties"] = vngc.VirtualNetworkGatewayConnectionPropertiesFormat 13348 } 13349 if vngc.Etag != nil { 13350 objectMap["etag"] = vngc.Etag 13351 } 13352 if vngc.ID != nil { 13353 objectMap["id"] = vngc.ID 13354 } 13355 if vngc.Name != nil { 13356 objectMap["name"] = vngc.Name 13357 } 13358 if vngc.Type != nil { 13359 objectMap["type"] = vngc.Type 13360 } 13361 if vngc.Location != nil { 13362 objectMap["location"] = vngc.Location 13363 } 13364 if vngc.Tags != nil { 13365 objectMap["tags"] = vngc.Tags 13366 } 13367 return json.Marshal(objectMap) 13368} 13369 13370// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGatewayConnection struct. 13371func (vngc *VirtualNetworkGatewayConnection) UnmarshalJSON(body []byte) error { 13372 var m map[string]*json.RawMessage 13373 err := json.Unmarshal(body, &m) 13374 if err != nil { 13375 return err 13376 } 13377 for k, v := range m { 13378 switch k { 13379 case "properties": 13380 if v != nil { 13381 var virtualNetworkGatewayConnectionPropertiesFormat VirtualNetworkGatewayConnectionPropertiesFormat 13382 err = json.Unmarshal(*v, &virtualNetworkGatewayConnectionPropertiesFormat) 13383 if err != nil { 13384 return err 13385 } 13386 vngc.VirtualNetworkGatewayConnectionPropertiesFormat = &virtualNetworkGatewayConnectionPropertiesFormat 13387 } 13388 case "etag": 13389 if v != nil { 13390 var etag string 13391 err = json.Unmarshal(*v, &etag) 13392 if err != nil { 13393 return err 13394 } 13395 vngc.Etag = &etag 13396 } 13397 case "id": 13398 if v != nil { 13399 var ID string 13400 err = json.Unmarshal(*v, &ID) 13401 if err != nil { 13402 return err 13403 } 13404 vngc.ID = &ID 13405 } 13406 case "name": 13407 if v != nil { 13408 var name string 13409 err = json.Unmarshal(*v, &name) 13410 if err != nil { 13411 return err 13412 } 13413 vngc.Name = &name 13414 } 13415 case "type": 13416 if v != nil { 13417 var typeVar string 13418 err = json.Unmarshal(*v, &typeVar) 13419 if err != nil { 13420 return err 13421 } 13422 vngc.Type = &typeVar 13423 } 13424 case "location": 13425 if v != nil { 13426 var location string 13427 err = json.Unmarshal(*v, &location) 13428 if err != nil { 13429 return err 13430 } 13431 vngc.Location = &location 13432 } 13433 case "tags": 13434 if v != nil { 13435 var tags map[string]*string 13436 err = json.Unmarshal(*v, &tags) 13437 if err != nil { 13438 return err 13439 } 13440 vngc.Tags = tags 13441 } 13442 } 13443 } 13444 13445 return nil 13446} 13447 13448// VirtualNetworkGatewayConnectionListEntity a common class for general resource information 13449type VirtualNetworkGatewayConnectionListEntity struct { 13450 autorest.Response `json:"-"` 13451 // VirtualNetworkGatewayConnectionListEntityPropertiesFormat - Properties of the virtual network gateway connection. 13452 *VirtualNetworkGatewayConnectionListEntityPropertiesFormat `json:"properties,omitempty"` 13453 // Etag - Gets a unique read-only string that changes whenever the resource is updated. 13454 Etag *string `json:"etag,omitempty"` 13455 // ID - Resource ID. 13456 ID *string `json:"id,omitempty"` 13457 // Name - Resource name. 13458 Name *string `json:"name,omitempty"` 13459 // Type - Resource type. 13460 Type *string `json:"type,omitempty"` 13461 // Location - Resource location. 13462 Location *string `json:"location,omitempty"` 13463 // Tags - Resource tags. 13464 Tags map[string]*string `json:"tags"` 13465} 13466 13467// MarshalJSON is the custom marshaler for VirtualNetworkGatewayConnectionListEntity. 13468func (vngcle VirtualNetworkGatewayConnectionListEntity) MarshalJSON() ([]byte, error) { 13469 objectMap := make(map[string]interface{}) 13470 if vngcle.VirtualNetworkGatewayConnectionListEntityPropertiesFormat != nil { 13471 objectMap["properties"] = vngcle.VirtualNetworkGatewayConnectionListEntityPropertiesFormat 13472 } 13473 if vngcle.Etag != nil { 13474 objectMap["etag"] = vngcle.Etag 13475 } 13476 if vngcle.ID != nil { 13477 objectMap["id"] = vngcle.ID 13478 } 13479 if vngcle.Name != nil { 13480 objectMap["name"] = vngcle.Name 13481 } 13482 if vngcle.Type != nil { 13483 objectMap["type"] = vngcle.Type 13484 } 13485 if vngcle.Location != nil { 13486 objectMap["location"] = vngcle.Location 13487 } 13488 if vngcle.Tags != nil { 13489 objectMap["tags"] = vngcle.Tags 13490 } 13491 return json.Marshal(objectMap) 13492} 13493 13494// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGatewayConnectionListEntity struct. 13495func (vngcle *VirtualNetworkGatewayConnectionListEntity) UnmarshalJSON(body []byte) error { 13496 var m map[string]*json.RawMessage 13497 err := json.Unmarshal(body, &m) 13498 if err != nil { 13499 return err 13500 } 13501 for k, v := range m { 13502 switch k { 13503 case "properties": 13504 if v != nil { 13505 var virtualNetworkGatewayConnectionListEntityPropertiesFormat VirtualNetworkGatewayConnectionListEntityPropertiesFormat 13506 err = json.Unmarshal(*v, &virtualNetworkGatewayConnectionListEntityPropertiesFormat) 13507 if err != nil { 13508 return err 13509 } 13510 vngcle.VirtualNetworkGatewayConnectionListEntityPropertiesFormat = &virtualNetworkGatewayConnectionListEntityPropertiesFormat 13511 } 13512 case "etag": 13513 if v != nil { 13514 var etag string 13515 err = json.Unmarshal(*v, &etag) 13516 if err != nil { 13517 return err 13518 } 13519 vngcle.Etag = &etag 13520 } 13521 case "id": 13522 if v != nil { 13523 var ID string 13524 err = json.Unmarshal(*v, &ID) 13525 if err != nil { 13526 return err 13527 } 13528 vngcle.ID = &ID 13529 } 13530 case "name": 13531 if v != nil { 13532 var name string 13533 err = json.Unmarshal(*v, &name) 13534 if err != nil { 13535 return err 13536 } 13537 vngcle.Name = &name 13538 } 13539 case "type": 13540 if v != nil { 13541 var typeVar string 13542 err = json.Unmarshal(*v, &typeVar) 13543 if err != nil { 13544 return err 13545 } 13546 vngcle.Type = &typeVar 13547 } 13548 case "location": 13549 if v != nil { 13550 var location string 13551 err = json.Unmarshal(*v, &location) 13552 if err != nil { 13553 return err 13554 } 13555 vngcle.Location = &location 13556 } 13557 case "tags": 13558 if v != nil { 13559 var tags map[string]*string 13560 err = json.Unmarshal(*v, &tags) 13561 if err != nil { 13562 return err 13563 } 13564 vngcle.Tags = tags 13565 } 13566 } 13567 } 13568 13569 return nil 13570} 13571 13572// VirtualNetworkGatewayConnectionListEntityPropertiesFormat virtualNetworkGatewayConnection properties 13573type VirtualNetworkGatewayConnectionListEntityPropertiesFormat struct { 13574 // AuthorizationKey - The authorizationKey. 13575 AuthorizationKey *string `json:"authorizationKey,omitempty"` 13576 // VirtualNetworkGateway1 - The reference to virtual network gateway resource. 13577 VirtualNetworkGateway1 *VirtualNetworkConnectionGatewayReference `json:"virtualNetworkGateway1,omitempty"` 13578 // VirtualNetworkGateway2 - The reference to virtual network gateway resource. 13579 VirtualNetworkGateway2 *VirtualNetworkConnectionGatewayReference `json:"virtualNetworkGateway2,omitempty"` 13580 // LocalNetworkGateway2 - The reference to local network gateway resource. 13581 LocalNetworkGateway2 *VirtualNetworkConnectionGatewayReference `json:"localNetworkGateway2,omitempty"` 13582 // ConnectionType - Gateway connection type. Possible values are: 'Ipsec','Vnet2Vnet','ExpressRoute', and 'VPNClient. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', 'VPNClient' 13583 ConnectionType VirtualNetworkGatewayConnectionType `json:"connectionType,omitempty"` 13584 // RoutingWeight - The routing weight. 13585 RoutingWeight *int32 `json:"routingWeight,omitempty"` 13586 // SharedKey - The IPSec shared key. 13587 SharedKey *string `json:"sharedKey,omitempty"` 13588 // ConnectionStatus - Virtual network Gateway connection status. Possible values are 'Unknown', 'Connecting', 'Connected' and 'NotConnected'. Possible values include: 'VirtualNetworkGatewayConnectionStatusUnknown', 'VirtualNetworkGatewayConnectionStatusConnecting', 'VirtualNetworkGatewayConnectionStatusConnected', 'VirtualNetworkGatewayConnectionStatusNotConnected' 13589 ConnectionStatus VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty"` 13590 // TunnelConnectionStatus - Collection of all tunnels' connection health status. 13591 TunnelConnectionStatus *[]TunnelConnectionHealth `json:"tunnelConnectionStatus,omitempty"` 13592 // EgressBytesTransferred - The egress bytes transferred in this connection. 13593 EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty"` 13594 // IngressBytesTransferred - The ingress bytes transferred in this connection. 13595 IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty"` 13596 // Peer - The reference to peerings resource. 13597 Peer *SubResource `json:"peer,omitempty"` 13598 // EnableBgp - EnableBgp flag 13599 EnableBgp *bool `json:"enableBgp,omitempty"` 13600 // UsePolicyBasedTrafficSelectors - Enable policy-based traffic selectors. 13601 UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"` 13602 // IpsecPolicies - The IPSec Policies to be considered by this connection. 13603 IpsecPolicies *[]IpsecPolicy `json:"ipsecPolicies,omitempty"` 13604 // ResourceGUID - The resource GUID property of the VirtualNetworkGatewayConnection resource. 13605 ResourceGUID *string `json:"resourceGuid,omitempty"` 13606 // ProvisioningState - The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 13607 ProvisioningState *string `json:"provisioningState,omitempty"` 13608} 13609 13610// VirtualNetworkGatewayConnectionListResult response for the ListVirtualNetworkGatewayConnections API service call 13611type VirtualNetworkGatewayConnectionListResult struct { 13612 autorest.Response `json:"-"` 13613 // Value - Gets a list of VirtualNetworkGatewayConnection resources that exists in a resource group. 13614 Value *[]VirtualNetworkGatewayConnection `json:"value,omitempty"` 13615 // NextLink - The URL to get the next set of results. 13616 NextLink *string `json:"nextLink,omitempty"` 13617} 13618 13619// VirtualNetworkGatewayConnectionListResultIterator provides access to a complete listing of 13620// VirtualNetworkGatewayConnection values. 13621type VirtualNetworkGatewayConnectionListResultIterator struct { 13622 i int 13623 page VirtualNetworkGatewayConnectionListResultPage 13624} 13625 13626// Next advances to the next value. If there was an error making 13627// the request the iterator does not advance and the error is returned. 13628func (iter *VirtualNetworkGatewayConnectionListResultIterator) Next() error { 13629 iter.i++ 13630 if iter.i < len(iter.page.Values()) { 13631 return nil 13632 } 13633 err := iter.page.Next() 13634 if err != nil { 13635 iter.i-- 13636 return err 13637 } 13638 iter.i = 0 13639 return nil 13640} 13641 13642// NotDone returns true if the enumeration should be started or is not yet complete. 13643func (iter VirtualNetworkGatewayConnectionListResultIterator) NotDone() bool { 13644 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 13645} 13646 13647// Response returns the raw server response from the last page request. 13648func (iter VirtualNetworkGatewayConnectionListResultIterator) Response() VirtualNetworkGatewayConnectionListResult { 13649 return iter.page.Response() 13650} 13651 13652// Value returns the current value or a zero-initialized value if the 13653// iterator has advanced beyond the end of the collection. 13654func (iter VirtualNetworkGatewayConnectionListResultIterator) Value() VirtualNetworkGatewayConnection { 13655 if !iter.page.NotDone() { 13656 return VirtualNetworkGatewayConnection{} 13657 } 13658 return iter.page.Values()[iter.i] 13659} 13660 13661// IsEmpty returns true if the ListResult contains no values. 13662func (vngclr VirtualNetworkGatewayConnectionListResult) IsEmpty() bool { 13663 return vngclr.Value == nil || len(*vngclr.Value) == 0 13664} 13665 13666// virtualNetworkGatewayConnectionListResultPreparer prepares a request to retrieve the next set of results. 13667// It returns nil if no more results exist. 13668func (vngclr VirtualNetworkGatewayConnectionListResult) virtualNetworkGatewayConnectionListResultPreparer() (*http.Request, error) { 13669 if vngclr.NextLink == nil || len(to.String(vngclr.NextLink)) < 1 { 13670 return nil, nil 13671 } 13672 return autorest.Prepare(&http.Request{}, 13673 autorest.AsJSON(), 13674 autorest.AsGet(), 13675 autorest.WithBaseURL(to.String(vngclr.NextLink))) 13676} 13677 13678// VirtualNetworkGatewayConnectionListResultPage contains a page of VirtualNetworkGatewayConnection values. 13679type VirtualNetworkGatewayConnectionListResultPage struct { 13680 fn func(VirtualNetworkGatewayConnectionListResult) (VirtualNetworkGatewayConnectionListResult, error) 13681 vngclr VirtualNetworkGatewayConnectionListResult 13682} 13683 13684// Next advances to the next page of values. If there was an error making 13685// the request the page does not advance and the error is returned. 13686func (page *VirtualNetworkGatewayConnectionListResultPage) Next() error { 13687 next, err := page.fn(page.vngclr) 13688 if err != nil { 13689 return err 13690 } 13691 page.vngclr = next 13692 return nil 13693} 13694 13695// NotDone returns true if the page enumeration should be started or is not yet complete. 13696func (page VirtualNetworkGatewayConnectionListResultPage) NotDone() bool { 13697 return !page.vngclr.IsEmpty() 13698} 13699 13700// Response returns the raw server response from the last page request. 13701func (page VirtualNetworkGatewayConnectionListResultPage) Response() VirtualNetworkGatewayConnectionListResult { 13702 return page.vngclr 13703} 13704 13705// Values returns the slice of values for the current page or nil if there are no values. 13706func (page VirtualNetworkGatewayConnectionListResultPage) Values() []VirtualNetworkGatewayConnection { 13707 if page.vngclr.IsEmpty() { 13708 return nil 13709 } 13710 return *page.vngclr.Value 13711} 13712 13713// VirtualNetworkGatewayConnectionPropertiesFormat virtualNetworkGatewayConnection properties 13714type VirtualNetworkGatewayConnectionPropertiesFormat struct { 13715 // AuthorizationKey - The authorizationKey. 13716 AuthorizationKey *string `json:"authorizationKey,omitempty"` 13717 // VirtualNetworkGateway1 - The reference to virtual network gateway resource. 13718 VirtualNetworkGateway1 *VirtualNetworkGateway `json:"virtualNetworkGateway1,omitempty"` 13719 // VirtualNetworkGateway2 - The reference to virtual network gateway resource. 13720 VirtualNetworkGateway2 *VirtualNetworkGateway `json:"virtualNetworkGateway2,omitempty"` 13721 // LocalNetworkGateway2 - The reference to local network gateway resource. 13722 LocalNetworkGateway2 *LocalNetworkGateway `json:"localNetworkGateway2,omitempty"` 13723 // ConnectionType - Gateway connection type. Possible values are: 'Ipsec','Vnet2Vnet','ExpressRoute', and 'VPNClient. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', 'VPNClient' 13724 ConnectionType VirtualNetworkGatewayConnectionType `json:"connectionType,omitempty"` 13725 // RoutingWeight - The routing weight. 13726 RoutingWeight *int32 `json:"routingWeight,omitempty"` 13727 // SharedKey - The IPSec shared key. 13728 SharedKey *string `json:"sharedKey,omitempty"` 13729 // ConnectionStatus - Virtual network Gateway connection status. Possible values are 'Unknown', 'Connecting', 'Connected' and 'NotConnected'. Possible values include: 'VirtualNetworkGatewayConnectionStatusUnknown', 'VirtualNetworkGatewayConnectionStatusConnecting', 'VirtualNetworkGatewayConnectionStatusConnected', 'VirtualNetworkGatewayConnectionStatusNotConnected' 13730 ConnectionStatus VirtualNetworkGatewayConnectionStatus `json:"connectionStatus,omitempty"` 13731 // TunnelConnectionStatus - Collection of all tunnels' connection health status. 13732 TunnelConnectionStatus *[]TunnelConnectionHealth `json:"tunnelConnectionStatus,omitempty"` 13733 // EgressBytesTransferred - The egress bytes transferred in this connection. 13734 EgressBytesTransferred *int64 `json:"egressBytesTransferred,omitempty"` 13735 // IngressBytesTransferred - The ingress bytes transferred in this connection. 13736 IngressBytesTransferred *int64 `json:"ingressBytesTransferred,omitempty"` 13737 // Peer - The reference to peerings resource. 13738 Peer *SubResource `json:"peer,omitempty"` 13739 // EnableBgp - EnableBgp flag 13740 EnableBgp *bool `json:"enableBgp,omitempty"` 13741 // UsePolicyBasedTrafficSelectors - Enable policy-based traffic selectors. 13742 UsePolicyBasedTrafficSelectors *bool `json:"usePolicyBasedTrafficSelectors,omitempty"` 13743 // IpsecPolicies - The IPSec Policies to be considered by this connection. 13744 IpsecPolicies *[]IpsecPolicy `json:"ipsecPolicies,omitempty"` 13745 // ResourceGUID - The resource GUID property of the VirtualNetworkGatewayConnection resource. 13746 ResourceGUID *string `json:"resourceGuid,omitempty"` 13747 // ProvisioningState - The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 13748 ProvisioningState *string `json:"provisioningState,omitempty"` 13749} 13750 13751// VirtualNetworkGatewayConnectionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of 13752// a long-running operation. 13753type VirtualNetworkGatewayConnectionsCreateOrUpdateFuture struct { 13754 azure.Future 13755} 13756 13757// Result returns the result of the asynchronous operation. 13758// If the operation has not completed it will return an error. 13759func (future *VirtualNetworkGatewayConnectionsCreateOrUpdateFuture) Result(client VirtualNetworkGatewayConnectionsClient) (vngc VirtualNetworkGatewayConnection, err error) { 13760 var done bool 13761 done, err = future.Done(client) 13762 if err != nil { 13763 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 13764 return 13765 } 13766 if !done { 13767 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsCreateOrUpdateFuture") 13768 return 13769 } 13770 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13771 if vngc.Response.Response, err = future.GetResult(sender); err == nil && vngc.Response.Response.StatusCode != http.StatusNoContent { 13772 vngc, err = client.CreateOrUpdateResponder(vngc.Response.Response) 13773 if err != nil { 13774 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsCreateOrUpdateFuture", "Result", vngc.Response.Response, "Failure responding to request") 13775 } 13776 } 13777 return 13778} 13779 13780// VirtualNetworkGatewayConnectionsDeleteFuture an abstraction for monitoring and retrieving the results of a 13781// long-running operation. 13782type VirtualNetworkGatewayConnectionsDeleteFuture struct { 13783 azure.Future 13784} 13785 13786// Result returns the result of the asynchronous operation. 13787// If the operation has not completed it will return an error. 13788func (future *VirtualNetworkGatewayConnectionsDeleteFuture) Result(client VirtualNetworkGatewayConnectionsClient) (ar autorest.Response, err error) { 13789 var done bool 13790 done, err = future.Done(client) 13791 if err != nil { 13792 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsDeleteFuture", "Result", future.Response(), "Polling failure") 13793 return 13794 } 13795 if !done { 13796 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsDeleteFuture") 13797 return 13798 } 13799 ar.Response = future.Response() 13800 return 13801} 13802 13803// VirtualNetworkGatewayConnectionsResetSharedKeyFuture an abstraction for monitoring and retrieving the results of 13804// a long-running operation. 13805type VirtualNetworkGatewayConnectionsResetSharedKeyFuture struct { 13806 azure.Future 13807} 13808 13809// Result returns the result of the asynchronous operation. 13810// If the operation has not completed it will return an error. 13811func (future *VirtualNetworkGatewayConnectionsResetSharedKeyFuture) Result(client VirtualNetworkGatewayConnectionsClient) (crsk ConnectionResetSharedKey, err error) { 13812 var done bool 13813 done, err = future.Done(client) 13814 if err != nil { 13815 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsResetSharedKeyFuture", "Result", future.Response(), "Polling failure") 13816 return 13817 } 13818 if !done { 13819 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsResetSharedKeyFuture") 13820 return 13821 } 13822 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13823 if crsk.Response.Response, err = future.GetResult(sender); err == nil && crsk.Response.Response.StatusCode != http.StatusNoContent { 13824 crsk, err = client.ResetSharedKeyResponder(crsk.Response.Response) 13825 if err != nil { 13826 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsResetSharedKeyFuture", "Result", crsk.Response.Response, "Failure responding to request") 13827 } 13828 } 13829 return 13830} 13831 13832// VirtualNetworkGatewayConnectionsSetSharedKeyFuture an abstraction for monitoring and retrieving the results of a 13833// long-running operation. 13834type VirtualNetworkGatewayConnectionsSetSharedKeyFuture struct { 13835 azure.Future 13836} 13837 13838// Result returns the result of the asynchronous operation. 13839// If the operation has not completed it will return an error. 13840func (future *VirtualNetworkGatewayConnectionsSetSharedKeyFuture) Result(client VirtualNetworkGatewayConnectionsClient) (csk ConnectionSharedKey, err error) { 13841 var done bool 13842 done, err = future.Done(client) 13843 if err != nil { 13844 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsSetSharedKeyFuture", "Result", future.Response(), "Polling failure") 13845 return 13846 } 13847 if !done { 13848 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsSetSharedKeyFuture") 13849 return 13850 } 13851 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13852 if csk.Response.Response, err = future.GetResult(sender); err == nil && csk.Response.Response.StatusCode != http.StatusNoContent { 13853 csk, err = client.SetSharedKeyResponder(csk.Response.Response) 13854 if err != nil { 13855 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsSetSharedKeyFuture", "Result", csk.Response.Response, "Failure responding to request") 13856 } 13857 } 13858 return 13859} 13860 13861// VirtualNetworkGatewayConnectionsUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 13862// long-running operation. 13863type VirtualNetworkGatewayConnectionsUpdateTagsFuture struct { 13864 azure.Future 13865} 13866 13867// Result returns the result of the asynchronous operation. 13868// If the operation has not completed it will return an error. 13869func (future *VirtualNetworkGatewayConnectionsUpdateTagsFuture) Result(client VirtualNetworkGatewayConnectionsClient) (vngcle VirtualNetworkGatewayConnectionListEntity, err error) { 13870 var done bool 13871 done, err = future.Done(client) 13872 if err != nil { 13873 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsUpdateTagsFuture", "Result", future.Response(), "Polling failure") 13874 return 13875 } 13876 if !done { 13877 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewayConnectionsUpdateTagsFuture") 13878 return 13879 } 13880 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 13881 if vngcle.Response.Response, err = future.GetResult(sender); err == nil && vngcle.Response.Response.StatusCode != http.StatusNoContent { 13882 vngcle, err = client.UpdateTagsResponder(vngcle.Response.Response) 13883 if err != nil { 13884 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewayConnectionsUpdateTagsFuture", "Result", vngcle.Response.Response, "Failure responding to request") 13885 } 13886 } 13887 return 13888} 13889 13890// VirtualNetworkGatewayIPConfiguration IP configuration for virtual network gateway 13891type VirtualNetworkGatewayIPConfiguration struct { 13892 // VirtualNetworkGatewayIPConfigurationPropertiesFormat - Properties of the virtual network gateway ip configuration. 13893 *VirtualNetworkGatewayIPConfigurationPropertiesFormat `json:"properties,omitempty"` 13894 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 13895 Name *string `json:"name,omitempty"` 13896 // Etag - A unique read-only string that changes whenever the resource is updated. 13897 Etag *string `json:"etag,omitempty"` 13898 // ID - Resource ID. 13899 ID *string `json:"id,omitempty"` 13900} 13901 13902// MarshalJSON is the custom marshaler for VirtualNetworkGatewayIPConfiguration. 13903func (vngic VirtualNetworkGatewayIPConfiguration) MarshalJSON() ([]byte, error) { 13904 objectMap := make(map[string]interface{}) 13905 if vngic.VirtualNetworkGatewayIPConfigurationPropertiesFormat != nil { 13906 objectMap["properties"] = vngic.VirtualNetworkGatewayIPConfigurationPropertiesFormat 13907 } 13908 if vngic.Name != nil { 13909 objectMap["name"] = vngic.Name 13910 } 13911 if vngic.Etag != nil { 13912 objectMap["etag"] = vngic.Etag 13913 } 13914 if vngic.ID != nil { 13915 objectMap["id"] = vngic.ID 13916 } 13917 return json.Marshal(objectMap) 13918} 13919 13920// UnmarshalJSON is the custom unmarshaler for VirtualNetworkGatewayIPConfiguration struct. 13921func (vngic *VirtualNetworkGatewayIPConfiguration) UnmarshalJSON(body []byte) error { 13922 var m map[string]*json.RawMessage 13923 err := json.Unmarshal(body, &m) 13924 if err != nil { 13925 return err 13926 } 13927 for k, v := range m { 13928 switch k { 13929 case "properties": 13930 if v != nil { 13931 var virtualNetworkGatewayIPConfigurationPropertiesFormat VirtualNetworkGatewayIPConfigurationPropertiesFormat 13932 err = json.Unmarshal(*v, &virtualNetworkGatewayIPConfigurationPropertiesFormat) 13933 if err != nil { 13934 return err 13935 } 13936 vngic.VirtualNetworkGatewayIPConfigurationPropertiesFormat = &virtualNetworkGatewayIPConfigurationPropertiesFormat 13937 } 13938 case "name": 13939 if v != nil { 13940 var name string 13941 err = json.Unmarshal(*v, &name) 13942 if err != nil { 13943 return err 13944 } 13945 vngic.Name = &name 13946 } 13947 case "etag": 13948 if v != nil { 13949 var etag string 13950 err = json.Unmarshal(*v, &etag) 13951 if err != nil { 13952 return err 13953 } 13954 vngic.Etag = &etag 13955 } 13956 case "id": 13957 if v != nil { 13958 var ID string 13959 err = json.Unmarshal(*v, &ID) 13960 if err != nil { 13961 return err 13962 } 13963 vngic.ID = &ID 13964 } 13965 } 13966 } 13967 13968 return nil 13969} 13970 13971// VirtualNetworkGatewayIPConfigurationPropertiesFormat properties of VirtualNetworkGatewayIPConfiguration 13972type VirtualNetworkGatewayIPConfigurationPropertiesFormat struct { 13973 // PrivateIPAllocationMethod - The private IP allocation method. Possible values are: 'Static' and 'Dynamic'. Possible values include: 'Static', 'Dynamic' 13974 PrivateIPAllocationMethod IPAllocationMethod `json:"privateIPAllocationMethod,omitempty"` 13975 // Subnet - The reference of the subnet resource. 13976 Subnet *SubResource `json:"subnet,omitempty"` 13977 // PublicIPAddress - The reference of the public IP resource. 13978 PublicIPAddress *SubResource `json:"publicIPAddress,omitempty"` 13979 // ProvisioningState - The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 13980 ProvisioningState *string `json:"provisioningState,omitempty"` 13981} 13982 13983// VirtualNetworkGatewayListConnectionsResult response for the VirtualNetworkGatewayListConnections API service 13984// call 13985type VirtualNetworkGatewayListConnectionsResult struct { 13986 autorest.Response `json:"-"` 13987 // Value - Gets a list of VirtualNetworkGatewayConnection resources that exists in a resource group. 13988 Value *[]VirtualNetworkGatewayConnectionListEntity `json:"value,omitempty"` 13989 // NextLink - The URL to get the next set of results. 13990 NextLink *string `json:"nextLink,omitempty"` 13991} 13992 13993// VirtualNetworkGatewayListConnectionsResultIterator provides access to a complete listing of 13994// VirtualNetworkGatewayConnectionListEntity values. 13995type VirtualNetworkGatewayListConnectionsResultIterator struct { 13996 i int 13997 page VirtualNetworkGatewayListConnectionsResultPage 13998} 13999 14000// Next advances to the next value. If there was an error making 14001// the request the iterator does not advance and the error is returned. 14002func (iter *VirtualNetworkGatewayListConnectionsResultIterator) Next() error { 14003 iter.i++ 14004 if iter.i < len(iter.page.Values()) { 14005 return nil 14006 } 14007 err := iter.page.Next() 14008 if err != nil { 14009 iter.i-- 14010 return err 14011 } 14012 iter.i = 0 14013 return nil 14014} 14015 14016// NotDone returns true if the enumeration should be started or is not yet complete. 14017func (iter VirtualNetworkGatewayListConnectionsResultIterator) NotDone() bool { 14018 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14019} 14020 14021// Response returns the raw server response from the last page request. 14022func (iter VirtualNetworkGatewayListConnectionsResultIterator) Response() VirtualNetworkGatewayListConnectionsResult { 14023 return iter.page.Response() 14024} 14025 14026// Value returns the current value or a zero-initialized value if the 14027// iterator has advanced beyond the end of the collection. 14028func (iter VirtualNetworkGatewayListConnectionsResultIterator) Value() VirtualNetworkGatewayConnectionListEntity { 14029 if !iter.page.NotDone() { 14030 return VirtualNetworkGatewayConnectionListEntity{} 14031 } 14032 return iter.page.Values()[iter.i] 14033} 14034 14035// IsEmpty returns true if the ListResult contains no values. 14036func (vnglcr VirtualNetworkGatewayListConnectionsResult) IsEmpty() bool { 14037 return vnglcr.Value == nil || len(*vnglcr.Value) == 0 14038} 14039 14040// virtualNetworkGatewayListConnectionsResultPreparer prepares a request to retrieve the next set of results. 14041// It returns nil if no more results exist. 14042func (vnglcr VirtualNetworkGatewayListConnectionsResult) virtualNetworkGatewayListConnectionsResultPreparer() (*http.Request, error) { 14043 if vnglcr.NextLink == nil || len(to.String(vnglcr.NextLink)) < 1 { 14044 return nil, nil 14045 } 14046 return autorest.Prepare(&http.Request{}, 14047 autorest.AsJSON(), 14048 autorest.AsGet(), 14049 autorest.WithBaseURL(to.String(vnglcr.NextLink))) 14050} 14051 14052// VirtualNetworkGatewayListConnectionsResultPage contains a page of VirtualNetworkGatewayConnectionListEntity 14053// values. 14054type VirtualNetworkGatewayListConnectionsResultPage struct { 14055 fn func(VirtualNetworkGatewayListConnectionsResult) (VirtualNetworkGatewayListConnectionsResult, error) 14056 vnglcr VirtualNetworkGatewayListConnectionsResult 14057} 14058 14059// Next advances to the next page of values. If there was an error making 14060// the request the page does not advance and the error is returned. 14061func (page *VirtualNetworkGatewayListConnectionsResultPage) Next() error { 14062 next, err := page.fn(page.vnglcr) 14063 if err != nil { 14064 return err 14065 } 14066 page.vnglcr = next 14067 return nil 14068} 14069 14070// NotDone returns true if the page enumeration should be started or is not yet complete. 14071func (page VirtualNetworkGatewayListConnectionsResultPage) NotDone() bool { 14072 return !page.vnglcr.IsEmpty() 14073} 14074 14075// Response returns the raw server response from the last page request. 14076func (page VirtualNetworkGatewayListConnectionsResultPage) Response() VirtualNetworkGatewayListConnectionsResult { 14077 return page.vnglcr 14078} 14079 14080// Values returns the slice of values for the current page or nil if there are no values. 14081func (page VirtualNetworkGatewayListConnectionsResultPage) Values() []VirtualNetworkGatewayConnectionListEntity { 14082 if page.vnglcr.IsEmpty() { 14083 return nil 14084 } 14085 return *page.vnglcr.Value 14086} 14087 14088// VirtualNetworkGatewayListResult response for the ListVirtualNetworkGateways API service call. 14089type VirtualNetworkGatewayListResult struct { 14090 autorest.Response `json:"-"` 14091 // Value - Gets a list of VirtualNetworkGateway resources that exists in a resource group. 14092 Value *[]VirtualNetworkGateway `json:"value,omitempty"` 14093 // NextLink - The URL to get the next set of results. 14094 NextLink *string `json:"nextLink,omitempty"` 14095} 14096 14097// VirtualNetworkGatewayListResultIterator provides access to a complete listing of VirtualNetworkGateway values. 14098type VirtualNetworkGatewayListResultIterator struct { 14099 i int 14100 page VirtualNetworkGatewayListResultPage 14101} 14102 14103// Next advances to the next value. If there was an error making 14104// the request the iterator does not advance and the error is returned. 14105func (iter *VirtualNetworkGatewayListResultIterator) Next() error { 14106 iter.i++ 14107 if iter.i < len(iter.page.Values()) { 14108 return nil 14109 } 14110 err := iter.page.Next() 14111 if err != nil { 14112 iter.i-- 14113 return err 14114 } 14115 iter.i = 0 14116 return nil 14117} 14118 14119// NotDone returns true if the enumeration should be started or is not yet complete. 14120func (iter VirtualNetworkGatewayListResultIterator) NotDone() bool { 14121 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14122} 14123 14124// Response returns the raw server response from the last page request. 14125func (iter VirtualNetworkGatewayListResultIterator) Response() VirtualNetworkGatewayListResult { 14126 return iter.page.Response() 14127} 14128 14129// Value returns the current value or a zero-initialized value if the 14130// iterator has advanced beyond the end of the collection. 14131func (iter VirtualNetworkGatewayListResultIterator) Value() VirtualNetworkGateway { 14132 if !iter.page.NotDone() { 14133 return VirtualNetworkGateway{} 14134 } 14135 return iter.page.Values()[iter.i] 14136} 14137 14138// IsEmpty returns true if the ListResult contains no values. 14139func (vnglr VirtualNetworkGatewayListResult) IsEmpty() bool { 14140 return vnglr.Value == nil || len(*vnglr.Value) == 0 14141} 14142 14143// virtualNetworkGatewayListResultPreparer prepares a request to retrieve the next set of results. 14144// It returns nil if no more results exist. 14145func (vnglr VirtualNetworkGatewayListResult) virtualNetworkGatewayListResultPreparer() (*http.Request, error) { 14146 if vnglr.NextLink == nil || len(to.String(vnglr.NextLink)) < 1 { 14147 return nil, nil 14148 } 14149 return autorest.Prepare(&http.Request{}, 14150 autorest.AsJSON(), 14151 autorest.AsGet(), 14152 autorest.WithBaseURL(to.String(vnglr.NextLink))) 14153} 14154 14155// VirtualNetworkGatewayListResultPage contains a page of VirtualNetworkGateway values. 14156type VirtualNetworkGatewayListResultPage struct { 14157 fn func(VirtualNetworkGatewayListResult) (VirtualNetworkGatewayListResult, error) 14158 vnglr VirtualNetworkGatewayListResult 14159} 14160 14161// Next advances to the next page of values. If there was an error making 14162// the request the page does not advance and the error is returned. 14163func (page *VirtualNetworkGatewayListResultPage) Next() error { 14164 next, err := page.fn(page.vnglr) 14165 if err != nil { 14166 return err 14167 } 14168 page.vnglr = next 14169 return nil 14170} 14171 14172// NotDone returns true if the page enumeration should be started or is not yet complete. 14173func (page VirtualNetworkGatewayListResultPage) NotDone() bool { 14174 return !page.vnglr.IsEmpty() 14175} 14176 14177// Response returns the raw server response from the last page request. 14178func (page VirtualNetworkGatewayListResultPage) Response() VirtualNetworkGatewayListResult { 14179 return page.vnglr 14180} 14181 14182// Values returns the slice of values for the current page or nil if there are no values. 14183func (page VirtualNetworkGatewayListResultPage) Values() []VirtualNetworkGateway { 14184 if page.vnglr.IsEmpty() { 14185 return nil 14186 } 14187 return *page.vnglr.Value 14188} 14189 14190// VirtualNetworkGatewayPropertiesFormat virtualNetworkGateway properties 14191type VirtualNetworkGatewayPropertiesFormat struct { 14192 // IPConfigurations - IP configurations for virtual network gateway. 14193 IPConfigurations *[]VirtualNetworkGatewayIPConfiguration `json:"ipConfigurations,omitempty"` 14194 // GatewayType - The type of this virtual network gateway. Possible values are: 'Vpn' and 'ExpressRoute'. Possible values include: 'VirtualNetworkGatewayTypeVpn', 'VirtualNetworkGatewayTypeExpressRoute' 14195 GatewayType VirtualNetworkGatewayType `json:"gatewayType,omitempty"` 14196 // VpnType - The type of this virtual network gateway. Possible values are: 'PolicyBased' and 'RouteBased'. Possible values include: 'PolicyBased', 'RouteBased' 14197 VpnType VpnType `json:"vpnType,omitempty"` 14198 // EnableBgp - Whether BGP is enabled for this virtual network gateway or not. 14199 EnableBgp *bool `json:"enableBgp,omitempty"` 14200 // ActiveActive - ActiveActive flag 14201 ActiveActive *bool `json:"activeActive,omitempty"` 14202 // 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. 14203 GatewayDefaultSite *SubResource `json:"gatewayDefaultSite,omitempty"` 14204 // Sku - The reference of the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. 14205 Sku *VirtualNetworkGatewaySku `json:"sku,omitempty"` 14206 // VpnClientConfiguration - The reference of the VpnClientConfiguration resource which represents the P2S VpnClient configurations. 14207 VpnClientConfiguration *VpnClientConfiguration `json:"vpnClientConfiguration,omitempty"` 14208 // BgpSettings - Virtual network gateway's BGP speaker settings. 14209 BgpSettings *BgpSettings `json:"bgpSettings,omitempty"` 14210 // ResourceGUID - The resource GUID property of the VirtualNetworkGateway resource. 14211 ResourceGUID *string `json:"resourceGuid,omitempty"` 14212 // ProvisioningState - The provisioning state of the VirtualNetworkGateway resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 14213 ProvisioningState *string `json:"provisioningState,omitempty"` 14214} 14215 14216// VirtualNetworkGatewaysCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 14217// long-running operation. 14218type VirtualNetworkGatewaysCreateOrUpdateFuture struct { 14219 azure.Future 14220} 14221 14222// Result returns the result of the asynchronous operation. 14223// If the operation has not completed it will return an error. 14224func (future *VirtualNetworkGatewaysCreateOrUpdateFuture) Result(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 14225 var done bool 14226 done, err = future.Done(client) 14227 if err != nil { 14228 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 14229 return 14230 } 14231 if !done { 14232 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysCreateOrUpdateFuture") 14233 return 14234 } 14235 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14236 if vng.Response.Response, err = future.GetResult(sender); err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 14237 vng, err = client.CreateOrUpdateResponder(vng.Response.Response) 14238 if err != nil { 14239 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysCreateOrUpdateFuture", "Result", vng.Response.Response, "Failure responding to request") 14240 } 14241 } 14242 return 14243} 14244 14245// VirtualNetworkGatewaysDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 14246// operation. 14247type VirtualNetworkGatewaysDeleteFuture struct { 14248 azure.Future 14249} 14250 14251// Result returns the result of the asynchronous operation. 14252// If the operation has not completed it will return an error. 14253func (future *VirtualNetworkGatewaysDeleteFuture) Result(client VirtualNetworkGatewaysClient) (ar autorest.Response, err error) { 14254 var done bool 14255 done, err = future.Done(client) 14256 if err != nil { 14257 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysDeleteFuture", "Result", future.Response(), "Polling failure") 14258 return 14259 } 14260 if !done { 14261 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysDeleteFuture") 14262 return 14263 } 14264 ar.Response = future.Response() 14265 return 14266} 14267 14268// VirtualNetworkGatewaysGeneratevpnclientpackageFuture an abstraction for monitoring and retrieving the results of 14269// a long-running operation. 14270type VirtualNetworkGatewaysGeneratevpnclientpackageFuture struct { 14271 azure.Future 14272} 14273 14274// Result returns the result of the asynchronous operation. 14275// If the operation has not completed it will return an error. 14276func (future *VirtualNetworkGatewaysGeneratevpnclientpackageFuture) Result(client VirtualNetworkGatewaysClient) (s String, err error) { 14277 var done bool 14278 done, err = future.Done(client) 14279 if err != nil { 14280 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture", "Result", future.Response(), "Polling failure") 14281 return 14282 } 14283 if !done { 14284 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture") 14285 return 14286 } 14287 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14288 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 14289 s, err = client.GeneratevpnclientpackageResponder(s.Response.Response) 14290 if err != nil { 14291 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture", "Result", s.Response.Response, "Failure responding to request") 14292 } 14293 } 14294 return 14295} 14296 14297// VirtualNetworkGatewaysGenerateVpnProfileFuture an abstraction for monitoring and retrieving the results of a 14298// long-running operation. 14299type VirtualNetworkGatewaysGenerateVpnProfileFuture struct { 14300 azure.Future 14301} 14302 14303// Result returns the result of the asynchronous operation. 14304// If the operation has not completed it will return an error. 14305func (future *VirtualNetworkGatewaysGenerateVpnProfileFuture) Result(client VirtualNetworkGatewaysClient) (s String, err error) { 14306 var done bool 14307 done, err = future.Done(client) 14308 if err != nil { 14309 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGenerateVpnProfileFuture", "Result", future.Response(), "Polling failure") 14310 return 14311 } 14312 if !done { 14313 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGenerateVpnProfileFuture") 14314 return 14315 } 14316 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14317 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 14318 s, err = client.GenerateVpnProfileResponder(s.Response.Response) 14319 if err != nil { 14320 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGenerateVpnProfileFuture", "Result", s.Response.Response, "Failure responding to request") 14321 } 14322 } 14323 return 14324} 14325 14326// VirtualNetworkGatewaysGetAdvertisedRoutesFuture an abstraction for monitoring and retrieving the results of a 14327// long-running operation. 14328type VirtualNetworkGatewaysGetAdvertisedRoutesFuture struct { 14329 azure.Future 14330} 14331 14332// Result returns the result of the asynchronous operation. 14333// If the operation has not completed it will return an error. 14334func (future *VirtualNetworkGatewaysGetAdvertisedRoutesFuture) Result(client VirtualNetworkGatewaysClient) (grlr GatewayRouteListResult, err error) { 14335 var done bool 14336 done, err = future.Done(client) 14337 if err != nil { 14338 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture", "Result", future.Response(), "Polling failure") 14339 return 14340 } 14341 if !done { 14342 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture") 14343 return 14344 } 14345 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14346 if grlr.Response.Response, err = future.GetResult(sender); err == nil && grlr.Response.Response.StatusCode != http.StatusNoContent { 14347 grlr, err = client.GetAdvertisedRoutesResponder(grlr.Response.Response) 14348 if err != nil { 14349 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture", "Result", grlr.Response.Response, "Failure responding to request") 14350 } 14351 } 14352 return 14353} 14354 14355// VirtualNetworkGatewaysGetBgpPeerStatusFuture an abstraction for monitoring and retrieving the results of a 14356// long-running operation. 14357type VirtualNetworkGatewaysGetBgpPeerStatusFuture struct { 14358 azure.Future 14359} 14360 14361// Result returns the result of the asynchronous operation. 14362// If the operation has not completed it will return an error. 14363func (future *VirtualNetworkGatewaysGetBgpPeerStatusFuture) Result(client VirtualNetworkGatewaysClient) (bpslr BgpPeerStatusListResult, err error) { 14364 var done bool 14365 done, err = future.Done(client) 14366 if err != nil { 14367 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetBgpPeerStatusFuture", "Result", future.Response(), "Polling failure") 14368 return 14369 } 14370 if !done { 14371 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetBgpPeerStatusFuture") 14372 return 14373 } 14374 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14375 if bpslr.Response.Response, err = future.GetResult(sender); err == nil && bpslr.Response.Response.StatusCode != http.StatusNoContent { 14376 bpslr, err = client.GetBgpPeerStatusResponder(bpslr.Response.Response) 14377 if err != nil { 14378 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetBgpPeerStatusFuture", "Result", bpslr.Response.Response, "Failure responding to request") 14379 } 14380 } 14381 return 14382} 14383 14384// VirtualNetworkGatewaysGetLearnedRoutesFuture an abstraction for monitoring and retrieving the results of a 14385// long-running operation. 14386type VirtualNetworkGatewaysGetLearnedRoutesFuture struct { 14387 azure.Future 14388} 14389 14390// Result returns the result of the asynchronous operation. 14391// If the operation has not completed it will return an error. 14392func (future *VirtualNetworkGatewaysGetLearnedRoutesFuture) Result(client VirtualNetworkGatewaysClient) (grlr GatewayRouteListResult, err error) { 14393 var done bool 14394 done, err = future.Done(client) 14395 if err != nil { 14396 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetLearnedRoutesFuture", "Result", future.Response(), "Polling failure") 14397 return 14398 } 14399 if !done { 14400 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetLearnedRoutesFuture") 14401 return 14402 } 14403 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14404 if grlr.Response.Response, err = future.GetResult(sender); err == nil && grlr.Response.Response.StatusCode != http.StatusNoContent { 14405 grlr, err = client.GetLearnedRoutesResponder(grlr.Response.Response) 14406 if err != nil { 14407 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetLearnedRoutesFuture", "Result", grlr.Response.Response, "Failure responding to request") 14408 } 14409 } 14410 return 14411} 14412 14413// VirtualNetworkGatewaysGetVpnProfilePackageURLFuture an abstraction for monitoring and retrieving the results of 14414// a long-running operation. 14415type VirtualNetworkGatewaysGetVpnProfilePackageURLFuture struct { 14416 azure.Future 14417} 14418 14419// Result returns the result of the asynchronous operation. 14420// If the operation has not completed it will return an error. 14421func (future *VirtualNetworkGatewaysGetVpnProfilePackageURLFuture) Result(client VirtualNetworkGatewaysClient) (s String, err error) { 14422 var done bool 14423 done, err = future.Done(client) 14424 if err != nil { 14425 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture", "Result", future.Response(), "Polling failure") 14426 return 14427 } 14428 if !done { 14429 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture") 14430 return 14431 } 14432 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14433 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 14434 s, err = client.GetVpnProfilePackageURLResponder(s.Response.Response) 14435 if err != nil { 14436 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture", "Result", s.Response.Response, "Failure responding to request") 14437 } 14438 } 14439 return 14440} 14441 14442// VirtualNetworkGatewaySku virtualNetworkGatewaySku details 14443type VirtualNetworkGatewaySku struct { 14444 // Name - Gateway SKU name. Possible values include: 'VirtualNetworkGatewaySkuNameBasic', 'VirtualNetworkGatewaySkuNameHighPerformance', 'VirtualNetworkGatewaySkuNameStandard', 'VirtualNetworkGatewaySkuNameUltraPerformance', 'VirtualNetworkGatewaySkuNameVpnGw1', 'VirtualNetworkGatewaySkuNameVpnGw2', 'VirtualNetworkGatewaySkuNameVpnGw3' 14445 Name VirtualNetworkGatewaySkuName `json:"name,omitempty"` 14446 // Tier - Gateway SKU tier. Possible values include: 'VirtualNetworkGatewaySkuTierBasic', 'VirtualNetworkGatewaySkuTierHighPerformance', 'VirtualNetworkGatewaySkuTierStandard', 'VirtualNetworkGatewaySkuTierUltraPerformance', 'VirtualNetworkGatewaySkuTierVpnGw1', 'VirtualNetworkGatewaySkuTierVpnGw2', 'VirtualNetworkGatewaySkuTierVpnGw3' 14447 Tier VirtualNetworkGatewaySkuTier `json:"tier,omitempty"` 14448 // Capacity - The capacity. 14449 Capacity *int32 `json:"capacity,omitempty"` 14450} 14451 14452// VirtualNetworkGatewaysResetFuture an abstraction for monitoring and retrieving the results of a long-running 14453// operation. 14454type VirtualNetworkGatewaysResetFuture struct { 14455 azure.Future 14456} 14457 14458// Result returns the result of the asynchronous operation. 14459// If the operation has not completed it will return an error. 14460func (future *VirtualNetworkGatewaysResetFuture) Result(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 14461 var done bool 14462 done, err = future.Done(client) 14463 if err != nil { 14464 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetFuture", "Result", future.Response(), "Polling failure") 14465 return 14466 } 14467 if !done { 14468 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysResetFuture") 14469 return 14470 } 14471 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14472 if vng.Response.Response, err = future.GetResult(sender); err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 14473 vng, err = client.ResetResponder(vng.Response.Response) 14474 if err != nil { 14475 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysResetFuture", "Result", vng.Response.Response, "Failure responding to request") 14476 } 14477 } 14478 return 14479} 14480 14481// VirtualNetworkGatewaysUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 14482// long-running operation. 14483type VirtualNetworkGatewaysUpdateTagsFuture struct { 14484 azure.Future 14485} 14486 14487// Result returns the result of the asynchronous operation. 14488// If the operation has not completed it will return an error. 14489func (future *VirtualNetworkGatewaysUpdateTagsFuture) Result(client VirtualNetworkGatewaysClient) (vng VirtualNetworkGateway, err error) { 14490 var done bool 14491 done, err = future.Done(client) 14492 if err != nil { 14493 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysUpdateTagsFuture", "Result", future.Response(), "Polling failure") 14494 return 14495 } 14496 if !done { 14497 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkGatewaysUpdateTagsFuture") 14498 return 14499 } 14500 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14501 if vng.Response.Response, err = future.GetResult(sender); err == nil && vng.Response.Response.StatusCode != http.StatusNoContent { 14502 vng, err = client.UpdateTagsResponder(vng.Response.Response) 14503 if err != nil { 14504 err = autorest.NewErrorWithError(err, "network.VirtualNetworkGatewaysUpdateTagsFuture", "Result", vng.Response.Response, "Failure responding to request") 14505 } 14506 } 14507 return 14508} 14509 14510// VirtualNetworkListResult response for the ListVirtualNetworks API service call. 14511type VirtualNetworkListResult struct { 14512 autorest.Response `json:"-"` 14513 // Value - Gets a list of VirtualNetwork resources in a resource group. 14514 Value *[]VirtualNetwork `json:"value,omitempty"` 14515 // NextLink - The URL to get the next set of results. 14516 NextLink *string `json:"nextLink,omitempty"` 14517} 14518 14519// VirtualNetworkListResultIterator provides access to a complete listing of VirtualNetwork values. 14520type VirtualNetworkListResultIterator struct { 14521 i int 14522 page VirtualNetworkListResultPage 14523} 14524 14525// Next advances to the next value. If there was an error making 14526// the request the iterator does not advance and the error is returned. 14527func (iter *VirtualNetworkListResultIterator) Next() error { 14528 iter.i++ 14529 if iter.i < len(iter.page.Values()) { 14530 return nil 14531 } 14532 err := iter.page.Next() 14533 if err != nil { 14534 iter.i-- 14535 return err 14536 } 14537 iter.i = 0 14538 return nil 14539} 14540 14541// NotDone returns true if the enumeration should be started or is not yet complete. 14542func (iter VirtualNetworkListResultIterator) NotDone() bool { 14543 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14544} 14545 14546// Response returns the raw server response from the last page request. 14547func (iter VirtualNetworkListResultIterator) Response() VirtualNetworkListResult { 14548 return iter.page.Response() 14549} 14550 14551// Value returns the current value or a zero-initialized value if the 14552// iterator has advanced beyond the end of the collection. 14553func (iter VirtualNetworkListResultIterator) Value() VirtualNetwork { 14554 if !iter.page.NotDone() { 14555 return VirtualNetwork{} 14556 } 14557 return iter.page.Values()[iter.i] 14558} 14559 14560// IsEmpty returns true if the ListResult contains no values. 14561func (vnlr VirtualNetworkListResult) IsEmpty() bool { 14562 return vnlr.Value == nil || len(*vnlr.Value) == 0 14563} 14564 14565// virtualNetworkListResultPreparer prepares a request to retrieve the next set of results. 14566// It returns nil if no more results exist. 14567func (vnlr VirtualNetworkListResult) virtualNetworkListResultPreparer() (*http.Request, error) { 14568 if vnlr.NextLink == nil || len(to.String(vnlr.NextLink)) < 1 { 14569 return nil, nil 14570 } 14571 return autorest.Prepare(&http.Request{}, 14572 autorest.AsJSON(), 14573 autorest.AsGet(), 14574 autorest.WithBaseURL(to.String(vnlr.NextLink))) 14575} 14576 14577// VirtualNetworkListResultPage contains a page of VirtualNetwork values. 14578type VirtualNetworkListResultPage struct { 14579 fn func(VirtualNetworkListResult) (VirtualNetworkListResult, error) 14580 vnlr VirtualNetworkListResult 14581} 14582 14583// Next advances to the next page of values. If there was an error making 14584// the request the page does not advance and the error is returned. 14585func (page *VirtualNetworkListResultPage) Next() error { 14586 next, err := page.fn(page.vnlr) 14587 if err != nil { 14588 return err 14589 } 14590 page.vnlr = next 14591 return nil 14592} 14593 14594// NotDone returns true if the page enumeration should be started or is not yet complete. 14595func (page VirtualNetworkListResultPage) NotDone() bool { 14596 return !page.vnlr.IsEmpty() 14597} 14598 14599// Response returns the raw server response from the last page request. 14600func (page VirtualNetworkListResultPage) Response() VirtualNetworkListResult { 14601 return page.vnlr 14602} 14603 14604// Values returns the slice of values for the current page or nil if there are no values. 14605func (page VirtualNetworkListResultPage) Values() []VirtualNetwork { 14606 if page.vnlr.IsEmpty() { 14607 return nil 14608 } 14609 return *page.vnlr.Value 14610} 14611 14612// VirtualNetworkListUsageResult response for the virtual networks GetUsage API service call. 14613type VirtualNetworkListUsageResult struct { 14614 autorest.Response `json:"-"` 14615 // Value - VirtualNetwork usage stats. 14616 Value *[]VirtualNetworkUsage `json:"value,omitempty"` 14617 // NextLink - The URL to get the next set of results. 14618 NextLink *string `json:"nextLink,omitempty"` 14619} 14620 14621// VirtualNetworkListUsageResultIterator provides access to a complete listing of VirtualNetworkUsage values. 14622type VirtualNetworkListUsageResultIterator struct { 14623 i int 14624 page VirtualNetworkListUsageResultPage 14625} 14626 14627// Next advances to the next value. If there was an error making 14628// the request the iterator does not advance and the error is returned. 14629func (iter *VirtualNetworkListUsageResultIterator) Next() error { 14630 iter.i++ 14631 if iter.i < len(iter.page.Values()) { 14632 return nil 14633 } 14634 err := iter.page.Next() 14635 if err != nil { 14636 iter.i-- 14637 return err 14638 } 14639 iter.i = 0 14640 return nil 14641} 14642 14643// NotDone returns true if the enumeration should be started or is not yet complete. 14644func (iter VirtualNetworkListUsageResultIterator) NotDone() bool { 14645 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14646} 14647 14648// Response returns the raw server response from the last page request. 14649func (iter VirtualNetworkListUsageResultIterator) Response() VirtualNetworkListUsageResult { 14650 return iter.page.Response() 14651} 14652 14653// Value returns the current value or a zero-initialized value if the 14654// iterator has advanced beyond the end of the collection. 14655func (iter VirtualNetworkListUsageResultIterator) Value() VirtualNetworkUsage { 14656 if !iter.page.NotDone() { 14657 return VirtualNetworkUsage{} 14658 } 14659 return iter.page.Values()[iter.i] 14660} 14661 14662// IsEmpty returns true if the ListResult contains no values. 14663func (vnlur VirtualNetworkListUsageResult) IsEmpty() bool { 14664 return vnlur.Value == nil || len(*vnlur.Value) == 0 14665} 14666 14667// virtualNetworkListUsageResultPreparer prepares a request to retrieve the next set of results. 14668// It returns nil if no more results exist. 14669func (vnlur VirtualNetworkListUsageResult) virtualNetworkListUsageResultPreparer() (*http.Request, error) { 14670 if vnlur.NextLink == nil || len(to.String(vnlur.NextLink)) < 1 { 14671 return nil, nil 14672 } 14673 return autorest.Prepare(&http.Request{}, 14674 autorest.AsJSON(), 14675 autorest.AsGet(), 14676 autorest.WithBaseURL(to.String(vnlur.NextLink))) 14677} 14678 14679// VirtualNetworkListUsageResultPage contains a page of VirtualNetworkUsage values. 14680type VirtualNetworkListUsageResultPage struct { 14681 fn func(VirtualNetworkListUsageResult) (VirtualNetworkListUsageResult, error) 14682 vnlur VirtualNetworkListUsageResult 14683} 14684 14685// Next 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 *VirtualNetworkListUsageResultPage) Next() error { 14688 next, err := page.fn(page.vnlur) 14689 if err != nil { 14690 return err 14691 } 14692 page.vnlur = next 14693 return nil 14694} 14695 14696// NotDone returns true if the page enumeration should be started or is not yet complete. 14697func (page VirtualNetworkListUsageResultPage) NotDone() bool { 14698 return !page.vnlur.IsEmpty() 14699} 14700 14701// Response returns the raw server response from the last page request. 14702func (page VirtualNetworkListUsageResultPage) Response() VirtualNetworkListUsageResult { 14703 return page.vnlur 14704} 14705 14706// Values returns the slice of values for the current page or nil if there are no values. 14707func (page VirtualNetworkListUsageResultPage) Values() []VirtualNetworkUsage { 14708 if page.vnlur.IsEmpty() { 14709 return nil 14710 } 14711 return *page.vnlur.Value 14712} 14713 14714// VirtualNetworkPeering peerings in a virtual network resource. 14715type VirtualNetworkPeering struct { 14716 autorest.Response `json:"-"` 14717 // VirtualNetworkPeeringPropertiesFormat - Properties of the virtual network peering. 14718 *VirtualNetworkPeeringPropertiesFormat `json:"properties,omitempty"` 14719 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 14720 Name *string `json:"name,omitempty"` 14721 // Etag - A unique read-only string that changes whenever the resource is updated. 14722 Etag *string `json:"etag,omitempty"` 14723 // ID - Resource ID. 14724 ID *string `json:"id,omitempty"` 14725} 14726 14727// MarshalJSON is the custom marshaler for VirtualNetworkPeering. 14728func (vnp VirtualNetworkPeering) MarshalJSON() ([]byte, error) { 14729 objectMap := make(map[string]interface{}) 14730 if vnp.VirtualNetworkPeeringPropertiesFormat != nil { 14731 objectMap["properties"] = vnp.VirtualNetworkPeeringPropertiesFormat 14732 } 14733 if vnp.Name != nil { 14734 objectMap["name"] = vnp.Name 14735 } 14736 if vnp.Etag != nil { 14737 objectMap["etag"] = vnp.Etag 14738 } 14739 if vnp.ID != nil { 14740 objectMap["id"] = vnp.ID 14741 } 14742 return json.Marshal(objectMap) 14743} 14744 14745// UnmarshalJSON is the custom unmarshaler for VirtualNetworkPeering struct. 14746func (vnp *VirtualNetworkPeering) UnmarshalJSON(body []byte) error { 14747 var m map[string]*json.RawMessage 14748 err := json.Unmarshal(body, &m) 14749 if err != nil { 14750 return err 14751 } 14752 for k, v := range m { 14753 switch k { 14754 case "properties": 14755 if v != nil { 14756 var virtualNetworkPeeringPropertiesFormat VirtualNetworkPeeringPropertiesFormat 14757 err = json.Unmarshal(*v, &virtualNetworkPeeringPropertiesFormat) 14758 if err != nil { 14759 return err 14760 } 14761 vnp.VirtualNetworkPeeringPropertiesFormat = &virtualNetworkPeeringPropertiesFormat 14762 } 14763 case "name": 14764 if v != nil { 14765 var name string 14766 err = json.Unmarshal(*v, &name) 14767 if err != nil { 14768 return err 14769 } 14770 vnp.Name = &name 14771 } 14772 case "etag": 14773 if v != nil { 14774 var etag string 14775 err = json.Unmarshal(*v, &etag) 14776 if err != nil { 14777 return err 14778 } 14779 vnp.Etag = &etag 14780 } 14781 case "id": 14782 if v != nil { 14783 var ID string 14784 err = json.Unmarshal(*v, &ID) 14785 if err != nil { 14786 return err 14787 } 14788 vnp.ID = &ID 14789 } 14790 } 14791 } 14792 14793 return nil 14794} 14795 14796// VirtualNetworkPeeringListResult response for ListSubnets API service call. Retrieves all subnets that belong to 14797// a virtual network. 14798type VirtualNetworkPeeringListResult struct { 14799 autorest.Response `json:"-"` 14800 // Value - The peerings in a virtual network. 14801 Value *[]VirtualNetworkPeering `json:"value,omitempty"` 14802 // NextLink - The URL to get the next set of results. 14803 NextLink *string `json:"nextLink,omitempty"` 14804} 14805 14806// VirtualNetworkPeeringListResultIterator provides access to a complete listing of VirtualNetworkPeering values. 14807type VirtualNetworkPeeringListResultIterator struct { 14808 i int 14809 page VirtualNetworkPeeringListResultPage 14810} 14811 14812// Next advances to the next value. If there was an error making 14813// the request the iterator does not advance and the error is returned. 14814func (iter *VirtualNetworkPeeringListResultIterator) Next() error { 14815 iter.i++ 14816 if iter.i < len(iter.page.Values()) { 14817 return nil 14818 } 14819 err := iter.page.Next() 14820 if err != nil { 14821 iter.i-- 14822 return err 14823 } 14824 iter.i = 0 14825 return nil 14826} 14827 14828// NotDone returns true if the enumeration should be started or is not yet complete. 14829func (iter VirtualNetworkPeeringListResultIterator) NotDone() bool { 14830 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14831} 14832 14833// Response returns the raw server response from the last page request. 14834func (iter VirtualNetworkPeeringListResultIterator) Response() VirtualNetworkPeeringListResult { 14835 return iter.page.Response() 14836} 14837 14838// Value returns the current value or a zero-initialized value if the 14839// iterator has advanced beyond the end of the collection. 14840func (iter VirtualNetworkPeeringListResultIterator) Value() VirtualNetworkPeering { 14841 if !iter.page.NotDone() { 14842 return VirtualNetworkPeering{} 14843 } 14844 return iter.page.Values()[iter.i] 14845} 14846 14847// IsEmpty returns true if the ListResult contains no values. 14848func (vnplr VirtualNetworkPeeringListResult) IsEmpty() bool { 14849 return vnplr.Value == nil || len(*vnplr.Value) == 0 14850} 14851 14852// virtualNetworkPeeringListResultPreparer prepares a request to retrieve the next set of results. 14853// It returns nil if no more results exist. 14854func (vnplr VirtualNetworkPeeringListResult) virtualNetworkPeeringListResultPreparer() (*http.Request, error) { 14855 if vnplr.NextLink == nil || len(to.String(vnplr.NextLink)) < 1 { 14856 return nil, nil 14857 } 14858 return autorest.Prepare(&http.Request{}, 14859 autorest.AsJSON(), 14860 autorest.AsGet(), 14861 autorest.WithBaseURL(to.String(vnplr.NextLink))) 14862} 14863 14864// VirtualNetworkPeeringListResultPage contains a page of VirtualNetworkPeering values. 14865type VirtualNetworkPeeringListResultPage struct { 14866 fn func(VirtualNetworkPeeringListResult) (VirtualNetworkPeeringListResult, error) 14867 vnplr VirtualNetworkPeeringListResult 14868} 14869 14870// Next advances to the next page of values. If there was an error making 14871// the request the page does not advance and the error is returned. 14872func (page *VirtualNetworkPeeringListResultPage) Next() error { 14873 next, err := page.fn(page.vnplr) 14874 if err != nil { 14875 return err 14876 } 14877 page.vnplr = next 14878 return nil 14879} 14880 14881// NotDone returns true if the page enumeration should be started or is not yet complete. 14882func (page VirtualNetworkPeeringListResultPage) NotDone() bool { 14883 return !page.vnplr.IsEmpty() 14884} 14885 14886// Response returns the raw server response from the last page request. 14887func (page VirtualNetworkPeeringListResultPage) Response() VirtualNetworkPeeringListResult { 14888 return page.vnplr 14889} 14890 14891// Values returns the slice of values for the current page or nil if there are no values. 14892func (page VirtualNetworkPeeringListResultPage) Values() []VirtualNetworkPeering { 14893 if page.vnplr.IsEmpty() { 14894 return nil 14895 } 14896 return *page.vnplr.Value 14897} 14898 14899// VirtualNetworkPeeringPropertiesFormat properties of the virtual network peering. 14900type VirtualNetworkPeeringPropertiesFormat struct { 14901 // AllowVirtualNetworkAccess - Whether the VMs in the linked virtual network space would be able to access all the VMs in local Virtual network space. 14902 AllowVirtualNetworkAccess *bool `json:"allowVirtualNetworkAccess,omitempty"` 14903 // AllowForwardedTraffic - Whether the forwarded traffic from the VMs in the remote virtual network will be allowed/disallowed. 14904 AllowForwardedTraffic *bool `json:"allowForwardedTraffic,omitempty"` 14905 // AllowGatewayTransit - If gateway links can be used in remote virtual networking to link to this virtual network. 14906 AllowGatewayTransit *bool `json:"allowGatewayTransit,omitempty"` 14907 // 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. 14908 UseRemoteGateways *bool `json:"useRemoteGateways,omitempty"` 14909 // 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). 14910 RemoteVirtualNetwork *SubResource `json:"remoteVirtualNetwork,omitempty"` 14911 // RemoteAddressSpace - The reference of the remote virtual network address space. 14912 RemoteAddressSpace *AddressSpace `json:"remoteAddressSpace,omitempty"` 14913 // PeeringState - The status of the virtual network peering. Possible values are 'Initiated', 'Connected', and 'Disconnected'. Possible values include: 'Initiated', 'Connected', 'Disconnected' 14914 PeeringState VirtualNetworkPeeringState `json:"peeringState,omitempty"` 14915 // ProvisioningState - The provisioning state of the resource. 14916 ProvisioningState *string `json:"provisioningState,omitempty"` 14917} 14918 14919// VirtualNetworkPeeringsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 14920// long-running operation. 14921type VirtualNetworkPeeringsCreateOrUpdateFuture struct { 14922 azure.Future 14923} 14924 14925// Result returns the result of the asynchronous operation. 14926// If the operation has not completed it will return an error. 14927func (future *VirtualNetworkPeeringsCreateOrUpdateFuture) Result(client VirtualNetworkPeeringsClient) (vnp VirtualNetworkPeering, err error) { 14928 var done bool 14929 done, err = future.Done(client) 14930 if err != nil { 14931 err = autorest.NewErrorWithError(err, "network.VirtualNetworkPeeringsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 14932 return 14933 } 14934 if !done { 14935 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkPeeringsCreateOrUpdateFuture") 14936 return 14937 } 14938 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 14939 if vnp.Response.Response, err = future.GetResult(sender); err == nil && vnp.Response.Response.StatusCode != http.StatusNoContent { 14940 vnp, err = client.CreateOrUpdateResponder(vnp.Response.Response) 14941 if err != nil { 14942 err = autorest.NewErrorWithError(err, "network.VirtualNetworkPeeringsCreateOrUpdateFuture", "Result", vnp.Response.Response, "Failure responding to request") 14943 } 14944 } 14945 return 14946} 14947 14948// VirtualNetworkPeeringsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 14949// operation. 14950type VirtualNetworkPeeringsDeleteFuture struct { 14951 azure.Future 14952} 14953 14954// Result returns the result of the asynchronous operation. 14955// If the operation has not completed it will return an error. 14956func (future *VirtualNetworkPeeringsDeleteFuture) Result(client VirtualNetworkPeeringsClient) (ar autorest.Response, err error) { 14957 var done bool 14958 done, err = future.Done(client) 14959 if err != nil { 14960 err = autorest.NewErrorWithError(err, "network.VirtualNetworkPeeringsDeleteFuture", "Result", future.Response(), "Polling failure") 14961 return 14962 } 14963 if !done { 14964 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworkPeeringsDeleteFuture") 14965 return 14966 } 14967 ar.Response = future.Response() 14968 return 14969} 14970 14971// VirtualNetworkPropertiesFormat properties of the virtual network. 14972type VirtualNetworkPropertiesFormat struct { 14973 // AddressSpace - The AddressSpace that contains an array of IP address ranges that can be used by subnets. 14974 AddressSpace *AddressSpace `json:"addressSpace,omitempty"` 14975 // DhcpOptions - The dhcpOptions that contains an array of DNS servers available to VMs deployed in the virtual network. 14976 DhcpOptions *DhcpOptions `json:"dhcpOptions,omitempty"` 14977 // Subnets - A list of subnets in a Virtual Network. 14978 Subnets *[]Subnet `json:"subnets,omitempty"` 14979 // VirtualNetworkPeerings - A list of peerings in a Virtual Network. 14980 VirtualNetworkPeerings *[]VirtualNetworkPeering `json:"virtualNetworkPeerings,omitempty"` 14981 // ResourceGUID - The resourceGuid property of the Virtual Network resource. 14982 ResourceGUID *string `json:"resourceGuid,omitempty"` 14983 // ProvisioningState - The provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 14984 ProvisioningState *string `json:"provisioningState,omitempty"` 14985 // EnableDdosProtection - Indicates if DDoS protection is enabled for all the protected resources in a Virtual Network. 14986 EnableDdosProtection *bool `json:"enableDdosProtection,omitempty"` 14987 // EnableVMProtection - Indicates if Vm protection is enabled for all the subnets in a Virtual Network. 14988 EnableVMProtection *bool `json:"enableVmProtection,omitempty"` 14989} 14990 14991// VirtualNetworksCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 14992// operation. 14993type VirtualNetworksCreateOrUpdateFuture struct { 14994 azure.Future 14995} 14996 14997// Result returns the result of the asynchronous operation. 14998// If the operation has not completed it will return an error. 14999func (future *VirtualNetworksCreateOrUpdateFuture) Result(client VirtualNetworksClient) (vn VirtualNetwork, err error) { 15000 var done bool 15001 done, err = future.Done(client) 15002 if err != nil { 15003 err = autorest.NewErrorWithError(err, "network.VirtualNetworksCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 15004 return 15005 } 15006 if !done { 15007 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworksCreateOrUpdateFuture") 15008 return 15009 } 15010 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15011 if vn.Response.Response, err = future.GetResult(sender); err == nil && vn.Response.Response.StatusCode != http.StatusNoContent { 15012 vn, err = client.CreateOrUpdateResponder(vn.Response.Response) 15013 if err != nil { 15014 err = autorest.NewErrorWithError(err, "network.VirtualNetworksCreateOrUpdateFuture", "Result", vn.Response.Response, "Failure responding to request") 15015 } 15016 } 15017 return 15018} 15019 15020// VirtualNetworksDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 15021// operation. 15022type VirtualNetworksDeleteFuture struct { 15023 azure.Future 15024} 15025 15026// Result returns the result of the asynchronous operation. 15027// If the operation has not completed it will return an error. 15028func (future *VirtualNetworksDeleteFuture) Result(client VirtualNetworksClient) (ar autorest.Response, err error) { 15029 var done bool 15030 done, err = future.Done(client) 15031 if err != nil { 15032 err = autorest.NewErrorWithError(err, "network.VirtualNetworksDeleteFuture", "Result", future.Response(), "Polling failure") 15033 return 15034 } 15035 if !done { 15036 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworksDeleteFuture") 15037 return 15038 } 15039 ar.Response = future.Response() 15040 return 15041} 15042 15043// VirtualNetworksUpdateTagsFuture an abstraction for monitoring and retrieving the results of a long-running 15044// operation. 15045type VirtualNetworksUpdateTagsFuture struct { 15046 azure.Future 15047} 15048 15049// Result returns the result of the asynchronous operation. 15050// If the operation has not completed it will return an error. 15051func (future *VirtualNetworksUpdateTagsFuture) Result(client VirtualNetworksClient) (vn VirtualNetwork, err error) { 15052 var done bool 15053 done, err = future.Done(client) 15054 if err != nil { 15055 err = autorest.NewErrorWithError(err, "network.VirtualNetworksUpdateTagsFuture", "Result", future.Response(), "Polling failure") 15056 return 15057 } 15058 if !done { 15059 err = azure.NewAsyncOpIncompleteError("network.VirtualNetworksUpdateTagsFuture") 15060 return 15061 } 15062 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15063 if vn.Response.Response, err = future.GetResult(sender); err == nil && vn.Response.Response.StatusCode != http.StatusNoContent { 15064 vn, err = client.UpdateTagsResponder(vn.Response.Response) 15065 if err != nil { 15066 err = autorest.NewErrorWithError(err, "network.VirtualNetworksUpdateTagsFuture", "Result", vn.Response.Response, "Failure responding to request") 15067 } 15068 } 15069 return 15070} 15071 15072// VirtualNetworkUsage usage details for subnet. 15073type VirtualNetworkUsage struct { 15074 // CurrentValue - Indicates number of IPs used from the Subnet. 15075 CurrentValue *float64 `json:"currentValue,omitempty"` 15076 // ID - Subnet identifier. 15077 ID *string `json:"id,omitempty"` 15078 // Limit - Indicates the size of the subnet. 15079 Limit *float64 `json:"limit,omitempty"` 15080 // Name - The name containing common and localized value for usage. 15081 Name *VirtualNetworkUsageName `json:"name,omitempty"` 15082 // Unit - Usage units. Returns 'Count' 15083 Unit *string `json:"unit,omitempty"` 15084} 15085 15086// VirtualNetworkUsageName usage strings container. 15087type VirtualNetworkUsageName struct { 15088 // LocalizedValue - Localized subnet size and usage string. 15089 LocalizedValue *string `json:"localizedValue,omitempty"` 15090 // Value - Subnet size and usage string. 15091 Value *string `json:"value,omitempty"` 15092} 15093 15094// VpnClientConfiguration vpnClientConfiguration for P2S client. 15095type VpnClientConfiguration struct { 15096 // VpnClientAddressPool - The reference of the address space resource which represents Address space for P2S VpnClient. 15097 VpnClientAddressPool *AddressSpace `json:"vpnClientAddressPool,omitempty"` 15098 // VpnClientRootCertificates - VpnClientRootCertificate for virtual network gateway. 15099 VpnClientRootCertificates *[]VpnClientRootCertificate `json:"vpnClientRootCertificates,omitempty"` 15100 // VpnClientRevokedCertificates - VpnClientRevokedCertificate for Virtual network gateway. 15101 VpnClientRevokedCertificates *[]VpnClientRevokedCertificate `json:"vpnClientRevokedCertificates,omitempty"` 15102 // VpnClientProtocols - VpnClientProtocols for Virtual network gateway. 15103 VpnClientProtocols *[]VpnClientProtocol `json:"vpnClientProtocols,omitempty"` 15104 // RadiusServerAddress - The radius server address property of the VirtualNetworkGateway resource for vpn client connection. 15105 RadiusServerAddress *string `json:"radiusServerAddress,omitempty"` 15106 // RadiusServerSecret - The radius secret property of the VirtualNetworkGateway resource for vpn client connection. 15107 RadiusServerSecret *string `json:"radiusServerSecret,omitempty"` 15108} 15109 15110// VpnClientParameters vpn Client Parameters for package generation 15111type VpnClientParameters struct { 15112 // ProcessorArchitecture - VPN client Processor Architecture. Possible values are: 'AMD64' and 'X86'. Possible values include: 'Amd64', 'X86' 15113 ProcessorArchitecture ProcessorArchitecture `json:"processorArchitecture,omitempty"` 15114 // AuthenticationMethod - VPN client Authentication Method. Possible values are: 'EAPTLS' and 'EAPMSCHAPv2'. Possible values include: 'EAPTLS', 'EAPMSCHAPv2' 15115 AuthenticationMethod AuthenticationMethod `json:"authenticationMethod,omitempty"` 15116 // 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. 15117 RadiusServerAuthCertificate *string `json:"radiusServerAuthCertificate,omitempty"` 15118 // ClientRootCertificates - A list of client root certificates public certificate data encoded as Base-64 strings. Optional parameter for external radius based authentication with EAPTLS. 15119 ClientRootCertificates *[]string `json:"clientRootCertificates,omitempty"` 15120} 15121 15122// VpnClientRevokedCertificate VPN client revoked certificate of virtual network gateway. 15123type VpnClientRevokedCertificate struct { 15124 // VpnClientRevokedCertificatePropertiesFormat - Properties of the vpn client revoked certificate. 15125 *VpnClientRevokedCertificatePropertiesFormat `json:"properties,omitempty"` 15126 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 15127 Name *string `json:"name,omitempty"` 15128 // Etag - A unique read-only string that changes whenever the resource is updated. 15129 Etag *string `json:"etag,omitempty"` 15130 // ID - Resource ID. 15131 ID *string `json:"id,omitempty"` 15132} 15133 15134// MarshalJSON is the custom marshaler for VpnClientRevokedCertificate. 15135func (vcrc VpnClientRevokedCertificate) MarshalJSON() ([]byte, error) { 15136 objectMap := make(map[string]interface{}) 15137 if vcrc.VpnClientRevokedCertificatePropertiesFormat != nil { 15138 objectMap["properties"] = vcrc.VpnClientRevokedCertificatePropertiesFormat 15139 } 15140 if vcrc.Name != nil { 15141 objectMap["name"] = vcrc.Name 15142 } 15143 if vcrc.Etag != nil { 15144 objectMap["etag"] = vcrc.Etag 15145 } 15146 if vcrc.ID != nil { 15147 objectMap["id"] = vcrc.ID 15148 } 15149 return json.Marshal(objectMap) 15150} 15151 15152// UnmarshalJSON is the custom unmarshaler for VpnClientRevokedCertificate struct. 15153func (vcrc *VpnClientRevokedCertificate) UnmarshalJSON(body []byte) error { 15154 var m map[string]*json.RawMessage 15155 err := json.Unmarshal(body, &m) 15156 if err != nil { 15157 return err 15158 } 15159 for k, v := range m { 15160 switch k { 15161 case "properties": 15162 if v != nil { 15163 var vpnClientRevokedCertificatePropertiesFormat VpnClientRevokedCertificatePropertiesFormat 15164 err = json.Unmarshal(*v, &vpnClientRevokedCertificatePropertiesFormat) 15165 if err != nil { 15166 return err 15167 } 15168 vcrc.VpnClientRevokedCertificatePropertiesFormat = &vpnClientRevokedCertificatePropertiesFormat 15169 } 15170 case "name": 15171 if v != nil { 15172 var name string 15173 err = json.Unmarshal(*v, &name) 15174 if err != nil { 15175 return err 15176 } 15177 vcrc.Name = &name 15178 } 15179 case "etag": 15180 if v != nil { 15181 var etag string 15182 err = json.Unmarshal(*v, &etag) 15183 if err != nil { 15184 return err 15185 } 15186 vcrc.Etag = &etag 15187 } 15188 case "id": 15189 if v != nil { 15190 var ID string 15191 err = json.Unmarshal(*v, &ID) 15192 if err != nil { 15193 return err 15194 } 15195 vcrc.ID = &ID 15196 } 15197 } 15198 } 15199 15200 return nil 15201} 15202 15203// VpnClientRevokedCertificatePropertiesFormat properties of the revoked VPN client certificate of virtual network 15204// gateway. 15205type VpnClientRevokedCertificatePropertiesFormat struct { 15206 // Thumbprint - The revoked VPN client certificate thumbprint. 15207 Thumbprint *string `json:"thumbprint,omitempty"` 15208 // ProvisioningState - The provisioning state of the VPN client revoked certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 15209 ProvisioningState *string `json:"provisioningState,omitempty"` 15210} 15211 15212// VpnClientRootCertificate VPN client root certificate of virtual network gateway 15213type VpnClientRootCertificate struct { 15214 // VpnClientRootCertificatePropertiesFormat - Properties of the vpn client root certificate. 15215 *VpnClientRootCertificatePropertiesFormat `json:"properties,omitempty"` 15216 // Name - The name of the resource that is unique within a resource group. This name can be used to access the resource. 15217 Name *string `json:"name,omitempty"` 15218 // Etag - A unique read-only string that changes whenever the resource is updated. 15219 Etag *string `json:"etag,omitempty"` 15220 // ID - Resource ID. 15221 ID *string `json:"id,omitempty"` 15222} 15223 15224// MarshalJSON is the custom marshaler for VpnClientRootCertificate. 15225func (vcrc VpnClientRootCertificate) MarshalJSON() ([]byte, error) { 15226 objectMap := make(map[string]interface{}) 15227 if vcrc.VpnClientRootCertificatePropertiesFormat != nil { 15228 objectMap["properties"] = vcrc.VpnClientRootCertificatePropertiesFormat 15229 } 15230 if vcrc.Name != nil { 15231 objectMap["name"] = vcrc.Name 15232 } 15233 if vcrc.Etag != nil { 15234 objectMap["etag"] = vcrc.Etag 15235 } 15236 if vcrc.ID != nil { 15237 objectMap["id"] = vcrc.ID 15238 } 15239 return json.Marshal(objectMap) 15240} 15241 15242// UnmarshalJSON is the custom unmarshaler for VpnClientRootCertificate struct. 15243func (vcrc *VpnClientRootCertificate) UnmarshalJSON(body []byte) error { 15244 var m map[string]*json.RawMessage 15245 err := json.Unmarshal(body, &m) 15246 if err != nil { 15247 return err 15248 } 15249 for k, v := range m { 15250 switch k { 15251 case "properties": 15252 if v != nil { 15253 var vpnClientRootCertificatePropertiesFormat VpnClientRootCertificatePropertiesFormat 15254 err = json.Unmarshal(*v, &vpnClientRootCertificatePropertiesFormat) 15255 if err != nil { 15256 return err 15257 } 15258 vcrc.VpnClientRootCertificatePropertiesFormat = &vpnClientRootCertificatePropertiesFormat 15259 } 15260 case "name": 15261 if v != nil { 15262 var name string 15263 err = json.Unmarshal(*v, &name) 15264 if err != nil { 15265 return err 15266 } 15267 vcrc.Name = &name 15268 } 15269 case "etag": 15270 if v != nil { 15271 var etag string 15272 err = json.Unmarshal(*v, &etag) 15273 if err != nil { 15274 return err 15275 } 15276 vcrc.Etag = &etag 15277 } 15278 case "id": 15279 if v != nil { 15280 var ID string 15281 err = json.Unmarshal(*v, &ID) 15282 if err != nil { 15283 return err 15284 } 15285 vcrc.ID = &ID 15286 } 15287 } 15288 } 15289 15290 return nil 15291} 15292 15293// VpnClientRootCertificatePropertiesFormat properties of SSL certificates of application gateway 15294type VpnClientRootCertificatePropertiesFormat struct { 15295 // PublicCertData - The certificate public data. 15296 PublicCertData *string `json:"publicCertData,omitempty"` 15297 // ProvisioningState - The provisioning state of the VPN client root certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. 15298 ProvisioningState *string `json:"provisioningState,omitempty"` 15299} 15300 15301// VpnDeviceScriptParameters vpn device configuration script generation parameters 15302type VpnDeviceScriptParameters struct { 15303 // Vendor - The vendor for the vpn device. 15304 Vendor *string `json:"vendor,omitempty"` 15305 // DeviceFamily - The device family for the vpn device. 15306 DeviceFamily *string `json:"deviceFamily,omitempty"` 15307 // FirmwareVersion - The firmware version for the vpn device. 15308 FirmwareVersion *string `json:"firmwareVersion,omitempty"` 15309} 15310 15311// Watcher network watcher in a resource group. 15312type Watcher struct { 15313 autorest.Response `json:"-"` 15314 Etag *string `json:"etag,omitempty"` 15315 *WatcherPropertiesFormat `json:"properties,omitempty"` 15316 // ID - Resource ID. 15317 ID *string `json:"id,omitempty"` 15318 // Name - Resource name. 15319 Name *string `json:"name,omitempty"` 15320 // Type - Resource type. 15321 Type *string `json:"type,omitempty"` 15322 // Location - Resource location. 15323 Location *string `json:"location,omitempty"` 15324 // Tags - Resource tags. 15325 Tags map[string]*string `json:"tags"` 15326} 15327 15328// MarshalJSON is the custom marshaler for Watcher. 15329func (w Watcher) MarshalJSON() ([]byte, error) { 15330 objectMap := make(map[string]interface{}) 15331 if w.Etag != nil { 15332 objectMap["etag"] = w.Etag 15333 } 15334 if w.WatcherPropertiesFormat != nil { 15335 objectMap["properties"] = w.WatcherPropertiesFormat 15336 } 15337 if w.ID != nil { 15338 objectMap["id"] = w.ID 15339 } 15340 if w.Name != nil { 15341 objectMap["name"] = w.Name 15342 } 15343 if w.Type != nil { 15344 objectMap["type"] = w.Type 15345 } 15346 if w.Location != nil { 15347 objectMap["location"] = w.Location 15348 } 15349 if w.Tags != nil { 15350 objectMap["tags"] = w.Tags 15351 } 15352 return json.Marshal(objectMap) 15353} 15354 15355// UnmarshalJSON is the custom unmarshaler for Watcher struct. 15356func (w *Watcher) UnmarshalJSON(body []byte) error { 15357 var m map[string]*json.RawMessage 15358 err := json.Unmarshal(body, &m) 15359 if err != nil { 15360 return err 15361 } 15362 for k, v := range m { 15363 switch k { 15364 case "etag": 15365 if v != nil { 15366 var etag string 15367 err = json.Unmarshal(*v, &etag) 15368 if err != nil { 15369 return err 15370 } 15371 w.Etag = &etag 15372 } 15373 case "properties": 15374 if v != nil { 15375 var watcherPropertiesFormat WatcherPropertiesFormat 15376 err = json.Unmarshal(*v, &watcherPropertiesFormat) 15377 if err != nil { 15378 return err 15379 } 15380 w.WatcherPropertiesFormat = &watcherPropertiesFormat 15381 } 15382 case "id": 15383 if v != nil { 15384 var ID string 15385 err = json.Unmarshal(*v, &ID) 15386 if err != nil { 15387 return err 15388 } 15389 w.ID = &ID 15390 } 15391 case "name": 15392 if v != nil { 15393 var name string 15394 err = json.Unmarshal(*v, &name) 15395 if err != nil { 15396 return err 15397 } 15398 w.Name = &name 15399 } 15400 case "type": 15401 if v != nil { 15402 var typeVar string 15403 err = json.Unmarshal(*v, &typeVar) 15404 if err != nil { 15405 return err 15406 } 15407 w.Type = &typeVar 15408 } 15409 case "location": 15410 if v != nil { 15411 var location string 15412 err = json.Unmarshal(*v, &location) 15413 if err != nil { 15414 return err 15415 } 15416 w.Location = &location 15417 } 15418 case "tags": 15419 if v != nil { 15420 var tags map[string]*string 15421 err = json.Unmarshal(*v, &tags) 15422 if err != nil { 15423 return err 15424 } 15425 w.Tags = tags 15426 } 15427 } 15428 } 15429 15430 return nil 15431} 15432 15433// WatcherListResult list of network watcher resources. 15434type WatcherListResult struct { 15435 autorest.Response `json:"-"` 15436 Value *[]Watcher `json:"value,omitempty"` 15437} 15438 15439// WatcherPropertiesFormat the network watcher properties. 15440type WatcherPropertiesFormat struct { 15441 // ProvisioningState - The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' 15442 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 15443} 15444 15445// WatchersCheckConnectivityFuture an abstraction for monitoring and retrieving the results of a long-running 15446// operation. 15447type WatchersCheckConnectivityFuture struct { 15448 azure.Future 15449} 15450 15451// Result returns the result of the asynchronous operation. 15452// If the operation has not completed it will return an error. 15453func (future *WatchersCheckConnectivityFuture) Result(client WatchersClient) (ci ConnectivityInformation, err error) { 15454 var done bool 15455 done, err = future.Done(client) 15456 if err != nil { 15457 err = autorest.NewErrorWithError(err, "network.WatchersCheckConnectivityFuture", "Result", future.Response(), "Polling failure") 15458 return 15459 } 15460 if !done { 15461 err = azure.NewAsyncOpIncompleteError("network.WatchersCheckConnectivityFuture") 15462 return 15463 } 15464 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15465 if ci.Response.Response, err = future.GetResult(sender); err == nil && ci.Response.Response.StatusCode != http.StatusNoContent { 15466 ci, err = client.CheckConnectivityResponder(ci.Response.Response) 15467 if err != nil { 15468 err = autorest.NewErrorWithError(err, "network.WatchersCheckConnectivityFuture", "Result", ci.Response.Response, "Failure responding to request") 15469 } 15470 } 15471 return 15472} 15473 15474// WatchersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 15475type WatchersDeleteFuture struct { 15476 azure.Future 15477} 15478 15479// Result returns the result of the asynchronous operation. 15480// If the operation has not completed it will return an error. 15481func (future *WatchersDeleteFuture) Result(client WatchersClient) (ar autorest.Response, err error) { 15482 var done bool 15483 done, err = future.Done(client) 15484 if err != nil { 15485 err = autorest.NewErrorWithError(err, "network.WatchersDeleteFuture", "Result", future.Response(), "Polling failure") 15486 return 15487 } 15488 if !done { 15489 err = azure.NewAsyncOpIncompleteError("network.WatchersDeleteFuture") 15490 return 15491 } 15492 ar.Response = future.Response() 15493 return 15494} 15495 15496// WatchersGetAzureReachabilityReportFuture an abstraction for monitoring and retrieving the results of a 15497// long-running operation. 15498type WatchersGetAzureReachabilityReportFuture struct { 15499 azure.Future 15500} 15501 15502// Result returns the result of the asynchronous operation. 15503// If the operation has not completed it will return an error. 15504func (future *WatchersGetAzureReachabilityReportFuture) Result(client WatchersClient) (arr AzureReachabilityReport, err error) { 15505 var done bool 15506 done, err = future.Done(client) 15507 if err != nil { 15508 err = autorest.NewErrorWithError(err, "network.WatchersGetAzureReachabilityReportFuture", "Result", future.Response(), "Polling failure") 15509 return 15510 } 15511 if !done { 15512 err = azure.NewAsyncOpIncompleteError("network.WatchersGetAzureReachabilityReportFuture") 15513 return 15514 } 15515 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15516 if arr.Response.Response, err = future.GetResult(sender); err == nil && arr.Response.Response.StatusCode != http.StatusNoContent { 15517 arr, err = client.GetAzureReachabilityReportResponder(arr.Response.Response) 15518 if err != nil { 15519 err = autorest.NewErrorWithError(err, "network.WatchersGetAzureReachabilityReportFuture", "Result", arr.Response.Response, "Failure responding to request") 15520 } 15521 } 15522 return 15523} 15524 15525// WatchersGetFlowLogStatusFuture an abstraction for monitoring and retrieving the results of a long-running 15526// operation. 15527type WatchersGetFlowLogStatusFuture struct { 15528 azure.Future 15529} 15530 15531// Result returns the result of the asynchronous operation. 15532// If the operation has not completed it will return an error. 15533func (future *WatchersGetFlowLogStatusFuture) Result(client WatchersClient) (fli FlowLogInformation, err error) { 15534 var done bool 15535 done, err = future.Done(client) 15536 if err != nil { 15537 err = autorest.NewErrorWithError(err, "network.WatchersGetFlowLogStatusFuture", "Result", future.Response(), "Polling failure") 15538 return 15539 } 15540 if !done { 15541 err = azure.NewAsyncOpIncompleteError("network.WatchersGetFlowLogStatusFuture") 15542 return 15543 } 15544 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15545 if fli.Response.Response, err = future.GetResult(sender); err == nil && fli.Response.Response.StatusCode != http.StatusNoContent { 15546 fli, err = client.GetFlowLogStatusResponder(fli.Response.Response) 15547 if err != nil { 15548 err = autorest.NewErrorWithError(err, "network.WatchersGetFlowLogStatusFuture", "Result", fli.Response.Response, "Failure responding to request") 15549 } 15550 } 15551 return 15552} 15553 15554// WatchersGetNextHopFuture an abstraction for monitoring and retrieving the results of a long-running operation. 15555type WatchersGetNextHopFuture struct { 15556 azure.Future 15557} 15558 15559// Result returns the result of the asynchronous operation. 15560// If the operation has not completed it will return an error. 15561func (future *WatchersGetNextHopFuture) Result(client WatchersClient) (nhr NextHopResult, err error) { 15562 var done bool 15563 done, err = future.Done(client) 15564 if err != nil { 15565 err = autorest.NewErrorWithError(err, "network.WatchersGetNextHopFuture", "Result", future.Response(), "Polling failure") 15566 return 15567 } 15568 if !done { 15569 err = azure.NewAsyncOpIncompleteError("network.WatchersGetNextHopFuture") 15570 return 15571 } 15572 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15573 if nhr.Response.Response, err = future.GetResult(sender); err == nil && nhr.Response.Response.StatusCode != http.StatusNoContent { 15574 nhr, err = client.GetNextHopResponder(nhr.Response.Response) 15575 if err != nil { 15576 err = autorest.NewErrorWithError(err, "network.WatchersGetNextHopFuture", "Result", nhr.Response.Response, "Failure responding to request") 15577 } 15578 } 15579 return 15580} 15581 15582// WatchersGetTroubleshootingFuture an abstraction for monitoring and retrieving the results of a long-running 15583// operation. 15584type WatchersGetTroubleshootingFuture struct { 15585 azure.Future 15586} 15587 15588// Result returns the result of the asynchronous operation. 15589// If the operation has not completed it will return an error. 15590func (future *WatchersGetTroubleshootingFuture) Result(client WatchersClient) (tr TroubleshootingResult, err error) { 15591 var done bool 15592 done, err = future.Done(client) 15593 if err != nil { 15594 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingFuture", "Result", future.Response(), "Polling failure") 15595 return 15596 } 15597 if !done { 15598 err = azure.NewAsyncOpIncompleteError("network.WatchersGetTroubleshootingFuture") 15599 return 15600 } 15601 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15602 if tr.Response.Response, err = future.GetResult(sender); err == nil && tr.Response.Response.StatusCode != http.StatusNoContent { 15603 tr, err = client.GetTroubleshootingResponder(tr.Response.Response) 15604 if err != nil { 15605 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingFuture", "Result", tr.Response.Response, "Failure responding to request") 15606 } 15607 } 15608 return 15609} 15610 15611// WatchersGetTroubleshootingResultFuture an abstraction for monitoring and retrieving the results of a 15612// long-running operation. 15613type WatchersGetTroubleshootingResultFuture struct { 15614 azure.Future 15615} 15616 15617// Result returns the result of the asynchronous operation. 15618// If the operation has not completed it will return an error. 15619func (future *WatchersGetTroubleshootingResultFuture) Result(client WatchersClient) (tr TroubleshootingResult, err error) { 15620 var done bool 15621 done, err = future.Done(client) 15622 if err != nil { 15623 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingResultFuture", "Result", future.Response(), "Polling failure") 15624 return 15625 } 15626 if !done { 15627 err = azure.NewAsyncOpIncompleteError("network.WatchersGetTroubleshootingResultFuture") 15628 return 15629 } 15630 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15631 if tr.Response.Response, err = future.GetResult(sender); err == nil && tr.Response.Response.StatusCode != http.StatusNoContent { 15632 tr, err = client.GetTroubleshootingResultResponder(tr.Response.Response) 15633 if err != nil { 15634 err = autorest.NewErrorWithError(err, "network.WatchersGetTroubleshootingResultFuture", "Result", tr.Response.Response, "Failure responding to request") 15635 } 15636 } 15637 return 15638} 15639 15640// WatchersGetVMSecurityRulesFuture an abstraction for monitoring and retrieving the results of a long-running 15641// operation. 15642type WatchersGetVMSecurityRulesFuture struct { 15643 azure.Future 15644} 15645 15646// Result returns the result of the asynchronous operation. 15647// If the operation has not completed it will return an error. 15648func (future *WatchersGetVMSecurityRulesFuture) Result(client WatchersClient) (sgvr SecurityGroupViewResult, err error) { 15649 var done bool 15650 done, err = future.Done(client) 15651 if err != nil { 15652 err = autorest.NewErrorWithError(err, "network.WatchersGetVMSecurityRulesFuture", "Result", future.Response(), "Polling failure") 15653 return 15654 } 15655 if !done { 15656 err = azure.NewAsyncOpIncompleteError("network.WatchersGetVMSecurityRulesFuture") 15657 return 15658 } 15659 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15660 if sgvr.Response.Response, err = future.GetResult(sender); err == nil && sgvr.Response.Response.StatusCode != http.StatusNoContent { 15661 sgvr, err = client.GetVMSecurityRulesResponder(sgvr.Response.Response) 15662 if err != nil { 15663 err = autorest.NewErrorWithError(err, "network.WatchersGetVMSecurityRulesFuture", "Result", sgvr.Response.Response, "Failure responding to request") 15664 } 15665 } 15666 return 15667} 15668 15669// WatchersListAvailableProvidersFuture an abstraction for monitoring and retrieving the results of a long-running 15670// operation. 15671type WatchersListAvailableProvidersFuture struct { 15672 azure.Future 15673} 15674 15675// Result returns the result of the asynchronous operation. 15676// If the operation has not completed it will return an error. 15677func (future *WatchersListAvailableProvidersFuture) Result(client WatchersClient) (apl AvailableProvidersList, err error) { 15678 var done bool 15679 done, err = future.Done(client) 15680 if err != nil { 15681 err = autorest.NewErrorWithError(err, "network.WatchersListAvailableProvidersFuture", "Result", future.Response(), "Polling failure") 15682 return 15683 } 15684 if !done { 15685 err = azure.NewAsyncOpIncompleteError("network.WatchersListAvailableProvidersFuture") 15686 return 15687 } 15688 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15689 if apl.Response.Response, err = future.GetResult(sender); err == nil && apl.Response.Response.StatusCode != http.StatusNoContent { 15690 apl, err = client.ListAvailableProvidersResponder(apl.Response.Response) 15691 if err != nil { 15692 err = autorest.NewErrorWithError(err, "network.WatchersListAvailableProvidersFuture", "Result", apl.Response.Response, "Failure responding to request") 15693 } 15694 } 15695 return 15696} 15697 15698// WatchersSetFlowLogConfigurationFuture an abstraction for monitoring and retrieving the results of a long-running 15699// operation. 15700type WatchersSetFlowLogConfigurationFuture struct { 15701 azure.Future 15702} 15703 15704// Result returns the result of the asynchronous operation. 15705// If the operation has not completed it will return an error. 15706func (future *WatchersSetFlowLogConfigurationFuture) Result(client WatchersClient) (fli FlowLogInformation, err error) { 15707 var done bool 15708 done, err = future.Done(client) 15709 if err != nil { 15710 err = autorest.NewErrorWithError(err, "network.WatchersSetFlowLogConfigurationFuture", "Result", future.Response(), "Polling failure") 15711 return 15712 } 15713 if !done { 15714 err = azure.NewAsyncOpIncompleteError("network.WatchersSetFlowLogConfigurationFuture") 15715 return 15716 } 15717 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15718 if fli.Response.Response, err = future.GetResult(sender); err == nil && fli.Response.Response.StatusCode != http.StatusNoContent { 15719 fli, err = client.SetFlowLogConfigurationResponder(fli.Response.Response) 15720 if err != nil { 15721 err = autorest.NewErrorWithError(err, "network.WatchersSetFlowLogConfigurationFuture", "Result", fli.Response.Response, "Failure responding to request") 15722 } 15723 } 15724 return 15725} 15726 15727// WatchersVerifyIPFlowFuture an abstraction for monitoring and retrieving the results of a long-running operation. 15728type WatchersVerifyIPFlowFuture struct { 15729 azure.Future 15730} 15731 15732// Result returns the result of the asynchronous operation. 15733// If the operation has not completed it will return an error. 15734func (future *WatchersVerifyIPFlowFuture) Result(client WatchersClient) (vifr VerificationIPFlowResult, err error) { 15735 var done bool 15736 done, err = future.Done(client) 15737 if err != nil { 15738 err = autorest.NewErrorWithError(err, "network.WatchersVerifyIPFlowFuture", "Result", future.Response(), "Polling failure") 15739 return 15740 } 15741 if !done { 15742 err = azure.NewAsyncOpIncompleteError("network.WatchersVerifyIPFlowFuture") 15743 return 15744 } 15745 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 15746 if vifr.Response.Response, err = future.GetResult(sender); err == nil && vifr.Response.Response.StatusCode != http.StatusNoContent { 15747 vifr, err = client.VerifyIPFlowResponder(vifr.Response.Response) 15748 if err != nil { 15749 err = autorest.NewErrorWithError(err, "network.WatchersVerifyIPFlowFuture", "Result", vifr.Response.Response, "Failure responding to request") 15750 } 15751 } 15752 return 15753} 15754