k3s/vendor/github.com/libopenstorage/openstorage/api/api.pb.go

1731 lines
62 KiB
Go

// Code generated by protoc-gen-go.
// source: api/api.proto
// DO NOT EDIT!
package api
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "go.pedge.io/pb/go/google/protobuf"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
type Status int32
const (
Status_STATUS_NONE Status = 0
Status_STATUS_INIT Status = 1
Status_STATUS_OK Status = 2
Status_STATUS_OFFLINE Status = 3
Status_STATUS_ERROR Status = 4
Status_STATUS_NOT_IN_QUORUM Status = 5
Status_STATUS_DECOMMISSION Status = 6
Status_STATUS_MAINTENANCE Status = 7
Status_STATUS_STORAGE_DOWN Status = 8
Status_STATUS_STORAGE_DEGRADED Status = 9
Status_STATUS_NEEDS_REBOOT Status = 10
Status_STATUS_STORAGE_REBALANCE Status = 11
Status_STATUS_STORAGE_DRIVE_REPLACE Status = 12
// Add statuses before MAX and update the number for MAX
Status_STATUS_MAX Status = 13
)
var Status_name = map[int32]string{
0: "STATUS_NONE",
1: "STATUS_INIT",
2: "STATUS_OK",
3: "STATUS_OFFLINE",
4: "STATUS_ERROR",
5: "STATUS_NOT_IN_QUORUM",
6: "STATUS_DECOMMISSION",
7: "STATUS_MAINTENANCE",
8: "STATUS_STORAGE_DOWN",
9: "STATUS_STORAGE_DEGRADED",
10: "STATUS_NEEDS_REBOOT",
11: "STATUS_STORAGE_REBALANCE",
12: "STATUS_STORAGE_DRIVE_REPLACE",
13: "STATUS_MAX",
}
var Status_value = map[string]int32{
"STATUS_NONE": 0,
"STATUS_INIT": 1,
"STATUS_OK": 2,
"STATUS_OFFLINE": 3,
"STATUS_ERROR": 4,
"STATUS_NOT_IN_QUORUM": 5,
"STATUS_DECOMMISSION": 6,
"STATUS_MAINTENANCE": 7,
"STATUS_STORAGE_DOWN": 8,
"STATUS_STORAGE_DEGRADED": 9,
"STATUS_NEEDS_REBOOT": 10,
"STATUS_STORAGE_REBALANCE": 11,
"STATUS_STORAGE_DRIVE_REPLACE": 12,
"STATUS_MAX": 13,
}
func (x Status) String() string {
return proto.EnumName(Status_name, int32(x))
}
func (Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
type DriverType int32
const (
DriverType_DRIVER_TYPE_NONE DriverType = 0
DriverType_DRIVER_TYPE_FILE DriverType = 1
DriverType_DRIVER_TYPE_BLOCK DriverType = 2
DriverType_DRIVER_TYPE_OBJECT DriverType = 3
DriverType_DRIVER_TYPE_CLUSTERED DriverType = 4
DriverType_DRIVER_TYPE_GRAPH DriverType = 5
)
var DriverType_name = map[int32]string{
0: "DRIVER_TYPE_NONE",
1: "DRIVER_TYPE_FILE",
2: "DRIVER_TYPE_BLOCK",
3: "DRIVER_TYPE_OBJECT",
4: "DRIVER_TYPE_CLUSTERED",
5: "DRIVER_TYPE_GRAPH",
}
var DriverType_value = map[string]int32{
"DRIVER_TYPE_NONE": 0,
"DRIVER_TYPE_FILE": 1,
"DRIVER_TYPE_BLOCK": 2,
"DRIVER_TYPE_OBJECT": 3,
"DRIVER_TYPE_CLUSTERED": 4,
"DRIVER_TYPE_GRAPH": 5,
}
func (x DriverType) String() string {
return proto.EnumName(DriverType_name, int32(x))
}
func (DriverType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
type FSType int32
const (
FSType_FS_TYPE_NONE FSType = 0
FSType_FS_TYPE_BTRFS FSType = 1
FSType_FS_TYPE_EXT4 FSType = 2
FSType_FS_TYPE_FUSE FSType = 3
FSType_FS_TYPE_NFS FSType = 4
FSType_FS_TYPE_VFS FSType = 5
FSType_FS_TYPE_XFS FSType = 6
FSType_FS_TYPE_ZFS FSType = 7
)
var FSType_name = map[int32]string{
0: "FS_TYPE_NONE",
1: "FS_TYPE_BTRFS",
2: "FS_TYPE_EXT4",
3: "FS_TYPE_FUSE",
4: "FS_TYPE_NFS",
5: "FS_TYPE_VFS",
6: "FS_TYPE_XFS",
7: "FS_TYPE_ZFS",
}
var FSType_value = map[string]int32{
"FS_TYPE_NONE": 0,
"FS_TYPE_BTRFS": 1,
"FS_TYPE_EXT4": 2,
"FS_TYPE_FUSE": 3,
"FS_TYPE_NFS": 4,
"FS_TYPE_VFS": 5,
"FS_TYPE_XFS": 6,
"FS_TYPE_ZFS": 7,
}
func (x FSType) String() string {
return proto.EnumName(FSType_name, int32(x))
}
func (FSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
type GraphDriverChangeType int32
const (
GraphDriverChangeType_GRAPH_DRIVER_CHANGE_TYPE_NONE GraphDriverChangeType = 0
GraphDriverChangeType_GRAPH_DRIVER_CHANGE_TYPE_MODIFIED GraphDriverChangeType = 1
GraphDriverChangeType_GRAPH_DRIVER_CHANGE_TYPE_ADDED GraphDriverChangeType = 2
GraphDriverChangeType_GRAPH_DRIVER_CHANGE_TYPE_DELETED GraphDriverChangeType = 3
)
var GraphDriverChangeType_name = map[int32]string{
0: "GRAPH_DRIVER_CHANGE_TYPE_NONE",
1: "GRAPH_DRIVER_CHANGE_TYPE_MODIFIED",
2: "GRAPH_DRIVER_CHANGE_TYPE_ADDED",
3: "GRAPH_DRIVER_CHANGE_TYPE_DELETED",
}
var GraphDriverChangeType_value = map[string]int32{
"GRAPH_DRIVER_CHANGE_TYPE_NONE": 0,
"GRAPH_DRIVER_CHANGE_TYPE_MODIFIED": 1,
"GRAPH_DRIVER_CHANGE_TYPE_ADDED": 2,
"GRAPH_DRIVER_CHANGE_TYPE_DELETED": 3,
}
func (x GraphDriverChangeType) String() string {
return proto.EnumName(GraphDriverChangeType_name, int32(x))
}
func (GraphDriverChangeType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
type SeverityType int32
const (
SeverityType_SEVERITY_TYPE_NONE SeverityType = 0
SeverityType_SEVERITY_TYPE_ALARM SeverityType = 1
SeverityType_SEVERITY_TYPE_WARNING SeverityType = 2
SeverityType_SEVERITY_TYPE_NOTIFY SeverityType = 3
)
var SeverityType_name = map[int32]string{
0: "SEVERITY_TYPE_NONE",
1: "SEVERITY_TYPE_ALARM",
2: "SEVERITY_TYPE_WARNING",
3: "SEVERITY_TYPE_NOTIFY",
}
var SeverityType_value = map[string]int32{
"SEVERITY_TYPE_NONE": 0,
"SEVERITY_TYPE_ALARM": 1,
"SEVERITY_TYPE_WARNING": 2,
"SEVERITY_TYPE_NOTIFY": 3,
}
func (x SeverityType) String() string {
return proto.EnumName(SeverityType_name, int32(x))
}
func (SeverityType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
type ResourceType int32
const (
ResourceType_RESOURCE_TYPE_NONE ResourceType = 0
ResourceType_RESOURCE_TYPE_VOLUME ResourceType = 1
ResourceType_RESOURCE_TYPE_NODE ResourceType = 2
ResourceType_RESOURCE_TYPE_CLUSTER ResourceType = 3
ResourceType_RESOURCE_TYPE_DRIVE ResourceType = 4
)
var ResourceType_name = map[int32]string{
0: "RESOURCE_TYPE_NONE",
1: "RESOURCE_TYPE_VOLUME",
2: "RESOURCE_TYPE_NODE",
3: "RESOURCE_TYPE_CLUSTER",
4: "RESOURCE_TYPE_DRIVE",
}
var ResourceType_value = map[string]int32{
"RESOURCE_TYPE_NONE": 0,
"RESOURCE_TYPE_VOLUME": 1,
"RESOURCE_TYPE_NODE": 2,
"RESOURCE_TYPE_CLUSTER": 3,
"RESOURCE_TYPE_DRIVE": 4,
}
func (x ResourceType) String() string {
return proto.EnumName(ResourceType_name, int32(x))
}
func (ResourceType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
type AlertActionType int32
const (
AlertActionType_ALERT_ACTION_TYPE_NONE AlertActionType = 0
AlertActionType_ALERT_ACTION_TYPE_DELETE AlertActionType = 1
AlertActionType_ALERT_ACTION_TYPE_CREATE AlertActionType = 2
AlertActionType_ALERT_ACTION_TYPE_UPDATE AlertActionType = 3
)
var AlertActionType_name = map[int32]string{
0: "ALERT_ACTION_TYPE_NONE",
1: "ALERT_ACTION_TYPE_DELETE",
2: "ALERT_ACTION_TYPE_CREATE",
3: "ALERT_ACTION_TYPE_UPDATE",
}
var AlertActionType_value = map[string]int32{
"ALERT_ACTION_TYPE_NONE": 0,
"ALERT_ACTION_TYPE_DELETE": 1,
"ALERT_ACTION_TYPE_CREATE": 2,
"ALERT_ACTION_TYPE_UPDATE": 3,
}
func (x AlertActionType) String() string {
return proto.EnumName(AlertActionType_name, int32(x))
}
func (AlertActionType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
type VolumeActionParam int32
const (
VolumeActionParam_VOLUME_ACTION_PARAM_NONE VolumeActionParam = 0
// Maps to the boolean value false
VolumeActionParam_VOLUME_ACTION_PARAM_OFF VolumeActionParam = 1
// Maps to the boolean value true.
VolumeActionParam_VOLUME_ACTION_PARAM_ON VolumeActionParam = 2
)
var VolumeActionParam_name = map[int32]string{
0: "VOLUME_ACTION_PARAM_NONE",
1: "VOLUME_ACTION_PARAM_OFF",
2: "VOLUME_ACTION_PARAM_ON",
}
var VolumeActionParam_value = map[string]int32{
"VOLUME_ACTION_PARAM_NONE": 0,
"VOLUME_ACTION_PARAM_OFF": 1,
"VOLUME_ACTION_PARAM_ON": 2,
}
func (x VolumeActionParam) String() string {
return proto.EnumName(VolumeActionParam_name, int32(x))
}
func (VolumeActionParam) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
type CosType int32
const (
CosType_NONE CosType = 0
CosType_LOW CosType = 1
CosType_MEDIUM CosType = 2
CosType_HIGH CosType = 3
)
var CosType_name = map[int32]string{
0: "NONE",
1: "LOW",
2: "MEDIUM",
3: "HIGH",
}
var CosType_value = map[string]int32{
"NONE": 0,
"LOW": 1,
"MEDIUM": 2,
"HIGH": 3,
}
func (x CosType) String() string {
return proto.EnumName(CosType_name, int32(x))
}
func (CosType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
// VolumeState represents the state of a volume.
type VolumeState int32
const (
VolumeState_VOLUME_STATE_NONE VolumeState = 0
// Volume is transitioning to new state
VolumeState_VOLUME_STATE_PENDING VolumeState = 1
// Volume is ready to be assigned to a container
VolumeState_VOLUME_STATE_AVAILABLE VolumeState = 2
// Volume is attached to container
VolumeState_VOLUME_STATE_ATTACHED VolumeState = 3
// Volume is detached but associated with a container
VolumeState_VOLUME_STATE_DETACHED VolumeState = 4
// Volume detach is in progress
VolumeState_VOLUME_STATE_DETATCHING VolumeState = 5
// Volume is in error state
VolumeState_VOLUME_STATE_ERROR VolumeState = 6
// Volume is deleted, it will remain in this state
// while resources are asynchronously reclaimed
VolumeState_VOLUME_STATE_DELETED VolumeState = 7
)
var VolumeState_name = map[int32]string{
0: "VOLUME_STATE_NONE",
1: "VOLUME_STATE_PENDING",
2: "VOLUME_STATE_AVAILABLE",
3: "VOLUME_STATE_ATTACHED",
4: "VOLUME_STATE_DETACHED",
5: "VOLUME_STATE_DETATCHING",
6: "VOLUME_STATE_ERROR",
7: "VOLUME_STATE_DELETED",
}
var VolumeState_value = map[string]int32{
"VOLUME_STATE_NONE": 0,
"VOLUME_STATE_PENDING": 1,
"VOLUME_STATE_AVAILABLE": 2,
"VOLUME_STATE_ATTACHED": 3,
"VOLUME_STATE_DETACHED": 4,
"VOLUME_STATE_DETATCHING": 5,
"VOLUME_STATE_ERROR": 6,
"VOLUME_STATE_DELETED": 7,
}
func (x VolumeState) String() string {
return proto.EnumName(VolumeState_name, int32(x))
}
func (VolumeState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
// VolumeStatus represents a health status for a volume.
type VolumeStatus int32
const (
VolumeStatus_VOLUME_STATUS_NONE VolumeStatus = 0
// Volume is not present
VolumeStatus_VOLUME_STATUS_NOT_PRESENT VolumeStatus = 1
// Volume is healthy
VolumeStatus_VOLUME_STATUS_UP VolumeStatus = 2
// Volume is in fail mode
VolumeStatus_VOLUME_STATUS_DOWN VolumeStatus = 3
// Volume is up but with degraded performance
// In a RAID group, this may indicate a problem with one or more drives
VolumeStatus_VOLUME_STATUS_DEGRADED VolumeStatus = 4
)
var VolumeStatus_name = map[int32]string{
0: "VOLUME_STATUS_NONE",
1: "VOLUME_STATUS_NOT_PRESENT",
2: "VOLUME_STATUS_UP",
3: "VOLUME_STATUS_DOWN",
4: "VOLUME_STATUS_DEGRADED",
}
var VolumeStatus_value = map[string]int32{
"VOLUME_STATUS_NONE": 0,
"VOLUME_STATUS_NOT_PRESENT": 1,
"VOLUME_STATUS_UP": 2,
"VOLUME_STATUS_DOWN": 3,
"VOLUME_STATUS_DEGRADED": 4,
}
func (x VolumeStatus) String() string {
return proto.EnumName(VolumeStatus_name, int32(x))
}
func (VolumeStatus) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
type StorageMedium int32
const (
// Magnetic spinning disk.
StorageMedium_STORAGE_MEDIUM_MAGNETIC StorageMedium = 0
// SSD disk
StorageMedium_STORAGE_MEDIUM_SSD StorageMedium = 1
// NVME disk
StorageMedium_STORAGE_MEDIUM_NVME StorageMedium = 2
)
var StorageMedium_name = map[int32]string{
0: "STORAGE_MEDIUM_MAGNETIC",
1: "STORAGE_MEDIUM_SSD",
2: "STORAGE_MEDIUM_NVME",
}
var StorageMedium_value = map[string]int32{
"STORAGE_MEDIUM_MAGNETIC": 0,
"STORAGE_MEDIUM_SSD": 1,
"STORAGE_MEDIUM_NVME": 2,
}
func (x StorageMedium) String() string {
return proto.EnumName(StorageMedium_name, int32(x))
}
func (StorageMedium) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
type ClusterNotify int32
const (
// Node is down
ClusterNotify_CLUSTER_NOTIFY_DOWN ClusterNotify = 0
)
var ClusterNotify_name = map[int32]string{
0: "CLUSTER_NOTIFY_DOWN",
}
var ClusterNotify_value = map[string]int32{
"CLUSTER_NOTIFY_DOWN": 0,
}
func (x ClusterNotify) String() string {
return proto.EnumName(ClusterNotify_name, int32(x))
}
func (ClusterNotify) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
// StorageResource groups properties of a storage device.
type StorageResource struct {
// Id is the LUN identifier.
Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
// Path device path for this storage resource.
Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
// Storage medium.
Medium StorageMedium `protobuf:"varint,3,opt,name=medium,enum=openstorage.api.StorageMedium" json:"medium,omitempty"`
// True if this device is online.
Online bool `protobuf:"varint,4,opt,name=online" json:"online,omitempty"`
// IOPS
Iops uint64 `protobuf:"varint,5,opt,name=iops" json:"iops,omitempty"`
// SeqWrite
SeqWrite float64 `protobuf:"fixed64,6,opt,name=seq_write,json=seqWrite" json:"seq_write,omitempty"`
// SeqRead
SeqRead float64 `protobuf:"fixed64,7,opt,name=seq_read,json=seqRead" json:"seq_read,omitempty"`
// RandRW
RandRW float64 `protobuf:"fixed64,8,opt,name=randRW" json:"randRW,omitempty"`
// Total size in bytes.
Size uint64 `protobuf:"varint,9,opt,name=size" json:"size,omitempty"`
// Physical Bytes used.
Used uint64 `protobuf:"varint,10,opt,name=used" json:"used,omitempty"`
// True if this device is rotational.
RotationSpeed string `protobuf:"bytes,11,opt,name=rotation_speed,json=rotationSpeed" json:"rotation_speed,omitempty"`
// Timestamp of last time this device was scanned.
LastScan *google_protobuf.Timestamp `protobuf:"bytes,12,opt,name=last_scan,json=lastScan" json:"last_scan,omitempty"`
}
func (m *StorageResource) Reset() { *m = StorageResource{} }
func (m *StorageResource) String() string { return proto.CompactTextString(m) }
func (*StorageResource) ProtoMessage() {}
func (*StorageResource) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *StorageResource) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *StorageResource) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *StorageResource) GetMedium() StorageMedium {
if m != nil {
return m.Medium
}
return StorageMedium_STORAGE_MEDIUM_MAGNETIC
}
func (m *StorageResource) GetOnline() bool {
if m != nil {
return m.Online
}
return false
}
func (m *StorageResource) GetIops() uint64 {
if m != nil {
return m.Iops
}
return 0
}
func (m *StorageResource) GetSeqWrite() float64 {
if m != nil {
return m.SeqWrite
}
return 0
}
func (m *StorageResource) GetSeqRead() float64 {
if m != nil {
return m.SeqRead
}
return 0
}
func (m *StorageResource) GetRandRW() float64 {
if m != nil {
return m.RandRW
}
return 0
}
func (m *StorageResource) GetSize() uint64 {
if m != nil {
return m.Size
}
return 0
}
func (m *StorageResource) GetUsed() uint64 {
if m != nil {
return m.Used
}
return 0
}
func (m *StorageResource) GetRotationSpeed() string {
if m != nil {
return m.RotationSpeed
}
return ""
}
func (m *StorageResource) GetLastScan() *google_protobuf.Timestamp {
if m != nil {
return m.LastScan
}
return nil
}
// VolumeLocator is a structure that is attached to a volume
// and is used to carry opaque metadata.
type VolumeLocator struct {
// User friendly identifier
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// A set of name-value pairs that acts as search filters
VolumeLabels map[string]string `protobuf:"bytes,2,rep,name=volume_labels,json=volumeLabels" json:"volume_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
}
func (m *VolumeLocator) Reset() { *m = VolumeLocator{} }
func (m *VolumeLocator) String() string { return proto.CompactTextString(m) }
func (*VolumeLocator) ProtoMessage() {}
func (*VolumeLocator) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (m *VolumeLocator) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *VolumeLocator) GetVolumeLabels() map[string]string {
if m != nil {
return m.VolumeLabels
}
return nil
}
type Source struct {
// A volume id, if specified will create a clone of the parent.
Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
// Seed will seed the volume from the specified URI
// Any additional config for the source comes from the labels in the spec
Seed string `protobuf:"bytes,2,opt,name=seed" json:"seed,omitempty"`
}
func (m *Source) Reset() { *m = Source{} }
func (m *Source) String() string { return proto.CompactTextString(m) }
func (*Source) ProtoMessage() {}
func (*Source) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
func (m *Source) GetParent() string {
if m != nil {
return m.Parent
}
return ""
}
func (m *Source) GetSeed() string {
if m != nil {
return m.Seed
}
return ""
}
// VolumeSpec has the properties needed to create a volume.
type VolumeSpec struct {
// Ephemeral storage
Ephemeral bool `protobuf:"varint,1,opt,name=ephemeral" json:"ephemeral,omitempty"`
// Thin provisioned volume size in bytes
Size uint64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"`
// Format disk with this FSType
Format FSType `protobuf:"varint,3,opt,name=format,enum=openstorage.api.FSType" json:"format,omitempty"`
// Block size for filesystem
BlockSize int64 `protobuf:"varint,4,opt,name=block_size,json=blockSize" json:"block_size,omitempty"`
// Specifies the number of nodes that are
// allowed to fail, and yet data is available
// A value of 0 implies that data is not erasure coded,
// a failure of a node will lead to data loss
HaLevel int64 `protobuf:"varint,5,opt,name=ha_level,json=haLevel" json:"ha_level,omitempty"`
// The COS, 1 to 9
Cos CosType `protobuf:"varint,6,opt,name=cos,enum=openstorage.api.CosType" json:"cos,omitempty"`
// Perform dedupe on this disk
Dedupe bool `protobuf:"varint,7,opt,name=dedupe" json:"dedupe,omitempty"`
// SnapshotInterval in minutes, set to 0 to disable snapshots
SnapshotInterval uint32 `protobuf:"varint,8,opt,name=snapshot_interval,json=snapshotInterval" json:"snapshot_interval,omitempty"`
// Volume configuration labels
VolumeLabels map[string]string `protobuf:"bytes,9,rep,name=volume_labels,json=volumeLabels" json:"volume_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Shared is true if this volume can be remotely accessed.
Shared bool `protobuf:"varint,10,opt,name=shared" json:"shared,omitempty"`
// ReplicaSet is the desired replicaSet the volume want to be placed.
ReplicaSet *ReplicaSet `protobuf:"bytes,11,opt,name=replica_set,json=replicaSet" json:"replica_set,omitempty"`
// Specifies the number of parts the volume can be aggregated from.
AggregationLevel uint32 `protobuf:"varint,12,opt,name=aggregation_level,json=aggregationLevel" json:"aggregation_level,omitempty"`
// Encrypted is true if this volume will be cryptographically secured.
Encrypted bool `protobuf:"varint,13,opt,name=encrypted" json:"encrypted,omitempty"`
// User passphrase if this is an encrypted volume
Passphrase string `protobuf:"bytes,14,opt,name=passphrase" json:"passphrase,omitempty"`
// SnapshotSchedule
SnapshotSchedule string `protobuf:"bytes,15,opt,name=snapshot_schedule,json=snapshotSchedule" json:"snapshot_schedule,omitempty"`
// Scale allows autocreation of volumes.
Scale uint32 `protobuf:"varint,16,opt,name=scale" json:"scale,omitempty"`
}
func (m *VolumeSpec) Reset() { *m = VolumeSpec{} }
func (m *VolumeSpec) String() string { return proto.CompactTextString(m) }
func (*VolumeSpec) ProtoMessage() {}
func (*VolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (m *VolumeSpec) GetEphemeral() bool {
if m != nil {
return m.Ephemeral
}
return false
}
func (m *VolumeSpec) GetSize() uint64 {
if m != nil {
return m.Size
}
return 0
}
func (m *VolumeSpec) GetFormat() FSType {
if m != nil {
return m.Format
}
return FSType_FS_TYPE_NONE
}
func (m *VolumeSpec) GetBlockSize() int64 {
if m != nil {
return m.BlockSize
}
return 0
}
func (m *VolumeSpec) GetHaLevel() int64 {
if m != nil {
return m.HaLevel
}
return 0
}
func (m *VolumeSpec) GetCos() CosType {
if m != nil {
return m.Cos
}
return CosType_NONE
}
func (m *VolumeSpec) GetDedupe() bool {
if m != nil {
return m.Dedupe
}
return false
}
func (m *VolumeSpec) GetSnapshotInterval() uint32 {
if m != nil {
return m.SnapshotInterval
}
return 0
}
func (m *VolumeSpec) GetVolumeLabels() map[string]string {
if m != nil {
return m.VolumeLabels
}
return nil
}
func (m *VolumeSpec) GetShared() bool {
if m != nil {
return m.Shared
}
return false
}
func (m *VolumeSpec) GetReplicaSet() *ReplicaSet {
if m != nil {
return m.ReplicaSet
}
return nil
}
func (m *VolumeSpec) GetAggregationLevel() uint32 {
if m != nil {
return m.AggregationLevel
}
return 0
}
func (m *VolumeSpec) GetEncrypted() bool {
if m != nil {
return m.Encrypted
}
return false
}
func (m *VolumeSpec) GetPassphrase() string {
if m != nil {
return m.Passphrase
}
return ""
}
func (m *VolumeSpec) GetSnapshotSchedule() string {
if m != nil {
return m.SnapshotSchedule
}
return ""
}
func (m *VolumeSpec) GetScale() uint32 {
if m != nil {
return m.Scale
}
return 0
}
// Set of machine IDs (nodes) to which part of this volume is erasure coded - for clustered storage arrays
type ReplicaSet struct {
Nodes []string `protobuf:"bytes,1,rep,name=nodes" json:"nodes,omitempty"`
}
func (m *ReplicaSet) Reset() { *m = ReplicaSet{} }
func (m *ReplicaSet) String() string { return proto.CompactTextString(m) }
func (*ReplicaSet) ProtoMessage() {}
func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
func (m *ReplicaSet) GetNodes() []string {
if m != nil {
return m.Nodes
}
return nil
}
// List of name value mapping of driver specific runtime information.
type RuntimeStateMap struct {
RuntimeState map[string]string `protobuf:"bytes,1,rep,name=runtime_state,json=runtimeState" json:"runtime_state,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
}
func (m *RuntimeStateMap) Reset() { *m = RuntimeStateMap{} }
func (m *RuntimeStateMap) String() string { return proto.CompactTextString(m) }
func (*RuntimeStateMap) ProtoMessage() {}
func (*RuntimeStateMap) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *RuntimeStateMap) GetRuntimeState() map[string]string {
if m != nil {
return m.RuntimeState
}
return nil
}
// Volume represents a live, created volume.
type Volume struct {
// Self referential volume ID
Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
Source *Source `protobuf:"bytes,2,opt,name=source" json:"source,omitempty"`
Readonly bool `protobuf:"varint,3,opt,name=readonly" json:"readonly,omitempty"`
// User specified locator
Locator *VolumeLocator `protobuf:"bytes,4,opt,name=locator" json:"locator,omitempty"`
// Volume creation time
Ctime *google_protobuf.Timestamp `protobuf:"bytes,5,opt,name=ctime" json:"ctime,omitempty"`
// User specified VolumeSpec
Spec *VolumeSpec `protobuf:"bytes,6,opt,name=spec" json:"spec,omitempty"`
// Volume usage
Usage uint64 `protobuf:"varint,7,opt,name=usage" json:"usage,omitempty"`
// Time when an integrity check for run
LastScan *google_protobuf.Timestamp `protobuf:"bytes,8,opt,name=last_scan,json=lastScan" json:"last_scan,omitempty"`
// Format FSType type if any
Format FSType `protobuf:"varint,9,opt,name=format,enum=openstorage.api.FSType" json:"format,omitempty"`
Status VolumeStatus `protobuf:"varint,10,opt,name=status,enum=openstorage.api.VolumeStatus" json:"status,omitempty"`
State VolumeState `protobuf:"varint,11,opt,name=state,enum=openstorage.api.VolumeState" json:"state,omitempty"`
// Machine ID (node) on which this volume is attached
// Machine ID is a node instance identifier for clustered systems.
AttachedOn string `protobuf:"bytes,12,opt,name=attached_on,json=attachedOn" json:"attached_on,omitempty"`
DevicePath string `protobuf:"bytes,14,opt,name=device_path,json=devicePath" json:"device_path,omitempty"`
AttachPath []string `protobuf:"bytes,15,rep,name=attach_path,json=attachPath" json:"attach_path,omitempty"`
// List of ReplicaSets which provide storage for this volume, for clustered storage arrays
ReplicaSets []*ReplicaSet `protobuf:"bytes,16,rep,name=replica_sets,json=replicaSets" json:"replica_sets,omitempty"`
// Last recorded error
Error string `protobuf:"bytes,17,opt,name=error" json:"error,omitempty"`
// List of name value mapping of driver specific runtime information.
RuntimeState []*RuntimeStateMap `protobuf:"bytes,18,rep,name=runtime_state,json=runtimeState" json:"runtime_state,omitempty"`
SecureDevicePath string `protobuf:"bytes,19,opt,name=secure_device_path,json=secureDevicePath" json:"secure_device_path,omitempty"`
// BackgroundProcessing is true if volume is attached but not by the user
BackgroundProcessing bool `protobuf:"varint,20,opt,name=background_processing,json=backgroundProcessing" json:"background_processing,omitempty"`
}
func (m *Volume) Reset() { *m = Volume{} }
func (m *Volume) String() string { return proto.CompactTextString(m) }
func (*Volume) ProtoMessage() {}
func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (m *Volume) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *Volume) GetSource() *Source {
if m != nil {
return m.Source
}
return nil
}
func (m *Volume) GetReadonly() bool {
if m != nil {
return m.Readonly
}
return false
}
func (m *Volume) GetLocator() *VolumeLocator {
if m != nil {
return m.Locator
}
return nil
}
func (m *Volume) GetCtime() *google_protobuf.Timestamp {
if m != nil {
return m.Ctime
}
return nil
}
func (m *Volume) GetSpec() *VolumeSpec {
if m != nil {
return m.Spec
}
return nil
}
func (m *Volume) GetUsage() uint64 {
if m != nil {
return m.Usage
}
return 0
}
func (m *Volume) GetLastScan() *google_protobuf.Timestamp {
if m != nil {
return m.LastScan
}
return nil
}
func (m *Volume) GetFormat() FSType {
if m != nil {
return m.Format
}
return FSType_FS_TYPE_NONE
}
func (m *Volume) GetStatus() VolumeStatus {
if m != nil {
return m.Status
}
return VolumeStatus_VOLUME_STATUS_NONE
}
func (m *Volume) GetState() VolumeState {
if m != nil {
return m.State
}
return VolumeState_VOLUME_STATE_NONE
}
func (m *Volume) GetAttachedOn() string {
if m != nil {
return m.AttachedOn
}
return ""
}
func (m *Volume) GetDevicePath() string {
if m != nil {
return m.DevicePath
}
return ""
}
func (m *Volume) GetAttachPath() []string {
if m != nil {
return m.AttachPath
}
return nil
}
func (m *Volume) GetReplicaSets() []*ReplicaSet {
if m != nil {
return m.ReplicaSets
}
return nil
}
func (m *Volume) GetError() string {
if m != nil {
return m.Error
}
return ""
}
func (m *Volume) GetRuntimeState() []*RuntimeStateMap {
if m != nil {
return m.RuntimeState
}
return nil
}
func (m *Volume) GetSecureDevicePath() string {
if m != nil {
return m.SecureDevicePath
}
return ""
}
func (m *Volume) GetBackgroundProcessing() bool {
if m != nil {
return m.BackgroundProcessing
}
return false
}
type Stats struct {
// Reads completed successfully
Reads uint64 `protobuf:"varint,1,opt,name=reads" json:"reads,omitempty"`
// Time spent in reads in ms
ReadMs uint64 `protobuf:"varint,2,opt,name=read_ms,json=readMs" json:"read_ms,omitempty"`
ReadBytes uint64 `protobuf:"varint,3,opt,name=read_bytes,json=readBytes" json:"read_bytes,omitempty"`
// Writes completed successfully
Writes uint64 `protobuf:"varint,4,opt,name=writes" json:"writes,omitempty"`
// Time spent in writes in ms
WriteMs uint64 `protobuf:"varint,5,opt,name=write_ms,json=writeMs" json:"write_ms,omitempty"`
WriteBytes uint64 `protobuf:"varint,6,opt,name=write_bytes,json=writeBytes" json:"write_bytes,omitempty"`
// IOs curently in progress
IoProgress uint64 `protobuf:"varint,7,opt,name=io_progress,json=ioProgress" json:"io_progress,omitempty"`
// Time spent doing IOs ms
IoMs uint64 `protobuf:"varint,8,opt,name=io_ms,json=ioMs" json:"io_ms,omitempty"`
// BytesUsed
BytesUsed uint64 `protobuf:"varint,9,opt,name=bytes_used,json=bytesUsed" json:"bytes_used,omitempty"`
// Interval in ms during which stats were collected
IntervalMs uint64 `protobuf:"varint,10,opt,name=interval_ms,json=intervalMs" json:"interval_ms,omitempty"`
}
func (m *Stats) Reset() { *m = Stats{} }
func (m *Stats) String() string { return proto.CompactTextString(m) }
func (*Stats) ProtoMessage() {}
func (*Stats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *Stats) GetReads() uint64 {
if m != nil {
return m.Reads
}
return 0
}
func (m *Stats) GetReadMs() uint64 {
if m != nil {
return m.ReadMs
}
return 0
}
func (m *Stats) GetReadBytes() uint64 {
if m != nil {
return m.ReadBytes
}
return 0
}
func (m *Stats) GetWrites() uint64 {
if m != nil {
return m.Writes
}
return 0
}
func (m *Stats) GetWriteMs() uint64 {
if m != nil {
return m.WriteMs
}
return 0
}
func (m *Stats) GetWriteBytes() uint64 {
if m != nil {
return m.WriteBytes
}
return 0
}
func (m *Stats) GetIoProgress() uint64 {
if m != nil {
return m.IoProgress
}
return 0
}
func (m *Stats) GetIoMs() uint64 {
if m != nil {
return m.IoMs
}
return 0
}
func (m *Stats) GetBytesUsed() uint64 {
if m != nil {
return m.BytesUsed
}
return 0
}
func (m *Stats) GetIntervalMs() uint64 {
if m != nil {
return m.IntervalMs
}
return 0
}
type Alert struct {
// Id for Alert
Id int64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
// Severity of the Alert
Severity SeverityType `protobuf:"varint,2,opt,name=severity,enum=openstorage.api.SeverityType" json:"severity,omitempty"`
// AlertType user defined alert type
AlertType int64 `protobuf:"varint,3,opt,name=alert_type,json=alertType" json:"alert_type,omitempty"`
// Message describing the Alert
Message string `protobuf:"bytes,4,opt,name=message" json:"message,omitempty"`
// Timestamp when Alert occured
Timestamp *google_protobuf.Timestamp `protobuf:"bytes,5,opt,name=timestamp" json:"timestamp,omitempty"`
// ResourceId where Alert occured
ResourceId string `protobuf:"bytes,6,opt,name=resource_id,json=resourceId" json:"resource_id,omitempty"`
// Resource where Alert occured
Resource ResourceType `protobuf:"varint,7,opt,name=resource,enum=openstorage.api.ResourceType" json:"resource,omitempty"`
// Cleared Flag
Cleared bool `protobuf:"varint,8,opt,name=cleared" json:"cleared,omitempty"`
// TTL in seconds for this Alert
Ttl uint64 `protobuf:"varint,9,opt,name=ttl" json:"ttl,omitempty"`
}
func (m *Alert) Reset() { *m = Alert{} }
func (m *Alert) String() string { return proto.CompactTextString(m) }
func (*Alert) ProtoMessage() {}
func (*Alert) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *Alert) GetId() int64 {
if m != nil {
return m.Id
}
return 0
}
func (m *Alert) GetSeverity() SeverityType {
if m != nil {
return m.Severity
}
return SeverityType_SEVERITY_TYPE_NONE
}
func (m *Alert) GetAlertType() int64 {
if m != nil {
return m.AlertType
}
return 0
}
func (m *Alert) GetMessage() string {
if m != nil {
return m.Message
}
return ""
}
func (m *Alert) GetTimestamp() *google_protobuf.Timestamp {
if m != nil {
return m.Timestamp
}
return nil
}
func (m *Alert) GetResourceId() string {
if m != nil {
return m.ResourceId
}
return ""
}
func (m *Alert) GetResource() ResourceType {
if m != nil {
return m.Resource
}
return ResourceType_RESOURCE_TYPE_NONE
}
func (m *Alert) GetCleared() bool {
if m != nil {
return m.Cleared
}
return false
}
func (m *Alert) GetTtl() uint64 {
if m != nil {
return m.Ttl
}
return 0
}
type Alerts struct {
Alert []*Alert `protobuf:"bytes,1,rep,name=alert" json:"alert,omitempty"`
}
func (m *Alerts) Reset() { *m = Alerts{} }
func (m *Alerts) String() string { return proto.CompactTextString(m) }
func (*Alerts) ProtoMessage() {}
func (*Alerts) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (m *Alerts) GetAlert() []*Alert {
if m != nil {
return m.Alert
}
return nil
}
type VolumeCreateRequest struct {
// User specified volume name and labels
Locator *VolumeLocator `protobuf:"bytes,1,opt,name=locator" json:"locator,omitempty"`
// Source to create volume
Source *Source `protobuf:"bytes,2,opt,name=source" json:"source,omitempty"`
// The storage spec for the volume
Spec *VolumeSpec `protobuf:"bytes,3,opt,name=spec" json:"spec,omitempty"`
}
func (m *VolumeCreateRequest) Reset() { *m = VolumeCreateRequest{} }
func (m *VolumeCreateRequest) String() string { return proto.CompactTextString(m) }
func (*VolumeCreateRequest) ProtoMessage() {}
func (*VolumeCreateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (m *VolumeCreateRequest) GetLocator() *VolumeLocator {
if m != nil {
return m.Locator
}
return nil
}
func (m *VolumeCreateRequest) GetSource() *Source {
if m != nil {
return m.Source
}
return nil
}
func (m *VolumeCreateRequest) GetSpec() *VolumeSpec {
if m != nil {
return m.Spec
}
return nil
}
type VolumeResponse struct {
Error string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"`
}
func (m *VolumeResponse) Reset() { *m = VolumeResponse{} }
func (m *VolumeResponse) String() string { return proto.CompactTextString(m) }
func (*VolumeResponse) ProtoMessage() {}
func (*VolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *VolumeResponse) GetError() string {
if m != nil {
return m.Error
}
return ""
}
type VolumeCreateResponse struct {
// ID of the newly created volume
Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
VolumeResponse *VolumeResponse `protobuf:"bytes,2,opt,name=volume_response,json=volumeResponse" json:"volume_response,omitempty"`
}
func (m *VolumeCreateResponse) Reset() { *m = VolumeCreateResponse{} }
func (m *VolumeCreateResponse) String() string { return proto.CompactTextString(m) }
func (*VolumeCreateResponse) ProtoMessage() {}
func (*VolumeCreateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (m *VolumeCreateResponse) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *VolumeCreateResponse) GetVolumeResponse() *VolumeResponse {
if m != nil {
return m.VolumeResponse
}
return nil
}
// VolumeStateAction specifies desired actions.
type VolumeStateAction struct {
// Attach or Detach volume
Attach VolumeActionParam `protobuf:"varint,1,opt,name=attach,enum=openstorage.api.VolumeActionParam" json:"attach,omitempty"`
// Mount or unmount volume
Mount VolumeActionParam `protobuf:"varint,2,opt,name=mount,enum=openstorage.api.VolumeActionParam" json:"mount,omitempty"`
MountPath string `protobuf:"bytes,3,opt,name=mount_path,json=mountPath" json:"mount_path,omitempty"`
// Device path returned in attach
DevicePath string `protobuf:"bytes,4,opt,name=device_path,json=devicePath" json:"device_path,omitempty"`
}
func (m *VolumeStateAction) Reset() { *m = VolumeStateAction{} }
func (m *VolumeStateAction) String() string { return proto.CompactTextString(m) }
func (*VolumeStateAction) ProtoMessage() {}
func (*VolumeStateAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (m *VolumeStateAction) GetAttach() VolumeActionParam {
if m != nil {
return m.Attach
}
return VolumeActionParam_VOLUME_ACTION_PARAM_NONE
}
func (m *VolumeStateAction) GetMount() VolumeActionParam {
if m != nil {
return m.Mount
}
return VolumeActionParam_VOLUME_ACTION_PARAM_NONE
}
func (m *VolumeStateAction) GetMountPath() string {
if m != nil {
return m.MountPath
}
return ""
}
func (m *VolumeStateAction) GetDevicePath() string {
if m != nil {
return m.DevicePath
}
return ""
}
type VolumeSetRequest struct {
// User specified volume name and labels
Locator *VolumeLocator `protobuf:"bytes,1,opt,name=locator" json:"locator,omitempty"`
// The storage spec for the volume
Spec *VolumeSpec `protobuf:"bytes,2,opt,name=spec" json:"spec,omitempty"`
// State modification on this volume.
Action *VolumeStateAction `protobuf:"bytes,3,opt,name=action" json:"action,omitempty"`
}
func (m *VolumeSetRequest) Reset() { *m = VolumeSetRequest{} }
func (m *VolumeSetRequest) String() string { return proto.CompactTextString(m) }
func (*VolumeSetRequest) ProtoMessage() {}
func (*VolumeSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *VolumeSetRequest) GetLocator() *VolumeLocator {
if m != nil {
return m.Locator
}
return nil
}
func (m *VolumeSetRequest) GetSpec() *VolumeSpec {
if m != nil {
return m.Spec
}
return nil
}
func (m *VolumeSetRequest) GetAction() *VolumeStateAction {
if m != nil {
return m.Action
}
return nil
}
type VolumeSetResponse struct {
Volume *Volume `protobuf:"bytes,1,opt,name=volume" json:"volume,omitempty"`
VolumeResponse *VolumeResponse `protobuf:"bytes,2,opt,name=volume_response,json=volumeResponse" json:"volume_response,omitempty"`
}
func (m *VolumeSetResponse) Reset() { *m = VolumeSetResponse{} }
func (m *VolumeSetResponse) String() string { return proto.CompactTextString(m) }
func (*VolumeSetResponse) ProtoMessage() {}
func (*VolumeSetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *VolumeSetResponse) GetVolume() *Volume {
if m != nil {
return m.Volume
}
return nil
}
func (m *VolumeSetResponse) GetVolumeResponse() *VolumeResponse {
if m != nil {
return m.VolumeResponse
}
return nil
}
type SnapCreateRequest struct {
// volume id
Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
Locator *VolumeLocator `protobuf:"bytes,2,opt,name=locator" json:"locator,omitempty"`
Readonly bool `protobuf:"varint,3,opt,name=readonly" json:"readonly,omitempty"`
}
func (m *SnapCreateRequest) Reset() { *m = SnapCreateRequest{} }
func (m *SnapCreateRequest) String() string { return proto.CompactTextString(m) }
func (*SnapCreateRequest) ProtoMessage() {}
func (*SnapCreateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *SnapCreateRequest) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *SnapCreateRequest) GetLocator() *VolumeLocator {
if m != nil {
return m.Locator
}
return nil
}
func (m *SnapCreateRequest) GetReadonly() bool {
if m != nil {
return m.Readonly
}
return false
}
type SnapCreateResponse struct {
VolumeCreateResponse *VolumeCreateResponse `protobuf:"bytes,1,opt,name=volume_create_response,json=volumeCreateResponse" json:"volume_create_response,omitempty"`
}
func (m *SnapCreateResponse) Reset() { *m = SnapCreateResponse{} }
func (m *SnapCreateResponse) String() string { return proto.CompactTextString(m) }
func (*SnapCreateResponse) ProtoMessage() {}
func (*SnapCreateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *SnapCreateResponse) GetVolumeCreateResponse() *VolumeCreateResponse {
if m != nil {
return m.VolumeCreateResponse
}
return nil
}
type VolumeInfo struct {
VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
Storage *VolumeSpec `protobuf:"bytes,3,opt,name=storage" json:"storage,omitempty"`
}
func (m *VolumeInfo) Reset() { *m = VolumeInfo{} }
func (m *VolumeInfo) String() string { return proto.CompactTextString(m) }
func (*VolumeInfo) ProtoMessage() {}
func (*VolumeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *VolumeInfo) GetVolumeId() string {
if m != nil {
return m.VolumeId
}
return ""
}
func (m *VolumeInfo) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *VolumeInfo) GetStorage() *VolumeSpec {
if m != nil {
return m.Storage
}
return nil
}
// GraphDriverChanges represent a list of changes between the filesystem layers
// specified by the ID and Parent. // Parent may be an empty string, in which
// case there is no parent.
// Where the Path is the filesystem path within the layered filesystem
type GraphDriverChanges struct {
Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
Kind GraphDriverChangeType `protobuf:"varint,2,opt,name=kind,enum=openstorage.api.GraphDriverChangeType" json:"kind,omitempty"`
}
func (m *GraphDriverChanges) Reset() { *m = GraphDriverChanges{} }
func (m *GraphDriverChanges) String() string { return proto.CompactTextString(m) }
func (*GraphDriverChanges) ProtoMessage() {}
func (*GraphDriverChanges) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *GraphDriverChanges) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *GraphDriverChanges) GetKind() GraphDriverChangeType {
if m != nil {
return m.Kind
}
return GraphDriverChangeType_GRAPH_DRIVER_CHANGE_TYPE_NONE
}
type ClusterResponse struct {
Error string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"`
}
func (m *ClusterResponse) Reset() { *m = ClusterResponse{} }
func (m *ClusterResponse) String() string { return proto.CompactTextString(m) }
func (*ClusterResponse) ProtoMessage() {}
func (*ClusterResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (m *ClusterResponse) GetError() string {
if m != nil {
return m.Error
}
return ""
}
type ActiveRequest struct {
ReqestKV map[int64]string `protobuf:"bytes,1,rep,name=ReqestKV,json=reqestKV" json:"ReqestKV,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
}
func (m *ActiveRequest) Reset() { *m = ActiveRequest{} }
func (m *ActiveRequest) String() string { return proto.CompactTextString(m) }
func (*ActiveRequest) ProtoMessage() {}
func (*ActiveRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (m *ActiveRequest) GetReqestKV() map[int64]string {
if m != nil {
return m.ReqestKV
}
return nil
}
type ActiveRequests struct {
RequestCount int64 `protobuf:"varint,1,opt,name=RequestCount,json=requestCount" json:"RequestCount,omitempty"`
ActiveRequest []*ActiveRequest `protobuf:"bytes,2,rep,name=ActiveRequest,json=activeRequest" json:"ActiveRequest,omitempty"`
}
func (m *ActiveRequests) Reset() { *m = ActiveRequests{} }
func (m *ActiveRequests) String() string { return proto.CompactTextString(m) }
func (*ActiveRequests) ProtoMessage() {}
func (*ActiveRequests) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (m *ActiveRequests) GetRequestCount() int64 {
if m != nil {
return m.RequestCount
}
return 0
}
func (m *ActiveRequests) GetActiveRequest() []*ActiveRequest {
if m != nil {
return m.ActiveRequest
}
return nil
}
func init() {
proto.RegisterType((*StorageResource)(nil), "openstorage.api.StorageResource")
proto.RegisterType((*VolumeLocator)(nil), "openstorage.api.VolumeLocator")
proto.RegisterType((*Source)(nil), "openstorage.api.Source")
proto.RegisterType((*VolumeSpec)(nil), "openstorage.api.VolumeSpec")
proto.RegisterType((*ReplicaSet)(nil), "openstorage.api.ReplicaSet")
proto.RegisterType((*RuntimeStateMap)(nil), "openstorage.api.RuntimeStateMap")
proto.RegisterType((*Volume)(nil), "openstorage.api.Volume")
proto.RegisterType((*Stats)(nil), "openstorage.api.Stats")
proto.RegisterType((*Alert)(nil), "openstorage.api.Alert")
proto.RegisterType((*Alerts)(nil), "openstorage.api.Alerts")
proto.RegisterType((*VolumeCreateRequest)(nil), "openstorage.api.VolumeCreateRequest")
proto.RegisterType((*VolumeResponse)(nil), "openstorage.api.VolumeResponse")
proto.RegisterType((*VolumeCreateResponse)(nil), "openstorage.api.VolumeCreateResponse")
proto.RegisterType((*VolumeStateAction)(nil), "openstorage.api.VolumeStateAction")
proto.RegisterType((*VolumeSetRequest)(nil), "openstorage.api.VolumeSetRequest")
proto.RegisterType((*VolumeSetResponse)(nil), "openstorage.api.VolumeSetResponse")
proto.RegisterType((*SnapCreateRequest)(nil), "openstorage.api.SnapCreateRequest")
proto.RegisterType((*SnapCreateResponse)(nil), "openstorage.api.SnapCreateResponse")
proto.RegisterType((*VolumeInfo)(nil), "openstorage.api.VolumeInfo")
proto.RegisterType((*GraphDriverChanges)(nil), "openstorage.api.GraphDriverChanges")
proto.RegisterType((*ClusterResponse)(nil), "openstorage.api.ClusterResponse")
proto.RegisterType((*ActiveRequest)(nil), "openstorage.api.ActiveRequest")
proto.RegisterType((*ActiveRequests)(nil), "openstorage.api.ActiveRequests")
proto.RegisterEnum("openstorage.api.Status", Status_name, Status_value)
proto.RegisterEnum("openstorage.api.DriverType", DriverType_name, DriverType_value)
proto.RegisterEnum("openstorage.api.FSType", FSType_name, FSType_value)
proto.RegisterEnum("openstorage.api.GraphDriverChangeType", GraphDriverChangeType_name, GraphDriverChangeType_value)
proto.RegisterEnum("openstorage.api.SeverityType", SeverityType_name, SeverityType_value)
proto.RegisterEnum("openstorage.api.ResourceType", ResourceType_name, ResourceType_value)
proto.RegisterEnum("openstorage.api.AlertActionType", AlertActionType_name, AlertActionType_value)
proto.RegisterEnum("openstorage.api.VolumeActionParam", VolumeActionParam_name, VolumeActionParam_value)
proto.RegisterEnum("openstorage.api.CosType", CosType_name, CosType_value)
proto.RegisterEnum("openstorage.api.VolumeState", VolumeState_name, VolumeState_value)
proto.RegisterEnum("openstorage.api.VolumeStatus", VolumeStatus_name, VolumeStatus_value)
proto.RegisterEnum("openstorage.api.StorageMedium", StorageMedium_name, StorageMedium_value)
proto.RegisterEnum("openstorage.api.ClusterNotify", ClusterNotify_name, ClusterNotify_value)
}
func init() { proto.RegisterFile("api/api.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 2538 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x59, 0xdd, 0x72, 0xe3, 0x48,
0x15, 0x5e, 0xf9, 0xdf, 0xc7, 0xb1, 0xa3, 0xe9, 0xc9, 0x64, 0x34, 0xff, 0x59, 0x17, 0xbb, 0xa4,
0xcc, 0x92, 0x6c, 0x65, 0x7f, 0x18, 0x16, 0x0a, 0x4a, 0xb1, 0xe5, 0xc4, 0xac, 0xff, 0x68, 0xc9,
0x99, 0xdd, 0xa5, 0x28, 0x95, 0xc6, 0xee, 0x49, 0xc4, 0xd8, 0x92, 0x46, 0x2d, 0x87, 0xca, 0xbe,
0x00, 0x37, 0x14, 0x5c, 0x41, 0x15, 0x57, 0x3c, 0xc0, 0x5e, 0x51, 0x5c, 0x51, 0x3c, 0xc1, 0x5e,
0x50, 0xc5, 0x1b, 0xf0, 0x0c, 0xbc, 0x01, 0xd5, 0x3f, 0xb2, 0x25, 0xdb, 0x99, 0xc9, 0x14, 0x7b,
0xa7, 0xf3, 0x9d, 0xd3, 0xa7, 0xfb, 0xfc, 0x9f, 0x38, 0x50, 0x75, 0x02, 0xf7, 0xd0, 0x09, 0xdc,
0x83, 0x20, 0xf4, 0x23, 0x1f, 0x6d, 0xfb, 0x01, 0xf1, 0x68, 0xe4, 0x87, 0xce, 0x39, 0x39, 0x70,
0x02, 0xf7, 0xfe, 0x93, 0x73, 0xdf, 0x3f, 0x9f, 0x92, 0x43, 0xce, 0x7e, 0x3e, 0x7f, 0x71, 0x18,
0xb9, 0x33, 0x42, 0x23, 0x67, 0x16, 0x88, 0x13, 0xf5, 0xff, 0x66, 0x60, 0xdb, 0x14, 0x07, 0x30,
0xa1, 0xfe, 0x3c, 0x1c, 0x13, 0x54, 0x83, 0x8c, 0x3b, 0xd1, 0x94, 0x3d, 0x65, 0xbf, 0x8c, 0x33,
0xee, 0x04, 0x21, 0xc8, 0x05, 0x4e, 0x74, 0xa1, 0x65, 0x38, 0xc2, 0xbf, 0xd1, 0xa7, 0x50, 0x98,
0x91, 0x89, 0x3b, 0x9f, 0x69, 0xd9, 0x3d, 0x65, 0xbf, 0x76, 0xf4, 0xf8, 0x60, 0xe5, 0xea, 0x03,
0xa9, 0xb5, 0xc7, 0xa5, 0xb0, 0x94, 0x46, 0xbb, 0x50, 0xf0, 0xbd, 0xa9, 0xeb, 0x11, 0x2d, 0xb7,
0xa7, 0xec, 0x97, 0xb0, 0xa4, 0xd8, 0x1d, 0xae, 0x1f, 0x50, 0x2d, 0xbf, 0xa7, 0xec, 0xe7, 0x30,
0xff, 0x46, 0x0f, 0xa0, 0x4c, 0xc9, 0x2b, 0xfb, 0xb7, 0xa1, 0x1b, 0x11, 0xad, 0xb0, 0xa7, 0xec,
0x2b, 0xb8, 0x44, 0xc9, 0xab, 0x67, 0x8c, 0x46, 0xf7, 0x80, 0x7d, 0xdb, 0x21, 0x71, 0x26, 0x5a,
0x91, 0xf3, 0x8a, 0x94, 0xbc, 0xc2, 0xc4, 0x99, 0xb0, 0x3b, 0x42, 0xc7, 0x9b, 0xe0, 0x67, 0x5a,
0x89, 0x33, 0x24, 0xc5, 0xee, 0xa0, 0xee, 0xd7, 0x44, 0x2b, 0x8b, 0x3b, 0xd8, 0x37, 0xc3, 0xe6,
0x94, 0x4c, 0x34, 0x10, 0x18, 0xfb, 0x46, 0xef, 0x41, 0x2d, 0xf4, 0x23, 0x27, 0x72, 0x7d, 0xcf,
0xa6, 0x01, 0x21, 0x13, 0xad, 0xc2, 0x2d, 0xaf, 0xc6, 0xa8, 0xc9, 0x40, 0xf4, 0x23, 0x28, 0x4f,
0x1d, 0x1a, 0xd9, 0x74, 0xec, 0x78, 0xda, 0xd6, 0x9e, 0xb2, 0x5f, 0x39, 0xba, 0x7f, 0x20, 0xfc,
0x7d, 0x10, 0xfb, 0xfb, 0xc0, 0x8a, 0xfd, 0x8d, 0x4b, 0x4c, 0xd8, 0x1c, 0x3b, 0x5e, 0xfd, 0x9f,
0x0a, 0x54, 0xcf, 0xfc, 0xe9, 0x7c, 0x46, 0xba, 0xfe, 0xd8, 0x89, 0xfc, 0x90, 0xbd, 0xc2, 0x73,
0x66, 0x44, 0xfa, 0x9c, 0x7f, 0xa3, 0x11, 0x54, 0x2f, 0xb9, 0x90, 0x3d, 0x75, 0x9e, 0x93, 0x29,
0xd5, 0x32, 0x7b, 0xd9, 0xfd, 0xca, 0xd1, 0x87, 0x6b, 0x8e, 0x4e, 0xa9, 0x8a, 0x29, 0x7e, 0xc4,
0xf0, 0xa2, 0xf0, 0x0a, 0x6f, 0x5d, 0x26, 0xa0, 0xfb, 0x3f, 0x87, 0x5b, 0x6b, 0x22, 0x48, 0x85,
0xec, 0x4b, 0x72, 0x25, 0xaf, 0x67, 0x9f, 0x68, 0x07, 0xf2, 0x97, 0xce, 0x74, 0x4e, 0x64, 0xd0,
0x05, 0xf1, 0x59, 0xe6, 0xa9, 0x52, 0xff, 0x18, 0x0a, 0xa6, 0xc8, 0x93, 0x5d, 0x28, 0x04, 0x4e,
0x48, 0xbc, 0x48, 0x1e, 0x94, 0x14, 0xf7, 0x33, 0xf3, 0x9a, 0xcc, 0x17, 0xf6, 0x5d, 0xff, 0x7b,
0x1e, 0x40, 0xdc, 0x6b, 0x06, 0x64, 0x8c, 0x1e, 0x42, 0x99, 0x04, 0x17, 0x64, 0x46, 0x42, 0x67,
0xca, 0x4f, 0x97, 0xf0, 0x12, 0x58, 0x04, 0x2a, 0x93, 0x08, 0xd4, 0x21, 0x14, 0x5e, 0xf8, 0xe1,
0xcc, 0x89, 0x64, 0xc2, 0xdd, 0x5d, 0xf3, 0x43, 0xdb, 0xb4, 0xae, 0x02, 0x82, 0xa5, 0x18, 0x7a,
0x04, 0xf0, 0x7c, 0xea, 0x8f, 0x5f, 0xda, 0x5c, 0x15, 0xcb, 0xb6, 0x2c, 0x2e, 0x73, 0xc4, 0x64,
0xfa, 0xee, 0x41, 0xe9, 0xc2, 0xb1, 0xa7, 0xe4, 0x92, 0x4c, 0x79, 0xd2, 0x65, 0x71, 0xf1, 0xc2,
0xe9, 0x32, 0x12, 0x35, 0x20, 0x3b, 0xf6, 0x29, 0xcf, 0xb8, 0xda, 0x91, 0xb6, 0x76, 0x4f, 0xd3,
0xa7, 0xfc, 0x22, 0x26, 0xc4, 0x7c, 0x30, 0x21, 0x93, 0x79, 0x40, 0x78, 0x12, 0x96, 0xb0, 0xa4,
0xd0, 0x0f, 0xe0, 0x16, 0xf5, 0x9c, 0x80, 0x5e, 0xf8, 0x91, 0xed, 0x7a, 0x11, 0x09, 0x2f, 0x9d,
0x29, 0x4f, 0xc7, 0x2a, 0x56, 0x63, 0x46, 0x47, 0xe2, 0x08, 0xaf, 0x86, 0xba, 0xcc, 0x43, 0xfd,
0xc3, 0x6b, 0x42, 0xcd, 0x3c, 0xf8, 0xa6, 0x38, 0xb3, 0x87, 0xd1, 0x0b, 0x27, 0x94, 0xa9, 0x5d,
0xc2, 0x92, 0x42, 0x3f, 0x85, 0x4a, 0x48, 0x82, 0xa9, 0x3b, 0x76, 0x6c, 0x4a, 0x22, 0x9e, 0xd9,
0x95, 0xa3, 0x07, 0x6b, 0x37, 0x61, 0x21, 0x63, 0x92, 0x08, 0x43, 0xb8, 0xf8, 0x66, 0x66, 0x39,
0xe7, 0xe7, 0x21, 0x39, 0x17, 0xd5, 0x21, 0xdc, 0xb7, 0x25, 0xcc, 0x4a, 0x30, 0x84, 0x1f, 0x59,
0x90, 0xbd, 0x71, 0x78, 0x15, 0x44, 0x64, 0xa2, 0x55, 0x65, 0x90, 0x63, 0x00, 0x3d, 0x06, 0x08,
0x1c, 0x4a, 0x83, 0x8b, 0xd0, 0xa1, 0x44, 0xab, 0xf1, 0x5c, 0x49, 0x20, 0x29, 0x0f, 0xd2, 0xf1,
0x05, 0x99, 0xcc, 0xa7, 0x44, 0xdb, 0xe6, 0x62, 0x0b, 0x0f, 0x9a, 0x12, 0x67, 0xe9, 0x4a, 0xc7,
0xce, 0x94, 0x68, 0x2a, 0x7f, 0x8b, 0x20, 0xfe, 0xff, 0x5c, 0xaf, 0x03, 0x2c, 0x1d, 0xc1, 0xe4,
0x3c, 0x7f, 0x42, 0xa8, 0xa6, 0xec, 0x65, 0x99, 0x1c, 0x27, 0xea, 0xdf, 0x28, 0xb0, 0x8d, 0xe7,
0x1e, 0x6b, 0xac, 0x66, 0xe4, 0x44, 0xa4, 0xe7, 0x04, 0xe8, 0x19, 0x54, 0x43, 0x01, 0xd9, 0x94,
0x61, 0xfc, 0x44, 0xe5, 0xe8, 0x68, 0xdd, 0xcd, 0xe9, 0x83, 0x29, 0x5a, 0x46, 0x35, 0x4c, 0x40,
0xcc, 0xa2, 0x35, 0x91, 0xb7, 0xb2, 0xe8, 0xdf, 0x05, 0x28, 0x08, 0x9f, 0xac, 0xb5, 0xf9, 0x43,
0x28, 0x88, 0x01, 0xc0, 0x4f, 0x55, 0x36, 0x54, 0x98, 0xa8, 0x7b, 0x2c, 0xc5, 0xd0, 0x7d, 0x28,
0xb1, 0xf6, 0xeb, 0x7b, 0xd3, 0x2b, 0x5e, 0x94, 0x25, 0xbc, 0xa0, 0xd1, 0x53, 0x28, 0x4e, 0x45,
0x47, 0xe2, 0xa5, 0x57, 0xd9, 0x30, 0x20, 0x52, 0x7d, 0x0b, 0xc7, 0xe2, 0xe8, 0x43, 0xc8, 0x8f,
0x99, 0x81, 0xbc, 0x2a, 0x5f, 0xdf, 0x52, 0x85, 0x20, 0x3a, 0x84, 0x1c, 0x0d, 0xc8, 0x98, 0x17,
0xec, 0xa6, 0x5c, 0x5e, 0x56, 0x0d, 0xe6, 0x82, 0xcc, 0x3d, 0x73, 0xea, 0x9c, 0x8b, 0x9a, 0xcd,
0x61, 0x41, 0xa4, 0xfb, 0x79, 0xe9, 0xe6, 0xfd, 0x3c, 0xd1, 0x9a, 0xca, 0x37, 0x6b, 0x4d, 0x9f,
0x40, 0x81, 0xa5, 0xc5, 0x9c, 0xf2, 0xda, 0xac, 0x1d, 0x3d, 0xba, 0xee, 0xc9, 0x5c, 0x08, 0x4b,
0x61, 0x74, 0x04, 0x79, 0x91, 0x4d, 0x15, 0x7e, 0xea, 0xe1, 0x6b, 0x4e, 0x11, 0x2c, 0x44, 0xd1,
0x13, 0xa8, 0x38, 0x51, 0xe4, 0xb0, 0x3a, 0xb1, 0x7d, 0x31, 0xa6, 0xca, 0x18, 0x62, 0x68, 0xe0,
0x31, 0x81, 0x09, 0xb9, 0x74, 0xc7, 0xc4, 0xe6, 0x33, 0x5e, 0xd6, 0xa1, 0x80, 0x86, 0x6c, 0xd2,
0x2f, 0x34, 0x08, 0x81, 0x6d, 0x9e, 0xfb, 0x52, 0x03, 0x17, 0xf8, 0x19, 0x6c, 0x25, 0x3a, 0x0a,
0xd5, 0x54, 0x9e, 0xeb, 0xaf, 0x6d, 0x29, 0x95, 0x65, 0x4b, 0xa1, 0x2c, 0x1a, 0x24, 0x0c, 0xfd,
0x50, 0xbb, 0x25, 0x92, 0x95, 0x13, 0xc8, 0x58, 0x2d, 0x21, 0xc4, 0xd5, 0xee, 0xbd, 0xa9, 0x84,
0xd2, 0x05, 0x83, 0x3e, 0x00, 0x44, 0xc9, 0x78, 0x1e, 0x12, 0x3b, 0x69, 0xe5, 0x6d, 0xd9, 0x46,
0x38, 0xa7, 0xb5, 0xb4, 0xf5, 0x23, 0xb8, 0xf3, 0xdc, 0x19, 0xbf, 0x3c, 0x0f, 0xfd, 0xb9, 0x37,
0xb1, 0x83, 0xd0, 0x1f, 0x13, 0x4a, 0x5d, 0xef, 0x5c, 0xdb, 0xe1, 0xe9, 0xbd, 0xb3, 0x64, 0x0e,
0x17, 0xbc, 0xfa, 0x5f, 0x33, 0x90, 0x67, 0x97, 0x71, 0x4b, 0x58, 0x01, 0x50, 0x5e, 0x54, 0x39,
0x2c, 0x08, 0x74, 0x17, 0x8a, 0xec, 0xc3, 0x9e, 0x51, 0x39, 0xd0, 0x0a, 0x8c, 0xec, 0x51, 0x36,
0xa1, 0x38, 0xe3, 0xf9, 0x55, 0x44, 0x28, 0xaf, 0xa0, 0x1c, 0x2e, 0x33, 0xe4, 0x98, 0x01, 0xac,
0x83, 0xf3, 0xd5, 0x87, 0xf2, 0x0a, 0xca, 0x61, 0x49, 0xb1, 0xc9, 0xc5, 0xbf, 0x98, 0x42, 0xb1,
0x2e, 0x15, 0x39, 0xdd, 0xa3, 0x2c, 0x56, 0x82, 0x25, 0x54, 0x16, 0x38, 0x17, 0x38, 0x24, 0x74,
0x3e, 0x81, 0x8a, 0xeb, 0x33, 0xc3, 0xce, 0x43, 0x42, 0xa9, 0xcc, 0x7f, 0x70, 0xfd, 0xa1, 0x44,
0xd0, 0x6d, 0xc8, 0xbb, 0x3e, 0xd3, 0x5c, 0x8a, 0x17, 0x31, 0xf1, 0x50, 0xae, 0xd0, 0xe6, 0xab,
0x92, 0x58, 0x9f, 0xca, 0x1c, 0x19, 0xb1, 0x7d, 0x89, 0x29, 0x95, 0xa3, 0x8c, 0x9d, 0x04, 0xa9,
0x54, 0x42, 0x3d, 0x5a, 0xff, 0x57, 0x06, 0xf2, 0xfa, 0x94, 0x84, 0x51, 0xa2, 0xe7, 0x64, 0x79,
0xcf, 0xf9, 0x31, 0xdb, 0xe2, 0x2e, 0x49, 0xe8, 0x46, 0x57, 0xdc, 0x39, 0x9b, 0x6a, 0xc1, 0x94,
0x02, 0xbc, 0x84, 0x16, 0xe2, 0xec, 0x51, 0x0e, 0xd3, 0x69, 0x47, 0x57, 0x01, 0xe1, 0xde, 0xcb,
0xe2, 0x32, 0x47, 0x98, 0x20, 0xd2, 0xa0, 0x38, 0x23, 0x94, 0x57, 0x79, 0x8e, 0x47, 0x3b, 0x26,
0xd1, 0x53, 0x28, 0x2f, 0xb6, 0xe0, 0x1b, 0x34, 0x99, 0xa5, 0x30, 0x33, 0x34, 0x94, 0x4b, 0xb2,
0xed, 0x4e, 0xb8, 0x7b, 0xcb, 0x6c, 0x3c, 0x0a, 0xa8, 0xc3, 0xcd, 0x89, 0x29, 0xee, 0xdb, 0x4d,
0xe6, 0xc4, 0x6b, 0xb6, 0x30, 0x27, 0x16, 0x67, 0xef, 0x1d, 0x4f, 0x09, 0x1f, 0xd8, 0x25, 0x9e,
0x6c, 0x31, 0xc9, 0xda, 0x7b, 0x14, 0x4d, 0xa5, 0xdb, 0xd9, 0x67, 0xfd, 0x53, 0x28, 0x70, 0x77,
0x52, 0xf4, 0x01, 0xe4, 0xb9, 0xc9, 0x72, 0xc0, 0xec, 0xae, 0xdd, 0xc6, 0xe5, 0xb0, 0x10, 0xaa,
0xff, 0x4d, 0x81, 0xdb, 0xa2, 0x47, 0x34, 0x43, 0xc2, 0x9a, 0x04, 0x79, 0x35, 0x27, 0x34, 0x4a,
0x36, 0x6b, 0xe5, 0xed, 0x9a, 0xf5, 0x5b, 0xcf, 0x8c, 0xb8, 0x57, 0x67, 0x6f, 0xd8, 0xab, 0xeb,
0xef, 0x43, 0x4d, 0x60, 0x98, 0xd0, 0xc0, 0xf7, 0x28, 0x59, 0xf6, 0x0b, 0x25, 0xd1, 0x2f, 0xea,
0x01, 0xec, 0xa4, 0x4d, 0x93, 0xd2, 0xab, 0x53, 0xee, 0x14, 0xb6, 0xe5, 0xae, 0x15, 0x4a, 0x11,
0xf9, 0xf4, 0x27, 0xd7, 0xbc, 0x25, 0xd6, 0x84, 0x6b, 0x97, 0x29, 0xba, 0xfe, 0xad, 0x12, 0xaf,
0x17, 0xbc, 0xd5, 0xe8, 0x63, 0xb6, 0xf9, 0xa0, 0xcf, 0xa0, 0x20, 0x7a, 0x23, 0xbf, 0xb3, 0x76,
0x54, 0xbf, 0x46, 0xad, 0x10, 0x1f, 0x3a, 0xa1, 0x33, 0xc3, 0xf2, 0x04, 0x7a, 0x0a, 0xf9, 0x99,
0x3f, 0xf7, 0x22, 0x59, 0x0a, 0x37, 0x39, 0x2a, 0x0e, 0xb0, 0x62, 0xe0, 0x1f, 0xa2, 0xbd, 0x65,
0xb9, 0xb5, 0x65, 0x8e, 0xc4, 0x3d, 0x3c, 0xd9, 0xfe, 0x72, 0xab, 0x4d, 0xbe, 0xfe, 0x0f, 0x05,
0x54, 0x69, 0x0b, 0x89, 0xbe, 0x8b, 0xb4, 0x10, 0x51, 0xce, 0xdc, 0x74, 0x22, 0x33, 0xaf, 0x71,
0xab, 0x64, 0x62, 0xd4, 0x5f, 0x37, 0xdb, 0x84, 0xfd, 0x58, 0x9e, 0xa8, 0xff, 0x61, 0x19, 0x07,
0xf6, 0x76, 0x19, 0xf7, 0x43, 0x28, 0x88, 0x78, 0xc9, 0xb7, 0xdf, 0xbd, 0x2e, 0xbc, 0x52, 0xec,
0x3b, 0x4c, 0x8c, 0x2b, 0xb8, 0x65, 0x7a, 0x4e, 0x90, 0xae, 0xb1, 0xd5, 0x3c, 0x4c, 0x38, 0x37,
0xf3, 0x76, 0xce, 0x7d, 0xcd, 0xda, 0x55, 0x7f, 0x05, 0x28, 0x79, 0xb5, 0xf4, 0xc5, 0xaf, 0x60,
0x57, 0x9a, 0x36, 0xe6, 0x8c, 0xa5, 0x85, 0xc2, 0x37, 0xef, 0x5d, 0x73, 0x75, 0x5a, 0x0d, 0xde,
0xb9, 0xdc, 0x80, 0xd6, 0xa3, 0xf8, 0x0f, 0xbb, 0x8e, 0xf7, 0xc2, 0x67, 0x7f, 0xb3, 0xcb, 0xab,
0x16, 0xd6, 0x96, 0x04, 0xd0, 0xd9, 0xfc, 0x43, 0xc2, 0x27, 0x50, 0x94, 0x17, 0xdf, 0xa4, 0x27,
0xc4, 0xb2, 0xf5, 0x09, 0xa0, 0x93, 0xd0, 0x09, 0x2e, 0x5a, 0xa1, 0x7b, 0x49, 0xc2, 0xe6, 0x85,
0xe3, 0x9d, 0x13, 0xba, 0xb8, 0x40, 0x49, 0x5c, 0xf0, 0x19, 0xe4, 0x5e, 0xba, 0xde, 0x44, 0xd6,
0xd4, 0xfb, 0x6b, 0xda, 0xd7, 0xd4, 0xf0, 0xc6, 0xcc, 0xcf, 0xd4, 0xbf, 0x0f, 0xdb, 0xcd, 0xe9,
0x9c, 0x46, 0x24, 0x7c, 0x43, 0xf7, 0xf9, 0xb3, 0x02, 0x55, 0x96, 0x96, 0x97, 0x8b, 0x78, 0x9f,
0x42, 0x09, 0x93, 0x57, 0x84, 0x46, 0x9f, 0x9f, 0xc9, 0xe6, 0xfc, 0xc1, 0x7a, 0x73, 0x4e, 0x9e,
0x38, 0x88, 0xc5, 0xc5, 0xde, 0x5f, 0x0a, 0x25, 0x79, 0xff, 0x27, 0x50, 0x4d, 0xb1, 0x92, 0xfb,
0x7e, 0xf6, 0x4d, 0xfb, 0xfe, 0xd7, 0x50, 0x4b, 0xdd, 0x42, 0x51, 0x1d, 0xb6, 0xe4, 0x77, 0x93,
0xf7, 0x1a, 0xa1, 0x66, 0x2b, 0x4c, 0x60, 0xa8, 0xb5, 0x62, 0x8d, 0xfc, 0xed, 0xe1, 0xf1, 0xeb,
0x2d, 0xc0, 0x55, 0x27, 0x49, 0x36, 0xbe, 0xcd, 0x40, 0x41, 0xac, 0xb0, 0x68, 0x1b, 0x2a, 0xa6,
0xa5, 0x5b, 0x23, 0xd3, 0xee, 0x0f, 0xfa, 0x86, 0xfa, 0x4e, 0x02, 0xe8, 0xf4, 0x3b, 0x96, 0xaa,
0xa0, 0x2a, 0x94, 0x25, 0x30, 0xf8, 0x5c, 0xcd, 0x20, 0x04, 0xb5, 0x98, 0x6c, 0xb7, 0xbb, 0x9d,
0xbe, 0xa1, 0x66, 0x91, 0x0a, 0x5b, 0x12, 0x33, 0x30, 0x1e, 0x60, 0x35, 0x87, 0x34, 0xd8, 0x59,
0xa8, 0xb5, 0xec, 0x4e, 0xdf, 0xfe, 0xe5, 0x68, 0x80, 0x47, 0x3d, 0x35, 0x8f, 0xee, 0xc2, 0x6d,
0xc9, 0x69, 0x19, 0xcd, 0x41, 0xaf, 0xd7, 0x31, 0xcd, 0xce, 0xa0, 0xaf, 0x16, 0xd0, 0x2e, 0x20,
0xc9, 0xe8, 0xe9, 0x9d, 0xbe, 0x65, 0xf4, 0xf5, 0x7e, 0xd3, 0x50, 0x8b, 0x89, 0x03, 0xa6, 0x35,
0xc0, 0xfa, 0x89, 0x61, 0xb7, 0x06, 0xcf, 0xfa, 0x6a, 0x09, 0x3d, 0x80, 0xbb, 0xab, 0x0c, 0xe3,
0x04, 0xeb, 0x2d, 0xa3, 0xa5, 0x96, 0x13, 0xa7, 0xfa, 0x86, 0xd1, 0x32, 0x6d, 0x6c, 0x1c, 0x0f,
0x06, 0x96, 0x0a, 0xe8, 0x21, 0x68, 0x2b, 0xa7, 0xb0, 0x71, 0xac, 0x77, 0xf9, 0x65, 0x15, 0xb4,
0x07, 0x0f, 0x57, 0x75, 0xe2, 0xce, 0x19, 0x93, 0x19, 0x76, 0xf5, 0xa6, 0xa1, 0x6e, 0xa1, 0x1a,
0xc0, 0xe2, 0x99, 0x5f, 0xa8, 0xd5, 0xc6, 0x5f, 0x14, 0x00, 0x91, 0xa4, 0x7c, 0xbb, 0xd9, 0x01,
0x95, 0x9f, 0xc0, 0xb6, 0xf5, 0xe5, 0xd0, 0x88, 0x9d, 0xba, 0x82, 0xb6, 0x3b, 0x5d, 0x43, 0x55,
0xd0, 0x1d, 0xb8, 0x95, 0x44, 0x8f, 0xbb, 0x83, 0x26, 0xf3, 0xf0, 0x2e, 0xa0, 0x24, 0x3c, 0x38,
0xfe, 0x85, 0xd1, 0xb4, 0xd4, 0x2c, 0xba, 0x07, 0x77, 0x92, 0x78, 0xb3, 0x3b, 0x32, 0x2d, 0x03,
0x1b, 0x2d, 0x35, 0xb7, 0xaa, 0xe9, 0x04, 0xeb, 0xc3, 0x53, 0x35, 0xdf, 0xf8, 0x93, 0x02, 0x05,
0xf1, 0x17, 0x0e, 0x0b, 0x51, 0xdb, 0x4c, 0xbd, 0xe9, 0x16, 0x54, 0x63, 0xe4, 0xd8, 0xc2, 0x6d,
0x53, 0x55, 0x92, 0x42, 0xc6, 0x17, 0xd6, 0xc7, 0x6a, 0x26, 0x89, 0xb4, 0x47, 0x26, 0x8b, 0xf5,
0x36, 0x54, 0x16, 0x8a, 0xda, 0xa6, 0x9a, 0x4b, 0x02, 0x67, 0x6d, 0x53, 0xcd, 0x27, 0x81, 0x2f,
0xda, 0xa6, 0x5a, 0x48, 0x02, 0x5f, 0xb5, 0x4d, 0xb5, 0xd8, 0xf8, 0x46, 0x81, 0x3b, 0x1b, 0xab,
0x1b, 0xbd, 0x0b, 0x8f, 0xf8, 0xe3, 0x6d, 0x69, 0x4e, 0xf3, 0x54, 0xef, 0x9f, 0x18, 0xa9, 0x77,
0xbf, 0x07, 0xef, 0x5e, 0x2b, 0xd2, 0x1b, 0xb4, 0x3a, 0xed, 0x8e, 0xd1, 0x52, 0x15, 0x54, 0x87,
0xc7, 0xd7, 0x8a, 0xe9, 0x2d, 0x96, 0x24, 0x19, 0xf4, 0x3d, 0xd8, 0xbb, 0x56, 0xa6, 0x65, 0x74,
0x0d, 0xcb, 0x68, 0xa9, 0xd9, 0x46, 0x04, 0x5b, 0xc9, 0x4d, 0x97, 0x27, 0xaa, 0x71, 0x66, 0xe0,
0x8e, 0xf5, 0x65, 0xea, 0x61, 0x2c, 0xe5, 0x52, 0xb8, 0xde, 0xd5, 0x71, 0x4f, 0x55, 0x58, 0xe0,
0xd2, 0x8c, 0x67, 0x3a, 0xee, 0x77, 0xfa, 0x27, 0x6a, 0x86, 0xd7, 0xc9, 0x8a, 0x2e, 0xab, 0xd3,
0xfe, 0x52, 0xcd, 0x36, 0x7e, 0xaf, 0xb0, 0x76, 0xb0, 0xdc, 0x48, 0xd9, 0xb5, 0xd8, 0x30, 0x07,
0x23, 0xdc, 0x4c, 0xfb, 0x43, 0x83, 0x9d, 0x34, 0x7e, 0x36, 0xe8, 0x8e, 0x7a, 0x2c, 0xbf, 0x36,
0x9c, 0x68, 0x19, 0x6a, 0x86, 0xbd, 0x27, 0x8d, 0xcb, 0x54, 0x52, 0xb3, 0xcc, 0x86, 0x34, 0x8b,
0x7b, 0x46, 0xcd, 0x35, 0x7e, 0xa7, 0xc0, 0x36, 0x5f, 0x59, 0xc5, 0x8c, 0xe7, 0x2f, 0xba, 0x0f,
0xbb, 0x7a, 0xd7, 0xc0, 0x96, 0xad, 0x37, 0xad, 0xce, 0xa0, 0x9f, 0x7a, 0xd5, 0x43, 0xd0, 0xd6,
0x79, 0xc2, 0xa7, 0xaa, 0xb2, 0x99, 0xdb, 0xc4, 0x86, 0x6e, 0xb1, 0xf7, 0x6d, 0xe4, 0x8e, 0x86,
0x2d, 0xc6, 0xcd, 0x36, 0x7e, 0x13, 0x2f, 0x15, 0x89, 0x6d, 0x8b, 0x1d, 0x11, 0x66, 0xc7, 0x67,
0x86, 0x3a, 0xd6, 0x7b, 0xf1, 0x63, 0x1e, 0xc0, 0xdd, 0x4d, 0xdc, 0x41, 0xbb, 0xad, 0x2a, 0xcc,
0x8a, 0x8d, 0xcc, 0xbe, 0x9a, 0x69, 0x1c, 0x41, 0x51, 0xfe, 0xa8, 0x88, 0x4a, 0x90, 0x93, 0xda,
0x8a, 0x90, 0xed, 0x0e, 0x9e, 0xa9, 0x0a, 0x02, 0x28, 0xf4, 0x8c, 0x56, 0x67, 0xd4, 0x53, 0x33,
0x8c, 0x7d, 0xda, 0x39, 0x39, 0x55, 0xb3, 0x8d, 0xff, 0x28, 0x50, 0x49, 0xec, 0x44, 0xac, 0x36,
0xa5, 0x7e, 0xd6, 0x37, 0x92, 0x61, 0x4b, 0xc1, 0x43, 0xa3, 0xdf, 0x62, 0x39, 0x91, 0x7c, 0x90,
0xe0, 0xe8, 0x67, 0x7a, 0xa7, 0xab, 0x1f, 0x77, 0x65, 0xe8, 0xd2, 0x3c, 0xcb, 0xd2, 0x9b, 0xa7,
0x2c, 0x4d, 0xd7, 0x58, 0x2d, 0x43, 0xb2, 0x72, 0x09, 0xfb, 0x97, 0x2c, 0xab, 0x79, 0xca, 0xae,
0xcb, 0xb3, 0x2c, 0x49, 0x31, 0x45, 0x0b, 0x2f, 0xac, 0x3d, 0x30, 0x2e, 0x88, 0x62, 0xe3, 0x8f,
0x0a, 0x6c, 0x25, 0x7f, 0x07, 0x59, 0x51, 0xb1, 0x9c, 0x25, 0x8f, 0xe0, 0xde, 0x2a, 0x6e, 0xd9,
0x43, 0x6c, 0x98, 0x46, 0x9f, 0x4d, 0x96, 0x1d, 0x50, 0xd3, 0xec, 0xd1, 0x50, 0xb4, 0xbf, 0x34,
0xca, 0xdb, 0x7d, 0x76, 0xc5, 0x2d, 0x7c, 0x7e, 0xc8, 0x6e, 0x9f, 0x6b, 0xfc, 0x1a, 0xaa, 0xa9,
0xff, 0x6a, 0x88, 0xd9, 0x20, 0x1a, 0xb8, 0x08, 0x91, 0xdd, 0xd3, 0x4f, 0xfa, 0x86, 0xd5, 0x69,
0xaa, 0xef, 0x88, 0x49, 0x93, 0x62, 0x9a, 0x26, 0x6b, 0x19, 0x7c, 0x66, 0xa4, 0xf0, 0xfe, 0x59,
0xcf, 0x50, 0x33, 0x8d, 0x7d, 0xa8, 0xca, 0x6d, 0xa3, 0xef, 0x47, 0xee, 0x8b, 0x2b, 0x26, 0x29,
0x6b, 0x46, 0x16, 0xac, 0x78, 0xe4, 0x3b, 0xc7, 0x0f, 0xe1, 0xf6, 0xd8, 0x9f, 0xad, 0x4e, 0xe3,
0xa1, 0xf2, 0x55, 0xd6, 0x09, 0xdc, 0xe7, 0x05, 0xfe, 0x57, 0xec, 0x47, 0xff, 0x0b, 0x00, 0x00,
0xff, 0xff, 0x90, 0x7c, 0x3c, 0xe7, 0x1d, 0x1a, 0x00, 0x00,
}