1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
// +build go1.7
package virtualmachinedisk
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
import (
"encoding/xml"
"github.com/Azure/azure-sdk-for-go/services/classic/management"
)
// DiskClient is used to perform operations on Azure Disks
type DiskClient struct {
client management.Client
}
// CreateDiskParameters represents a disk
//
// https://msdn.microsoft.com/en-us/library/azure/jj157188.aspx
type CreateDiskParameters struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure Disk"`
OS OperatingSystemType `xml:",omitempty"`
Label string
MediaLink string `xml:",omitempty"`
Name string
}
// UpdateDiskParameters represents a disk
//
// https://msdn.microsoft.com/en-us/library/azure/jj157188.aspx
type UpdateDiskParameters struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure Disk"`
Label string `xml:",omitempty"`
Name string
ResizedSizeInGB int `xml:",omitempty"`
}
// ListDiskResponse represents a disk
//
// https://msdn.microsoft.com/en-us/library/azure/jj157188.aspx
type ListDiskResponse struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure Disks"`
Disk []DiskResponse
}
// DiskResponse represents a disk
//
// https://msdn.microsoft.com/en-us/library/azure/jj157188.aspx
type DiskResponse struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure Disk"`
AffinityGroup string
AttachedTo Resource
IsCorrupted bool
OS OperatingSystemType
Location string
LogicalDiskSizeInGB int
MediaLink string
Name string
SourceImageName string
CreatedTime string
IOType IOType
}
// Resource describes the resource details a disk is currently attached to
type Resource struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure AttachedTo"`
DeploymentName string
HostedServiceName string
RoleName string
}
// IOType represents an IO type
type IOType string
// These constants represent the possible IO types
const (
IOTypeProvisioned IOType = "Provisioned"
IOTypeStandard IOType = "Standard"
)
// OperatingSystemType represents an operating system type
type OperatingSystemType string
// These constants represent the valid operating system types
const (
OperatingSystemTypeNull OperatingSystemType = "NULL"
OperatingSystemTypeLinux OperatingSystemType = "Linux"
OperatingSystemTypeWindows OperatingSystemType = "Windows"
)
// CreateDataDiskParameters represents a data disk
//
// https://msdn.microsoft.com/en-us/library/azure/jj157188.aspx
type CreateDataDiskParameters struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure DataVirtualHardDisk"`
HostCaching HostCachingType `xml:",omitempty"`
DiskLabel string `xml:",omitempty"`
DiskName string `xml:",omitempty"`
Lun int `xml:",omitempty"`
LogicalDiskSizeInGB int `xml:",omitempty"`
MediaLink string
SourceMediaLink string `xml:",omitempty"`
}
// UpdateDataDiskParameters represents a data disk
//
// https://msdn.microsoft.com/en-us/library/azure/jj157188.aspx
type UpdateDataDiskParameters struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure DataVirtualHardDisk"`
HostCaching HostCachingType `xml:",omitempty"`
DiskName string
Lun int
MediaLink string
}
// DataDiskResponse represents a data disk
//
// https://msdn.microsoft.com/en-us/library/azure/jj157188.aspx
type DataDiskResponse struct {
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure DataVirtualHardDisk"`
HostCaching HostCachingType
DiskLabel string
DiskName string
Lun int
LogicalDiskSizeInGB int
MediaLink string
}
// HostCachingType represents a host caching type
type HostCachingType string
// These constants represent the valid host caching types
const (
HostCachingTypeNone HostCachingType = "None"
HostCachingTypeReadOnly HostCachingType = "ReadOnly"
HostCachingTypeReadWrite HostCachingType = "ReadWrite"
)
|