mirror of
https://github.com/octoleo/restic.git
synced 2024-11-15 17:47:21 +00:00
61cb1cc6f8
This includes github.com/kurin/blazer 0.2.0, which resolves #1291
224 lines
8.5 KiB
Go
224 lines
8.5 KiB
Go
package containerinstance
|
|
|
|
// Copyright (c) Microsoft and contributors. All rights reserved.
|
|
//
|
|
// 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.
|
|
//
|
|
// Code generated by Microsoft (R) AutoRest Code Generator.
|
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
|
|
|
import (
|
|
"github.com/Azure/go-autorest/autorest"
|
|
"github.com/Azure/go-autorest/autorest/date"
|
|
"github.com/Azure/go-autorest/autorest/to"
|
|
"net/http"
|
|
)
|
|
|
|
// ContainerGroupNetworkProtocol enumerates the values for container group network protocol.
|
|
type ContainerGroupNetworkProtocol string
|
|
|
|
const (
|
|
// TCP specifies the tcp state for container group network protocol.
|
|
TCP ContainerGroupNetworkProtocol = "TCP"
|
|
// UDP specifies the udp state for container group network protocol.
|
|
UDP ContainerGroupNetworkProtocol = "UDP"
|
|
)
|
|
|
|
// ContainerRestartPolicy enumerates the values for container restart policy.
|
|
type ContainerRestartPolicy string
|
|
|
|
const (
|
|
// Always specifies the always state for container restart policy.
|
|
Always ContainerRestartPolicy = "always"
|
|
)
|
|
|
|
// OperatingSystemTypes enumerates the values for operating system types.
|
|
type OperatingSystemTypes string
|
|
|
|
const (
|
|
// Linux specifies the linux state for operating system types.
|
|
Linux OperatingSystemTypes = "Linux"
|
|
// Windows specifies the windows state for operating system types.
|
|
Windows OperatingSystemTypes = "Windows"
|
|
)
|
|
|
|
// AzureFileVolume is the properties of the Azure File volume. Azure File shares are mounted as volumes.
|
|
type AzureFileVolume struct {
|
|
ShareName *string `json:"shareName,omitempty"`
|
|
ReadOnly *bool `json:"readOnly,omitempty"`
|
|
StorageAccountName *string `json:"storageAccountName,omitempty"`
|
|
StorageAccountKey *string `json:"storageAccountKey,omitempty"`
|
|
}
|
|
|
|
// Container is a container instance.
|
|
type Container struct {
|
|
Name *string `json:"name,omitempty"`
|
|
*ContainerProperties `json:"properties,omitempty"`
|
|
}
|
|
|
|
// ContainerEvent is a container instance event.
|
|
type ContainerEvent struct {
|
|
Count *int32 `json:"count,omitempty"`
|
|
FirstTimestamp *date.Time `json:"firstTimestamp,omitempty"`
|
|
LastTimestamp *date.Time `json:"lastTimestamp,omitempty"`
|
|
Message *string `json:"message,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
}
|
|
|
|
// ContainerGroup is a container group.
|
|
type ContainerGroup struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
*ContainerGroupProperties `json:"properties,omitempty"`
|
|
}
|
|
|
|
// ContainerGroupProperties is
|
|
type ContainerGroupProperties struct {
|
|
ProvisioningState *string `json:"provisioningState,omitempty"`
|
|
Containers *[]Container `json:"containers,omitempty"`
|
|
ImageRegistryCredentials *[]ImageRegistryCredential `json:"imageRegistryCredentials,omitempty"`
|
|
RestartPolicy ContainerRestartPolicy `json:"restartPolicy,omitempty"`
|
|
IPAddress *IPAddress `json:"ipAddress,omitempty"`
|
|
OsType OperatingSystemTypes `json:"osType,omitempty"`
|
|
State *string `json:"state,omitempty"`
|
|
Volumes *[]Volume `json:"volumes,omitempty"`
|
|
}
|
|
|
|
// ContainerGroupListResult is the container group list response that contains the container group properties.
|
|
type ContainerGroupListResult struct {
|
|
autorest.Response `json:"-"`
|
|
Value *[]ContainerGroup `json:"value,omitempty"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
}
|
|
|
|
// ContainerGroupListResultPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client ContainerGroupListResult) ContainerGroupListResultPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// ContainerPort is the port exposed on the container instance.
|
|
type ContainerPort struct {
|
|
Port *int32 `json:"port,omitempty"`
|
|
}
|
|
|
|
// ContainerProperties is the container instance properties.
|
|
type ContainerProperties struct {
|
|
Image *string `json:"image,omitempty"`
|
|
Command *[]string `json:"command,omitempty"`
|
|
Ports *[]ContainerPort `json:"ports,omitempty"`
|
|
EnvironmentVariables *[]EnvironmentVariable `json:"environmentVariables,omitempty"`
|
|
InstanceView *ContainerPropertiesInstanceView `json:"instanceView,omitempty"`
|
|
Resources *ResourceRequirements `json:"resources,omitempty"`
|
|
VolumeMounts *[]VolumeMount `json:"volumeMounts,omitempty"`
|
|
}
|
|
|
|
// ContainerPropertiesInstanceView is the instance view of the container instance. Only valid in response.
|
|
type ContainerPropertiesInstanceView struct {
|
|
RestartCount *int32 `json:"restartCount,omitempty"`
|
|
CurrentState *ContainerState `json:"currentState,omitempty"`
|
|
PreviousState *ContainerState `json:"previousState,omitempty"`
|
|
Events *[]ContainerEvent `json:"events,omitempty"`
|
|
}
|
|
|
|
// ContainerState is the container instance state.
|
|
type ContainerState struct {
|
|
State *string `json:"state,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
ExitCode *int32 `json:"exitCode,omitempty"`
|
|
FinishTime *date.Time `json:"finishTime,omitempty"`
|
|
DetailStatus *string `json:"detailStatus,omitempty"`
|
|
}
|
|
|
|
// EnvironmentVariable is the environment variable to set within the container instance.
|
|
type EnvironmentVariable struct {
|
|
Name *string `json:"name,omitempty"`
|
|
Value *string `json:"value,omitempty"`
|
|
}
|
|
|
|
// ImageRegistryCredential is image registry credential.
|
|
type ImageRegistryCredential struct {
|
|
Server *string `json:"server,omitempty"`
|
|
Username *string `json:"username,omitempty"`
|
|
Password *string `json:"password,omitempty"`
|
|
}
|
|
|
|
// IPAddress is IP address for the container group.
|
|
type IPAddress struct {
|
|
Ports *[]Port `json:"ports,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
IP *string `json:"ip,omitempty"`
|
|
}
|
|
|
|
// Logs is the logs.
|
|
type Logs struct {
|
|
autorest.Response `json:"-"`
|
|
Content *string `json:"content,omitempty"`
|
|
}
|
|
|
|
// Port is the port exposed on the container group.
|
|
type Port struct {
|
|
Protocol ContainerGroupNetworkProtocol `json:"protocol,omitempty"`
|
|
Port *int32 `json:"port,omitempty"`
|
|
}
|
|
|
|
// Resource is the Resource model definition.
|
|
type Resource struct {
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
}
|
|
|
|
// ResourceLimits is the resource limits.
|
|
type ResourceLimits struct {
|
|
MemoryInGB *float64 `json:"memoryInGB,omitempty"`
|
|
CPU *float64 `json:"cpu,omitempty"`
|
|
}
|
|
|
|
// ResourceRequests is the resource requests.
|
|
type ResourceRequests struct {
|
|
MemoryInGB *float64 `json:"memoryInGB,omitempty"`
|
|
CPU *float64 `json:"cpu,omitempty"`
|
|
}
|
|
|
|
// ResourceRequirements is the resource requirements.
|
|
type ResourceRequirements struct {
|
|
Requests *ResourceRequests `json:"requests,omitempty"`
|
|
Limits *ResourceLimits `json:"limits,omitempty"`
|
|
}
|
|
|
|
// Volume is the properties of the volume.
|
|
type Volume struct {
|
|
Name *string `json:"name,omitempty"`
|
|
AzureFile *AzureFileVolume `json:"azureFile,omitempty"`
|
|
}
|
|
|
|
// VolumeMount is the properties of the volume mount.
|
|
type VolumeMount struct {
|
|
Name *string `json:"name,omitempty"`
|
|
MountPath *string `json:"mountPath,omitempty"`
|
|
ReadOnly *bool `json:"readOnly,omitempty"`
|
|
}
|