1package resourcemover 2 3// Copyright (c) Microsoft and contributors. All rights reserved. 4// 5// Licensed under the Apache License, Version 2.0 (the "License"); 6// you may not use this file except in compliance with the License. 7// You may obtain a copy of the License at 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// 14// See the License for the specific language governing permissions and 15// limitations under the License. 16// 17// Code generated by Microsoft (R) AutoRest Code Generator. 18// Changes may cause incorrect behavior and will be lost if the code is regenerated. 19 20import ( 21 "context" 22 "encoding/json" 23 "github.com/Azure/go-autorest/autorest" 24 "github.com/Azure/go-autorest/autorest/azure" 25 "github.com/Azure/go-autorest/autorest/to" 26 "github.com/Azure/go-autorest/tracing" 27 "net/http" 28) 29 30// The package's fully qualified name. 31const fqdn = "github.com/Azure/azure-sdk-for-go/services/resourcemover/mgmt/2021-01-01/resourcemover" 32 33// AffectedMoveResource the RP custom operation error info. 34type AffectedMoveResource struct { 35 // ID - READ-ONLY; The affected move resource id. 36 ID *string `json:"id,omitempty"` 37 // SourceID - READ-ONLY; The affected move resource source id. 38 SourceID *string `json:"sourceId,omitempty"` 39 // MoveResources - READ-ONLY; The affected move resources. 40 MoveResources *[]AffectedMoveResource `json:"moveResources,omitempty"` 41} 42 43// AutomaticResolutionProperties defines the properties for automatic resolution. 44type AutomaticResolutionProperties struct { 45 // MoveResourceID - Gets the MoveResource ARM ID of 46 // the dependent resource if the resolution type is Automatic. 47 MoveResourceID *string `json:"moveResourceId,omitempty"` 48} 49 50// AvailabilitySetResourceSettings gets or sets the availability set resource settings. 51type AvailabilitySetResourceSettings struct { 52 // FaultDomain - Gets or sets the target fault domain. 53 FaultDomain *int32 `json:"faultDomain,omitempty"` 54 // UpdateDomain - Gets or sets the target update domain. 55 UpdateDomain *int32 `json:"updateDomain,omitempty"` 56 // TargetResourceName - Gets or sets the target Resource name. 57 TargetResourceName *string `json:"targetResourceName,omitempty"` 58 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 59 ResourceType ResourceType `json:"resourceType,omitempty"` 60} 61 62// MarshalJSON is the custom marshaler for AvailabilitySetResourceSettings. 63func (asrs AvailabilitySetResourceSettings) MarshalJSON() ([]byte, error) { 64 asrs.ResourceType = ResourceTypeMicrosoftComputeavailabilitySets 65 objectMap := make(map[string]interface{}) 66 if asrs.FaultDomain != nil { 67 objectMap["faultDomain"] = asrs.FaultDomain 68 } 69 if asrs.UpdateDomain != nil { 70 objectMap["updateDomain"] = asrs.UpdateDomain 71 } 72 if asrs.TargetResourceName != nil { 73 objectMap["targetResourceName"] = asrs.TargetResourceName 74 } 75 if asrs.ResourceType != "" { 76 objectMap["resourceType"] = asrs.ResourceType 77 } 78 return json.Marshal(objectMap) 79} 80 81// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 82func (asrs AvailabilitySetResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 83 return nil, false 84} 85 86// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 87func (asrs AvailabilitySetResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 88 return &asrs, true 89} 90 91// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 92func (asrs AvailabilitySetResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 93 return nil, false 94} 95 96// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 97func (asrs AvailabilitySetResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 98 return nil, false 99} 100 101// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 102func (asrs AvailabilitySetResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 103 return nil, false 104} 105 106// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 107func (asrs AvailabilitySetResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 108 return nil, false 109} 110 111// AsSQLServerResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 112func (asrs AvailabilitySetResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 113 return nil, false 114} 115 116// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 117func (asrs AvailabilitySetResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 118 return nil, false 119} 120 121// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 122func (asrs AvailabilitySetResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 123 return nil, false 124} 125 126// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 127func (asrs AvailabilitySetResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 128 return nil, false 129} 130 131// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 132func (asrs AvailabilitySetResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 133 return nil, false 134} 135 136// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 137func (asrs AvailabilitySetResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 138 return nil, false 139} 140 141// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 142func (asrs AvailabilitySetResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 143 return nil, false 144} 145 146// AsResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 147func (asrs AvailabilitySetResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 148 return nil, false 149} 150 151// AsBasicResourceSettings is the BasicResourceSettings implementation for AvailabilitySetResourceSettings. 152func (asrs AvailabilitySetResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 153 return &asrs, true 154} 155 156// AzureResourceReference defines reference to an Azure resource. 157type AzureResourceReference struct { 158 // SourceArmResourceID - Gets the ARM resource ID of the tracked resource being referenced. 159 SourceArmResourceID *string `json:"sourceArmResourceId,omitempty"` 160} 161 162// BulkRemoveRequest defines the request body for bulk remove of move resources operation. 163type BulkRemoveRequest struct { 164 // ValidateOnly - Gets or sets a value indicating whether the operation needs to only run pre-requisite. 165 ValidateOnly *bool `json:"validateOnly,omitempty"` 166 // MoveResources - Gets or sets the list of resource Id's, by default it accepts move resource id's unless the input type is switched via moveResourceInputType property. 167 MoveResources *[]string `json:"moveResources,omitempty"` 168 // MoveResourceInputType - Possible values include: 'MoveResourceID', 'MoveResourceSourceID' 169 MoveResourceInputType MoveResourceInputType `json:"moveResourceInputType,omitempty"` 170} 171 172// CloudError an error response from the service. 173type CloudError struct { 174 // Error - Cloud error body. 175 Error *CloudErrorBody `json:"error,omitempty"` 176} 177 178// CloudErrorBody an error response from the service. 179type CloudErrorBody struct { 180 // Code - An identifier for the error. Codes are invariant and are intended to be consumed programmatically. 181 Code *string `json:"code,omitempty"` 182 // Message - A message describing the error, intended to be suitable for display in a user interface. 183 Message *string `json:"message,omitempty"` 184 // Target - The target of the particular error. For example, the name of the property in error. 185 Target *string `json:"target,omitempty"` 186 // Details - A list of additional details about the error. 187 Details *[]CloudErrorBody `json:"details,omitempty"` 188} 189 190// CommitRequest defines the request body for commit operation. 191type CommitRequest struct { 192 // ValidateOnly - Gets or sets a value indicating whether the operation needs to only run pre-requisite. 193 ValidateOnly *bool `json:"validateOnly,omitempty"` 194 // MoveResources - Gets or sets the list of resource Id's, by default it accepts move resource id's unless the input type is switched via moveResourceInputType property. 195 MoveResources *[]string `json:"moveResources,omitempty"` 196 // MoveResourceInputType - Possible values include: 'MoveResourceID', 'MoveResourceSourceID' 197 MoveResourceInputType MoveResourceInputType `json:"moveResourceInputType,omitempty"` 198} 199 200// DiscardRequest defines the request body for discard operation. 201type DiscardRequest struct { 202 // ValidateOnly - Gets or sets a value indicating whether the operation needs to only run pre-requisite. 203 ValidateOnly *bool `json:"validateOnly,omitempty"` 204 // MoveResources - Gets or sets the list of resource Id's, by default it accepts move resource id's unless the input type is switched via moveResourceInputType property. 205 MoveResources *[]string `json:"moveResources,omitempty"` 206 // MoveResourceInputType - Possible values include: 'MoveResourceID', 'MoveResourceSourceID' 207 MoveResourceInputType MoveResourceInputType `json:"moveResourceInputType,omitempty"` 208} 209 210// DiskEncryptionSetResourceSettings defines the disk encryption set resource settings. 211type DiskEncryptionSetResourceSettings struct { 212 // TargetResourceName - Gets or sets the target Resource name. 213 TargetResourceName *string `json:"targetResourceName,omitempty"` 214 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 215 ResourceType ResourceType `json:"resourceType,omitempty"` 216} 217 218// MarshalJSON is the custom marshaler for DiskEncryptionSetResourceSettings. 219func (desrs DiskEncryptionSetResourceSettings) MarshalJSON() ([]byte, error) { 220 desrs.ResourceType = ResourceTypeMicrosoftComputediskEncryptionSets 221 objectMap := make(map[string]interface{}) 222 if desrs.TargetResourceName != nil { 223 objectMap["targetResourceName"] = desrs.TargetResourceName 224 } 225 if desrs.ResourceType != "" { 226 objectMap["resourceType"] = desrs.ResourceType 227 } 228 return json.Marshal(objectMap) 229} 230 231// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 232func (desrs DiskEncryptionSetResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 233 return nil, false 234} 235 236// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 237func (desrs DiskEncryptionSetResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 238 return nil, false 239} 240 241// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 242func (desrs DiskEncryptionSetResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 243 return nil, false 244} 245 246// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 247func (desrs DiskEncryptionSetResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 248 return nil, false 249} 250 251// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 252func (desrs DiskEncryptionSetResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 253 return nil, false 254} 255 256// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 257func (desrs DiskEncryptionSetResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 258 return nil, false 259} 260 261// AsSQLServerResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 262func (desrs DiskEncryptionSetResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 263 return nil, false 264} 265 266// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 267func (desrs DiskEncryptionSetResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 268 return nil, false 269} 270 271// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 272func (desrs DiskEncryptionSetResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 273 return nil, false 274} 275 276// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 277func (desrs DiskEncryptionSetResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 278 return nil, false 279} 280 281// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 282func (desrs DiskEncryptionSetResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 283 return nil, false 284} 285 286// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 287func (desrs DiskEncryptionSetResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 288 return nil, false 289} 290 291// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 292func (desrs DiskEncryptionSetResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 293 return &desrs, true 294} 295 296// AsResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 297func (desrs DiskEncryptionSetResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 298 return nil, false 299} 300 301// AsBasicResourceSettings is the BasicResourceSettings implementation for DiskEncryptionSetResourceSettings. 302func (desrs DiskEncryptionSetResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 303 return &desrs, true 304} 305 306// Display contains the localized display information for this particular operation / action. These 307// value will be used by several clients for 308// (1) custom role definitions for RBAC; 309// (2) complex query filters for the event service; and 310// (3) audit history / records for management operations. 311type Display struct { 312 // Provider - Gets or sets the provider. 313 // The localized friendly form of the resource provider name – it is expected to also 314 // include the publisher/company responsible. 315 // It should use Title Casing and begin with "Microsoft" for 1st party services. 316 // e.g. "Microsoft Monitoring Insights" or "Microsoft Compute.". 317 Provider *string `json:"provider,omitempty"` 318 // Resource - Gets or sets the resource. 319 // The localized friendly form of the resource related to this action/operation – it 320 // should match the public documentation for the resource provider. 321 // It should use Title Casing. 322 // This value should be unique for a particular URL type (e.g. nested types should *not* 323 // reuse their parent’s display.resource field) 324 // e.g. "Virtual Machines" or "Scheduler Job Collections", or "Virtual Machine VM Sizes" 325 // or "Scheduler Jobs". 326 Resource *string `json:"resource,omitempty"` 327 // Operation - Gets or sets the operation. 328 // The localized friendly name for the operation, as it should be shown to the user. 329 // It should be concise (to fit in drop downs) but clear (i.e. self-documenting). 330 // It should use Title Casing. 331 // Prescriptive guidance: Read Create or Update Delete 'ActionName'. 332 Operation *string `json:"operation,omitempty"` 333 // Description - Gets or sets the description. 334 // The localized friendly description for the operation, as it should be shown to the 335 // user. 336 // It should be thorough, yet concise – it will be used in tool tips and detailed views. 337 // Prescriptive guidance for namespace: 338 // Read any 'display.provider' resource 339 // Create or Update any 'display.provider' resource 340 // Delete any 'display.provider' resource 341 // Perform any other action on any 'display.provider' resource 342 // Prescriptive guidance for namespace: 343 // Read any 'display.resource' Create or Update any 'display.resource' Delete any 344 // 'display.resource' 'ActionName' any 'display.resources'. 345 Description *string `json:"description,omitempty"` 346} 347 348// Identity defines the MSI properties of the Move Collection. 349type Identity struct { 350 // Type - Possible values include: 'None', 'SystemAssigned', 'UserAssigned' 351 Type ResourceIdentityType `json:"type,omitempty"` 352 // PrincipalID - Gets or sets the principal id. 353 PrincipalID *string `json:"principalId,omitempty"` 354 // TenantID - Gets or sets the tenant id. 355 TenantID *string `json:"tenantId,omitempty"` 356} 357 358// JobStatus defines the job status. 359type JobStatus struct { 360 // JobName - Possible values include: 'InitialSync' 361 JobName JobName `json:"jobName,omitempty"` 362 // JobProgress - READ-ONLY; Gets or sets the monitoring job percentage. 363 JobProgress *string `json:"jobProgress,omitempty"` 364} 365 366// MarshalJSON is the custom marshaler for JobStatus. 367func (js JobStatus) MarshalJSON() ([]byte, error) { 368 objectMap := make(map[string]interface{}) 369 if js.JobName != "" { 370 objectMap["jobName"] = js.JobName 371 } 372 return json.Marshal(objectMap) 373} 374 375// KeyVaultResourceSettings defines the key vault resource settings. 376type KeyVaultResourceSettings struct { 377 // TargetResourceName - Gets or sets the target Resource name. 378 TargetResourceName *string `json:"targetResourceName,omitempty"` 379 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 380 ResourceType ResourceType `json:"resourceType,omitempty"` 381} 382 383// MarshalJSON is the custom marshaler for KeyVaultResourceSettings. 384func (kvrs KeyVaultResourceSettings) MarshalJSON() ([]byte, error) { 385 kvrs.ResourceType = ResourceTypeMicrosoftKeyVaultvaults 386 objectMap := make(map[string]interface{}) 387 if kvrs.TargetResourceName != nil { 388 objectMap["targetResourceName"] = kvrs.TargetResourceName 389 } 390 if kvrs.ResourceType != "" { 391 objectMap["resourceType"] = kvrs.ResourceType 392 } 393 return json.Marshal(objectMap) 394} 395 396// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 397func (kvrs KeyVaultResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 398 return nil, false 399} 400 401// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 402func (kvrs KeyVaultResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 403 return nil, false 404} 405 406// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 407func (kvrs KeyVaultResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 408 return nil, false 409} 410 411// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 412func (kvrs KeyVaultResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 413 return nil, false 414} 415 416// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 417func (kvrs KeyVaultResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 418 return nil, false 419} 420 421// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 422func (kvrs KeyVaultResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 423 return nil, false 424} 425 426// AsSQLServerResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 427func (kvrs KeyVaultResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 428 return nil, false 429} 430 431// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 432func (kvrs KeyVaultResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 433 return nil, false 434} 435 436// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 437func (kvrs KeyVaultResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 438 return nil, false 439} 440 441// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 442func (kvrs KeyVaultResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 443 return nil, false 444} 445 446// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 447func (kvrs KeyVaultResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 448 return nil, false 449} 450 451// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 452func (kvrs KeyVaultResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 453 return &kvrs, true 454} 455 456// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 457func (kvrs KeyVaultResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 458 return nil, false 459} 460 461// AsResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 462func (kvrs KeyVaultResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 463 return nil, false 464} 465 466// AsBasicResourceSettings is the BasicResourceSettings implementation for KeyVaultResourceSettings. 467func (kvrs KeyVaultResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 468 return &kvrs, true 469} 470 471// LBBackendAddressPoolResourceSettings defines load balancer backend address pool properties. 472type LBBackendAddressPoolResourceSettings struct { 473 // Name - Gets or sets the backend address pool name. 474 Name *string `json:"name,omitempty"` 475} 476 477// LBFrontendIPConfigurationResourceSettings defines load balancer frontend IP configuration properties. 478type LBFrontendIPConfigurationResourceSettings struct { 479 // Name - Gets or sets the frontend IP configuration name. 480 Name *string `json:"name,omitempty"` 481 // PrivateIPAddress - Gets or sets the IP address of the Load Balancer.This is only specified if a specific 482 // private IP address shall be allocated from the subnet specified in subnetRef. 483 PrivateIPAddress *string `json:"privateIpAddress,omitempty"` 484 // PrivateIPAllocationMethod - Gets or sets PrivateIP allocation method (Static/Dynamic). 485 PrivateIPAllocationMethod *string `json:"privateIpAllocationMethod,omitempty"` 486 Subnet *SubnetReference `json:"subnet,omitempty"` 487 // Zones - Gets or sets the csv list of zones. 488 Zones *string `json:"zones,omitempty"` 489} 490 491// LoadBalancerBackendAddressPoolReference defines reference to load balancer backend address pools. 492type LoadBalancerBackendAddressPoolReference struct { 493 // Name - Gets the name of the proxy resource on the target side. 494 Name *string `json:"name,omitempty"` 495 // SourceArmResourceID - Gets the ARM resource ID of the tracked resource being referenced. 496 SourceArmResourceID *string `json:"sourceArmResourceId,omitempty"` 497} 498 499// LoadBalancerNatRuleReference defines reference to load balancer NAT rules. 500type LoadBalancerNatRuleReference struct { 501 // Name - Gets the name of the proxy resource on the target side. 502 Name *string `json:"name,omitempty"` 503 // SourceArmResourceID - Gets the ARM resource ID of the tracked resource being referenced. 504 SourceArmResourceID *string `json:"sourceArmResourceId,omitempty"` 505} 506 507// LoadBalancerResourceSettings defines the load balancer resource settings. 508type LoadBalancerResourceSettings struct { 509 // Sku - Gets or sets load balancer sku (Basic/Standard). 510 Sku *string `json:"sku,omitempty"` 511 // FrontendIPConfigurations - Gets or sets the frontend IP configurations of the load balancer. 512 FrontendIPConfigurations *[]LBFrontendIPConfigurationResourceSettings `json:"frontendIPConfigurations,omitempty"` 513 // BackendAddressPools - Gets or sets the backend address pools of the load balancer. 514 BackendAddressPools *[]LBBackendAddressPoolResourceSettings `json:"backendAddressPools,omitempty"` 515 // Zones - Gets or sets the csv list of zones common for all frontend IP configurations. Note this is given 516 // precedence only if frontend IP configurations settings are not present. 517 Zones *string `json:"zones,omitempty"` 518 // TargetResourceName - Gets or sets the target Resource name. 519 TargetResourceName *string `json:"targetResourceName,omitempty"` 520 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 521 ResourceType ResourceType `json:"resourceType,omitempty"` 522} 523 524// MarshalJSON is the custom marshaler for LoadBalancerResourceSettings. 525func (lbrs LoadBalancerResourceSettings) MarshalJSON() ([]byte, error) { 526 lbrs.ResourceType = ResourceTypeMicrosoftNetworkloadBalancers 527 objectMap := make(map[string]interface{}) 528 if lbrs.Sku != nil { 529 objectMap["sku"] = lbrs.Sku 530 } 531 if lbrs.FrontendIPConfigurations != nil { 532 objectMap["frontendIPConfigurations"] = lbrs.FrontendIPConfigurations 533 } 534 if lbrs.BackendAddressPools != nil { 535 objectMap["backendAddressPools"] = lbrs.BackendAddressPools 536 } 537 if lbrs.Zones != nil { 538 objectMap["zones"] = lbrs.Zones 539 } 540 if lbrs.TargetResourceName != nil { 541 objectMap["targetResourceName"] = lbrs.TargetResourceName 542 } 543 if lbrs.ResourceType != "" { 544 objectMap["resourceType"] = lbrs.ResourceType 545 } 546 return json.Marshal(objectMap) 547} 548 549// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 550func (lbrs LoadBalancerResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 551 return nil, false 552} 553 554// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 555func (lbrs LoadBalancerResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 556 return nil, false 557} 558 559// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 560func (lbrs LoadBalancerResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 561 return nil, false 562} 563 564// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 565func (lbrs LoadBalancerResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 566 return nil, false 567} 568 569// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 570func (lbrs LoadBalancerResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 571 return nil, false 572} 573 574// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 575func (lbrs LoadBalancerResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 576 return &lbrs, true 577} 578 579// AsSQLServerResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 580func (lbrs LoadBalancerResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 581 return nil, false 582} 583 584// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 585func (lbrs LoadBalancerResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 586 return nil, false 587} 588 589// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 590func (lbrs LoadBalancerResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 591 return nil, false 592} 593 594// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 595func (lbrs LoadBalancerResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 596 return nil, false 597} 598 599// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 600func (lbrs LoadBalancerResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 601 return nil, false 602} 603 604// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 605func (lbrs LoadBalancerResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 606 return nil, false 607} 608 609// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 610func (lbrs LoadBalancerResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 611 return nil, false 612} 613 614// AsResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 615func (lbrs LoadBalancerResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 616 return nil, false 617} 618 619// AsBasicResourceSettings is the BasicResourceSettings implementation for LoadBalancerResourceSettings. 620func (lbrs LoadBalancerResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 621 return &lbrs, true 622} 623 624// ManualResolutionProperties defines the properties for manual resolution. 625type ManualResolutionProperties struct { 626 // TargetID - Gets or sets the target resource ARM ID of the dependent resource if the resource type is Manual. 627 TargetID *string `json:"targetId,omitempty"` 628} 629 630// MoveCollection define the move collection. 631type MoveCollection struct { 632 autorest.Response `json:"-"` 633 // ID - READ-ONLY; Fully qualified resource Id for the resource. 634 ID *string `json:"id,omitempty"` 635 // Name - READ-ONLY; The name of the resource 636 Name *string `json:"name,omitempty"` 637 // Type - READ-ONLY; The type of the resource. 638 Type *string `json:"type,omitempty"` 639 // Etag - READ-ONLY; The etag of the resource. 640 Etag *string `json:"etag,omitempty"` 641 // Tags - Resource tags. 642 Tags map[string]*string `json:"tags"` 643 // Location - The geo-location where the resource lives. 644 Location *string `json:"location,omitempty"` 645 Identity *Identity `json:"identity,omitempty"` 646 Properties *MoveCollectionProperties `json:"properties,omitempty"` 647} 648 649// MarshalJSON is the custom marshaler for MoveCollection. 650func (mc MoveCollection) MarshalJSON() ([]byte, error) { 651 objectMap := make(map[string]interface{}) 652 if mc.Tags != nil { 653 objectMap["tags"] = mc.Tags 654 } 655 if mc.Location != nil { 656 objectMap["location"] = mc.Location 657 } 658 if mc.Identity != nil { 659 objectMap["identity"] = mc.Identity 660 } 661 if mc.Properties != nil { 662 objectMap["properties"] = mc.Properties 663 } 664 return json.Marshal(objectMap) 665} 666 667// MoveCollectionProperties defines the move collection properties. 668type MoveCollectionProperties struct { 669 // SourceRegion - Gets or sets the source region. 670 SourceRegion *string `json:"sourceRegion,omitempty"` 671 // TargetRegion - Gets or sets the target region. 672 TargetRegion *string `json:"targetRegion,omitempty"` 673 // ProvisioningState - Possible values include: 'Succeeded', 'Updating', 'Creating', 'Failed' 674 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 675 // Errors - READ-ONLY; Defines the move collection errors. 676 Errors *MoveCollectionPropertiesErrors `json:"errors,omitempty"` 677} 678 679// MarshalJSON is the custom marshaler for MoveCollectionProperties. 680func (mcp MoveCollectionProperties) MarshalJSON() ([]byte, error) { 681 objectMap := make(map[string]interface{}) 682 if mcp.SourceRegion != nil { 683 objectMap["sourceRegion"] = mcp.SourceRegion 684 } 685 if mcp.TargetRegion != nil { 686 objectMap["targetRegion"] = mcp.TargetRegion 687 } 688 if mcp.ProvisioningState != "" { 689 objectMap["provisioningState"] = mcp.ProvisioningState 690 } 691 return json.Marshal(objectMap) 692} 693 694// MoveCollectionPropertiesErrors defines the move collection errors. 695type MoveCollectionPropertiesErrors struct { 696 // Properties - The move resource error body. 697 Properties *MoveResourceErrorBody `json:"properties,omitempty"` 698} 699 700// MoveCollectionResultList defines the collection of move collections. 701type MoveCollectionResultList struct { 702 autorest.Response `json:"-"` 703 // Value - Gets the list of move collections. 704 Value *[]MoveCollection `json:"value,omitempty"` 705 // NextLink - Gets the value of next link. 706 NextLink *string `json:"nextLink,omitempty"` 707} 708 709// MoveCollectionResultListIterator provides access to a complete listing of MoveCollection values. 710type MoveCollectionResultListIterator struct { 711 i int 712 page MoveCollectionResultListPage 713} 714 715// NextWithContext advances to the next value. If there was an error making 716// the request the iterator does not advance and the error is returned. 717func (iter *MoveCollectionResultListIterator) NextWithContext(ctx context.Context) (err error) { 718 if tracing.IsEnabled() { 719 ctx = tracing.StartSpan(ctx, fqdn+"/MoveCollectionResultListIterator.NextWithContext") 720 defer func() { 721 sc := -1 722 if iter.Response().Response.Response != nil { 723 sc = iter.Response().Response.Response.StatusCode 724 } 725 tracing.EndSpan(ctx, sc, err) 726 }() 727 } 728 iter.i++ 729 if iter.i < len(iter.page.Values()) { 730 return nil 731 } 732 err = iter.page.NextWithContext(ctx) 733 if err != nil { 734 iter.i-- 735 return err 736 } 737 iter.i = 0 738 return nil 739} 740 741// Next advances to the next value. If there was an error making 742// the request the iterator does not advance and the error is returned. 743// Deprecated: Use NextWithContext() instead. 744func (iter *MoveCollectionResultListIterator) Next() error { 745 return iter.NextWithContext(context.Background()) 746} 747 748// NotDone returns true if the enumeration should be started or is not yet complete. 749func (iter MoveCollectionResultListIterator) NotDone() bool { 750 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 751} 752 753// Response returns the raw server response from the last page request. 754func (iter MoveCollectionResultListIterator) Response() MoveCollectionResultList { 755 return iter.page.Response() 756} 757 758// Value returns the current value or a zero-initialized value if the 759// iterator has advanced beyond the end of the collection. 760func (iter MoveCollectionResultListIterator) Value() MoveCollection { 761 if !iter.page.NotDone() { 762 return MoveCollection{} 763 } 764 return iter.page.Values()[iter.i] 765} 766 767// Creates a new instance of the MoveCollectionResultListIterator type. 768func NewMoveCollectionResultListIterator(page MoveCollectionResultListPage) MoveCollectionResultListIterator { 769 return MoveCollectionResultListIterator{page: page} 770} 771 772// IsEmpty returns true if the ListResult contains no values. 773func (mcrl MoveCollectionResultList) IsEmpty() bool { 774 return mcrl.Value == nil || len(*mcrl.Value) == 0 775} 776 777// hasNextLink returns true if the NextLink is not empty. 778func (mcrl MoveCollectionResultList) hasNextLink() bool { 779 return mcrl.NextLink != nil && len(*mcrl.NextLink) != 0 780} 781 782// moveCollectionResultListPreparer prepares a request to retrieve the next set of results. 783// It returns nil if no more results exist. 784func (mcrl MoveCollectionResultList) moveCollectionResultListPreparer(ctx context.Context) (*http.Request, error) { 785 if !mcrl.hasNextLink() { 786 return nil, nil 787 } 788 return autorest.Prepare((&http.Request{}).WithContext(ctx), 789 autorest.AsJSON(), 790 autorest.AsGet(), 791 autorest.WithBaseURL(to.String(mcrl.NextLink))) 792} 793 794// MoveCollectionResultListPage contains a page of MoveCollection values. 795type MoveCollectionResultListPage struct { 796 fn func(context.Context, MoveCollectionResultList) (MoveCollectionResultList, error) 797 mcrl MoveCollectionResultList 798} 799 800// NextWithContext advances to the next page of values. If there was an error making 801// the request the page does not advance and the error is returned. 802func (page *MoveCollectionResultListPage) NextWithContext(ctx context.Context) (err error) { 803 if tracing.IsEnabled() { 804 ctx = tracing.StartSpan(ctx, fqdn+"/MoveCollectionResultListPage.NextWithContext") 805 defer func() { 806 sc := -1 807 if page.Response().Response.Response != nil { 808 sc = page.Response().Response.Response.StatusCode 809 } 810 tracing.EndSpan(ctx, sc, err) 811 }() 812 } 813 for { 814 next, err := page.fn(ctx, page.mcrl) 815 if err != nil { 816 return err 817 } 818 page.mcrl = next 819 if !next.hasNextLink() || !next.IsEmpty() { 820 break 821 } 822 } 823 return nil 824} 825 826// Next advances to the next page of values. If there was an error making 827// the request the page does not advance and the error is returned. 828// Deprecated: Use NextWithContext() instead. 829func (page *MoveCollectionResultListPage) Next() error { 830 return page.NextWithContext(context.Background()) 831} 832 833// NotDone returns true if the page enumeration should be started or is not yet complete. 834func (page MoveCollectionResultListPage) NotDone() bool { 835 return !page.mcrl.IsEmpty() 836} 837 838// Response returns the raw server response from the last page request. 839func (page MoveCollectionResultListPage) Response() MoveCollectionResultList { 840 return page.mcrl 841} 842 843// Values returns the slice of values for the current page or nil if there are no values. 844func (page MoveCollectionResultListPage) Values() []MoveCollection { 845 if page.mcrl.IsEmpty() { 846 return nil 847 } 848 return *page.mcrl.Value 849} 850 851// Creates a new instance of the MoveCollectionResultListPage type. 852func NewMoveCollectionResultListPage(cur MoveCollectionResultList, getNextPage func(context.Context, MoveCollectionResultList) (MoveCollectionResultList, error)) MoveCollectionResultListPage { 853 return MoveCollectionResultListPage{ 854 fn: getNextPage, 855 mcrl: cur, 856 } 857} 858 859// MoveCollectionsBulkRemoveFuture an abstraction for monitoring and retrieving the results of a 860// long-running operation. 861type MoveCollectionsBulkRemoveFuture struct { 862 azure.FutureAPI 863 // Result returns the result of the asynchronous operation. 864 // If the operation has not completed it will return an error. 865 Result func(MoveCollectionsClient) (OperationStatus, error) 866} 867 868// MoveCollectionsCommitFuture an abstraction for monitoring and retrieving the results of a long-running 869// operation. 870type MoveCollectionsCommitFuture struct { 871 azure.FutureAPI 872 // Result returns the result of the asynchronous operation. 873 // If the operation has not completed it will return an error. 874 Result func(MoveCollectionsClient) (OperationStatus, error) 875} 876 877// MoveCollectionsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 878// operation. 879type MoveCollectionsDeleteFuture struct { 880 azure.FutureAPI 881 // Result returns the result of the asynchronous operation. 882 // If the operation has not completed it will return an error. 883 Result func(MoveCollectionsClient) (OperationStatus, error) 884} 885 886// MoveCollectionsDiscardFuture an abstraction for monitoring and retrieving the results of a long-running 887// operation. 888type MoveCollectionsDiscardFuture struct { 889 azure.FutureAPI 890 // Result returns the result of the asynchronous operation. 891 // If the operation has not completed it will return an error. 892 Result func(MoveCollectionsClient) (OperationStatus, error) 893} 894 895// MoveCollectionsInitiateMoveFuture an abstraction for monitoring and retrieving the results of a 896// long-running operation. 897type MoveCollectionsInitiateMoveFuture struct { 898 azure.FutureAPI 899 // Result returns the result of the asynchronous operation. 900 // If the operation has not completed it will return an error. 901 Result func(MoveCollectionsClient) (OperationStatus, error) 902} 903 904// MoveCollectionsPrepareFuture an abstraction for monitoring and retrieving the results of a long-running 905// operation. 906type MoveCollectionsPrepareFuture struct { 907 azure.FutureAPI 908 // Result returns the result of the asynchronous operation. 909 // If the operation has not completed it will return an error. 910 Result func(MoveCollectionsClient) (OperationStatus, error) 911} 912 913// MoveCollectionsResolveDependenciesFuture an abstraction for monitoring and retrieving the results of a 914// long-running operation. 915type MoveCollectionsResolveDependenciesFuture struct { 916 azure.FutureAPI 917 // Result returns the result of the asynchronous operation. 918 // If the operation has not completed it will return an error. 919 Result func(MoveCollectionsClient) (OperationStatus, error) 920} 921 922// MoveErrorInfo the move custom error info. 923type MoveErrorInfo struct { 924 // MoveResources - READ-ONLY; The affected move resources. 925 MoveResources *[]AffectedMoveResource `json:"moveResources,omitempty"` 926} 927 928// MoveResource defines the move resource. 929type MoveResource struct { 930 autorest.Response `json:"-"` 931 // ID - READ-ONLY; Fully qualified resource Id for the resource. 932 ID *string `json:"id,omitempty"` 933 // Name - READ-ONLY; The name of the resource 934 Name *string `json:"name,omitempty"` 935 // Type - READ-ONLY; The type of the resource. 936 Type *string `json:"type,omitempty"` 937 Properties *MoveResourceProperties `json:"properties,omitempty"` 938} 939 940// MarshalJSON is the custom marshaler for MoveResource. 941func (mr MoveResource) MarshalJSON() ([]byte, error) { 942 objectMap := make(map[string]interface{}) 943 if mr.Properties != nil { 944 objectMap["properties"] = mr.Properties 945 } 946 return json.Marshal(objectMap) 947} 948 949// MoveResourceCollection defines the collection of move resources. 950type MoveResourceCollection struct { 951 autorest.Response `json:"-"` 952 // Value - Gets the list of move resources. 953 Value *[]MoveResource `json:"value,omitempty"` 954 // NextLink - Gets the value of next link. 955 NextLink *string `json:"nextLink,omitempty"` 956 // SummaryCollection - Gets or sets the list of summary items and the field on which summary is done. 957 SummaryCollection *SummaryCollection `json:"summaryCollection,omitempty"` 958 // TotalCount - READ-ONLY; Gets the total count. 959 TotalCount *int64 `json:"totalCount,omitempty"` 960} 961 962// MarshalJSON is the custom marshaler for MoveResourceCollection. 963func (mrc MoveResourceCollection) MarshalJSON() ([]byte, error) { 964 objectMap := make(map[string]interface{}) 965 if mrc.Value != nil { 966 objectMap["value"] = mrc.Value 967 } 968 if mrc.NextLink != nil { 969 objectMap["nextLink"] = mrc.NextLink 970 } 971 if mrc.SummaryCollection != nil { 972 objectMap["summaryCollection"] = mrc.SummaryCollection 973 } 974 return json.Marshal(objectMap) 975} 976 977// MoveResourceCollectionIterator provides access to a complete listing of MoveResource values. 978type MoveResourceCollectionIterator struct { 979 i int 980 page MoveResourceCollectionPage 981} 982 983// NextWithContext advances to the next value. If there was an error making 984// the request the iterator does not advance and the error is returned. 985func (iter *MoveResourceCollectionIterator) NextWithContext(ctx context.Context) (err error) { 986 if tracing.IsEnabled() { 987 ctx = tracing.StartSpan(ctx, fqdn+"/MoveResourceCollectionIterator.NextWithContext") 988 defer func() { 989 sc := -1 990 if iter.Response().Response.Response != nil { 991 sc = iter.Response().Response.Response.StatusCode 992 } 993 tracing.EndSpan(ctx, sc, err) 994 }() 995 } 996 iter.i++ 997 if iter.i < len(iter.page.Values()) { 998 return nil 999 } 1000 err = iter.page.NextWithContext(ctx) 1001 if err != nil { 1002 iter.i-- 1003 return err 1004 } 1005 iter.i = 0 1006 return nil 1007} 1008 1009// Next advances to the next value. If there was an error making 1010// the request the iterator does not advance and the error is returned. 1011// Deprecated: Use NextWithContext() instead. 1012func (iter *MoveResourceCollectionIterator) Next() error { 1013 return iter.NextWithContext(context.Background()) 1014} 1015 1016// NotDone returns true if the enumeration should be started or is not yet complete. 1017func (iter MoveResourceCollectionIterator) NotDone() bool { 1018 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1019} 1020 1021// Response returns the raw server response from the last page request. 1022func (iter MoveResourceCollectionIterator) Response() MoveResourceCollection { 1023 return iter.page.Response() 1024} 1025 1026// Value returns the current value or a zero-initialized value if the 1027// iterator has advanced beyond the end of the collection. 1028func (iter MoveResourceCollectionIterator) Value() MoveResource { 1029 if !iter.page.NotDone() { 1030 return MoveResource{} 1031 } 1032 return iter.page.Values()[iter.i] 1033} 1034 1035// Creates a new instance of the MoveResourceCollectionIterator type. 1036func NewMoveResourceCollectionIterator(page MoveResourceCollectionPage) MoveResourceCollectionIterator { 1037 return MoveResourceCollectionIterator{page: page} 1038} 1039 1040// IsEmpty returns true if the ListResult contains no values. 1041func (mrc MoveResourceCollection) IsEmpty() bool { 1042 return mrc.Value == nil || len(*mrc.Value) == 0 1043} 1044 1045// hasNextLink returns true if the NextLink is not empty. 1046func (mrc MoveResourceCollection) hasNextLink() bool { 1047 return mrc.NextLink != nil && len(*mrc.NextLink) != 0 1048} 1049 1050// moveResourceCollectionPreparer prepares a request to retrieve the next set of results. 1051// It returns nil if no more results exist. 1052func (mrc MoveResourceCollection) moveResourceCollectionPreparer(ctx context.Context) (*http.Request, error) { 1053 if !mrc.hasNextLink() { 1054 return nil, nil 1055 } 1056 return autorest.Prepare((&http.Request{}).WithContext(ctx), 1057 autorest.AsJSON(), 1058 autorest.AsGet(), 1059 autorest.WithBaseURL(to.String(mrc.NextLink))) 1060} 1061 1062// MoveResourceCollectionPage contains a page of MoveResource values. 1063type MoveResourceCollectionPage struct { 1064 fn func(context.Context, MoveResourceCollection) (MoveResourceCollection, error) 1065 mrc MoveResourceCollection 1066} 1067 1068// NextWithContext advances to the next page of values. If there was an error making 1069// the request the page does not advance and the error is returned. 1070func (page *MoveResourceCollectionPage) NextWithContext(ctx context.Context) (err error) { 1071 if tracing.IsEnabled() { 1072 ctx = tracing.StartSpan(ctx, fqdn+"/MoveResourceCollectionPage.NextWithContext") 1073 defer func() { 1074 sc := -1 1075 if page.Response().Response.Response != nil { 1076 sc = page.Response().Response.Response.StatusCode 1077 } 1078 tracing.EndSpan(ctx, sc, err) 1079 }() 1080 } 1081 for { 1082 next, err := page.fn(ctx, page.mrc) 1083 if err != nil { 1084 return err 1085 } 1086 page.mrc = next 1087 if !next.hasNextLink() || !next.IsEmpty() { 1088 break 1089 } 1090 } 1091 return nil 1092} 1093 1094// Next advances to the next page of values. If there was an error making 1095// the request the page does not advance and the error is returned. 1096// Deprecated: Use NextWithContext() instead. 1097func (page *MoveResourceCollectionPage) Next() error { 1098 return page.NextWithContext(context.Background()) 1099} 1100 1101// NotDone returns true if the page enumeration should be started or is not yet complete. 1102func (page MoveResourceCollectionPage) NotDone() bool { 1103 return !page.mrc.IsEmpty() 1104} 1105 1106// Response returns the raw server response from the last page request. 1107func (page MoveResourceCollectionPage) Response() MoveResourceCollection { 1108 return page.mrc 1109} 1110 1111// Values returns the slice of values for the current page or nil if there are no values. 1112func (page MoveResourceCollectionPage) Values() []MoveResource { 1113 if page.mrc.IsEmpty() { 1114 return nil 1115 } 1116 return *page.mrc.Value 1117} 1118 1119// Creates a new instance of the MoveResourceCollectionPage type. 1120func NewMoveResourceCollectionPage(cur MoveResourceCollection, getNextPage func(context.Context, MoveResourceCollection) (MoveResourceCollection, error)) MoveResourceCollectionPage { 1121 return MoveResourceCollectionPage{ 1122 fn: getNextPage, 1123 mrc: cur, 1124 } 1125} 1126 1127// MoveResourceDependency defines the dependency of the move resource. 1128type MoveResourceDependency struct { 1129 // ID - Gets the source ARM ID of the dependent resource. 1130 ID *string `json:"id,omitempty"` 1131 // ResolutionStatus - Gets the dependency resolution status. 1132 ResolutionStatus *string `json:"resolutionStatus,omitempty"` 1133 // ResolutionType - Possible values include: 'Manual', 'Automatic' 1134 ResolutionType ResolutionType `json:"resolutionType,omitempty"` 1135 // DependencyType - Possible values include: 'RequiredForPrepare', 'RequiredForMove' 1136 DependencyType DependencyType `json:"dependencyType,omitempty"` 1137 ManualResolution *ManualResolutionProperties `json:"manualResolution,omitempty"` 1138 AutomaticResolution *AutomaticResolutionProperties `json:"automaticResolution,omitempty"` 1139 // IsOptional - Gets or sets a value indicating whether the dependency is optional. 1140 IsOptional *string `json:"isOptional,omitempty"` 1141} 1142 1143// MoveResourceDependencyOverride defines the dependency override of the move resource. 1144type MoveResourceDependencyOverride struct { 1145 // ID - Gets or sets the ARM ID of the dependent resource. 1146 ID *string `json:"id,omitempty"` 1147 // TargetID - Gets or sets the resource ARM id of either the MoveResource or the resource ARM ID of 1148 // the dependent resource. 1149 TargetID *string `json:"targetId,omitempty"` 1150} 1151 1152// MoveResourceError an error response from the azure resource mover service. 1153type MoveResourceError struct { 1154 // Properties - The move resource error body. 1155 Properties *MoveResourceErrorBody `json:"properties,omitempty"` 1156} 1157 1158// MoveResourceErrorBody an error response from the Azure Migrate service. 1159type MoveResourceErrorBody struct { 1160 // Code - READ-ONLY; An identifier for the error. Codes are invariant and are intended to be consumed programmatically. 1161 Code *string `json:"code,omitempty"` 1162 // Message - READ-ONLY; A message describing the error, intended to be suitable for display in a user interface. 1163 Message *string `json:"message,omitempty"` 1164 // Target - READ-ONLY; The target of the particular error. For example, the name of the property in error. 1165 Target *string `json:"target,omitempty"` 1166 // Details - READ-ONLY; A list of additional details about the error. 1167 Details *[]MoveResourceErrorBody `json:"details,omitempty"` 1168} 1169 1170// MoveResourceFilter move resource filter. 1171type MoveResourceFilter struct { 1172 Properties *MoveResourceFilterProperties `json:"properties,omitempty"` 1173} 1174 1175// MoveResourceFilterProperties ... 1176type MoveResourceFilterProperties struct { 1177 // ProvisioningState - The provisioning state. 1178 ProvisioningState *string `json:"provisioningState,omitempty"` 1179} 1180 1181// MoveResourceProperties defines the move resource properties. 1182type MoveResourceProperties struct { 1183 // ProvisioningState - Possible values include: 'Succeeded', 'Updating', 'Creating', 'Failed' 1184 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 1185 // SourceID - Gets or sets the Source ARM Id of the resource. 1186 SourceID *string `json:"sourceId,omitempty"` 1187 // TargetID - READ-ONLY; Gets or sets the Target ARM Id of the resource. 1188 TargetID *string `json:"targetId,omitempty"` 1189 // ExistingTargetID - Gets or sets the existing target ARM Id of the resource. 1190 ExistingTargetID *string `json:"existingTargetId,omitempty"` 1191 // ResourceSettings - Gets or sets the resource settings. 1192 ResourceSettings BasicResourceSettings `json:"resourceSettings,omitempty"` 1193 // SourceResourceSettings - READ-ONLY; Gets or sets the source resource settings. 1194 SourceResourceSettings BasicResourceSettings `json:"sourceResourceSettings,omitempty"` 1195 // MoveStatus - READ-ONLY; Defines the move resource status. 1196 MoveStatus *MoveResourcePropertiesMoveStatus `json:"moveStatus,omitempty"` 1197 // DependsOn - READ-ONLY; Gets or sets the move resource dependencies. 1198 DependsOn *[]MoveResourceDependency `json:"dependsOn,omitempty"` 1199 // DependsOnOverrides - Gets or sets the move resource dependencies overrides. 1200 DependsOnOverrides *[]MoveResourceDependencyOverride `json:"dependsOnOverrides,omitempty"` 1201 // IsResolveRequired - READ-ONLY; Gets a value indicating whether the resolve action is required over the move collection. 1202 IsResolveRequired *bool `json:"isResolveRequired,omitempty"` 1203 // Errors - READ-ONLY; Defines the move resource errors. 1204 Errors *MoveResourcePropertiesErrors `json:"errors,omitempty"` 1205} 1206 1207// MarshalJSON is the custom marshaler for MoveResourceProperties. 1208func (mrp MoveResourceProperties) MarshalJSON() ([]byte, error) { 1209 objectMap := make(map[string]interface{}) 1210 if mrp.ProvisioningState != "" { 1211 objectMap["provisioningState"] = mrp.ProvisioningState 1212 } 1213 if mrp.SourceID != nil { 1214 objectMap["sourceId"] = mrp.SourceID 1215 } 1216 if mrp.ExistingTargetID != nil { 1217 objectMap["existingTargetId"] = mrp.ExistingTargetID 1218 } 1219 objectMap["resourceSettings"] = mrp.ResourceSettings 1220 if mrp.DependsOnOverrides != nil { 1221 objectMap["dependsOnOverrides"] = mrp.DependsOnOverrides 1222 } 1223 return json.Marshal(objectMap) 1224} 1225 1226// UnmarshalJSON is the custom unmarshaler for MoveResourceProperties struct. 1227func (mrp *MoveResourceProperties) UnmarshalJSON(body []byte) error { 1228 var m map[string]*json.RawMessage 1229 err := json.Unmarshal(body, &m) 1230 if err != nil { 1231 return err 1232 } 1233 for k, v := range m { 1234 switch k { 1235 case "provisioningState": 1236 if v != nil { 1237 var provisioningState ProvisioningState 1238 err = json.Unmarshal(*v, &provisioningState) 1239 if err != nil { 1240 return err 1241 } 1242 mrp.ProvisioningState = provisioningState 1243 } 1244 case "sourceId": 1245 if v != nil { 1246 var sourceID string 1247 err = json.Unmarshal(*v, &sourceID) 1248 if err != nil { 1249 return err 1250 } 1251 mrp.SourceID = &sourceID 1252 } 1253 case "targetId": 1254 if v != nil { 1255 var targetID string 1256 err = json.Unmarshal(*v, &targetID) 1257 if err != nil { 1258 return err 1259 } 1260 mrp.TargetID = &targetID 1261 } 1262 case "existingTargetId": 1263 if v != nil { 1264 var existingTargetID string 1265 err = json.Unmarshal(*v, &existingTargetID) 1266 if err != nil { 1267 return err 1268 } 1269 mrp.ExistingTargetID = &existingTargetID 1270 } 1271 case "resourceSettings": 1272 if v != nil { 1273 resourceSettings, err := unmarshalBasicResourceSettings(*v) 1274 if err != nil { 1275 return err 1276 } 1277 mrp.ResourceSettings = resourceSettings 1278 } 1279 case "sourceResourceSettings": 1280 if v != nil { 1281 sourceResourceSettings, err := unmarshalBasicResourceSettings(*v) 1282 if err != nil { 1283 return err 1284 } 1285 mrp.SourceResourceSettings = sourceResourceSettings 1286 } 1287 case "moveStatus": 1288 if v != nil { 1289 var moveStatus MoveResourcePropertiesMoveStatus 1290 err = json.Unmarshal(*v, &moveStatus) 1291 if err != nil { 1292 return err 1293 } 1294 mrp.MoveStatus = &moveStatus 1295 } 1296 case "dependsOn": 1297 if v != nil { 1298 var dependsOn []MoveResourceDependency 1299 err = json.Unmarshal(*v, &dependsOn) 1300 if err != nil { 1301 return err 1302 } 1303 mrp.DependsOn = &dependsOn 1304 } 1305 case "dependsOnOverrides": 1306 if v != nil { 1307 var dependsOnOverrides []MoveResourceDependencyOverride 1308 err = json.Unmarshal(*v, &dependsOnOverrides) 1309 if err != nil { 1310 return err 1311 } 1312 mrp.DependsOnOverrides = &dependsOnOverrides 1313 } 1314 case "isResolveRequired": 1315 if v != nil { 1316 var isResolveRequired bool 1317 err = json.Unmarshal(*v, &isResolveRequired) 1318 if err != nil { 1319 return err 1320 } 1321 mrp.IsResolveRequired = &isResolveRequired 1322 } 1323 case "errors": 1324 if v != nil { 1325 var errorsVar MoveResourcePropertiesErrors 1326 err = json.Unmarshal(*v, &errorsVar) 1327 if err != nil { 1328 return err 1329 } 1330 mrp.Errors = &errorsVar 1331 } 1332 } 1333 } 1334 1335 return nil 1336} 1337 1338// MoveResourcePropertiesErrors defines the move resource errors. 1339type MoveResourcePropertiesErrors struct { 1340 // Properties - The move resource error body. 1341 Properties *MoveResourceErrorBody `json:"properties,omitempty"` 1342} 1343 1344// MoveResourcePropertiesMoveStatus defines the move resource status. 1345type MoveResourcePropertiesMoveStatus struct { 1346 // MoveState - Possible values include: 'AssignmentPending', 'PreparePending', 'PrepareInProgress', 'PrepareFailed', 'MovePending', 'MoveInProgress', 'MoveFailed', 'DiscardInProgress', 'DiscardFailed', 'CommitPending', 'CommitInProgress', 'CommitFailed', 'Committed', 'DeleteSourcePending', 'ResourceMoveCompleted' 1347 MoveState MoveState `json:"moveState,omitempty"` 1348 JobStatus *JobStatus `json:"jobStatus,omitempty"` 1349 Errors *MoveResourceError `json:"errors,omitempty"` 1350} 1351 1352// MoveResourcesCreateFuture an abstraction for monitoring and retrieving the results of a long-running 1353// operation. 1354type MoveResourcesCreateFuture struct { 1355 azure.FutureAPI 1356 // Result returns the result of the asynchronous operation. 1357 // If the operation has not completed it will return an error. 1358 Result func(MoveResourcesClient) (MoveResource, error) 1359} 1360 1361// MoveResourcesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 1362// operation. 1363type MoveResourcesDeleteFuture struct { 1364 azure.FutureAPI 1365 // Result returns the result of the asynchronous operation. 1366 // If the operation has not completed it will return an error. 1367 Result func(MoveResourcesClient) (OperationStatus, error) 1368} 1369 1370// MoveResourceStatus defines the move resource status. 1371type MoveResourceStatus struct { 1372 // MoveState - Possible values include: 'AssignmentPending', 'PreparePending', 'PrepareInProgress', 'PrepareFailed', 'MovePending', 'MoveInProgress', 'MoveFailed', 'DiscardInProgress', 'DiscardFailed', 'CommitPending', 'CommitInProgress', 'CommitFailed', 'Committed', 'DeleteSourcePending', 'ResourceMoveCompleted' 1373 MoveState MoveState `json:"moveState,omitempty"` 1374 JobStatus *JobStatus `json:"jobStatus,omitempty"` 1375 Errors *MoveResourceError `json:"errors,omitempty"` 1376} 1377 1378// NetworkInterfaceResourceSettings defines the network interface resource settings. 1379type NetworkInterfaceResourceSettings struct { 1380 // IPConfigurations - Gets or sets the IP configurations of the NIC. 1381 IPConfigurations *[]NicIPConfigurationResourceSettings `json:"ipConfigurations,omitempty"` 1382 // EnableAcceleratedNetworking - Gets or sets a value indicating whether accelerated networking is enabled. 1383 EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"` 1384 // TargetResourceName - Gets or sets the target Resource name. 1385 TargetResourceName *string `json:"targetResourceName,omitempty"` 1386 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 1387 ResourceType ResourceType `json:"resourceType,omitempty"` 1388} 1389 1390// MarshalJSON is the custom marshaler for NetworkInterfaceResourceSettings. 1391func (nirs NetworkInterfaceResourceSettings) MarshalJSON() ([]byte, error) { 1392 nirs.ResourceType = ResourceTypeMicrosoftNetworknetworkInterfaces 1393 objectMap := make(map[string]interface{}) 1394 if nirs.IPConfigurations != nil { 1395 objectMap["ipConfigurations"] = nirs.IPConfigurations 1396 } 1397 if nirs.EnableAcceleratedNetworking != nil { 1398 objectMap["enableAcceleratedNetworking"] = nirs.EnableAcceleratedNetworking 1399 } 1400 if nirs.TargetResourceName != nil { 1401 objectMap["targetResourceName"] = nirs.TargetResourceName 1402 } 1403 if nirs.ResourceType != "" { 1404 objectMap["resourceType"] = nirs.ResourceType 1405 } 1406 return json.Marshal(objectMap) 1407} 1408 1409// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1410func (nirs NetworkInterfaceResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 1411 return nil, false 1412} 1413 1414// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1415func (nirs NetworkInterfaceResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 1416 return nil, false 1417} 1418 1419// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1420func (nirs NetworkInterfaceResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 1421 return nil, false 1422} 1423 1424// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1425func (nirs NetworkInterfaceResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 1426 return &nirs, true 1427} 1428 1429// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1430func (nirs NetworkInterfaceResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 1431 return nil, false 1432} 1433 1434// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1435func (nirs NetworkInterfaceResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 1436 return nil, false 1437} 1438 1439// AsSQLServerResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1440func (nirs NetworkInterfaceResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 1441 return nil, false 1442} 1443 1444// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1445func (nirs NetworkInterfaceResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 1446 return nil, false 1447} 1448 1449// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1450func (nirs NetworkInterfaceResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 1451 return nil, false 1452} 1453 1454// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1455func (nirs NetworkInterfaceResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 1456 return nil, false 1457} 1458 1459// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1460func (nirs NetworkInterfaceResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 1461 return nil, false 1462} 1463 1464// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1465func (nirs NetworkInterfaceResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 1466 return nil, false 1467} 1468 1469// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1470func (nirs NetworkInterfaceResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 1471 return nil, false 1472} 1473 1474// AsResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1475func (nirs NetworkInterfaceResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 1476 return nil, false 1477} 1478 1479// AsBasicResourceSettings is the BasicResourceSettings implementation for NetworkInterfaceResourceSettings. 1480func (nirs NetworkInterfaceResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 1481 return &nirs, true 1482} 1483 1484// NetworkSecurityGroupResourceSettings defines the NSG resource settings. 1485type NetworkSecurityGroupResourceSettings struct { 1486 // SecurityRules - Gets or sets Security rules of network security group. 1487 SecurityRules *[]NsgSecurityRule `json:"securityRules,omitempty"` 1488 // TargetResourceName - Gets or sets the target Resource name. 1489 TargetResourceName *string `json:"targetResourceName,omitempty"` 1490 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 1491 ResourceType ResourceType `json:"resourceType,omitempty"` 1492} 1493 1494// MarshalJSON is the custom marshaler for NetworkSecurityGroupResourceSettings. 1495func (nsgrs NetworkSecurityGroupResourceSettings) MarshalJSON() ([]byte, error) { 1496 nsgrs.ResourceType = ResourceTypeMicrosoftNetworknetworkSecurityGroups 1497 objectMap := make(map[string]interface{}) 1498 if nsgrs.SecurityRules != nil { 1499 objectMap["securityRules"] = nsgrs.SecurityRules 1500 } 1501 if nsgrs.TargetResourceName != nil { 1502 objectMap["targetResourceName"] = nsgrs.TargetResourceName 1503 } 1504 if nsgrs.ResourceType != "" { 1505 objectMap["resourceType"] = nsgrs.ResourceType 1506 } 1507 return json.Marshal(objectMap) 1508} 1509 1510// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1511func (nsgrs NetworkSecurityGroupResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 1512 return nil, false 1513} 1514 1515// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1516func (nsgrs NetworkSecurityGroupResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 1517 return nil, false 1518} 1519 1520// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1521func (nsgrs NetworkSecurityGroupResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 1522 return nil, false 1523} 1524 1525// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1526func (nsgrs NetworkSecurityGroupResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 1527 return nil, false 1528} 1529 1530// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1531func (nsgrs NetworkSecurityGroupResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 1532 return &nsgrs, true 1533} 1534 1535// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1536func (nsgrs NetworkSecurityGroupResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 1537 return nil, false 1538} 1539 1540// AsSQLServerResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1541func (nsgrs NetworkSecurityGroupResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 1542 return nil, false 1543} 1544 1545// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1546func (nsgrs NetworkSecurityGroupResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 1547 return nil, false 1548} 1549 1550// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1551func (nsgrs NetworkSecurityGroupResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 1552 return nil, false 1553} 1554 1555// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1556func (nsgrs NetworkSecurityGroupResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 1557 return nil, false 1558} 1559 1560// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1561func (nsgrs NetworkSecurityGroupResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 1562 return nil, false 1563} 1564 1565// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1566func (nsgrs NetworkSecurityGroupResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 1567 return nil, false 1568} 1569 1570// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1571func (nsgrs NetworkSecurityGroupResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 1572 return nil, false 1573} 1574 1575// AsResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1576func (nsgrs NetworkSecurityGroupResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 1577 return nil, false 1578} 1579 1580// AsBasicResourceSettings is the BasicResourceSettings implementation for NetworkSecurityGroupResourceSettings. 1581func (nsgrs NetworkSecurityGroupResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 1582 return &nsgrs, true 1583} 1584 1585// NicIPConfigurationResourceSettings defines NIC IP configuration properties. 1586type NicIPConfigurationResourceSettings struct { 1587 // Name - Gets or sets the IP configuration name. 1588 Name *string `json:"name,omitempty"` 1589 // PrivateIPAddress - Gets or sets the private IP address of the network interface IP Configuration. 1590 PrivateIPAddress *string `json:"privateIpAddress,omitempty"` 1591 // PrivateIPAllocationMethod - Gets or sets the private IP address allocation method. 1592 PrivateIPAllocationMethod *string `json:"privateIpAllocationMethod,omitempty"` 1593 Subnet *SubnetReference `json:"subnet,omitempty"` 1594 // Primary - Gets or sets a value indicating whether this IP configuration is the primary. 1595 Primary *bool `json:"primary,omitempty"` 1596 // LoadBalancerBackendAddressPools - Gets or sets the references of the load balancer backend address pools. 1597 LoadBalancerBackendAddressPools *[]LoadBalancerBackendAddressPoolReference `json:"loadBalancerBackendAddressPools,omitempty"` 1598 // LoadBalancerNatRules - Gets or sets the references of the load balancer NAT rules. 1599 LoadBalancerNatRules *[]LoadBalancerNatRuleReference `json:"loadBalancerNatRules,omitempty"` 1600 PublicIP *PublicIPReference `json:"publicIp,omitempty"` 1601} 1602 1603// NsgReference defines reference to NSG. 1604type NsgReference struct { 1605 // SourceArmResourceID - Gets the ARM resource ID of the tracked resource being referenced. 1606 SourceArmResourceID *string `json:"sourceArmResourceId,omitempty"` 1607} 1608 1609// NsgSecurityRule security Rule data model for Network Security Groups. 1610type NsgSecurityRule struct { 1611 // Name - Gets or sets the Security rule name. 1612 Name *string `json:"name,omitempty"` 1613 // Access - Gets or sets whether network traffic is allowed or denied. 1614 // Possible values are “Allow” and “Deny”. 1615 Access *string `json:"access,omitempty"` 1616 // Description - Gets or sets a description for this rule. Restricted to 140 chars. 1617 Description *string `json:"description,omitempty"` 1618 // DestinationAddressPrefix - Gets or sets destination address prefix. CIDR or source IP range. 1619 // A “*” can also be used to match all source IPs. Default tags such 1620 // as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. 1621 DestinationAddressPrefix *string `json:"destinationAddressPrefix,omitempty"` 1622 // DestinationPortRange - Gets or sets Destination Port or Range. Integer or range between 1623 // 0 and 65535. A “*” can also be used to match all ports. 1624 DestinationPortRange *string `json:"destinationPortRange,omitempty"` 1625 // Direction - Gets or sets the direction of the rule.InBound or Outbound. The 1626 // direction specifies if rule will be evaluated on incoming or outgoing traffic. 1627 Direction *string `json:"direction,omitempty"` 1628 // Priority - Gets or sets the priority of the rule. The value can be between 1629 // 100 and 4096. The priority number must be unique for each rule in the collection. 1630 // The lower the priority number, the higher the priority of the rule. 1631 Priority *int32 `json:"priority,omitempty"` 1632 // Protocol - Gets or sets Network protocol this rule applies to. Can be Tcp, Udp or All(*). 1633 Protocol *string `json:"protocol,omitempty"` 1634 // SourceAddressPrefix - Gets or sets source address prefix. CIDR or source IP range. A 1635 // “*” can also be used to match all source IPs. Default tags such as ‘VirtualNetwork’, 1636 // ‘AzureLoadBalancer’ and ‘Internet’ can also be used. If this is an ingress 1637 // rule, specifies where network traffic originates from. 1638 SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"` 1639 // SourcePortRange - Gets or sets Source Port or Range. Integer or range between 0 and 1640 // 65535. A “*” can also be used to match all ports. 1641 SourcePortRange *string `json:"sourcePortRange,omitempty"` 1642} 1643 1644// OperationErrorAdditionalInfo the operation error info. 1645type OperationErrorAdditionalInfo struct { 1646 // Type - READ-ONLY; The error type. 1647 Type *string `json:"type,omitempty"` 1648 // Info - READ-ONLY; The operation error info. 1649 Info *MoveErrorInfo `json:"info,omitempty"` 1650} 1651 1652// OperationsDiscovery operations discovery class. 1653type OperationsDiscovery struct { 1654 // Name - Gets or sets Name of the API. 1655 // The name of the operation being performed on this particular object. It should 1656 // match the action name that appears in RBAC / the event service. 1657 // Examples of operations include: 1658 // * Microsoft.Compute/virtualMachine/capture/action 1659 // * Microsoft.Compute/virtualMachine/restart/action 1660 // * Microsoft.Compute/virtualMachine/write 1661 // * Microsoft.Compute/virtualMachine/read 1662 // * Microsoft.Compute/virtualMachine/delete 1663 // Each action should include, in order: 1664 // (1) Resource Provider Namespace 1665 // (2) Type hierarchy for which the action applies (e.g. server/databases for a SQL 1666 // Azure database) 1667 // (3) Read, Write, Action or Delete indicating which type applies. If it is a PUT/PATCH 1668 // on a collection or named value, Write should be used. 1669 // If it is a GET, Read should be used. If it is a DELETE, Delete should be used. If it 1670 // is a POST, Action should be used. 1671 // As a note: all resource providers would need to include the "{Resource Provider 1672 // Namespace}/register/action" operation in their response. 1673 // This API is used to register for their service, and should include details about the 1674 // operation (e.g. a localized name for the resource provider + any special 1675 // considerations like PII release). 1676 Name *string `json:"name,omitempty"` 1677 // IsDataAction - Indicates whether the operation is a data action 1678 IsDataAction *bool `json:"isDataAction,omitempty"` 1679 Display *Display `json:"display,omitempty"` 1680 // Origin - Gets or sets Origin. 1681 // The intended executor of the operation; governs the display of the operation in the 1682 // RBAC UX and the audit logs UX. 1683 // Default value is "user,system". 1684 Origin *string `json:"origin,omitempty"` 1685 Properties interface{} `json:"properties,omitempty"` 1686} 1687 1688// OperationsDiscoveryCollection collection of ClientDiscovery details. 1689type OperationsDiscoveryCollection struct { 1690 autorest.Response `json:"-"` 1691 // Value - Gets or sets the ClientDiscovery details. 1692 Value *[]OperationsDiscovery `json:"value,omitempty"` 1693 // NextLink - Gets or sets the value of next link. 1694 NextLink *string `json:"nextLink,omitempty"` 1695} 1696 1697// OperationStatus operation status REST resource. 1698type OperationStatus struct { 1699 autorest.Response `json:"-"` 1700 // ID - READ-ONLY; Resource Id. 1701 ID *string `json:"id,omitempty"` 1702 // Name - READ-ONLY; Operation name. 1703 Name *string `json:"name,omitempty"` 1704 // Status - READ-ONLY; Status of the operation. ARM expects the terminal status to be one of Succeeded/ Failed/ Canceled. All other values imply that the operation is still running. 1705 Status *string `json:"status,omitempty"` 1706 // StartTime - READ-ONLY; Start time. 1707 StartTime *string `json:"startTime,omitempty"` 1708 // EndTime - READ-ONLY; End time. 1709 EndTime *string `json:"endTime,omitempty"` 1710 // Error - READ-ONLY; Error stating all error details for the operation. 1711 Error *OperationStatusError `json:"error,omitempty"` 1712 // Properties - READ-ONLY; Custom data. 1713 Properties interface{} `json:"properties,omitempty"` 1714} 1715 1716// OperationStatusError class for operation status errors. 1717type OperationStatusError struct { 1718 // Code - READ-ONLY; The error code. 1719 Code *string `json:"code,omitempty"` 1720 // Message - READ-ONLY; The error message. 1721 Message *string `json:"message,omitempty"` 1722 // Details - READ-ONLY; The error details. 1723 Details *[]OperationStatusError `json:"details,omitempty"` 1724 // AdditionalInfo - READ-ONLY; The additional info. 1725 AdditionalInfo *[]OperationErrorAdditionalInfo `json:"additionalInfo,omitempty"` 1726} 1727 1728// PrepareRequest defines the request body for initiate prepare operation. 1729type PrepareRequest struct { 1730 // ValidateOnly - Gets or sets a value indicating whether the operation needs to only run pre-requisite. 1731 ValidateOnly *bool `json:"validateOnly,omitempty"` 1732 // MoveResources - Gets or sets the list of resource Id's, by default it accepts move resource id's unless the input type is switched via moveResourceInputType property. 1733 MoveResources *[]string `json:"moveResources,omitempty"` 1734 // MoveResourceInputType - Possible values include: 'MoveResourceID', 'MoveResourceSourceID' 1735 MoveResourceInputType MoveResourceInputType `json:"moveResourceInputType,omitempty"` 1736} 1737 1738// ProxyResourceReference defines reference to a proxy resource. 1739type ProxyResourceReference struct { 1740 // Name - Gets the name of the proxy resource on the target side. 1741 Name *string `json:"name,omitempty"` 1742 // SourceArmResourceID - Gets the ARM resource ID of the tracked resource being referenced. 1743 SourceArmResourceID *string `json:"sourceArmResourceId,omitempty"` 1744} 1745 1746// PublicIPAddressResourceSettings defines the public IP address resource settings. 1747type PublicIPAddressResourceSettings struct { 1748 // DomainNameLabel - Gets or sets the domain name label. 1749 DomainNameLabel *string `json:"domainNameLabel,omitempty"` 1750 // Fqdn - Gets or sets the fully qualified domain name. 1751 Fqdn *string `json:"fqdn,omitempty"` 1752 // PublicIPAllocationMethod - Gets or sets public IP allocation method. 1753 PublicIPAllocationMethod *string `json:"publicIpAllocationMethod,omitempty"` 1754 // Sku - Gets or sets public IP sku. 1755 Sku *string `json:"sku,omitempty"` 1756 // Zones - Gets or sets public IP zones. 1757 Zones *string `json:"zones,omitempty"` 1758 // TargetResourceName - Gets or sets the target Resource name. 1759 TargetResourceName *string `json:"targetResourceName,omitempty"` 1760 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 1761 ResourceType ResourceType `json:"resourceType,omitempty"` 1762} 1763 1764// MarshalJSON is the custom marshaler for PublicIPAddressResourceSettings. 1765func (piars PublicIPAddressResourceSettings) MarshalJSON() ([]byte, error) { 1766 piars.ResourceType = ResourceTypeMicrosoftNetworkpublicIPAddresses 1767 objectMap := make(map[string]interface{}) 1768 if piars.DomainNameLabel != nil { 1769 objectMap["domainNameLabel"] = piars.DomainNameLabel 1770 } 1771 if piars.Fqdn != nil { 1772 objectMap["fqdn"] = piars.Fqdn 1773 } 1774 if piars.PublicIPAllocationMethod != nil { 1775 objectMap["publicIpAllocationMethod"] = piars.PublicIPAllocationMethod 1776 } 1777 if piars.Sku != nil { 1778 objectMap["sku"] = piars.Sku 1779 } 1780 if piars.Zones != nil { 1781 objectMap["zones"] = piars.Zones 1782 } 1783 if piars.TargetResourceName != nil { 1784 objectMap["targetResourceName"] = piars.TargetResourceName 1785 } 1786 if piars.ResourceType != "" { 1787 objectMap["resourceType"] = piars.ResourceType 1788 } 1789 return json.Marshal(objectMap) 1790} 1791 1792// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1793func (piars PublicIPAddressResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 1794 return nil, false 1795} 1796 1797// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1798func (piars PublicIPAddressResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 1799 return nil, false 1800} 1801 1802// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1803func (piars PublicIPAddressResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 1804 return nil, false 1805} 1806 1807// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1808func (piars PublicIPAddressResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 1809 return nil, false 1810} 1811 1812// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1813func (piars PublicIPAddressResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 1814 return nil, false 1815} 1816 1817// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1818func (piars PublicIPAddressResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 1819 return nil, false 1820} 1821 1822// AsSQLServerResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1823func (piars PublicIPAddressResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 1824 return nil, false 1825} 1826 1827// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1828func (piars PublicIPAddressResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 1829 return nil, false 1830} 1831 1832// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1833func (piars PublicIPAddressResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 1834 return nil, false 1835} 1836 1837// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1838func (piars PublicIPAddressResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 1839 return nil, false 1840} 1841 1842// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1843func (piars PublicIPAddressResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 1844 return &piars, true 1845} 1846 1847// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1848func (piars PublicIPAddressResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 1849 return nil, false 1850} 1851 1852// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1853func (piars PublicIPAddressResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 1854 return nil, false 1855} 1856 1857// AsResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1858func (piars PublicIPAddressResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 1859 return nil, false 1860} 1861 1862// AsBasicResourceSettings is the BasicResourceSettings implementation for PublicIPAddressResourceSettings. 1863func (piars PublicIPAddressResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 1864 return &piars, true 1865} 1866 1867// PublicIPReference defines reference to a public IP. 1868type PublicIPReference struct { 1869 // SourceArmResourceID - Gets the ARM resource ID of the tracked resource being referenced. 1870 SourceArmResourceID *string `json:"sourceArmResourceId,omitempty"` 1871} 1872 1873// RequiredForResourcesCollection required for resources collection. 1874type RequiredForResourcesCollection struct { 1875 autorest.Response `json:"-"` 1876 // SourceIds - Gets or sets the list of source Ids for which the input resource is required. 1877 SourceIds *[]string `json:"sourceIds,omitempty"` 1878} 1879 1880// ResourceGroupResourceSettings defines the resource group resource settings. 1881type ResourceGroupResourceSettings struct { 1882 // TargetResourceName - Gets or sets the target Resource name. 1883 TargetResourceName *string `json:"targetResourceName,omitempty"` 1884 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 1885 ResourceType ResourceType `json:"resourceType,omitempty"` 1886} 1887 1888// MarshalJSON is the custom marshaler for ResourceGroupResourceSettings. 1889func (rgrs ResourceGroupResourceSettings) MarshalJSON() ([]byte, error) { 1890 rgrs.ResourceType = ResourceTypeResourceGroups 1891 objectMap := make(map[string]interface{}) 1892 if rgrs.TargetResourceName != nil { 1893 objectMap["targetResourceName"] = rgrs.TargetResourceName 1894 } 1895 if rgrs.ResourceType != "" { 1896 objectMap["resourceType"] = rgrs.ResourceType 1897 } 1898 return json.Marshal(objectMap) 1899} 1900 1901// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1902func (rgrs ResourceGroupResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 1903 return nil, false 1904} 1905 1906// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1907func (rgrs ResourceGroupResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 1908 return nil, false 1909} 1910 1911// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1912func (rgrs ResourceGroupResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 1913 return nil, false 1914} 1915 1916// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1917func (rgrs ResourceGroupResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 1918 return nil, false 1919} 1920 1921// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1922func (rgrs ResourceGroupResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 1923 return nil, false 1924} 1925 1926// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1927func (rgrs ResourceGroupResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 1928 return nil, false 1929} 1930 1931// AsSQLServerResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1932func (rgrs ResourceGroupResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 1933 return nil, false 1934} 1935 1936// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1937func (rgrs ResourceGroupResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 1938 return nil, false 1939} 1940 1941// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1942func (rgrs ResourceGroupResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 1943 return nil, false 1944} 1945 1946// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1947func (rgrs ResourceGroupResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 1948 return &rgrs, true 1949} 1950 1951// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1952func (rgrs ResourceGroupResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 1953 return nil, false 1954} 1955 1956// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1957func (rgrs ResourceGroupResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 1958 return nil, false 1959} 1960 1961// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1962func (rgrs ResourceGroupResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 1963 return nil, false 1964} 1965 1966// AsResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1967func (rgrs ResourceGroupResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 1968 return nil, false 1969} 1970 1971// AsBasicResourceSettings is the BasicResourceSettings implementation for ResourceGroupResourceSettings. 1972func (rgrs ResourceGroupResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 1973 return &rgrs, true 1974} 1975 1976// ResourceMoveRequestType defines the request body for resource move operation. 1977type ResourceMoveRequestType struct { 1978 // ValidateOnly - Gets or sets a value indicating whether the operation needs to only run pre-requisite. 1979 ValidateOnly *bool `json:"validateOnly,omitempty"` 1980 // MoveResources - Gets or sets the list of resource Id's, by default it accepts move resource id's unless the input type is switched via moveResourceInputType property. 1981 MoveResources *[]string `json:"moveResources,omitempty"` 1982 // MoveResourceInputType - Possible values include: 'MoveResourceID', 'MoveResourceSourceID' 1983 MoveResourceInputType MoveResourceInputType `json:"moveResourceInputType,omitempty"` 1984} 1985 1986// BasicResourceSettings gets or sets the resource settings. 1987type BasicResourceSettings interface { 1988 AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) 1989 AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) 1990 AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) 1991 AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) 1992 AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) 1993 AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) 1994 AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) 1995 AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) 1996 AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) 1997 AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) 1998 AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) 1999 AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) 2000 AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) 2001 AsResourceSettings() (*ResourceSettings, bool) 2002} 2003 2004// ResourceSettings gets or sets the resource settings. 2005type ResourceSettings struct { 2006 // TargetResourceName - Gets or sets the target Resource name. 2007 TargetResourceName *string `json:"targetResourceName,omitempty"` 2008 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 2009 ResourceType ResourceType `json:"resourceType,omitempty"` 2010} 2011 2012func unmarshalBasicResourceSettings(body []byte) (BasicResourceSettings, error) { 2013 var m map[string]interface{} 2014 err := json.Unmarshal(body, &m) 2015 if err != nil { 2016 return nil, err 2017 } 2018 2019 switch m["resourceType"] { 2020 case string(ResourceTypeMicrosoftComputevirtualMachines): 2021 var vmrs VirtualMachineResourceSettings 2022 err := json.Unmarshal(body, &vmrs) 2023 return vmrs, err 2024 case string(ResourceTypeMicrosoftComputeavailabilitySets): 2025 var asrs AvailabilitySetResourceSettings 2026 err := json.Unmarshal(body, &asrs) 2027 return asrs, err 2028 case string(ResourceTypeMicrosoftNetworkvirtualNetworks): 2029 var vnrs VirtualNetworkResourceSettings 2030 err := json.Unmarshal(body, &vnrs) 2031 return vnrs, err 2032 case string(ResourceTypeMicrosoftNetworknetworkInterfaces): 2033 var nirs NetworkInterfaceResourceSettings 2034 err := json.Unmarshal(body, &nirs) 2035 return nirs, err 2036 case string(ResourceTypeMicrosoftNetworknetworkSecurityGroups): 2037 var nsgrs NetworkSecurityGroupResourceSettings 2038 err := json.Unmarshal(body, &nsgrs) 2039 return nsgrs, err 2040 case string(ResourceTypeMicrosoftNetworkloadBalancers): 2041 var lbrs LoadBalancerResourceSettings 2042 err := json.Unmarshal(body, &lbrs) 2043 return lbrs, err 2044 case string(ResourceTypeMicrosoftSqlservers): 2045 var ssrs SQLServerResourceSettings 2046 err := json.Unmarshal(body, &ssrs) 2047 return ssrs, err 2048 case string(ResourceTypeMicrosoftSqlserverselasticPools): 2049 var seprs SQLElasticPoolResourceSettings 2050 err := json.Unmarshal(body, &seprs) 2051 return seprs, err 2052 case string(ResourceTypeMicrosoftSqlserversdatabases): 2053 var sdrs SQLDatabaseResourceSettings 2054 err := json.Unmarshal(body, &sdrs) 2055 return sdrs, err 2056 case string(ResourceTypeResourceGroups): 2057 var rgrs ResourceGroupResourceSettings 2058 err := json.Unmarshal(body, &rgrs) 2059 return rgrs, err 2060 case string(ResourceTypeMicrosoftNetworkpublicIPAddresses): 2061 var piars PublicIPAddressResourceSettings 2062 err := json.Unmarshal(body, &piars) 2063 return piars, err 2064 case string(ResourceTypeMicrosoftKeyVaultvaults): 2065 var kvrs KeyVaultResourceSettings 2066 err := json.Unmarshal(body, &kvrs) 2067 return kvrs, err 2068 case string(ResourceTypeMicrosoftComputediskEncryptionSets): 2069 var desrs DiskEncryptionSetResourceSettings 2070 err := json.Unmarshal(body, &desrs) 2071 return desrs, err 2072 default: 2073 var rs ResourceSettings 2074 err := json.Unmarshal(body, &rs) 2075 return rs, err 2076 } 2077} 2078func unmarshalBasicResourceSettingsArray(body []byte) ([]BasicResourceSettings, error) { 2079 var rawMessages []*json.RawMessage 2080 err := json.Unmarshal(body, &rawMessages) 2081 if err != nil { 2082 return nil, err 2083 } 2084 2085 rsArray := make([]BasicResourceSettings, len(rawMessages)) 2086 2087 for index, rawMessage := range rawMessages { 2088 rs, err := unmarshalBasicResourceSettings(*rawMessage) 2089 if err != nil { 2090 return nil, err 2091 } 2092 rsArray[index] = rs 2093 } 2094 return rsArray, nil 2095} 2096 2097// MarshalJSON is the custom marshaler for ResourceSettings. 2098func (rs ResourceSettings) MarshalJSON() ([]byte, error) { 2099 rs.ResourceType = ResourceTypeResourceSettings 2100 objectMap := make(map[string]interface{}) 2101 if rs.TargetResourceName != nil { 2102 objectMap["targetResourceName"] = rs.TargetResourceName 2103 } 2104 if rs.ResourceType != "" { 2105 objectMap["resourceType"] = rs.ResourceType 2106 } 2107 return json.Marshal(objectMap) 2108} 2109 2110// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2111func (rs ResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 2112 return nil, false 2113} 2114 2115// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2116func (rs ResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 2117 return nil, false 2118} 2119 2120// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2121func (rs ResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 2122 return nil, false 2123} 2124 2125// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2126func (rs ResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 2127 return nil, false 2128} 2129 2130// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2131func (rs ResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 2132 return nil, false 2133} 2134 2135// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2136func (rs ResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 2137 return nil, false 2138} 2139 2140// AsSQLServerResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2141func (rs ResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 2142 return nil, false 2143} 2144 2145// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2146func (rs ResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 2147 return nil, false 2148} 2149 2150// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2151func (rs ResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 2152 return nil, false 2153} 2154 2155// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2156func (rs ResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 2157 return nil, false 2158} 2159 2160// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2161func (rs ResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 2162 return nil, false 2163} 2164 2165// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2166func (rs ResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 2167 return nil, false 2168} 2169 2170// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2171func (rs ResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 2172 return nil, false 2173} 2174 2175// AsResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2176func (rs ResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 2177 return &rs, true 2178} 2179 2180// AsBasicResourceSettings is the BasicResourceSettings implementation for ResourceSettings. 2181func (rs ResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 2182 return &rs, true 2183} 2184 2185// SQLDatabaseResourceSettings defines the Sql Database resource settings. 2186type SQLDatabaseResourceSettings struct { 2187 // ZoneRedundant - Possible values include: 'Enable', 'Disable' 2188 ZoneRedundant ZoneRedundant `json:"zoneRedundant,omitempty"` 2189 // TargetResourceName - Gets or sets the target Resource name. 2190 TargetResourceName *string `json:"targetResourceName,omitempty"` 2191 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 2192 ResourceType ResourceType `json:"resourceType,omitempty"` 2193} 2194 2195// MarshalJSON is the custom marshaler for SQLDatabaseResourceSettings. 2196func (sdrs SQLDatabaseResourceSettings) MarshalJSON() ([]byte, error) { 2197 sdrs.ResourceType = ResourceTypeMicrosoftSqlserversdatabases 2198 objectMap := make(map[string]interface{}) 2199 if sdrs.ZoneRedundant != "" { 2200 objectMap["zoneRedundant"] = sdrs.ZoneRedundant 2201 } 2202 if sdrs.TargetResourceName != nil { 2203 objectMap["targetResourceName"] = sdrs.TargetResourceName 2204 } 2205 if sdrs.ResourceType != "" { 2206 objectMap["resourceType"] = sdrs.ResourceType 2207 } 2208 return json.Marshal(objectMap) 2209} 2210 2211// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2212func (sdrs SQLDatabaseResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 2213 return nil, false 2214} 2215 2216// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2217func (sdrs SQLDatabaseResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 2218 return nil, false 2219} 2220 2221// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2222func (sdrs SQLDatabaseResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 2223 return nil, false 2224} 2225 2226// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2227func (sdrs SQLDatabaseResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 2228 return nil, false 2229} 2230 2231// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2232func (sdrs SQLDatabaseResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 2233 return nil, false 2234} 2235 2236// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2237func (sdrs SQLDatabaseResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 2238 return nil, false 2239} 2240 2241// AsSQLServerResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2242func (sdrs SQLDatabaseResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 2243 return nil, false 2244} 2245 2246// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2247func (sdrs SQLDatabaseResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 2248 return nil, false 2249} 2250 2251// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2252func (sdrs SQLDatabaseResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 2253 return &sdrs, true 2254} 2255 2256// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2257func (sdrs SQLDatabaseResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 2258 return nil, false 2259} 2260 2261// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2262func (sdrs SQLDatabaseResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 2263 return nil, false 2264} 2265 2266// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2267func (sdrs SQLDatabaseResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 2268 return nil, false 2269} 2270 2271// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2272func (sdrs SQLDatabaseResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 2273 return nil, false 2274} 2275 2276// AsResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2277func (sdrs SQLDatabaseResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 2278 return nil, false 2279} 2280 2281// AsBasicResourceSettings is the BasicResourceSettings implementation for SQLDatabaseResourceSettings. 2282func (sdrs SQLDatabaseResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 2283 return &sdrs, true 2284} 2285 2286// SQLElasticPoolResourceSettings defines the Sql ElasticPool resource settings. 2287type SQLElasticPoolResourceSettings struct { 2288 // ZoneRedundant - Possible values include: 'Enable', 'Disable' 2289 ZoneRedundant ZoneRedundant `json:"zoneRedundant,omitempty"` 2290 // TargetResourceName - Gets or sets the target Resource name. 2291 TargetResourceName *string `json:"targetResourceName,omitempty"` 2292 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 2293 ResourceType ResourceType `json:"resourceType,omitempty"` 2294} 2295 2296// MarshalJSON is the custom marshaler for SQLElasticPoolResourceSettings. 2297func (seprs SQLElasticPoolResourceSettings) MarshalJSON() ([]byte, error) { 2298 seprs.ResourceType = ResourceTypeMicrosoftSqlserverselasticPools 2299 objectMap := make(map[string]interface{}) 2300 if seprs.ZoneRedundant != "" { 2301 objectMap["zoneRedundant"] = seprs.ZoneRedundant 2302 } 2303 if seprs.TargetResourceName != nil { 2304 objectMap["targetResourceName"] = seprs.TargetResourceName 2305 } 2306 if seprs.ResourceType != "" { 2307 objectMap["resourceType"] = seprs.ResourceType 2308 } 2309 return json.Marshal(objectMap) 2310} 2311 2312// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2313func (seprs SQLElasticPoolResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 2314 return nil, false 2315} 2316 2317// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2318func (seprs SQLElasticPoolResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 2319 return nil, false 2320} 2321 2322// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2323func (seprs SQLElasticPoolResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 2324 return nil, false 2325} 2326 2327// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2328func (seprs SQLElasticPoolResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 2329 return nil, false 2330} 2331 2332// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2333func (seprs SQLElasticPoolResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 2334 return nil, false 2335} 2336 2337// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2338func (seprs SQLElasticPoolResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 2339 return nil, false 2340} 2341 2342// AsSQLServerResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2343func (seprs SQLElasticPoolResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 2344 return nil, false 2345} 2346 2347// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2348func (seprs SQLElasticPoolResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 2349 return &seprs, true 2350} 2351 2352// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2353func (seprs SQLElasticPoolResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 2354 return nil, false 2355} 2356 2357// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2358func (seprs SQLElasticPoolResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 2359 return nil, false 2360} 2361 2362// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2363func (seprs SQLElasticPoolResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 2364 return nil, false 2365} 2366 2367// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2368func (seprs SQLElasticPoolResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 2369 return nil, false 2370} 2371 2372// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2373func (seprs SQLElasticPoolResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 2374 return nil, false 2375} 2376 2377// AsResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2378func (seprs SQLElasticPoolResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 2379 return nil, false 2380} 2381 2382// AsBasicResourceSettings is the BasicResourceSettings implementation for SQLElasticPoolResourceSettings. 2383func (seprs SQLElasticPoolResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 2384 return &seprs, true 2385} 2386 2387// SQLServerResourceSettings defines the SQL Server resource settings. 2388type SQLServerResourceSettings struct { 2389 // TargetResourceName - Gets or sets the target Resource name. 2390 TargetResourceName *string `json:"targetResourceName,omitempty"` 2391 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 2392 ResourceType ResourceType `json:"resourceType,omitempty"` 2393} 2394 2395// MarshalJSON is the custom marshaler for SQLServerResourceSettings. 2396func (ssrs SQLServerResourceSettings) MarshalJSON() ([]byte, error) { 2397 ssrs.ResourceType = ResourceTypeMicrosoftSqlservers 2398 objectMap := make(map[string]interface{}) 2399 if ssrs.TargetResourceName != nil { 2400 objectMap["targetResourceName"] = ssrs.TargetResourceName 2401 } 2402 if ssrs.ResourceType != "" { 2403 objectMap["resourceType"] = ssrs.ResourceType 2404 } 2405 return json.Marshal(objectMap) 2406} 2407 2408// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2409func (ssrs SQLServerResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 2410 return nil, false 2411} 2412 2413// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2414func (ssrs SQLServerResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 2415 return nil, false 2416} 2417 2418// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2419func (ssrs SQLServerResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 2420 return nil, false 2421} 2422 2423// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2424func (ssrs SQLServerResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 2425 return nil, false 2426} 2427 2428// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2429func (ssrs SQLServerResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 2430 return nil, false 2431} 2432 2433// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2434func (ssrs SQLServerResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 2435 return nil, false 2436} 2437 2438// AsSQLServerResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2439func (ssrs SQLServerResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 2440 return &ssrs, true 2441} 2442 2443// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2444func (ssrs SQLServerResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 2445 return nil, false 2446} 2447 2448// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2449func (ssrs SQLServerResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 2450 return nil, false 2451} 2452 2453// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2454func (ssrs SQLServerResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 2455 return nil, false 2456} 2457 2458// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2459func (ssrs SQLServerResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 2460 return nil, false 2461} 2462 2463// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2464func (ssrs SQLServerResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 2465 return nil, false 2466} 2467 2468// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2469func (ssrs SQLServerResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 2470 return nil, false 2471} 2472 2473// AsResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2474func (ssrs SQLServerResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 2475 return nil, false 2476} 2477 2478// AsBasicResourceSettings is the BasicResourceSettings implementation for SQLServerResourceSettings. 2479func (ssrs SQLServerResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 2480 return &ssrs, true 2481} 2482 2483// SubnetReference defines reference to subnet. 2484type SubnetReference struct { 2485 // Name - Gets the name of the proxy resource on the target side. 2486 Name *string `json:"name,omitempty"` 2487 // SourceArmResourceID - Gets the ARM resource ID of the tracked resource being referenced. 2488 SourceArmResourceID *string `json:"sourceArmResourceId,omitempty"` 2489} 2490 2491// SubnetResourceSettings defines the virtual network subnets resource settings. 2492type SubnetResourceSettings struct { 2493 // Name - Gets or sets the Subnet name. 2494 Name *string `json:"name,omitempty"` 2495 // AddressPrefix - Gets or sets address prefix for the subnet. 2496 AddressPrefix *string `json:"addressPrefix,omitempty"` 2497 NetworkSecurityGroup *NsgReference `json:"networkSecurityGroup,omitempty"` 2498} 2499 2500// Summary summary item. 2501type Summary struct { 2502 // Count - Gets the count. 2503 Count *int32 `json:"count,omitempty"` 2504 // Item - Gets the item. 2505 Item *string `json:"item,omitempty"` 2506} 2507 2508// SummaryCollection summary Collection. 2509type SummaryCollection struct { 2510 // FieldName - Gets or sets the field name on which summary is done. 2511 FieldName *string `json:"fieldName,omitempty"` 2512 // Summary - Gets or sets the list of summary items. 2513 Summary *[]Summary `json:"summary,omitempty"` 2514} 2515 2516// UnresolvedDependenciesFilter unresolved dependencies contract. 2517type UnresolvedDependenciesFilter struct { 2518 Properties *UnresolvedDependenciesFilterProperties `json:"properties,omitempty"` 2519} 2520 2521// UnresolvedDependenciesFilterProperties ... 2522type UnresolvedDependenciesFilterProperties struct { 2523 // Count - The count of the resource. 2524 Count *int32 `json:"count,omitempty"` 2525} 2526 2527// UnresolvedDependency unresolved dependency. 2528type UnresolvedDependency struct { 2529 // Count - Gets or sets the count. 2530 Count *int32 `json:"count,omitempty"` 2531 // ID - Gets or sets the arm id of the dependency. 2532 ID *string `json:"id,omitempty"` 2533} 2534 2535// UnresolvedDependencyCollection unresolved dependency collection. 2536type UnresolvedDependencyCollection struct { 2537 autorest.Response `json:"-"` 2538 // Value - Gets or sets the list of unresolved dependencies. 2539 Value *[]UnresolvedDependency `json:"value,omitempty"` 2540 // NextLink - Gets or sets the value of next link. 2541 NextLink *string `json:"nextLink,omitempty"` 2542 // SummaryCollection - READ-ONLY; Gets or sets the list of summary items and the field on which summary is done. 2543 SummaryCollection *SummaryCollection `json:"summaryCollection,omitempty"` 2544 // TotalCount - READ-ONLY; Gets the total count. 2545 TotalCount *int64 `json:"totalCount,omitempty"` 2546} 2547 2548// MarshalJSON is the custom marshaler for UnresolvedDependencyCollection. 2549func (udc UnresolvedDependencyCollection) MarshalJSON() ([]byte, error) { 2550 objectMap := make(map[string]interface{}) 2551 if udc.Value != nil { 2552 objectMap["value"] = udc.Value 2553 } 2554 if udc.NextLink != nil { 2555 objectMap["nextLink"] = udc.NextLink 2556 } 2557 return json.Marshal(objectMap) 2558} 2559 2560// UnresolvedDependencyCollectionIterator provides access to a complete listing of UnresolvedDependency 2561// values. 2562type UnresolvedDependencyCollectionIterator struct { 2563 i int 2564 page UnresolvedDependencyCollectionPage 2565} 2566 2567// NextWithContext advances to the next value. If there was an error making 2568// the request the iterator does not advance and the error is returned. 2569func (iter *UnresolvedDependencyCollectionIterator) NextWithContext(ctx context.Context) (err error) { 2570 if tracing.IsEnabled() { 2571 ctx = tracing.StartSpan(ctx, fqdn+"/UnresolvedDependencyCollectionIterator.NextWithContext") 2572 defer func() { 2573 sc := -1 2574 if iter.Response().Response.Response != nil { 2575 sc = iter.Response().Response.Response.StatusCode 2576 } 2577 tracing.EndSpan(ctx, sc, err) 2578 }() 2579 } 2580 iter.i++ 2581 if iter.i < len(iter.page.Values()) { 2582 return nil 2583 } 2584 err = iter.page.NextWithContext(ctx) 2585 if err != nil { 2586 iter.i-- 2587 return err 2588 } 2589 iter.i = 0 2590 return nil 2591} 2592 2593// Next advances to the next value. If there was an error making 2594// the request the iterator does not advance and the error is returned. 2595// Deprecated: Use NextWithContext() instead. 2596func (iter *UnresolvedDependencyCollectionIterator) Next() error { 2597 return iter.NextWithContext(context.Background()) 2598} 2599 2600// NotDone returns true if the enumeration should be started or is not yet complete. 2601func (iter UnresolvedDependencyCollectionIterator) NotDone() bool { 2602 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 2603} 2604 2605// Response returns the raw server response from the last page request. 2606func (iter UnresolvedDependencyCollectionIterator) Response() UnresolvedDependencyCollection { 2607 return iter.page.Response() 2608} 2609 2610// Value returns the current value or a zero-initialized value if the 2611// iterator has advanced beyond the end of the collection. 2612func (iter UnresolvedDependencyCollectionIterator) Value() UnresolvedDependency { 2613 if !iter.page.NotDone() { 2614 return UnresolvedDependency{} 2615 } 2616 return iter.page.Values()[iter.i] 2617} 2618 2619// Creates a new instance of the UnresolvedDependencyCollectionIterator type. 2620func NewUnresolvedDependencyCollectionIterator(page UnresolvedDependencyCollectionPage) UnresolvedDependencyCollectionIterator { 2621 return UnresolvedDependencyCollectionIterator{page: page} 2622} 2623 2624// IsEmpty returns true if the ListResult contains no values. 2625func (udc UnresolvedDependencyCollection) IsEmpty() bool { 2626 return udc.Value == nil || len(*udc.Value) == 0 2627} 2628 2629// hasNextLink returns true if the NextLink is not empty. 2630func (udc UnresolvedDependencyCollection) hasNextLink() bool { 2631 return udc.NextLink != nil && len(*udc.NextLink) != 0 2632} 2633 2634// unresolvedDependencyCollectionPreparer prepares a request to retrieve the next set of results. 2635// It returns nil if no more results exist. 2636func (udc UnresolvedDependencyCollection) unresolvedDependencyCollectionPreparer(ctx context.Context) (*http.Request, error) { 2637 if !udc.hasNextLink() { 2638 return nil, nil 2639 } 2640 return autorest.Prepare((&http.Request{}).WithContext(ctx), 2641 autorest.AsJSON(), 2642 autorest.AsGet(), 2643 autorest.WithBaseURL(to.String(udc.NextLink))) 2644} 2645 2646// UnresolvedDependencyCollectionPage contains a page of UnresolvedDependency values. 2647type UnresolvedDependencyCollectionPage struct { 2648 fn func(context.Context, UnresolvedDependencyCollection) (UnresolvedDependencyCollection, error) 2649 udc UnresolvedDependencyCollection 2650} 2651 2652// NextWithContext advances to the next page of values. If there was an error making 2653// the request the page does not advance and the error is returned. 2654func (page *UnresolvedDependencyCollectionPage) NextWithContext(ctx context.Context) (err error) { 2655 if tracing.IsEnabled() { 2656 ctx = tracing.StartSpan(ctx, fqdn+"/UnresolvedDependencyCollectionPage.NextWithContext") 2657 defer func() { 2658 sc := -1 2659 if page.Response().Response.Response != nil { 2660 sc = page.Response().Response.Response.StatusCode 2661 } 2662 tracing.EndSpan(ctx, sc, err) 2663 }() 2664 } 2665 for { 2666 next, err := page.fn(ctx, page.udc) 2667 if err != nil { 2668 return err 2669 } 2670 page.udc = next 2671 if !next.hasNextLink() || !next.IsEmpty() { 2672 break 2673 } 2674 } 2675 return nil 2676} 2677 2678// Next advances to the next page of values. If there was an error making 2679// the request the page does not advance and the error is returned. 2680// Deprecated: Use NextWithContext() instead. 2681func (page *UnresolvedDependencyCollectionPage) Next() error { 2682 return page.NextWithContext(context.Background()) 2683} 2684 2685// NotDone returns true if the page enumeration should be started or is not yet complete. 2686func (page UnresolvedDependencyCollectionPage) NotDone() bool { 2687 return !page.udc.IsEmpty() 2688} 2689 2690// Response returns the raw server response from the last page request. 2691func (page UnresolvedDependencyCollectionPage) Response() UnresolvedDependencyCollection { 2692 return page.udc 2693} 2694 2695// Values returns the slice of values for the current page or nil if there are no values. 2696func (page UnresolvedDependencyCollectionPage) Values() []UnresolvedDependency { 2697 if page.udc.IsEmpty() { 2698 return nil 2699 } 2700 return *page.udc.Value 2701} 2702 2703// Creates a new instance of the UnresolvedDependencyCollectionPage type. 2704func NewUnresolvedDependencyCollectionPage(cur UnresolvedDependencyCollection, getNextPage func(context.Context, UnresolvedDependencyCollection) (UnresolvedDependencyCollection, error)) UnresolvedDependencyCollectionPage { 2705 return UnresolvedDependencyCollectionPage{ 2706 fn: getNextPage, 2707 udc: cur, 2708 } 2709} 2710 2711// UpdateMoveCollectionRequest defines the request body for updating move collection. 2712type UpdateMoveCollectionRequest struct { 2713 // Tags - Gets or sets the Resource tags. 2714 Tags map[string]*string `json:"tags"` 2715 Identity *Identity `json:"identity,omitempty"` 2716} 2717 2718// MarshalJSON is the custom marshaler for UpdateMoveCollectionRequest. 2719func (umcr UpdateMoveCollectionRequest) MarshalJSON() ([]byte, error) { 2720 objectMap := make(map[string]interface{}) 2721 if umcr.Tags != nil { 2722 objectMap["tags"] = umcr.Tags 2723 } 2724 if umcr.Identity != nil { 2725 objectMap["identity"] = umcr.Identity 2726 } 2727 return json.Marshal(objectMap) 2728} 2729 2730// VirtualMachineResourceSettings gets or sets the virtual machine resource settings. 2731type VirtualMachineResourceSettings struct { 2732 // TargetAvailabilityZone - Gets or sets the target availability zone. Possible values include: 'One', 'Two', 'Three', 'NA' 2733 TargetAvailabilityZone TargetAvailabilityZone `json:"targetAvailabilityZone,omitempty"` 2734 // TargetVMSize - Gets or sets the target virtual machine size. 2735 TargetVMSize *string `json:"targetVmSize,omitempty"` 2736 // TargetAvailabilitySetID - Gets or sets the target availability set id for virtual machines not in an availability set at source. 2737 TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` 2738 // TargetResourceName - Gets or sets the target Resource name. 2739 TargetResourceName *string `json:"targetResourceName,omitempty"` 2740 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 2741 ResourceType ResourceType `json:"resourceType,omitempty"` 2742} 2743 2744// MarshalJSON is the custom marshaler for VirtualMachineResourceSettings. 2745func (vmrs VirtualMachineResourceSettings) MarshalJSON() ([]byte, error) { 2746 vmrs.ResourceType = ResourceTypeMicrosoftComputevirtualMachines 2747 objectMap := make(map[string]interface{}) 2748 if vmrs.TargetAvailabilityZone != "" { 2749 objectMap["targetAvailabilityZone"] = vmrs.TargetAvailabilityZone 2750 } 2751 if vmrs.TargetVMSize != nil { 2752 objectMap["targetVmSize"] = vmrs.TargetVMSize 2753 } 2754 if vmrs.TargetAvailabilitySetID != nil { 2755 objectMap["targetAvailabilitySetId"] = vmrs.TargetAvailabilitySetID 2756 } 2757 if vmrs.TargetResourceName != nil { 2758 objectMap["targetResourceName"] = vmrs.TargetResourceName 2759 } 2760 if vmrs.ResourceType != "" { 2761 objectMap["resourceType"] = vmrs.ResourceType 2762 } 2763 return json.Marshal(objectMap) 2764} 2765 2766// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2767func (vmrs VirtualMachineResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 2768 return &vmrs, true 2769} 2770 2771// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2772func (vmrs VirtualMachineResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 2773 return nil, false 2774} 2775 2776// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2777func (vmrs VirtualMachineResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 2778 return nil, false 2779} 2780 2781// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2782func (vmrs VirtualMachineResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 2783 return nil, false 2784} 2785 2786// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2787func (vmrs VirtualMachineResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 2788 return nil, false 2789} 2790 2791// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2792func (vmrs VirtualMachineResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 2793 return nil, false 2794} 2795 2796// AsSQLServerResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2797func (vmrs VirtualMachineResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 2798 return nil, false 2799} 2800 2801// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2802func (vmrs VirtualMachineResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 2803 return nil, false 2804} 2805 2806// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2807func (vmrs VirtualMachineResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 2808 return nil, false 2809} 2810 2811// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2812func (vmrs VirtualMachineResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 2813 return nil, false 2814} 2815 2816// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2817func (vmrs VirtualMachineResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 2818 return nil, false 2819} 2820 2821// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2822func (vmrs VirtualMachineResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 2823 return nil, false 2824} 2825 2826// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2827func (vmrs VirtualMachineResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 2828 return nil, false 2829} 2830 2831// AsResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2832func (vmrs VirtualMachineResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 2833 return nil, false 2834} 2835 2836// AsBasicResourceSettings is the BasicResourceSettings implementation for VirtualMachineResourceSettings. 2837func (vmrs VirtualMachineResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 2838 return &vmrs, true 2839} 2840 2841// VirtualNetworkResourceSettings defines the virtual network resource settings. 2842type VirtualNetworkResourceSettings struct { 2843 // EnableDdosProtection - Gets or sets a value indicating whether gets or sets whether the 2844 // DDOS protection should be switched on. 2845 EnableDdosProtection *bool `json:"enableDdosProtection,omitempty"` 2846 // AddressSpace - Gets or sets the address prefixes for the virtual network. 2847 AddressSpace *[]string `json:"addressSpace,omitempty"` 2848 // DNSServers - Gets or sets DHCPOptions that contains an array of DNS servers available to VMs 2849 // deployed in the virtual network. 2850 DNSServers *[]string `json:"dnsServers,omitempty"` 2851 // Subnets - Gets or sets List of subnets in a VirtualNetwork. 2852 Subnets *[]SubnetResourceSettings `json:"subnets,omitempty"` 2853 // TargetResourceName - Gets or sets the target Resource name. 2854 TargetResourceName *string `json:"targetResourceName,omitempty"` 2855 // ResourceType - Possible values include: 'ResourceTypeResourceSettings', 'ResourceTypeMicrosoftComputevirtualMachines', 'ResourceTypeMicrosoftComputeavailabilitySets', 'ResourceTypeMicrosoftNetworkvirtualNetworks', 'ResourceTypeMicrosoftNetworknetworkInterfaces', 'ResourceTypeMicrosoftNetworknetworkSecurityGroups', 'ResourceTypeMicrosoftNetworkloadBalancers', 'ResourceTypeMicrosoftSqlservers', 'ResourceTypeMicrosoftSqlserverselasticPools', 'ResourceTypeMicrosoftSqlserversdatabases', 'ResourceTypeResourceGroups', 'ResourceTypeMicrosoftNetworkpublicIPAddresses', 'ResourceTypeMicrosoftKeyVaultvaults', 'ResourceTypeMicrosoftComputediskEncryptionSets' 2856 ResourceType ResourceType `json:"resourceType,omitempty"` 2857} 2858 2859// MarshalJSON is the custom marshaler for VirtualNetworkResourceSettings. 2860func (vnrs VirtualNetworkResourceSettings) MarshalJSON() ([]byte, error) { 2861 vnrs.ResourceType = ResourceTypeMicrosoftNetworkvirtualNetworks 2862 objectMap := make(map[string]interface{}) 2863 if vnrs.EnableDdosProtection != nil { 2864 objectMap["enableDdosProtection"] = vnrs.EnableDdosProtection 2865 } 2866 if vnrs.AddressSpace != nil { 2867 objectMap["addressSpace"] = vnrs.AddressSpace 2868 } 2869 if vnrs.DNSServers != nil { 2870 objectMap["dnsServers"] = vnrs.DNSServers 2871 } 2872 if vnrs.Subnets != nil { 2873 objectMap["subnets"] = vnrs.Subnets 2874 } 2875 if vnrs.TargetResourceName != nil { 2876 objectMap["targetResourceName"] = vnrs.TargetResourceName 2877 } 2878 if vnrs.ResourceType != "" { 2879 objectMap["resourceType"] = vnrs.ResourceType 2880 } 2881 return json.Marshal(objectMap) 2882} 2883 2884// AsVirtualMachineResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2885func (vnrs VirtualNetworkResourceSettings) AsVirtualMachineResourceSettings() (*VirtualMachineResourceSettings, bool) { 2886 return nil, false 2887} 2888 2889// AsAvailabilitySetResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2890func (vnrs VirtualNetworkResourceSettings) AsAvailabilitySetResourceSettings() (*AvailabilitySetResourceSettings, bool) { 2891 return nil, false 2892} 2893 2894// AsVirtualNetworkResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2895func (vnrs VirtualNetworkResourceSettings) AsVirtualNetworkResourceSettings() (*VirtualNetworkResourceSettings, bool) { 2896 return &vnrs, true 2897} 2898 2899// AsNetworkInterfaceResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2900func (vnrs VirtualNetworkResourceSettings) AsNetworkInterfaceResourceSettings() (*NetworkInterfaceResourceSettings, bool) { 2901 return nil, false 2902} 2903 2904// AsNetworkSecurityGroupResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2905func (vnrs VirtualNetworkResourceSettings) AsNetworkSecurityGroupResourceSettings() (*NetworkSecurityGroupResourceSettings, bool) { 2906 return nil, false 2907} 2908 2909// AsLoadBalancerResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2910func (vnrs VirtualNetworkResourceSettings) AsLoadBalancerResourceSettings() (*LoadBalancerResourceSettings, bool) { 2911 return nil, false 2912} 2913 2914// AsSQLServerResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2915func (vnrs VirtualNetworkResourceSettings) AsSQLServerResourceSettings() (*SQLServerResourceSettings, bool) { 2916 return nil, false 2917} 2918 2919// AsSQLElasticPoolResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2920func (vnrs VirtualNetworkResourceSettings) AsSQLElasticPoolResourceSettings() (*SQLElasticPoolResourceSettings, bool) { 2921 return nil, false 2922} 2923 2924// AsSQLDatabaseResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2925func (vnrs VirtualNetworkResourceSettings) AsSQLDatabaseResourceSettings() (*SQLDatabaseResourceSettings, bool) { 2926 return nil, false 2927} 2928 2929// AsResourceGroupResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2930func (vnrs VirtualNetworkResourceSettings) AsResourceGroupResourceSettings() (*ResourceGroupResourceSettings, bool) { 2931 return nil, false 2932} 2933 2934// AsPublicIPAddressResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2935func (vnrs VirtualNetworkResourceSettings) AsPublicIPAddressResourceSettings() (*PublicIPAddressResourceSettings, bool) { 2936 return nil, false 2937} 2938 2939// AsKeyVaultResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2940func (vnrs VirtualNetworkResourceSettings) AsKeyVaultResourceSettings() (*KeyVaultResourceSettings, bool) { 2941 return nil, false 2942} 2943 2944// AsDiskEncryptionSetResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2945func (vnrs VirtualNetworkResourceSettings) AsDiskEncryptionSetResourceSettings() (*DiskEncryptionSetResourceSettings, bool) { 2946 return nil, false 2947} 2948 2949// AsResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2950func (vnrs VirtualNetworkResourceSettings) AsResourceSettings() (*ResourceSettings, bool) { 2951 return nil, false 2952} 2953 2954// AsBasicResourceSettings is the BasicResourceSettings implementation for VirtualNetworkResourceSettings. 2955func (vnrs VirtualNetworkResourceSettings) AsBasicResourceSettings() (BasicResourceSettings, bool) { 2956 return &vnrs, true 2957} 2958