forked from TrueCloudLab/restic
61cb1cc6f8
This includes github.com/kurin/blazer 0.2.0, which resolves #1291
96 lines
3.1 KiB
Go
96 lines
3.1 KiB
Go
// +build go1.7
|
|
|
|
package affinitygroup
|
|
|
|
// Copyright 2017 Microsoft Corporation
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
import (
|
|
"encoding/xml"
|
|
)
|
|
|
|
// CreateAffinityGroupParams respresents the set of parameters required for
|
|
// creating an affinity group creation request to Azure.
|
|
//
|
|
// https://msdn.microsoft.com/en-us/library/azure/gg715317.aspx
|
|
type CreateAffinityGroupParams struct {
|
|
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure CreateAffinityGroup"`
|
|
Name string
|
|
Label string
|
|
Description string `xml:",omitempty"`
|
|
Location string
|
|
}
|
|
|
|
// HostedService is a struct containing details about a hosted service that is
|
|
// part of an affinity group on Azure.
|
|
type HostedService struct {
|
|
URL string `xml:"Url"`
|
|
ServiceName string
|
|
}
|
|
|
|
// StorageService is a struct containing details about a storage service that is
|
|
// part of an affinity group on Azure.
|
|
type StorageService struct {
|
|
URL string `xml:"Url"`
|
|
ServiceName string
|
|
}
|
|
|
|
// AffinityGroup respresents the properties of an affinity group on Azure.
|
|
//
|
|
// https://msdn.microsoft.com/en-us/library/azure/ee460789.aspx
|
|
type AffinityGroup struct {
|
|
Name string
|
|
Label string
|
|
Description string
|
|
Location string
|
|
HostedServices []HostedService
|
|
StorageServices []StorageService
|
|
Capabilities []string
|
|
}
|
|
|
|
// ComputeCapabilities represents the sets of capabilities of an affinity group
|
|
// obtained from an affinity group list call to Azure.
|
|
type ComputeCapabilities struct {
|
|
VirtualMachineRoleSizes []string
|
|
WebWorkerRoleSizes []string
|
|
}
|
|
|
|
// AffinityGroupListResponse represents the properties obtained for each
|
|
// affinity group listed off Azure.
|
|
//
|
|
// https://msdn.microsoft.com/en-us/library/azure/ee460797.aspx
|
|
type AffinityGroupListResponse struct {
|
|
Name string
|
|
Label string
|
|
Description string
|
|
Location string
|
|
Capabilities []string
|
|
ComputeCapabilities ComputeCapabilities
|
|
}
|
|
|
|
// ListAffinityGroupsResponse contains all the affinity groups obtained from a
|
|
// call to the Azure API to list all affinity groups.
|
|
type ListAffinityGroupsResponse struct {
|
|
AffinityGroups []AffinityGroupListResponse `xml:"AffinityGroup"`
|
|
}
|
|
|
|
// UpdateAffinityGroupParams if the set of parameters required to update an
|
|
// affinity group on Azure.
|
|
//
|
|
// https://msdn.microsoft.com/en-us/library/azure/gg715316.aspx
|
|
type UpdateAffinityGroupParams struct {
|
|
XMLName xml.Name `xml:"http://schemas.microsoft.com/windowsazure UpdateAffinityGroup"`
|
|
Label string `xml:",omitempty"`
|
|
Description string `xml:",omitempty"`
|
|
}
|