From 8e90774b47cc3791603d443301038e4dbf49c748 Mon Sep 17 00:00:00 2001 From: Adam Bozanich Date: Tue, 31 Jul 2018 23:10:09 -0700 Subject: [PATCH] provider status: internal metrics --- Makefile | 1 + _run/kube/run.sh | 5 +- cmd/akash/provider.go | 9 +- provider/bidengine/service.go | 53 +- provider/bidengine/service_test.go | 4 + provider/cluster/inventory.go | 62 + provider/cluster/service.go | 42 + provider/cluster/service_test.go | 4 + provider/grpc/client_test.go | 5 +- provider/grpc/server.go | 24 +- provider/grpc/server_test.go | 18 +- provider/http/client.go | 4 +- provider/manifest/handler.go | 36 +- provider/manifest/handler_test.go | 10 +- provider/mocks/status_client.go | 35 + provider/service.go | 27 + types/types.pb.go | 2510 +++++++++++++++++++++++++--- types/types.proto | 73 +- types/types.swagger.json | 78 + 19 files changed, 2775 insertions(+), 225 deletions(-) create mode 100644 provider/mocks/status_client.go diff --git a/Makefile b/Makefile index ef62921887..ce5c8b79e6 100644 --- a/Makefile +++ b/Makefile @@ -113,6 +113,7 @@ mocks: mockery -case=underscore -dir app/market -output app/market/mocks -name Engine mockery -case=underscore -dir app/market -output app/market/mocks -name Facilitator mockery -case=underscore -dir marketplace -output marketplace/mocks -name Handler + mockery -case=underscore -dir provider -output provider/mocks -name StatusClient mockery -case=underscore -dir provider/cluster -output provider/cluster/mocks -name Client mockery -case=underscore -dir provider/cluster -output provider/cluster/mocks -name Cluster mockery -case=underscore -dir provider/cluster -output provider/cluster/mocks -name Deployment diff --git a/_run/kube/run.sh b/_run/kube/run.sh index b437164887..64e3407291 100755 --- a/_run/kube/run.sh +++ b/_run/kube/run.sh @@ -43,11 +43,14 @@ case "$1" in manifest) akash deployment sendmani deployment.yml "$2" -k master ;; + status) + akash provider status + ;; ping) curl -I "hello.$(minikube ip).nip.io" ;; *) - echo "USAGE: $0 " >&2 + echo "USAGE: $0 " >&2 exit 1 ;; esac diff --git a/cmd/akash/provider.go b/cmd/akash/provider.go index 52371a8cee..32d1e7ce74 100644 --- a/cmd/akash/provider.go +++ b/cmd/akash/provider.go @@ -209,7 +209,7 @@ func doProviderRunCommand(session session.Session, cmd *cobra.Command, args []st go func() { defer cancel() - errch <- grpc.RunServer(ctx, session.Log(), "tcp", "9090", service.ManifestHandler(), cclient) + errch <- grpc.RunServer(ctx, session.Log(), "tcp", "9090", service.ManifestHandler(), cclient, service) }() go func() { @@ -266,8 +266,8 @@ func doProviderStatusCommand(session session.Session, cmd *cobra.Command, args [ type outputItem struct { Provider *types.Provider - Status *types.ServerStatus - Error error `json:",omitempty"` + Status *types.ServerStatusParseable + Error string `json:",omitempty"` } output := []outputItem{} @@ -275,10 +275,9 @@ func doProviderStatusCommand(session session.Session, cmd *cobra.Command, args [ for _, provider := range providers { status, err := http.Status(session.Ctx(), &provider) if err != nil { - output = append(output, outputItem{Provider: &provider, Error: err}) + output = append(output, outputItem{Provider: &provider, Error: err.Error()}) continue } - output = append(output, outputItem{Provider: &provider, Status: status}) } diff --git a/provider/bidengine/service.go b/provider/bidengine/service.go index fbed364ed2..568d4d4746 100644 --- a/provider/bidengine/service.go +++ b/provider/bidengine/service.go @@ -2,6 +2,7 @@ package bidengine import ( "context" + "errors" lifecycle "github.com/boz/go-lifecycle" "github.com/ovrclk/akash/provider/cluster" @@ -10,7 +11,14 @@ import ( "github.com/ovrclk/akash/types" ) +var ErrNotRunning = errors.New("not running") + +type StatusClient interface { + Status(context.Context) (*types.ProviderBidengineStatus, error) +} + type Service interface { + StatusClient Close() error Done() <-chan struct{} } @@ -34,13 +42,14 @@ func NewService(ctx context.Context, session session.Session, cluster cluster.Cl session.Log().Info("found orders", "count", len(existingOrders)) s := &service{ - session: session, - cluster: cluster, - bus: bus, - sub: sub, - orders: make(map[string]*order), - drainch: make(chan *order), - lc: lifecycle.New(), + session: session, + cluster: cluster, + bus: bus, + sub: sub, + statusch: make(chan chan<- *types.ProviderBidengineStatus), + orders: make(map[string]*order), + drainch: make(chan *order), + lc: lifecycle.New(), } go s.lc.WatchContext(ctx) @@ -56,8 +65,9 @@ type service struct { bus event.Bus sub event.Subscriber - orders map[string]*order - drainch chan *order + statusch chan chan<- *types.ProviderBidengineStatus + orders map[string]*order + drainch chan *order lc lifecycle.Lifecycle } @@ -71,6 +81,27 @@ func (s *service) Done() <-chan struct{} { return s.lc.Done() } +func (s *service) Status(ctx context.Context) (*types.ProviderBidengineStatus, error) { + ch := make(chan *types.ProviderBidengineStatus, 1) + + select { + case <-s.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case s.statusch <- ch: + } + + select { + case <-s.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case result := <-ch: + return result, nil + } +} + func (s *service) run(existingOrders []existingOrder) { defer s.lc.ShutdownCompleted() defer s.sub.Close() @@ -117,6 +148,10 @@ loop: s.orders[key] = order } + case ch := <-s.statusch: + ch <- &types.ProviderBidengineStatus{ + Orders: uint32(len(s.orders)), + } case order := <-s.drainch: // child done delete(s.orders, order.order.Path()) diff --git a/provider/bidengine/service_test.go b/provider/bidengine/service_test.go index 76abd42b46..9e7cedcab3 100644 --- a/provider/bidengine/service_test.go +++ b/provider/bidengine/service_test.go @@ -84,6 +84,10 @@ func TestService(t *testing.T) { testutil.SleepForThreadStart(t) + status, err := service.Status(ctx) + assert.NoError(t, err) + assert.NotNil(t, status) + assert.NoError(t, service.Close()) mock.AssertExpectationsForObjects(t, qclient, txclient, creso, cluster) diff --git a/provider/cluster/inventory.go b/provider/cluster/inventory.go index 38c892ff12..807395e502 100644 --- a/provider/cluster/inventory.go +++ b/provider/cluster/inventory.go @@ -1,6 +1,7 @@ package cluster import ( + "context" "errors" "time" @@ -21,6 +22,7 @@ type inventoryService struct { client Client sub event.Subscriber + statusch chan chan<- *types.ProviderInventoryStatus lookupch chan inventoryRequest reservech chan inventoryRequest unreservech chan inventoryRequest @@ -49,6 +51,7 @@ func newInventoryService( config: config, client: client, sub: sub, + statusch: make(chan chan<- *types.ProviderInventoryStatus), lookupch: make(chan inventoryRequest), reservech: make(chan inventoryRequest), unreservech: make(chan inventoryRequest), @@ -128,6 +131,27 @@ func (is *inventoryService) unreserve(order types.OrderID, resources types.Resou } } +func (is *inventoryService) status(ctx context.Context) (*types.ProviderInventoryStatus, error) { + ch := make(chan *types.ProviderInventoryStatus, 1) + + select { + case <-is.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case is.statusch <- ch: + } + + select { + case <-is.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case result := <-ch: + return result, nil + } +} + type inventoryRequest struct { order types.OrderID resources types.ResourceList @@ -237,6 +261,10 @@ loop: req.ch <- inventoryResponse{err: errNotFound} + case ch := <-is.statusch: + + ch <- is.getStatus(inventory, reservations) + case <-t.C: // run cluster inventory check @@ -287,6 +315,40 @@ func (is *inventoryService) runCheck() <-chan runner.Result { }) } +func (is *inventoryService) getStatus( + inventory []Node, reservations []*reservation) *types.ProviderInventoryStatus { + + status := &types.ProviderInventoryStatus{ + Reservations: &types.ProviderInventoryStatus_Reservations{}, + } + + for _, reservation := range reservations { + total := &types.ResourceUnit{} + + for _, resource := range reservation.Resources().GetResources() { + total.CPU += resource.Unit.CPU + total.Memory += resource.Unit.Memory + total.Disk += resource.Unit.Disk + } + + if reservation.allocated { + status.Reservations.Active = append(status.Reservations.Active, total) + } else { + status.Reservations.Pending = append(status.Reservations.Pending, total) + } + } + + for _, node := range inventory { + status.Available = append(status.Available, &types.ResourceUnit{ + CPU: node.Available().CPU, + Memory: node.Available().Memory, + Disk: node.Available().Disk, + }) + } + + return status +} + func reservationAllocateable(inventory []Node, reservations []*reservation, newReservation *reservation) bool { // 1. for each unallocated reservation, subtract its resources diff --git a/provider/cluster/service.go b/provider/cluster/service.go index 51c13ab301..f2e921df6e 100644 --- a/provider/cluster/service.go +++ b/provider/cluster/service.go @@ -20,8 +20,13 @@ type Cluster interface { Unreserve(types.OrderID, types.ResourceList) error } +type StatusClient interface { + Status(context.Context) (*types.ProviderClusterStatus, error) +} + // Manage compute cluster for the provider. Will eventually integrate with kubernetes, etc... type Service interface { + StatusClient Cluster Close() error Ready() <-chan struct{} @@ -68,6 +73,7 @@ func NewService(ctx context.Context, session session.Session, bus event.Bus, cli bus: bus, sub: sub, inventory: inventory, + statusch: make(chan chan<- *types.ProviderClusterStatus), managers: make(map[string]*deploymentManager), managerch: make(chan *deploymentManager), log: log, @@ -88,6 +94,7 @@ type service struct { inventory *inventoryService + statusch chan chan<- *types.ProviderClusterStatus managers map[string]*deploymentManager managerch chan *deploymentManager @@ -117,6 +124,35 @@ func (s *service) Unreserve(order types.OrderID, resources types.ResourceList) e return err } +func (s *service) Status(ctx context.Context) (*types.ProviderClusterStatus, error) { + + istatus, err := s.inventory.status(ctx) + if err != nil { + return nil, err + } + + ch := make(chan *types.ProviderClusterStatus, 1) + + select { + case <-s.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case s.statusch <- ch: + } + + select { + case <-s.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case result := <-ch: + result.Inventory = istatus + return result, nil + } + +} + func (s *service) run(deployments []Deployment) { defer s.lc.ShutdownCompleted() defer s.sub.Close() @@ -181,6 +217,12 @@ loop: } + case ch := <-s.statusch: + + ch <- &types.ProviderClusterStatus{ + Leases: uint32(len(s.managers)), + } + case dm := <-s.managerch: s.log.Debug("manager done", "lease", dm.lease) diff --git a/provider/cluster/service_test.go b/provider/cluster/service_test.go index adb64206a3..e63ae11834 100644 --- a/provider/cluster/service_test.go +++ b/provider/cluster/service_test.go @@ -39,6 +39,10 @@ func TestService_Reserve(t *testing.T) { assert.Equal(t, order.OrderID, reservation.OrderID()) assert.Equal(t, group, reservation.Resources()) + status, err := c.Status(ctx) + assert.NoError(t, err) + assert.NotNil(t, status) + require.NoError(t, c.Close()) _, err = c.Reserve(order.OrderID, group) diff --git a/provider/grpc/client_test.go b/provider/grpc/client_test.go index f1f4b07758..fce03e95c2 100644 --- a/provider/grpc/client_test.go +++ b/provider/grpc/client_test.go @@ -9,6 +9,7 @@ import ( "github.com/ovrclk/akash/manifest" kmocks "github.com/ovrclk/akash/provider/cluster/kube/mocks" "github.com/ovrclk/akash/provider/manifest/mocks" + pmocks "github.com/ovrclk/akash/provider/mocks" "github.com/ovrclk/akash/sdl" "github.com/ovrclk/akash/testutil" "github.com/stretchr/testify/assert" @@ -35,12 +36,14 @@ func TestSendManifest(t *testing.T) { req, _, err := manifest.SignManifest(mani, signer, deployment) assert.NoError(t, err) + sclient := &pmocks.StatusClient{} + handler := &mocks.Handler{} handler.On("HandleManifest", mock.Anything, mock.Anything).Return(nil) client := &kmocks.Client{} - server := newServer(log.NewTMLogger(os.Stdout), "tcp", ":3001", handler, client) + server := newServer(log.NewTMLogger(os.Stdout), "tcp", ":3001", handler, client, sclient) go func() { err := server.listenAndServe() require.NoError(t, err) diff --git a/provider/grpc/server.go b/provider/grpc/server.go index 83faf5844d..a9ea310828 100644 --- a/provider/grpc/server.go +++ b/provider/grpc/server.go @@ -8,6 +8,7 @@ import ( "time" "github.com/ovrclk/akash/keys" + "github.com/ovrclk/akash/provider" "github.com/ovrclk/akash/provider/cluster" "github.com/ovrclk/akash/provider/cluster/kube" "github.com/ovrclk/akash/provider/manifest" @@ -22,17 +23,20 @@ import ( type server struct { cluster.Client *grpc.Server + status provider.StatusClient handler manifest.Handler network string port string log log.Logger } -func RunServer(ctx context.Context, log log.Logger, network, port string, handler manifest.Handler, client kube.Client) error { +func RunServer(ctx context.Context, log log.Logger, network, + port string, handler manifest.Handler, client kube.Client, + status provider.StatusClient) error { address := fmt.Sprintf(":%v", port) - server := newServer(log, network, address, handler, client) + server := newServer(log, network, address, handler, client, status) ctx, cancel := context.WithCancel(ctx) @@ -57,11 +61,17 @@ func RunServer(ctx context.Context, log log.Logger, network, port string, handle } func (s server) Status(ctx context.Context, req *types.Empty) (*types.ServerStatus, error) { + status, err := s.status.Status(ctx) + if err != nil { + return nil, err + } + vsn := version.Get() return &types.ServerStatus{ - Code: http.StatusOK, - Version: &vsn, - Message: "OK", + Code: http.StatusOK, + Version: &vsn, + Provider: status, + Message: "OK", }, nil } @@ -156,8 +166,10 @@ func (s server) ServiceLogs(req *types.LogRequest, server types.Cluster_ServiceL } // NewServer network can be "tcp", "tcp4", "tcp6", "unix" or "unixpacket". phandler is the provider cluster handler -func newServer(log log.Logger, network, port string, handler manifest.Handler, client kube.Client) *server { +func newServer(log log.Logger, network, port string, handler manifest.Handler, + client kube.Client, status provider.StatusClient) *server { s := &server{ + status: status, handler: handler, network: network, port: port, diff --git a/provider/grpc/server_test.go b/provider/grpc/server_test.go index 72db3d6bd2..44fce8afe0 100644 --- a/provider/grpc/server_test.go +++ b/provider/grpc/server_test.go @@ -12,6 +12,7 @@ import ( kmocks "github.com/ovrclk/akash/provider/cluster/kube/mocks" "github.com/ovrclk/akash/provider/manifest/mocks" mmocks "github.com/ovrclk/akash/provider/manifest/mocks" + pmocks "github.com/ovrclk/akash/provider/mocks" "github.com/ovrclk/akash/sdl" "github.com/ovrclk/akash/testutil" "github.com/ovrclk/akash/types" @@ -37,23 +38,30 @@ func TestDeployManifest(t *testing.T) { req, _, err := manifest.SignManifest(mani, signer, deployment) assert.NoError(t, err) + sclient := &pmocks.StatusClient{} + handler := &mocks.Handler{} handler.On("HandleManifest", mock.Anything, mock.Anything).Return(nil) client := &kmocks.Client{} - server := newServer(log.NewTMLogger(os.Stdout), "tcp", "0", handler, client) + server := newServer(log.NewTMLogger(os.Stdout), "tcp", "0", handler, client, sclient) _, err = server.Deploy(context.TODO(), req) assert.NoError(t, err) } func TestStatus(t *testing.T) { - server := newServer(nil, "tcp", "3002", nil, nil) + sclient := &pmocks.StatusClient{} + sclient.On("Status", mock.Anything). + Return(&types.ProviderStatus{}, nil) + + server := newServer(nil, "tcp", "3002", nil, nil, sclient) status, err := server.Status(context.TODO(), nil) assert.NoError(t, err) require.Equal(t, "OK", status.Message) require.Equal(t, http.StatusOK, int(status.Code)) + require.NotNil(t, status.Provider) } func TestLeaseStatus(t *testing.T) { @@ -62,7 +70,7 @@ func TestLeaseStatus(t *testing.T) { mockResp := types.LeaseStatusResponse{} client.On("LeaseStatus", mock.Anything, mock.Anything).Return(&mockResp, nil).Once() - server := newServer(log.NewTMLogger(os.Stdout), "tcp", "3002", handler, client) + server := newServer(log.NewTMLogger(os.Stdout), "tcp", "3002", handler, client, nil) response, err := server.LeaseStatus(context.TODO(), &types.LeaseStatusRequest{ Deployment: "d6f4b6728c7deb187a07afe8e145e214c716e287039a204e7fac1fc121dc0cef", Group: "1", @@ -79,7 +87,7 @@ func TestServiceStatus(t *testing.T) { mockResp := types.ServiceStatusResponse{} client.On("ServiceStatus", mock.Anything, mock.Anything).Return(&mockResp, nil).Once() - server := newServer(log.NewTMLogger(os.Stdout), "tcp", "3002", handler, client) + server := newServer(log.NewTMLogger(os.Stdout), "tcp", "3002", handler, client, nil) response, err := server.ServiceStatus(context.TODO(), &types.ServiceStatusRequest{ Name: "web", Deployment: "d6f4b6728c7deb187a07afe8e145e214c716e287039a204e7fac1fc121dc0cef", @@ -111,7 +119,7 @@ func TestServiceLogs(t *testing.T) { mockResp := []*cluster.ServiceLog{serviceLog} client.On("ServiceLogs", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(mockResp, nil).Once() streamServer := mockCluserServiceLogServer{} - server := newServer(log.NewTMLogger(os.Stdout), "tcp", "3002", handler, client) + server := newServer(log.NewTMLogger(os.Stdout), "tcp", "3002", handler, client, nil) err := server.ServiceLogs(&types.LogRequest{ Name: t.Name(), Deployment: "d6f4b6728c7deb187a07afe8e145e214c716e287039a204e7fac1fc121dc0cef", diff --git a/provider/http/client.go b/provider/http/client.go index 767d6b1711..026bd7a9a0 100644 --- a/provider/http/client.go +++ b/provider/http/client.go @@ -42,12 +42,12 @@ func SendManifest( return post(ctx, provider.GetHostURI()+"/manifest", buf) } -func Status(ctx context.Context, provider *types.Provider) (*types.ServerStatus, error) { +func Status(ctx context.Context, provider *types.Provider) (*types.ServerStatusParseable, error) { resp, err := get(ctx, provider.GetHostURI()+"/status") if err != nil { return nil, err } - status := &types.ServerStatus{} + status := &types.ServerStatusParseable{} err = json.Unmarshal(resp, status) if err != nil { return nil, err diff --git a/provider/manifest/handler.go b/provider/manifest/handler.go index cb501a2ab5..b303979057 100644 --- a/provider/manifest/handler.go +++ b/provider/manifest/handler.go @@ -17,11 +17,16 @@ import ( var ErrNotRunning = errors.New("not running") +type StatusClient interface { + Status(context.Context) (*types.ProviderManifestStatus, error) +} + type Handler interface { HandleManifest(context.Context, *types.ManifestRequest) error } type Service interface { + StatusClient Handler Done() <-chan struct{} } @@ -54,6 +59,7 @@ func NewHandler(ctx context.Context, session session.Session, bus event.Bus) (Se session: session, bus: bus, sub: sub, + statusch: make(chan chan<- *types.ProviderManifestStatus), mreqch: make(chan manifestRequest), managers: make(map[string]*manager), managerch: make(chan *manager), @@ -72,7 +78,8 @@ type handler struct { bus event.Bus sub event.Subscriber - mreqch chan manifestRequest + statusch chan chan<- *types.ProviderManifestStatus + mreqch chan manifestRequest managers map[string]*manager managerch chan *manager @@ -106,6 +113,27 @@ func (h *handler) Done() <-chan struct{} { return h.lc.Done() } +func (h *handler) Status(ctx context.Context) (*types.ProviderManifestStatus, error) { + ch := make(chan *types.ProviderManifestStatus, 1) + + select { + case <-h.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case h.statusch <- ch: + } + + select { + case <-h.lc.Done(): + return nil, ErrNotRunning + case <-ctx.Done(): + return nil, ctx.Err() + case result := <-ch: + return result, nil + } +} + func (h *handler) run(leases []event.LeaseWon) { defer h.lc.ShutdownCompleted() defer h.sub.Close() @@ -189,6 +217,12 @@ loop: manager.handleManifest(req) + case ch := <-h.statusch: + + ch <- &types.ProviderManifestStatus{ + Deployments: uint32(len(h.managers)), + } + case manager := <-h.managerch: h.session.Log().Info("manager done", "deployment", manager.daddr) diff --git a/provider/manifest/handler_test.go b/provider/manifest/handler_test.go index e7fa88ffb2..ded8fd9f64 100644 --- a/provider/manifest/handler_test.go +++ b/provider/manifest/handler_test.go @@ -19,7 +19,7 @@ import ( func TestHandler_manifestFirst(t *testing.T) { withHandler(t, func( - h manifest.Handler, + h manifest.Service, bus event.Bus, mreq *types.ManifestRequest, lease *types.Lease, @@ -46,7 +46,7 @@ func TestHandler_manifestFirst(t *testing.T) { func TestHandler_leaseFirst(t *testing.T) { withHandler(t, func( - h manifest.Handler, + h manifest.Service, bus event.Bus, mreq *types.ManifestRequest, lease *types.Lease, @@ -62,10 +62,14 @@ func TestHandler_leaseFirst(t *testing.T) { defer cancel() require.NoError(t, h.HandleManifest(ctx, mreq)) + + status, err := h.Status(ctx) + assert.NoError(t, err) + assert.NotNil(t, status) }) } -type testfn func(manifest.Handler, event.Bus, *types.ManifestRequest, *types.Lease, *types.DeploymentGroup) +type testfn func(manifest.Service, event.Bus, *types.ManifestRequest, *types.Lease, *types.DeploymentGroup) func withHandler(t *testing.T, fn testfn) { info, kmgr := testutil.NewNamedKey(t) diff --git a/provider/mocks/status_client.go b/provider/mocks/status_client.go new file mode 100644 index 0000000000..76e361eb35 --- /dev/null +++ b/provider/mocks/status_client.go @@ -0,0 +1,35 @@ +// Code generated by mockery v1.0.0. DO NOT EDIT. +package mocks + +import context "context" +import mock "github.com/stretchr/testify/mock" + +import types "github.com/ovrclk/akash/types" + +// StatusClient is an autogenerated mock type for the StatusClient type +type StatusClient struct { + mock.Mock +} + +// Status provides a mock function with given fields: _a0 +func (_m *StatusClient) Status(_a0 context.Context) (*types.ProviderStatus, error) { + ret := _m.Called(_a0) + + var r0 *types.ProviderStatus + if rf, ok := ret.Get(0).(func(context.Context) *types.ProviderStatus); ok { + r0 = rf(_a0) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ProviderStatus) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} diff --git a/provider/service.go b/provider/service.go index d51b8b9e6f..15a630e060 100644 --- a/provider/service.go +++ b/provider/service.go @@ -12,12 +12,19 @@ import ( "github.com/ovrclk/akash/provider/event" "github.com/ovrclk/akash/provider/manifest" "github.com/ovrclk/akash/provider/session" + "github.com/ovrclk/akash/types" ) type Service interface { ManifestHandler() manifest.Handler Close() error Done() <-chan struct{} + + StatusClient +} + +type StatusClient interface { + Status(context.Context) (*types.ProviderStatus, error) } // Simple wrapper around various services needed for running a provider. @@ -107,6 +114,26 @@ func (s *service) ManifestHandler() manifest.Handler { return s.manifest } +func (s *service) Status(ctx context.Context) (*types.ProviderStatus, error) { + cluster, err := s.cluster.Status(ctx) + if err != nil { + return nil, err + } + bidengine, err := s.bidengine.Status(ctx) + if err != nil { + return nil, err + } + manifest, err := s.manifest.Status(ctx) + if err != nil { + return nil, err + } + return &types.ProviderStatus{ + Cluster: cluster, + Bidengine: bidengine, + Manifest: manifest, + }, nil +} + func (s *service) run() { defer s.lc.ShutdownCompleted() diff --git a/types/types.pb.go b/types/types.pb.go index 67ffc78cdd..d48cc7acd2 100644 --- a/types/types.pb.go +++ b/types/types.pb.go @@ -50,6 +50,12 @@ Empty AkashVersion ServerStatus + ServerStatusParseable + ProviderStatus + ProviderManifestStatus + ProviderBidengineStatus + ProviderClusterStatus + ProviderInventoryStatus DeployRespone LeaseStatusRequest ServiceStatusRequest @@ -1598,9 +1604,10 @@ func (m *AkashVersion) GetDate() string { } type ServerStatus struct { - Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Version *AkashVersion `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` - Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Version *AkashVersion `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` + Provider *ProviderStatus `protobuf:"bytes,3,opt,name=provider" json:"provider,omitempty"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` } func (m *ServerStatus) Reset() { *m = ServerStatus{} } @@ -1622,6 +1629,13 @@ func (m *ServerStatus) GetVersion() *AkashVersion { return nil } +func (m *ServerStatus) GetProvider() *ProviderStatus { + if m != nil { + return m.Provider + } + return nil +} + func (m *ServerStatus) GetMessage() string { if m != nil { return m.Message @@ -1629,6 +1643,380 @@ func (m *ServerStatus) GetMessage() string { return "" } +type ServerStatusParseable struct { + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Version *AkashVersion `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` + Provider *ServerStatusParseable_ProviderStatus `protobuf:"bytes,3,opt,name=provider" json:"provider,omitempty"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` +} + +func (m *ServerStatusParseable) Reset() { *m = ServerStatusParseable{} } +func (m *ServerStatusParseable) String() string { return proto.CompactTextString(m) } +func (*ServerStatusParseable) ProtoMessage() {} +func (*ServerStatusParseable) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{42} } + +func (m *ServerStatusParseable) GetCode() int32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *ServerStatusParseable) GetVersion() *AkashVersion { + if m != nil { + return m.Version + } + return nil +} + +func (m *ServerStatusParseable) GetProvider() *ServerStatusParseable_ProviderStatus { + if m != nil { + return m.Provider + } + return nil +} + +func (m *ServerStatusParseable) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type ServerStatusParseable_ProviderStatus struct { + Cluster *ServerStatusParseable_ProviderClusterStatus `protobuf:"bytes,1,opt,name=cluster" json:"cluster,omitempty"` + Manifest *ProviderManifestStatus `protobuf:"bytes,2,opt,name=manifest" json:"manifest,omitempty"` + Bidengine *ProviderBidengineStatus `protobuf:"bytes,3,opt,name=bidengine" json:"bidengine,omitempty"` +} + +func (m *ServerStatusParseable_ProviderStatus) Reset() { *m = ServerStatusParseable_ProviderStatus{} } +func (m *ServerStatusParseable_ProviderStatus) String() string { return proto.CompactTextString(m) } +func (*ServerStatusParseable_ProviderStatus) ProtoMessage() {} +func (*ServerStatusParseable_ProviderStatus) Descriptor() ([]byte, []int) { + return fileDescriptorTypes, []int{42, 0} +} + +func (m *ServerStatusParseable_ProviderStatus) GetCluster() *ServerStatusParseable_ProviderClusterStatus { + if m != nil { + return m.Cluster + } + return nil +} + +func (m *ServerStatusParseable_ProviderStatus) GetManifest() *ProviderManifestStatus { + if m != nil { + return m.Manifest + } + return nil +} + +func (m *ServerStatusParseable_ProviderStatus) GetBidengine() *ProviderBidengineStatus { + if m != nil { + return m.Bidengine + } + return nil +} + +type ServerStatusParseable_ProviderClusterStatus struct { + Leases uint32 `protobuf:"varint,1,opt,name=leases,proto3" json:"leases,omitempty"` + Inventory *ServerStatusParseable_ProviderInventoryStatus `protobuf:"bytes,2,opt,name=inventory" json:"inventory,omitempty"` +} + +func (m *ServerStatusParseable_ProviderClusterStatus) Reset() { + *m = ServerStatusParseable_ProviderClusterStatus{} +} +func (m *ServerStatusParseable_ProviderClusterStatus) String() string { + return proto.CompactTextString(m) +} +func (*ServerStatusParseable_ProviderClusterStatus) ProtoMessage() {} +func (*ServerStatusParseable_ProviderClusterStatus) Descriptor() ([]byte, []int) { + return fileDescriptorTypes, []int{42, 1} +} + +func (m *ServerStatusParseable_ProviderClusterStatus) GetLeases() uint32 { + if m != nil { + return m.Leases + } + return 0 +} + +func (m *ServerStatusParseable_ProviderClusterStatus) GetInventory() *ServerStatusParseable_ProviderInventoryStatus { + if m != nil { + return m.Inventory + } + return nil +} + +type ServerStatusParseable_ProviderInventoryStatus struct { + Reservations *ServerStatusParseable_ProviderInventoryStatus_Reservations `protobuf:"bytes,1,opt,name=reservations" json:"reservations,omitempty"` + Available []*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit `protobuf:"bytes,2,rep,name=available" json:"available,omitempty"` +} + +func (m *ServerStatusParseable_ProviderInventoryStatus) Reset() { + *m = ServerStatusParseable_ProviderInventoryStatus{} +} +func (m *ServerStatusParseable_ProviderInventoryStatus) String() string { + return proto.CompactTextString(m) +} +func (*ServerStatusParseable_ProviderInventoryStatus) ProtoMessage() {} +func (*ServerStatusParseable_ProviderInventoryStatus) Descriptor() ([]byte, []int) { + return fileDescriptorTypes, []int{42, 2} +} + +func (m *ServerStatusParseable_ProviderInventoryStatus) GetReservations() *ServerStatusParseable_ProviderInventoryStatus_Reservations { + if m != nil { + return m.Reservations + } + return nil +} + +func (m *ServerStatusParseable_ProviderInventoryStatus) GetAvailable() []*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit { + if m != nil { + return m.Available + } + return nil +} + +type ServerStatusParseable_ProviderInventoryStatus_ResourceUnit struct { + CPU uint32 `protobuf:"varint,1,opt,name=CPU,proto3" json:"cpu"` + Memory string `protobuf:"bytes,2,opt,name=memory,proto3" json:"memory,omitempty"` + Disk string `protobuf:"bytes,3,opt,name=disk,proto3" json:"disk,omitempty"` +} + +func (m *ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) Reset() { + *m = ServerStatusParseable_ProviderInventoryStatus_ResourceUnit{} +} +func (m *ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) String() string { + return proto.CompactTextString(m) +} +func (*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) ProtoMessage() {} +func (*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) Descriptor() ([]byte, []int) { + return fileDescriptorTypes, []int{42, 2, 0} +} + +func (m *ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) GetCPU() uint32 { + if m != nil { + return m.CPU + } + return 0 +} + +func (m *ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) GetMemory() string { + if m != nil { + return m.Memory + } + return "" +} + +func (m *ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) GetDisk() string { + if m != nil { + return m.Disk + } + return "" +} + +type ServerStatusParseable_ProviderInventoryStatus_Reservations struct { + Active []*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit `protobuf:"bytes,1,rep,name=active" json:"active,omitempty"` + Pending []*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit `protobuf:"bytes,2,rep,name=pending" json:"pending,omitempty"` +} + +func (m *ServerStatusParseable_ProviderInventoryStatus_Reservations) Reset() { + *m = ServerStatusParseable_ProviderInventoryStatus_Reservations{} +} +func (m *ServerStatusParseable_ProviderInventoryStatus_Reservations) String() string { + return proto.CompactTextString(m) +} +func (*ServerStatusParseable_ProviderInventoryStatus_Reservations) ProtoMessage() {} +func (*ServerStatusParseable_ProviderInventoryStatus_Reservations) Descriptor() ([]byte, []int) { + return fileDescriptorTypes, []int{42, 2, 1} +} + +func (m *ServerStatusParseable_ProviderInventoryStatus_Reservations) GetActive() []*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit { + if m != nil { + return m.Active + } + return nil +} + +func (m *ServerStatusParseable_ProviderInventoryStatus_Reservations) GetPending() []*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit { + if m != nil { + return m.Pending + } + return nil +} + +type ProviderStatus struct { + Cluster *ProviderClusterStatus `protobuf:"bytes,1,opt,name=cluster" json:"cluster,omitempty"` + Manifest *ProviderManifestStatus `protobuf:"bytes,2,opt,name=manifest" json:"manifest,omitempty"` + Bidengine *ProviderBidengineStatus `protobuf:"bytes,3,opt,name=bidengine" json:"bidengine,omitempty"` +} + +func (m *ProviderStatus) Reset() { *m = ProviderStatus{} } +func (m *ProviderStatus) String() string { return proto.CompactTextString(m) } +func (*ProviderStatus) ProtoMessage() {} +func (*ProviderStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{43} } + +func (m *ProviderStatus) GetCluster() *ProviderClusterStatus { + if m != nil { + return m.Cluster + } + return nil +} + +func (m *ProviderStatus) GetManifest() *ProviderManifestStatus { + if m != nil { + return m.Manifest + } + return nil +} + +func (m *ProviderStatus) GetBidengine() *ProviderBidengineStatus { + if m != nil { + return m.Bidengine + } + return nil +} + +type ProviderManifestStatus struct { + Deployments uint32 `protobuf:"varint,1,opt,name=deployments,proto3" json:"deployments,omitempty"` +} + +func (m *ProviderManifestStatus) Reset() { *m = ProviderManifestStatus{} } +func (m *ProviderManifestStatus) String() string { return proto.CompactTextString(m) } +func (*ProviderManifestStatus) ProtoMessage() {} +func (*ProviderManifestStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{44} } + +func (m *ProviderManifestStatus) GetDeployments() uint32 { + if m != nil { + return m.Deployments + } + return 0 +} + +type ProviderBidengineStatus struct { + Orders uint32 `protobuf:"varint,1,opt,name=orders,proto3" json:"orders,omitempty"` +} + +func (m *ProviderBidengineStatus) Reset() { *m = ProviderBidengineStatus{} } +func (m *ProviderBidengineStatus) String() string { return proto.CompactTextString(m) } +func (*ProviderBidengineStatus) ProtoMessage() {} +func (*ProviderBidengineStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{45} } + +func (m *ProviderBidengineStatus) GetOrders() uint32 { + if m != nil { + return m.Orders + } + return 0 +} + +type ProviderClusterStatus struct { + Leases uint32 `protobuf:"varint,1,opt,name=leases,proto3" json:"leases,omitempty"` + Inventory *ProviderInventoryStatus `protobuf:"bytes,2,opt,name=inventory" json:"inventory,omitempty"` +} + +func (m *ProviderClusterStatus) Reset() { *m = ProviderClusterStatus{} } +func (m *ProviderClusterStatus) String() string { return proto.CompactTextString(m) } +func (*ProviderClusterStatus) ProtoMessage() {} +func (*ProviderClusterStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{46} } + +func (m *ProviderClusterStatus) GetLeases() uint32 { + if m != nil { + return m.Leases + } + return 0 +} + +func (m *ProviderClusterStatus) GetInventory() *ProviderInventoryStatus { + if m != nil { + return m.Inventory + } + return nil +} + +type ProviderInventoryStatus struct { + Reservations *ProviderInventoryStatus_Reservations `protobuf:"bytes,1,opt,name=reservations" json:"reservations,omitempty"` + Available []*ResourceUnit `protobuf:"bytes,2,rep,name=available" json:"available,omitempty"` +} + +func (m *ProviderInventoryStatus) Reset() { *m = ProviderInventoryStatus{} } +func (m *ProviderInventoryStatus) String() string { return proto.CompactTextString(m) } +func (*ProviderInventoryStatus) ProtoMessage() {} +func (*ProviderInventoryStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{47} } + +func (m *ProviderInventoryStatus) GetReservations() *ProviderInventoryStatus_Reservations { + if m != nil { + return m.Reservations + } + return nil +} + +func (m *ProviderInventoryStatus) GetAvailable() []*ResourceUnit { + if m != nil { + return m.Available + } + return nil +} + +type ProviderInventoryStatus_Resource struct { + CPU uint32 `protobuf:"varint,1,opt,name=CPU,proto3" json:"cpu"` + Memory uint32 `protobuf:"varint,2,opt,name=memory,proto3" json:"memory,omitempty"` + Disk uint32 `protobuf:"varint,3,opt,name=disk,proto3" json:"disk,omitempty"` +} + +func (m *ProviderInventoryStatus_Resource) Reset() { *m = ProviderInventoryStatus_Resource{} } +func (m *ProviderInventoryStatus_Resource) String() string { return proto.CompactTextString(m) } +func (*ProviderInventoryStatus_Resource) ProtoMessage() {} +func (*ProviderInventoryStatus_Resource) Descriptor() ([]byte, []int) { + return fileDescriptorTypes, []int{47, 0} +} + +func (m *ProviderInventoryStatus_Resource) GetCPU() uint32 { + if m != nil { + return m.CPU + } + return 0 +} + +func (m *ProviderInventoryStatus_Resource) GetMemory() uint32 { + if m != nil { + return m.Memory + } + return 0 +} + +func (m *ProviderInventoryStatus_Resource) GetDisk() uint32 { + if m != nil { + return m.Disk + } + return 0 +} + +type ProviderInventoryStatus_Reservations struct { + Active []*ResourceUnit `protobuf:"bytes,1,rep,name=active" json:"active,omitempty"` + Pending []*ResourceUnit `protobuf:"bytes,2,rep,name=pending" json:"pending,omitempty"` +} + +func (m *ProviderInventoryStatus_Reservations) Reset() { *m = ProviderInventoryStatus_Reservations{} } +func (m *ProviderInventoryStatus_Reservations) String() string { return proto.CompactTextString(m) } +func (*ProviderInventoryStatus_Reservations) ProtoMessage() {} +func (*ProviderInventoryStatus_Reservations) Descriptor() ([]byte, []int) { + return fileDescriptorTypes, []int{47, 1} +} + +func (m *ProviderInventoryStatus_Reservations) GetActive() []*ResourceUnit { + if m != nil { + return m.Active + } + return nil +} + +func (m *ProviderInventoryStatus_Reservations) GetPending() []*ResourceUnit { + if m != nil { + return m.Pending + } + return nil +} + type DeployRespone struct { Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` } @@ -1636,7 +2024,7 @@ type DeployRespone struct { func (m *DeployRespone) Reset() { *m = DeployRespone{} } func (m *DeployRespone) String() string { return proto.CompactTextString(m) } func (*DeployRespone) ProtoMessage() {} -func (*DeployRespone) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{42} } +func (*DeployRespone) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{48} } func (m *DeployRespone) GetMessage() string { if m != nil { @@ -1655,7 +2043,7 @@ type LeaseStatusRequest struct { func (m *LeaseStatusRequest) Reset() { *m = LeaseStatusRequest{} } func (m *LeaseStatusRequest) String() string { return proto.CompactTextString(m) } func (*LeaseStatusRequest) ProtoMessage() {} -func (*LeaseStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{43} } +func (*LeaseStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{49} } func (m *LeaseStatusRequest) GetDeployment() string { if m != nil { @@ -1696,7 +2084,7 @@ type ServiceStatusRequest struct { func (m *ServiceStatusRequest) Reset() { *m = ServiceStatusRequest{} } func (m *ServiceStatusRequest) String() string { return proto.CompactTextString(m) } func (*ServiceStatusRequest) ProtoMessage() {} -func (*ServiceStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{44} } +func (*ServiceStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{50} } func (m *ServiceStatusRequest) GetName() string { if m != nil { @@ -1744,7 +2132,7 @@ type ServiceStatusResponse struct { func (m *ServiceStatusResponse) Reset() { *m = ServiceStatusResponse{} } func (m *ServiceStatusResponse) String() string { return proto.CompactTextString(m) } func (*ServiceStatusResponse) ProtoMessage() {} -func (*ServiceStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{45} } +func (*ServiceStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{51} } func (m *ServiceStatusResponse) GetObservedGeneration() int64 { if m != nil { @@ -1793,7 +2181,7 @@ type LogRequest struct { func (m *LogRequest) Reset() { *m = LogRequest{} } func (m *LogRequest) String() string { return proto.CompactTextString(m) } func (*LogRequest) ProtoMessage() {} -func (*LogRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{46} } +func (*LogRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{52} } func (m *LogRequest) GetName() string { if m != nil { @@ -1845,7 +2233,7 @@ type LogOptions struct { func (m *LogOptions) Reset() { *m = LogOptions{} } func (m *LogOptions) String() string { return proto.CompactTextString(m) } func (*LogOptions) ProtoMessage() {} -func (*LogOptions) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{47} } +func (*LogOptions) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{53} } func (m *LogOptions) GetTailLines() int64 { if m != nil { @@ -1869,7 +2257,7 @@ type Log struct { func (m *Log) Reset() { *m = Log{} } func (m *Log) String() string { return proto.CompactTextString(m) } func (*Log) ProtoMessage() {} -func (*Log) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{48} } +func (*Log) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{54} } func (m *Log) GetName() string { if m != nil { @@ -1892,7 +2280,7 @@ type LogResponse struct { func (m *LogResponse) Reset() { *m = LogResponse{} } func (m *LogResponse) String() string { return proto.CompactTextString(m) } func (*LogResponse) ProtoMessage() {} -func (*LogResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{49} } +func (*LogResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{55} } func (m *LogResponse) GetResult() *Log { if m != nil { @@ -1908,7 +2296,7 @@ type LeaseStatusResponse struct { func (m *LeaseStatusResponse) Reset() { *m = LeaseStatusResponse{} } func (m *LeaseStatusResponse) String() string { return proto.CompactTextString(m) } func (*LeaseStatusResponse) ProtoMessage() {} -func (*LeaseStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{50} } +func (*LeaseStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{56} } func (m *LeaseStatusResponse) GetServices() []*ServiceStatus { if m != nil { @@ -1927,7 +2315,7 @@ type ServiceStatus struct { func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (m *ServiceStatus) String() string { return proto.CompactTextString(m) } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{51} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{57} } func (m *ServiceStatus) GetName() string { if m != nil { @@ -1964,7 +2352,7 @@ type ManifestGetRequest struct { func (m *ManifestGetRequest) Reset() { *m = ManifestGetRequest{} } func (m *ManifestGetRequest) String() string { return proto.CompactTextString(m) } func (*ManifestGetRequest) ProtoMessage() {} -func (*ManifestGetRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{52} } +func (*ManifestGetRequest) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{58} } func (m *ManifestGetRequest) GetLease() []byte { if m != nil { @@ -1980,7 +2368,7 @@ type ManifestGetResponse struct { func (m *ManifestGetResponse) Reset() { *m = ManifestGetResponse{} } func (m *ManifestGetResponse) String() string { return proto.CompactTextString(m) } func (*ManifestGetResponse) ProtoMessage() {} -func (*ManifestGetResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{53} } +func (*ManifestGetResponse) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{59} } func (m *ManifestGetResponse) GetManifest() *Manifest { if m != nil { @@ -1996,7 +2384,7 @@ type ErrInvalidPayload struct { func (m *ErrInvalidPayload) Reset() { *m = ErrInvalidPayload{} } func (m *ErrInvalidPayload) String() string { return proto.CompactTextString(m) } func (*ErrInvalidPayload) ProtoMessage() {} -func (*ErrInvalidPayload) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{54} } +func (*ErrInvalidPayload) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{60} } func (m *ErrInvalidPayload) GetMessage() string { if m != nil { @@ -2012,7 +2400,7 @@ type ErrInternalError struct { func (m *ErrInternalError) Reset() { *m = ErrInternalError{} } func (m *ErrInternalError) String() string { return proto.CompactTextString(m) } func (*ErrInternalError) ProtoMessage() {} -func (*ErrInternalError) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{55} } +func (*ErrInternalError) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{61} } func (m *ErrInternalError) GetMessage() string { if m != nil { @@ -2028,7 +2416,7 @@ type ErrResourceNotFound struct { func (m *ErrResourceNotFound) Reset() { *m = ErrResourceNotFound{} } func (m *ErrResourceNotFound) String() string { return proto.CompactTextString(m) } func (*ErrResourceNotFound) ProtoMessage() {} -func (*ErrResourceNotFound) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{56} } +func (*ErrResourceNotFound) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{62} } func (m *ErrResourceNotFound) GetMessage() string { if m != nil { @@ -2080,6 +2468,19 @@ func init() { proto.RegisterType((*Empty)(nil), "types.Empty") proto.RegisterType((*AkashVersion)(nil), "types.AkashVersion") proto.RegisterType((*ServerStatus)(nil), "types.ServerStatus") + proto.RegisterType((*ServerStatusParseable)(nil), "types.ServerStatusParseable") + proto.RegisterType((*ServerStatusParseable_ProviderStatus)(nil), "types.ServerStatusParseable.ProviderStatus") + proto.RegisterType((*ServerStatusParseable_ProviderClusterStatus)(nil), "types.ServerStatusParseable.ProviderClusterStatus") + proto.RegisterType((*ServerStatusParseable_ProviderInventoryStatus)(nil), "types.ServerStatusParseable.ProviderInventoryStatus") + proto.RegisterType((*ServerStatusParseable_ProviderInventoryStatus_ResourceUnit)(nil), "types.ServerStatusParseable.ProviderInventoryStatus.ResourceUnit") + proto.RegisterType((*ServerStatusParseable_ProviderInventoryStatus_Reservations)(nil), "types.ServerStatusParseable.ProviderInventoryStatus.Reservations") + proto.RegisterType((*ProviderStatus)(nil), "types.ProviderStatus") + proto.RegisterType((*ProviderManifestStatus)(nil), "types.ProviderManifestStatus") + proto.RegisterType((*ProviderBidengineStatus)(nil), "types.ProviderBidengineStatus") + proto.RegisterType((*ProviderClusterStatus)(nil), "types.ProviderClusterStatus") + proto.RegisterType((*ProviderInventoryStatus)(nil), "types.ProviderInventoryStatus") + proto.RegisterType((*ProviderInventoryStatus_Resource)(nil), "types.ProviderInventoryStatus.Resource") + proto.RegisterType((*ProviderInventoryStatus_Reservations)(nil), "types.ProviderInventoryStatus.Reservations") proto.RegisterType((*DeployRespone)(nil), "types.DeployRespone") proto.RegisterType((*LeaseStatusRequest)(nil), "types.LeaseStatusRequest") proto.RegisterType((*ServiceStatusRequest)(nil), "types.ServiceStatusRequest") @@ -3154,47 +3555,233 @@ func (this *ServerStatus) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 7) + s := make([]string, 0, 8) s = append(s, "&types.ServerStatus{") s = append(s, "Code: "+fmt.Sprintf("%#v", this.Code)+",\n") if this.Version != nil { s = append(s, "Version: "+fmt.Sprintf("%#v", this.Version)+",\n") } + if this.Provider != nil { + s = append(s, "Provider: "+fmt.Sprintf("%#v", this.Provider)+",\n") + } s = append(s, "Message: "+fmt.Sprintf("%#v", this.Message)+",\n") s = append(s, "}") return strings.Join(s, "") } -func (this *DeployRespone) GoString() string { +func (this *ServerStatusParseable) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 5) - s = append(s, "&types.DeployRespone{") + s := make([]string, 0, 8) + s = append(s, "&types.ServerStatusParseable{") + s = append(s, "Code: "+fmt.Sprintf("%#v", this.Code)+",\n") + if this.Version != nil { + s = append(s, "Version: "+fmt.Sprintf("%#v", this.Version)+",\n") + } + if this.Provider != nil { + s = append(s, "Provider: "+fmt.Sprintf("%#v", this.Provider)+",\n") + } s = append(s, "Message: "+fmt.Sprintf("%#v", this.Message)+",\n") s = append(s, "}") return strings.Join(s, "") } -func (this *LeaseStatusRequest) GoString() string { +func (this *ServerStatusParseable_ProviderStatus) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 8) - s = append(s, "&types.LeaseStatusRequest{") - s = append(s, "Deployment: "+fmt.Sprintf("%#v", this.Deployment)+",\n") - s = append(s, "Group: "+fmt.Sprintf("%#v", this.Group)+",\n") - s = append(s, "Order: "+fmt.Sprintf("%#v", this.Order)+",\n") - s = append(s, "Provider: "+fmt.Sprintf("%#v", this.Provider)+",\n") + s := make([]string, 0, 7) + s = append(s, "&types.ServerStatusParseable_ProviderStatus{") + if this.Cluster != nil { + s = append(s, "Cluster: "+fmt.Sprintf("%#v", this.Cluster)+",\n") + } + if this.Manifest != nil { + s = append(s, "Manifest: "+fmt.Sprintf("%#v", this.Manifest)+",\n") + } + if this.Bidengine != nil { + s = append(s, "Bidengine: "+fmt.Sprintf("%#v", this.Bidengine)+",\n") + } s = append(s, "}") return strings.Join(s, "") } -func (this *ServiceStatusRequest) GoString() string { +func (this *ServerStatusParseable_ProviderClusterStatus) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 9) - s = append(s, "&types.ServiceStatusRequest{") - s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") - s = append(s, "Deployment: "+fmt.Sprintf("%#v", this.Deployment)+",\n") + s := make([]string, 0, 6) + s = append(s, "&types.ServerStatusParseable_ProviderClusterStatus{") + s = append(s, "Leases: "+fmt.Sprintf("%#v", this.Leases)+",\n") + if this.Inventory != nil { + s = append(s, "Inventory: "+fmt.Sprintf("%#v", this.Inventory)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ServerStatusParseable_ProviderInventoryStatus) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.ServerStatusParseable_ProviderInventoryStatus{") + if this.Reservations != nil { + s = append(s, "Reservations: "+fmt.Sprintf("%#v", this.Reservations)+",\n") + } + if this.Available != nil { + s = append(s, "Available: "+fmt.Sprintf("%#v", this.Available)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&types.ServerStatusParseable_ProviderInventoryStatus_ResourceUnit{") + s = append(s, "CPU: "+fmt.Sprintf("%#v", this.CPU)+",\n") + s = append(s, "Memory: "+fmt.Sprintf("%#v", this.Memory)+",\n") + s = append(s, "Disk: "+fmt.Sprintf("%#v", this.Disk)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ServerStatusParseable_ProviderInventoryStatus_Reservations) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.ServerStatusParseable_ProviderInventoryStatus_Reservations{") + if this.Active != nil { + s = append(s, "Active: "+fmt.Sprintf("%#v", this.Active)+",\n") + } + if this.Pending != nil { + s = append(s, "Pending: "+fmt.Sprintf("%#v", this.Pending)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProviderStatus) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&types.ProviderStatus{") + if this.Cluster != nil { + s = append(s, "Cluster: "+fmt.Sprintf("%#v", this.Cluster)+",\n") + } + if this.Manifest != nil { + s = append(s, "Manifest: "+fmt.Sprintf("%#v", this.Manifest)+",\n") + } + if this.Bidengine != nil { + s = append(s, "Bidengine: "+fmt.Sprintf("%#v", this.Bidengine)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProviderManifestStatus) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.ProviderManifestStatus{") + s = append(s, "Deployments: "+fmt.Sprintf("%#v", this.Deployments)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProviderBidengineStatus) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.ProviderBidengineStatus{") + s = append(s, "Orders: "+fmt.Sprintf("%#v", this.Orders)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProviderClusterStatus) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.ProviderClusterStatus{") + s = append(s, "Leases: "+fmt.Sprintf("%#v", this.Leases)+",\n") + if this.Inventory != nil { + s = append(s, "Inventory: "+fmt.Sprintf("%#v", this.Inventory)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProviderInventoryStatus) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.ProviderInventoryStatus{") + if this.Reservations != nil { + s = append(s, "Reservations: "+fmt.Sprintf("%#v", this.Reservations)+",\n") + } + if this.Available != nil { + s = append(s, "Available: "+fmt.Sprintf("%#v", this.Available)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProviderInventoryStatus_Resource) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&types.ProviderInventoryStatus_Resource{") + s = append(s, "CPU: "+fmt.Sprintf("%#v", this.CPU)+",\n") + s = append(s, "Memory: "+fmt.Sprintf("%#v", this.Memory)+",\n") + s = append(s, "Disk: "+fmt.Sprintf("%#v", this.Disk)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProviderInventoryStatus_Reservations) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.ProviderInventoryStatus_Reservations{") + if this.Active != nil { + s = append(s, "Active: "+fmt.Sprintf("%#v", this.Active)+",\n") + } + if this.Pending != nil { + s = append(s, "Pending: "+fmt.Sprintf("%#v", this.Pending)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *DeployRespone) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.DeployRespone{") + s = append(s, "Message: "+fmt.Sprintf("%#v", this.Message)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *LeaseStatusRequest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&types.LeaseStatusRequest{") + s = append(s, "Deployment: "+fmt.Sprintf("%#v", this.Deployment)+",\n") + s = append(s, "Group: "+fmt.Sprintf("%#v", this.Group)+",\n") + s = append(s, "Order: "+fmt.Sprintf("%#v", this.Order)+",\n") + s = append(s, "Provider: "+fmt.Sprintf("%#v", this.Provider)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ServiceStatusRequest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 9) + s = append(s, "&types.ServiceStatusRequest{") + s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") + s = append(s, "Deployment: "+fmt.Sprintf("%#v", this.Deployment)+",\n") s = append(s, "Group: "+fmt.Sprintf("%#v", this.Group)+",\n") s = append(s, "Order: "+fmt.Sprintf("%#v", this.Order)+",\n") s = append(s, "Provider: "+fmt.Sprintf("%#v", this.Provider)+",\n") @@ -8889,6 +9476,39 @@ func (m *ServerStatus) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Provider == nil { + m.Provider = &ProviderStatus{} + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } @@ -8938,6 +9558,1496 @@ func (m *ServerStatus) Unmarshal(dAtA []byte) error { } return nil } +func (m *ServerStatusParseable) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ServerStatusParseable: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ServerStatusParseable: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Version == nil { + m.Version = &AkashVersion{} + } + if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Provider == nil { + m.Provider = &ServerStatusParseable_ProviderStatus{} + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServerStatusParseable_ProviderStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cluster", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Cluster == nil { + m.Cluster = &ServerStatusParseable_ProviderClusterStatus{} + } + if err := m.Cluster.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Manifest", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Manifest == nil { + m.Manifest = &ProviderManifestStatus{} + } + if err := m.Manifest.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bidengine", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bidengine == nil { + m.Bidengine = &ProviderBidengineStatus{} + } + if err := m.Bidengine.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServerStatusParseable_ProviderClusterStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderClusterStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderClusterStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Leases", wireType) + } + m.Leases = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Leases |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inventory", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Inventory == nil { + m.Inventory = &ServerStatusParseable_ProviderInventoryStatus{} + } + if err := m.Inventory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServerStatusParseable_ProviderInventoryStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderInventoryStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderInventoryStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reservations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Reservations == nil { + m.Reservations = &ServerStatusParseable_ProviderInventoryStatus_Reservations{} + } + if err := m.Reservations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Available = append(m.Available, &ServerStatusParseable_ProviderInventoryStatus_ResourceUnit{}) + if err := m.Available[len(m.Available)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServerStatusParseable_ProviderInventoryStatus_ResourceUnit) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResourceUnit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResourceUnit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CPU", wireType) + } + m.CPU = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CPU |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Memory", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Memory = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Disk", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Disk = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServerStatusParseable_ProviderInventoryStatus_Reservations) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Reservations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Reservations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Active = append(m.Active, &ServerStatusParseable_ProviderInventoryStatus_ResourceUnit{}) + if err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pending", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Pending = append(m.Pending, &ServerStatusParseable_ProviderInventoryStatus_ResourceUnit{}) + if err := m.Pending[len(m.Pending)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cluster", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Cluster == nil { + m.Cluster = &ProviderClusterStatus{} + } + if err := m.Cluster.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Manifest", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Manifest == nil { + m.Manifest = &ProviderManifestStatus{} + } + if err := m.Manifest.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bidengine", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bidengine == nil { + m.Bidengine = &ProviderBidengineStatus{} + } + if err := m.Bidengine.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderManifestStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderManifestStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderManifestStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Deployments", wireType) + } + m.Deployments = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Deployments |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderBidengineStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderBidengineStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderBidengineStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Orders", wireType) + } + m.Orders = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Orders |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderClusterStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderClusterStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderClusterStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Leases", wireType) + } + m.Leases = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Leases |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inventory", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Inventory == nil { + m.Inventory = &ProviderInventoryStatus{} + } + if err := m.Inventory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderInventoryStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderInventoryStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderInventoryStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reservations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Reservations == nil { + m.Reservations = &ProviderInventoryStatus_Reservations{} + } + if err := m.Reservations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Available = append(m.Available, &ResourceUnit{}) + if err := m.Available[len(m.Available)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderInventoryStatus_Resource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Resource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Resource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CPU", wireType) + } + m.CPU = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CPU |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Memory", wireType) + } + m.Memory = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Memory |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Disk", wireType) + } + m.Disk = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Disk |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderInventoryStatus_Reservations) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Reservations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Reservations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Active = append(m.Active, &ResourceUnit{}) + if err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pending", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Pending = append(m.Pending, &ResourceUnit{}) + if err := m.Pending[len(m.Pending)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *DeployRespone) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -10767,159 +12877,181 @@ var ( func init() { proto.RegisterFile("types/types.proto", fileDescriptorTypes) } var fileDescriptorTypes = []byte{ - // 2460 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x19, 0x4d, 0x6f, 0x1c, 0x49, - 0xd5, 0xdd, 0xf3, 0xd9, 0xcf, 0x9e, 0x64, 0x5c, 0xf6, 0x66, 0x27, 0x26, 0x8a, 0x43, 0xef, 0x4a, - 0xeb, 0xdd, 0x24, 0x1e, 0xe3, 0xec, 0xb2, 0xf9, 0x02, 0xd6, 0x63, 0x4f, 0x62, 0x2f, 0x5e, 0xdb, - 0x2a, 0x8f, 0x97, 0xc3, 0x1e, 0x50, 0x7b, 0xa6, 0x3c, 0x69, 0xb9, 0xa7, 0x6b, 0xd2, 0xdd, 0xe3, - 0xb5, 0x95, 0xf5, 0x85, 0x03, 0xd2, 0x8a, 0x1b, 0x48, 0x88, 0x03, 0x48, 0x20, 0x71, 0xe0, 0xc2, - 0x05, 0x89, 0xff, 0x80, 0xe0, 0xb2, 0x12, 0x08, 0x45, 0x20, 0x05, 0x65, 0xc5, 0x01, 0x71, 0xe2, - 0xc6, 0x0d, 0xa1, 0xfa, 0xea, 0xae, 0xee, 0x19, 0x87, 0xc4, 0xf1, 0x22, 0xc4, 0x65, 0xd4, 0xef, - 0xd5, 0xab, 0x57, 0xaf, 0xde, 0x77, 0xbd, 0x81, 0xc9, 0xe8, 0xa8, 0x4f, 0xc2, 0x3a, 0xff, 0x9d, - 0xef, 0x07, 0x34, 0xa2, 0xa8, 0xc0, 0x81, 0x99, 0xeb, 0x5d, 0x37, 0x7a, 0x30, 0xd8, 0x9d, 0x6f, - 0xd3, 0x5e, 0xbd, 0x4b, 0xbb, 0xb4, 0xce, 0x57, 0x77, 0x07, 0x7b, 0x1c, 0xe2, 0x00, 0xff, 0x12, - 0xbb, 0x66, 0x2e, 0x75, 0x29, 0xed, 0x7a, 0xa4, 0xee, 0xf4, 0xdd, 0xba, 0xe3, 0xfb, 0x34, 0x72, - 0x22, 0x97, 0xfa, 0x92, 0xa7, 0x7d, 0x07, 0x4a, 0xf7, 0x89, 0x4f, 0x42, 0x37, 0x44, 0x0b, 0x50, - 0x76, 0xda, 0x6d, 0x3a, 0xf0, 0xa3, 0xb0, 0x66, 0x5c, 0xc9, 0xcd, 0x8d, 0x2f, 0x9e, 0x9b, 0x17, - 0xc7, 0x2f, 0x09, 0x74, 0x23, 0xff, 0x9b, 0x27, 0xb3, 0x63, 0x38, 0xa6, 0xb2, 0xf7, 0xc0, 0x6c, - 0x1d, 0xa2, 0x2a, 0xe4, 0xf6, 0xc9, 0x51, 0xcd, 0xb8, 0x62, 0xcc, 0x4d, 0x60, 0xf6, 0x89, 0x2e, - 0x81, 0x15, 0xba, 0x5d, 0xdf, 0x89, 0x06, 0x01, 0xa9, 0x99, 0x1c, 0x9f, 0x20, 0xd0, 0x02, 0x94, - 0xfa, 0xce, 0x91, 0x47, 0x9d, 0x4e, 0x2d, 0x77, 0xc5, 0x98, 0x1b, 0x5f, 0xac, 0xca, 0x63, 0x5a, - 0x87, 0x5b, 0x02, 0x2f, 0x0f, 0x52, 0x64, 0xf6, 0x1f, 0x0a, 0x60, 0xc5, 0x8b, 0x68, 0x1a, 0x0a, - 0x3e, 0xf5, 0xdb, 0x84, 0x9f, 0x98, 0xc7, 0x02, 0x40, 0x6f, 0x40, 0x31, 0x3a, 0xdc, 0x26, 0x7e, - 0x87, 0x1f, 0x38, 0xbe, 0x58, 0x89, 0x99, 0x32, 0xe4, 0xea, 0x18, 0x96, 0xcb, 0xe8, 0x9b, 0x80, - 0xa2, 0xc3, 0xe5, 0x80, 0x38, 0x11, 0x59, 0x21, 0x7d, 0x8f, 0x1e, 0xf5, 0x88, 0x1f, 0x49, 0x49, - 0x2e, 0xc6, 0x9b, 0xb2, 0x04, 0xab, 0x63, 0x78, 0xc4, 0x36, 0xc1, 0x6c, 0xa7, 0xdf, 0x49, 0x33, - 0xcb, 0x67, 0x98, 0x65, 0x09, 0x04, 0xb3, 0x2c, 0x16, 0xdd, 0x85, 0x8a, 0x3a, 0x62, 0x33, 0xe8, - 0x90, 0xa0, 0x56, 0xe0, 0x7c, 0xa6, 0x33, 0x42, 0xf1, 0xb5, 0xd5, 0x31, 0x9c, 0x26, 0x46, 0x1b, - 0x30, 0xa5, 0x10, 0xf7, 0x06, 0xde, 0x9e, 0xeb, 0x79, 0x5c, 0x96, 0x22, 0xe7, 0x31, 0x93, 0xe1, - 0xa1, 0x51, 0xac, 0x8e, 0xe1, 0x51, 0x1b, 0x75, 0x69, 0xd6, 0x89, 0x13, 0x92, 0x5a, 0x69, 0xa4, - 0x34, 0x7c, 0x4d, 0x97, 0x86, 0x23, 0x50, 0x13, 0xaa, 0x0a, 0xb1, 0x15, 0xd0, 0x03, 0x97, 0x5d, - 0xa7, 0xcc, 0x19, 0xbc, 0x9a, 0x61, 0xa0, 0x96, 0x57, 0xc7, 0xf0, 0xd0, 0x16, 0xb4, 0x0a, 0x93, - 0xd1, 0xe1, 0xb2, 0x47, 0x43, 0x5d, 0xbd, 0x16, 0xe7, 0x53, 0x4b, 0xf8, 0xa4, 0xd7, 0x57, 0xc7, - 0xf0, 0xf0, 0x26, 0x69, 0x76, 0x86, 0xd4, 0xb5, 0x03, 0x59, 0xb3, 0x67, 0x08, 0xa4, 0xd9, 0x33, - 0x58, 0x74, 0x0b, 0x26, 0x24, 0x56, 0xa8, 0x66, 0x9c, 0xb3, 0x99, 0x4a, 0xb3, 0x51, 0x9a, 0x49, - 0x91, 0x36, 0xac, 0xd8, 0xfb, 0xed, 0xef, 0x19, 0x50, 0x92, 0xa1, 0x85, 0xde, 0x87, 0x92, 0xd3, - 0xe9, 0x04, 0x24, 0x0c, 0x45, 0x20, 0x35, 0x16, 0x58, 0x08, 0xfc, 0xe9, 0xc9, 0xec, 0x9c, 0x16, - 0xed, 0xf4, 0x20, 0x68, 0x7b, 0xfb, 0x75, 0x67, 0xdf, 0x09, 0x1f, 0x88, 0xcc, 0x50, 0xdf, 0x75, - 0x42, 0x32, 0xdf, 0x38, 0x8a, 0x48, 0x88, 0x15, 0x03, 0x54, 0x83, 0xd2, 0xae, 0xe3, 0x39, 0x2c, - 0x44, 0x4c, 0x1e, 0x22, 0x0a, 0x4c, 0x42, 0x27, 0xa7, 0x85, 0xce, 0xed, 0xfc, 0xdf, 0x7e, 0x36, - 0x6b, 0xd8, 0xbf, 0x30, 0xa0, 0x28, 0x82, 0x05, 0xad, 0x40, 0x7e, 0x2f, 0xa0, 0xbd, 0x53, 0x4b, - 0xc2, 0x77, 0xa3, 0xf7, 0xc0, 0x8c, 0xa8, 0x08, 0xff, 0x53, 0xf0, 0x30, 0x23, 0x8a, 0x2e, 0x40, - 0xd1, 0xe9, 0x31, 0xf5, 0x48, 0x79, 0x25, 0x64, 0xff, 0xcb, 0x80, 0x72, 0xec, 0x22, 0x67, 0xa9, - 0xb9, 0x7b, 0x50, 0xa0, 0x1f, 0xfb, 0x24, 0x38, 0xb5, 0xd4, 0x62, 0x3b, 0xb3, 0xc0, 0x03, 0x1a, - 0x46, 0x3b, 0x78, 0x8d, 0x4b, 0x6e, 0x61, 0x05, 0xa2, 0xaf, 0x03, 0x38, 0x51, 0x14, 0xb8, 0xbb, - 0x83, 0x88, 0x84, 0xb5, 0x3c, 0x4f, 0xb3, 0xca, 0x93, 0xd5, 0x95, 0x96, 0x14, 0x81, 0xcc, 0x83, - 0xda, 0x0e, 0x69, 0xab, 0xf7, 0xc0, 0x52, 0xc4, 0x21, 0xba, 0x01, 0x56, 0x5f, 0x01, 0x32, 0x71, - 0x9f, 0xcf, 0x70, 0x94, 0x8c, 0x12, 0x3a, 0xfb, 0xb7, 0x06, 0x54, 0xb3, 0x11, 0x98, 0x5c, 0xdf, - 0x38, 0xb3, 0xeb, 0x9b, 0xcf, 0xba, 0x7e, 0xee, 0x45, 0xaf, 0x9f, 0x38, 0x70, 0x5e, 0x73, 0x60, - 0xfb, 0x23, 0x98, 0xc0, 0x24, 0xa4, 0x83, 0xa0, 0x4d, 0x76, 0x7c, 0x37, 0x42, 0x17, 0x21, 0xb7, - 0xbc, 0xb5, 0xc3, 0x6f, 0x51, 0x69, 0x94, 0xfe, 0xfe, 0x64, 0x36, 0xd7, 0xee, 0x0f, 0x30, 0xc3, - 0x31, 0x97, 0xea, 0x91, 0x1e, 0x0d, 0x8e, 0x64, 0x68, 0x48, 0x08, 0x21, 0xc8, 0x77, 0xdc, 0x70, - 0x5f, 0x3a, 0x1a, 0xff, 0x96, 0xba, 0xee, 0x43, 0x45, 0x31, 0xbf, 0x1f, 0xd0, 0x41, 0x1f, 0x5d, - 0x87, 0xfc, 0xc0, 0x77, 0x23, 0xce, 0x3e, 0x09, 0x7a, 0x5d, 0x00, 0x29, 0x38, 0x27, 0x63, 0x22, - 0xf3, 0x10, 0xe7, 0x07, 0x56, 0xb0, 0x00, 0x18, 0xb6, 0x1f, 0xb8, 0x49, 0x24, 0x72, 0x40, 0x9e, - 0xb8, 0x0c, 0x93, 0x43, 0xba, 0x60, 0x02, 0xfa, 0x4e, 0x4f, 0x14, 0x3d, 0x0b, 0xf3, 0x6f, 0xc6, - 0xe4, 0xc0, 0xf1, 0x06, 0x44, 0x6a, 0x59, 0x00, 0x92, 0xc9, 0x4f, 0x0c, 0xb0, 0xb8, 0xbc, 0xdb, - 0x7d, 0xd2, 0x1e, 0xb9, 0xbb, 0x01, 0x13, 0x01, 0x79, 0x38, 0x70, 0x03, 0xc2, 0x72, 0x5a, 0x58, - 0x33, 0x9f, 0xcb, 0x1a, 0xa9, 0x3d, 0xe8, 0x26, 0x58, 0x81, 0xbc, 0xb8, 0x32, 0xe7, 0x74, 0x46, - 0x21, 0x5c, 0x08, 0xe5, 0x80, 0x31, 0xb1, 0x7d, 0x0c, 0x93, 0x49, 0x76, 0xe6, 0x34, 0x6b, 0x2b, - 0x68, 0x0b, 0xa0, 0x93, 0xe4, 0xf9, 0xd3, 0x7a, 0xa1, 0xc6, 0x83, 0x35, 0x27, 0x21, 0x79, 0x28, - 0x8d, 0xcd, 0x3e, 0x6f, 0xe7, 0x7f, 0xf4, 0xd3, 0xd9, 0x31, 0xfb, 0x9f, 0x26, 0x9c, 0xcf, 0x9c, - 0x8f, 0x16, 0xc1, 0x74, 0x3b, 0xd2, 0xac, 0x4a, 0x0d, 0x43, 0x32, 0x36, 0xca, 0x4c, 0x9e, 0xcf, - 0x9e, 0xcc, 0x1a, 0xd8, 0x74, 0x3b, 0xb1, 0x62, 0x4d, 0x4d, 0xb1, 0x33, 0x50, 0xa6, 0xac, 0x24, - 0xb7, 0x5a, 0xeb, 0xdc, 0xbc, 0x39, 0x1c, 0xc3, 0x68, 0x09, 0x0a, 0x61, 0xe4, 0x44, 0xc2, 0x81, - 0xcf, 0x2d, 0x5e, 0x1d, 0x7d, 0x4c, 0x16, 0xde, 0x66, 0x5b, 0xb0, 0xd8, 0x39, 0x64, 0xb7, 0xc2, - 0xcb, 0xda, 0xad, 0xf8, 0x22, 0x76, 0xbb, 0x05, 0xd3, 0xa3, 0x84, 0x43, 0x65, 0xc8, 0x6f, 0x6e, - 0x35, 0x37, 0xaa, 0x63, 0x68, 0x1c, 0x4a, 0x9b, 0x78, 0xa5, 0x89, 0x9b, 0x2b, 0x55, 0x03, 0x01, - 0x14, 0x97, 0xd7, 0x37, 0xb7, 0x9b, 0x2b, 0xd5, 0x5c, 0x9c, 0xbb, 0xaa, 0x19, 0x06, 0x21, 0xba, - 0x06, 0x05, 0x37, 0x22, 0x3d, 0x95, 0xbe, 0x2e, 0x8c, 0xd6, 0x0a, 0x16, 0x44, 0xf6, 0x63, 0x13, - 0x40, 0xab, 0xec, 0x67, 0x59, 0x00, 0x56, 0xa1, 0x18, 0x11, 0xdf, 0x91, 0xd1, 0x7a, 0x1a, 0x56, - 0x72, 0x3f, 0x7a, 0x57, 0x19, 0x3a, 0xc7, 0x0d, 0xfd, 0xe5, 0xa1, 0x2b, 0x69, 0x9f, 0x29, 0xf3, - 0xbe, 0x0f, 0xa5, 0x03, 0x12, 0x84, 0x2e, 0xf5, 0xb9, 0x8f, 0x9c, 0xea, 0x3a, 0x92, 0x81, 0xfd, - 0xa6, 0xee, 0xe4, 0xc2, 0x4e, 0x00, 0xc5, 0xa5, 0xe5, 0xd6, 0xda, 0x87, 0xcd, 0xea, 0x98, 0x66, - 0x1c, 0x53, 0x1a, 0xe7, 0x2e, 0x8c, 0x27, 0x1b, 0x42, 0x74, 0x3d, 0x6d, 0x97, 0xc9, 0xa1, 0x4b, - 0x48, 0xff, 0x90, 0x86, 0xf9, 0xae, 0x09, 0x68, 0xb8, 0x75, 0xd6, 0x94, 0x6a, 0xbc, 0xa4, 0x52, - 0xe3, 0xf4, 0x6f, 0xea, 0xad, 0xff, 0xb3, 0xe2, 0xed, 0x0c, 0xb5, 0x89, 0xe6, 0xa0, 0xd8, 0xe5, - 0xfe, 0x2a, 0x43, 0x4e, 0xbd, 0x5b, 0xe2, 0x34, 0x8b, 0xe5, 0xba, 0xfd, 0x2b, 0x83, 0x29, 0x62, - 0xa8, 0xc1, 0x3f, 0xfb, 0xf4, 0xa6, 0x5d, 0xcf, 0x7c, 0x59, 0x67, 0xf9, 0x8b, 0x01, 0x93, 0x43, - 0xcd, 0xf4, 0x17, 0x20, 0xf3, 0x1d, 0x28, 0x06, 0xc4, 0x09, 0xa5, 0xc8, 0xe7, 0x16, 0x5f, 0x3b, - 0xa9, 0x91, 0x9f, 0xc7, 0x9c, 0x6c, 0x99, 0x76, 0x08, 0x96, 0x5b, 0xec, 0x3b, 0x00, 0x09, 0x16, - 0x59, 0x50, 0xd8, 0xd9, 0xd8, 0x6e, 0xb6, 0xaa, 0x63, 0xa8, 0x0a, 0x13, 0xad, 0xe6, 0xc6, 0xd2, - 0x46, 0xeb, 0xdb, 0xdc, 0xa5, 0xab, 0x06, 0xc3, 0xac, 0x6d, 0x6c, 0xef, 0xdc, 0xbb, 0xb7, 0xb6, - 0xbc, 0xd6, 0xdc, 0x68, 0x55, 0x4d, 0xfb, 0x53, 0x03, 0x4a, 0xfc, 0xb1, 0xf4, 0x85, 0x94, 0x9a, - 0x69, 0x28, 0x70, 0xf3, 0x2b, 0xe7, 0xe4, 0x80, 0x2a, 0x40, 0xb9, 0x6c, 0x01, 0xfa, 0xa5, 0x01, - 0x05, 0xf1, 0x70, 0x9b, 0xd3, 0xca, 0x8e, 0x7a, 0x71, 0x4b, 0x29, 0x33, 0xc5, 0x66, 0x1a, 0x0a, - 0xc4, 0xef, 0x2c, 0x89, 0xe4, 0x94, 0xc3, 0x02, 0x60, 0x41, 0xaa, 0x67, 0x9a, 0x57, 0x75, 0x16, - 0xe2, 0x57, 0xcf, 0x2f, 0x76, 0x1d, 0x20, 0x41, 0xa6, 0xd3, 0xf6, 0x07, 0x4b, 0xad, 0xe5, 0xd5, - 0x4c, 0xda, 0x56, 0x99, 0x61, 0x13, 0x2a, 0xa9, 0x07, 0xe8, 0xcb, 0x8a, 0x6d, 0x5f, 0x83, 0x22, - 0x27, 0x0f, 0x91, 0x9d, 0xce, 0x32, 0x13, 0x3a, 0x33, 0x95, 0x5a, 0x9e, 0x1a, 0x50, 0xd1, 0x5e, - 0x60, 0xff, 0x45, 0x03, 0x4e, 0x43, 0x81, 0x67, 0x13, 0xd5, 0xa9, 0x71, 0x00, 0xad, 0x43, 0x59, - 0x35, 0xd3, 0xa7, 0x4e, 0x2c, 0x31, 0x07, 0xe9, 0x12, 0xbf, 0x33, 0x60, 0x5c, 0x7f, 0x65, 0xce, - 0x6b, 0x1a, 0x56, 0xd5, 0x39, 0xa5, 0x83, 0x61, 0x3d, 0x8b, 0x9e, 0xd2, 0xd4, 0x7a, 0x4a, 0x74, - 0x2b, 0xed, 0x1e, 0xaf, 0x0d, 0x33, 0xd2, 0xbf, 0x53, 0xae, 0xf2, 0x0e, 0x54, 0xb3, 0x4b, 0xcf, - 0xef, 0x30, 0x37, 0x61, 0x42, 0xdb, 0x1c, 0xa2, 0xb9, 0xb4, 0x95, 0xd1, 0xb0, 0x1c, 0xca, 0xd6, - 0x1f, 0xc1, 0xd4, 0x88, 0x39, 0xc5, 0xd9, 0xa8, 0xc3, 0x5e, 0xe1, 0x25, 0x2a, 0xfb, 0xa0, 0x7f, - 0x41, 0xde, 0xf6, 0x9f, 0x0d, 0x28, 0xf1, 0xf7, 0xfc, 0xff, 0xa5, 0x23, 0xfe, 0xd8, 0x80, 0x82, - 0x18, 0xe3, 0x8c, 0x0a, 0x72, 0x79, 0xef, 0xe7, 0x72, 0xbe, 0x13, 0x72, 0x13, 0x67, 0x21, 0x7e, - 0x53, 0x0e, 0xf7, 0x3a, 0x40, 0x82, 0x3c, 0xa9, 0x55, 0xd1, 0x53, 0xd1, 0x99, 0x48, 0xc9, 0x5c, - 0x55, 0x9f, 0xd9, 0x3c, 0x3f, 0x3f, 0x96, 0xc4, 0xf8, 0xc2, 0x89, 0x49, 0x8c, 0xaf, 0x2a, 0xc7, - 0xfe, 0xb9, 0x09, 0xe7, 0x3f, 0x70, 0x7c, 0x77, 0x8f, 0x84, 0x11, 0x26, 0x0f, 0x07, 0x24, 0x8c, - 0x50, 0x43, 0x9b, 0x9e, 0x9e, 0xc2, 0x74, 0x7c, 0xde, 0xba, 0x31, 0x34, 0x6f, 0x3d, 0x05, 0x27, - 0x6d, 0x42, 0x9b, 0xf6, 0xe8, 0xdc, 0x19, 0x78, 0xf4, 0x55, 0x28, 0xf7, 0xe4, 0xc5, 0xe5, 0x74, - 0x54, 0x8d, 0x28, 0x62, 0x7d, 0xc4, 0x04, 0xf6, 0x4d, 0x28, 0x2b, 0x2c, 0xba, 0x16, 0xf7, 0x5c, - 0x46, 0xea, 0x95, 0xa2, 0x08, 0xc4, 0xc3, 0x40, 0xf5, 0x5d, 0xdf, 0x82, 0x4a, 0x6a, 0x61, 0xe4, - 0xbb, 0x77, 0x11, 0xca, 0x21, 0x09, 0x0e, 0x5c, 0xf6, 0xf4, 0x31, 0x53, 0xef, 0x0d, 0xb5, 0x77, - 0x5b, 0x2c, 0xe3, 0x98, 0xce, 0xfe, 0xa3, 0x91, 0x58, 0x4e, 0xae, 0x9e, 0xf4, 0x22, 0x77, 0x7b, - 0x4e, 0x37, 0x7e, 0x91, 0x73, 0x80, 0x51, 0x3a, 0x41, 0x57, 0x3c, 0x90, 0x2d, 0xcc, 0xbf, 0x59, - 0x5f, 0x40, 0xfc, 0x03, 0x3e, 0x01, 0xb2, 0x30, 0xfb, 0x44, 0x6f, 0xc8, 0xb9, 0x42, 0xe1, 0xc4, - 0xb9, 0x42, 0x76, 0xa2, 0x50, 0xd4, 0x27, 0x0a, 0x6f, 0x43, 0x91, 0x1c, 0xf6, 0x29, 0x1f, 0xd4, - 0xb2, 0x4b, 0x5d, 0x1a, 0x7d, 0xa9, 0x26, 0xa7, 0xc1, 0x92, 0x96, 0xb5, 0x21, 0xaf, 0x8c, 0xa4, - 0x60, 0x42, 0xf7, 0x69, 0x20, 0x12, 0x5a, 0x05, 0xf3, 0x6f, 0x64, 0xc3, 0x04, 0x39, 0x8c, 0x48, - 0xe0, 0x3b, 0xde, 0x16, 0x5b, 0x13, 0x23, 0x8d, 0x14, 0x4e, 0x84, 0x18, 0x8d, 0xa8, 0x9c, 0x7c, - 0x09, 0x00, 0xd5, 0xa0, 0x24, 0x95, 0xc9, 0xed, 0x6f, 0x61, 0x05, 0xa2, 0x0b, 0x50, 0xec, 0x7a, - 0x74, 0xd7, 0xf1, 0xf8, 0xc5, 0xcb, 0x58, 0x42, 0x8c, 0xcf, 0x03, 0x1a, 0x46, 0xe2, 0x79, 0x6a, - 0x61, 0x01, 0xd8, 0x25, 0x28, 0x34, 0x7b, 0xfd, 0xe8, 0xc8, 0x6e, 0xc1, 0xc4, 0x12, 0xf3, 0xbb, - 0x0f, 0x65, 0x73, 0x5e, 0x4b, 0x3a, 0x61, 0x61, 0x90, 0xb8, 0x6d, 0xbf, 0x00, 0xc5, 0x36, 0xed, - 0xf5, 0xdc, 0x48, 0x1a, 0x45, 0x42, 0x7c, 0xe4, 0xa3, 0x52, 0x93, 0x85, 0xf9, 0xb7, 0xbd, 0x0f, - 0x13, 0x4c, 0x0b, 0xa2, 0x3b, 0x1a, 0x84, 0x8c, 0xa6, 0x4d, 0x3b, 0xc2, 0xc6, 0x05, 0xcc, 0xbf, - 0xd1, 0xf5, 0x74, 0xcf, 0x9d, 0x98, 0x4a, 0x97, 0x27, 0x39, 0xbe, 0x06, 0xa5, 0x1e, 0x09, 0x43, - 0xe6, 0x14, 0x72, 0x16, 0x28, 0x41, 0xfb, 0x4d, 0xa8, 0x88, 0x66, 0x17, 0x93, 0xb0, 0x4f, 0x7d, - 0xa2, 0x93, 0x1a, 0x69, 0xd2, 0x4f, 0x00, 0xc5, 0x89, 0x71, 0x10, 0xaa, 0xdc, 0x71, 0x79, 0xa8, - 0xf2, 0x58, 0x27, 0xd7, 0x11, 0x6b, 0x64, 0x1d, 0xb1, 0x54, 0x1d, 0x99, 0xc9, 0xd4, 0x11, 0x2b, - 0xa9, 0x0a, 0xf6, 0xf7, 0x0d, 0x98, 0x96, 0xce, 0x91, 0x16, 0x60, 0x54, 0x08, 0xa4, 0x85, 0x32, - 0x4f, 0x16, 0x2a, 0x37, 0x52, 0xa8, 0xfc, 0x49, 0x42, 0x15, 0x32, 0x42, 0x3d, 0x35, 0xe0, 0x95, - 0x8c, 0x50, 0x4c, 0x8b, 0x21, 0x41, 0xf3, 0x80, 0xe8, 0x2e, 0x73, 0x2f, 0xd2, 0xb9, 0x4f, 0x7c, - 0x12, 0xf0, 0x3f, 0xbc, 0xb8, 0x8c, 0x39, 0x3c, 0x62, 0x85, 0x9d, 0x12, 0x90, 0xbe, 0xe7, 0xb6, - 0x9d, 0x90, 0xcb, 0x5b, 0xc0, 0x31, 0x8c, 0xe6, 0xe0, 0xfc, 0x80, 0x3f, 0xe3, 0x3a, 0x58, 0x91, - 0xe4, 0x38, 0x49, 0x16, 0x8d, 0x5e, 0x87, 0x4a, 0x40, 0x9c, 0xce, 0x51, 0x4c, 0x97, 0xe7, 0x74, - 0x69, 0x24, 0xba, 0x06, 0x93, 0xce, 0x81, 0xe3, 0x7a, 0xce, 0xae, 0x47, 0x62, 0xca, 0x02, 0xa7, - 0x1c, 0x5e, 0xb0, 0x7f, 0x6d, 0x00, 0xac, 0xd3, 0xee, 0xff, 0x80, 0xba, 0xd1, 0x55, 0x28, 0xd1, - 0x3e, 0xff, 0xe7, 0x50, 0xfe, 0xa5, 0xa4, 0x86, 0x01, 0xeb, 0xb4, 0xbb, 0x29, 0x16, 0xb0, 0xa2, - 0xb0, 0x1b, 0x5c, 0x6c, 0x89, 0x46, 0x97, 0xc0, 0x8a, 0x1c, 0xd7, 0x5b, 0x77, 0x7d, 0x12, 0x4a, - 0x33, 0x24, 0x08, 0x16, 0x9e, 0x7b, 0xd4, 0xf3, 0xe8, 0xc7, 0x5c, 0xf8, 0x32, 0x96, 0x90, 0x7d, - 0x03, 0x72, 0xeb, 0xb4, 0x3b, 0xf2, 0xce, 0x5a, 0x9c, 0x98, 0xe9, 0x38, 0xf9, 0x0a, 0x8c, 0x73, - 0x7d, 0x49, 0x4f, 0xb0, 0xd9, 0x53, 0x33, 0x1c, 0x78, 0x6a, 0x58, 0x0b, 0x89, 0xcc, 0x58, 0xae, - 0xd8, 0xf7, 0x61, 0x2a, 0x15, 0x5a, 0x72, 0xeb, 0x82, 0x56, 0x25, 0xd2, 0xa5, 0x27, 0xed, 0x74, - 0x49, 0x8d, 0xd8, 0x87, 0x4a, 0x6a, 0x69, 0xa4, 0xe8, 0x08, 0xf2, 0x3b, 0x78, 0x4d, 0x14, 0x1e, - 0x0b, 0xf3, 0x6f, 0xa6, 0x9f, 0xd8, 0xf4, 0xd2, 0xbb, 0x12, 0x04, 0x33, 0x55, 0x44, 0x23, 0xc7, - 0x93, 0xfe, 0x24, 0x00, 0xfb, 0x2d, 0x40, 0x71, 0xa5, 0x23, 0x71, 0x33, 0x31, 0x0d, 0x05, 0x8f, - 0xff, 0x21, 0x25, 0xfe, 0x8c, 0x15, 0x80, 0xdd, 0x80, 0xa9, 0x14, 0xad, 0xbc, 0xa1, 0x5e, 0x93, - 0x8d, 0xff, 0x54, 0x93, 0xaf, 0xc3, 0x64, 0x33, 0x08, 0xd6, 0xfc, 0x03, 0xc7, 0x73, 0x3b, 0xea, - 0x9f, 0xd8, 0x93, 0xf3, 0xd5, 0x35, 0xa8, 0x72, 0x72, 0x51, 0x17, 0x9a, 0x41, 0x40, 0x83, 0x67, - 0x50, 0xd7, 0x61, 0xaa, 0x19, 0x04, 0xaa, 0xd2, 0x6d, 0xd0, 0xe8, 0x1e, 0x1d, 0xf8, 0xcf, 0x60, - 0xbf, 0xf8, 0xc3, 0x3c, 0x94, 0x96, 0xbd, 0x41, 0x18, 0x91, 0x00, 0xdd, 0x85, 0xa2, 0xd4, 0xb7, - 0xea, 0xb9, 0x78, 0x81, 0x98, 0x99, 0xd2, 0xcc, 0xa5, 0xf2, 0xb9, 0x7d, 0xfe, 0x3b, 0xbf, 0xff, - 0xeb, 0x0f, 0x4c, 0x0b, 0x95, 0xea, 0xa1, 0xd8, 0xb3, 0x0e, 0x45, 0x91, 0x83, 0x51, 0xb6, 0x09, - 0x90, 0x3a, 0x9d, 0x99, 0x4e, 0x0d, 0xbd, 0x64, 0xaa, 0xb6, 0xa7, 0x39, 0xa3, 0x73, 0xb6, 0x55, - 0x57, 0x2a, 0xba, 0x6d, 0xbc, 0x85, 0x3e, 0x81, 0x71, 0xcd, 0x97, 0xd0, 0x45, 0xbd, 0x09, 0x4c, - 0x65, 0xce, 0x99, 0x99, 0x51, 0x4b, 0xc2, 0x30, 0xf6, 0x57, 0x39, 0xef, 0x05, 0x34, 0x5f, 0xe7, - 0xf6, 0xab, 0x3f, 0x4a, 0xc2, 0xf9, 0xb8, 0xfe, 0x88, 0x07, 0xf0, 0x71, 0xfd, 0x11, 0x0f, 0xd9, - 0xe3, 0xfa, 0x23, 0x15, 0xa1, 0xc7, 0xe8, 0x53, 0x23, 0xeb, 0x81, 0x5f, 0x1a, 0xe9, 0xb2, 0x52, - 0x84, 0x4b, 0xa3, 0x17, 0xa5, 0x10, 0x5f, 0xe3, 0x42, 0xbc, 0x8b, 0xde, 0x79, 0x31, 0x21, 0xea, - 0x8f, 0x98, 0x9b, 0x1f, 0xa3, 0x01, 0x8c, 0x4b, 0xbe, 0xeb, 0xb4, 0x1b, 0x22, 0x2d, 0x59, 0xa8, - 0xe3, 0xb5, 0x58, 0xb4, 0x9b, 0xfc, 0xb0, 0x6f, 0xd8, 0x6f, 0xd7, 0x3d, 0xda, 0x0d, 0x5f, 0xf0, - 0xac, 0xdb, 0x2a, 0xed, 0x2c, 0x18, 0x8d, 0xea, 0xe3, 0xa7, 0x97, 0x8d, 0x7f, 0x3c, 0xbd, 0x6c, - 0x7c, 0xf6, 0xf9, 0x65, 0xe3, 0xf1, 0xe7, 0x97, 0x8d, 0xdd, 0x22, 0xef, 0x3f, 0x6e, 0xfc, 0x3b, - 0x00, 0x00, 0xff, 0xff, 0x3a, 0x12, 0x0d, 0x6e, 0x50, 0x21, 0x00, 0x00, + // 2813 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0x77, 0xcf, 0x77, 0xbf, 0xf1, 0x24, 0xe3, 0xb2, 0x93, 0xf5, 0x0e, 0x21, 0x09, 0xbd, 0x2b, + 0xad, 0x77, 0x93, 0x78, 0x12, 0xef, 0x67, 0xb2, 0x01, 0xd6, 0x1f, 0x93, 0xd8, 0x8b, 0xd7, 0x36, + 0x65, 0x7b, 0x11, 0xda, 0xc3, 0xaa, 0x3d, 0x53, 0x99, 0x34, 0xe9, 0xe9, 0x9a, 0xed, 0xee, 0xf1, + 0xda, 0xca, 0xe6, 0x00, 0x48, 0x48, 0x2b, 0x6e, 0x20, 0x21, 0x0e, 0x80, 0x58, 0x89, 0x03, 0x17, + 0x2e, 0x48, 0xfc, 0x01, 0x5c, 0x10, 0x82, 0xcb, 0x4a, 0x20, 0x58, 0x01, 0x0a, 0xca, 0x8a, 0x03, + 0xe2, 0xc4, 0x8d, 0x1b, 0x42, 0xf5, 0xd5, 0x5d, 0xdd, 0xd3, 0x13, 0x9c, 0x89, 0x17, 0xad, 0xb8, + 0x58, 0xfd, 0xaa, 0x5e, 0xbd, 0x7a, 0xf5, 0xde, 0xfb, 0xbd, 0xaa, 0xf7, 0xc6, 0x30, 0x15, 0x1e, + 0xf6, 0x49, 0xd0, 0xe4, 0x7f, 0xe7, 0xfb, 0x3e, 0x0d, 0x29, 0x2a, 0x72, 0xa2, 0x71, 0xa9, 0xeb, + 0x84, 0xb7, 0x07, 0x7b, 0xf3, 0x6d, 0xda, 0x6b, 0x76, 0x69, 0x97, 0x36, 0xf9, 0xec, 0xde, 0xe0, + 0x16, 0xa7, 0x38, 0xc1, 0xbf, 0xc4, 0xaa, 0xc6, 0x99, 0x2e, 0xa5, 0x5d, 0x97, 0x34, 0xed, 0xbe, + 0xd3, 0xb4, 0x3d, 0x8f, 0x86, 0x76, 0xe8, 0x50, 0x4f, 0xca, 0xb4, 0x5e, 0x85, 0xf2, 0x4d, 0xe2, + 0x91, 0xc0, 0x09, 0xd0, 0x65, 0xa8, 0xd8, 0xed, 0x36, 0x1d, 0x78, 0x61, 0x30, 0x6b, 0x9c, 0xcf, + 0xcf, 0x55, 0x17, 0x4e, 0xcc, 0x8b, 0xed, 0x17, 0xc5, 0xf0, 0x52, 0xe1, 0xd7, 0xf7, 0xcf, 0x4d, + 0xe0, 0x88, 0xcb, 0xba, 0x05, 0xb9, 0x9d, 0x03, 0x54, 0x87, 0xfc, 0x1d, 0x72, 0x38, 0x6b, 0x9c, + 0x37, 0xe6, 0x26, 0x31, 0xfb, 0x44, 0x67, 0xc0, 0x0c, 0x9c, 0xae, 0x67, 0x87, 0x03, 0x9f, 0xcc, + 0xe6, 0xf8, 0x78, 0x3c, 0x80, 0x2e, 0x43, 0xb9, 0x6f, 0x1f, 0xba, 0xd4, 0xee, 0xcc, 0xe6, 0xcf, + 0x1b, 0x73, 0xd5, 0x85, 0xba, 0xdc, 0x66, 0xe7, 0x60, 0x4b, 0x8c, 0xcb, 0x8d, 0x14, 0x9b, 0xf5, + 0xfb, 0x22, 0x98, 0xd1, 0x24, 0x9a, 0x81, 0xa2, 0x47, 0xbd, 0x36, 0xe1, 0x3b, 0x16, 0xb0, 0x20, + 0xd0, 0x33, 0x50, 0x0a, 0x0f, 0xb6, 0x89, 0xd7, 0xe1, 0x1b, 0x56, 0x17, 0x6a, 0x91, 0x50, 0x36, + 0xb8, 0x3a, 0x81, 0xe5, 0x34, 0xfa, 0x12, 0xa0, 0xf0, 0x60, 0xd9, 0x27, 0x76, 0x48, 0x56, 0x48, + 0xdf, 0xa5, 0x87, 0x3d, 0xe2, 0x85, 0x52, 0x93, 0x27, 0xa3, 0x45, 0x69, 0x86, 0xd5, 0x09, 0x9c, + 0xb1, 0x4c, 0x08, 0xdb, 0xed, 0x77, 0x92, 0xc2, 0x0a, 0x29, 0x61, 0x69, 0x06, 0x21, 0x2c, 0x3d, + 0x8a, 0xae, 0x43, 0x4d, 0x6d, 0xb1, 0xe9, 0x77, 0x88, 0x3f, 0x5b, 0xe4, 0x72, 0x66, 0x52, 0x4a, + 0xf1, 0xb9, 0xd5, 0x09, 0x9c, 0x64, 0x46, 0x1b, 0x30, 0xad, 0x06, 0x6e, 0x0c, 0xdc, 0x5b, 0x8e, + 0xeb, 0x72, 0x5d, 0x4a, 0x5c, 0x46, 0x23, 0x25, 0x43, 0xe3, 0x58, 0x9d, 0xc0, 0x59, 0x0b, 0x75, + 0x6d, 0xd6, 0x89, 0x1d, 0x90, 0xd9, 0x72, 0xa6, 0x36, 0x7c, 0x4e, 0xd7, 0x86, 0x0f, 0xa0, 0x16, + 0xd4, 0xd5, 0xc0, 0x96, 0x4f, 0xf7, 0x1d, 0x76, 0x9c, 0x0a, 0x17, 0xf0, 0x44, 0x4a, 0x80, 0x9a, + 0x5e, 0x9d, 0xc0, 0x43, 0x4b, 0xd0, 0x2a, 0x4c, 0x85, 0x07, 0xcb, 0x2e, 0x0d, 0x74, 0xf3, 0x9a, + 0x5c, 0xce, 0x6c, 0x2c, 0x27, 0x39, 0xbf, 0x3a, 0x81, 0x87, 0x17, 0x49, 0xb7, 0xb3, 0x41, 0xdd, + 0x3a, 0x90, 0x76, 0x7b, 0x8a, 0x41, 0xba, 0x3d, 0x35, 0x8a, 0xae, 0xc2, 0xa4, 0x1c, 0x15, 0xa6, + 0xa9, 0x72, 0x31, 0xd3, 0x49, 0x31, 0xca, 0x32, 0x09, 0xd6, 0x25, 0x33, 0x8a, 0x7e, 0xeb, 0xdb, + 0x06, 0x94, 0x25, 0xb4, 0xd0, 0xeb, 0x50, 0xb6, 0x3b, 0x1d, 0x9f, 0x04, 0x81, 0x00, 0xd2, 0xd2, + 0x65, 0x06, 0x81, 0x3f, 0xdd, 0x3f, 0x37, 0xa7, 0xa1, 0x9d, 0xee, 0xfb, 0x6d, 0xf7, 0x4e, 0xd3, + 0xbe, 0x63, 0x07, 0xb7, 0x45, 0x66, 0x68, 0xee, 0xd9, 0x01, 0x99, 0x5f, 0x3a, 0x0c, 0x49, 0x80, + 0x95, 0x00, 0x34, 0x0b, 0xe5, 0x3d, 0xdb, 0xb5, 0x19, 0x44, 0x72, 0x1c, 0x22, 0x8a, 0x8c, 0xa1, + 0x93, 0xd7, 0xa0, 0x73, 0xad, 0xf0, 0xf7, 0x0f, 0xce, 0x19, 0xd6, 0x4f, 0x0d, 0x28, 0x09, 0xb0, + 0xa0, 0x15, 0x28, 0xdc, 0xf2, 0x69, 0x6f, 0x6c, 0x4d, 0xf8, 0x6a, 0xf4, 0x1a, 0xe4, 0x42, 0x2a, + 0xe0, 0x3f, 0x86, 0x8c, 0x5c, 0x48, 0xd1, 0x69, 0x28, 0xd9, 0x3d, 0x66, 0x1e, 0xa9, 0xaf, 0xa4, + 0xac, 0x7f, 0x1b, 0x50, 0x89, 0x42, 0xe4, 0x38, 0x2d, 0x77, 0x03, 0x8a, 0xf4, 0x5d, 0x8f, 0xf8, + 0x63, 0x6b, 0x2d, 0x96, 0x33, 0x0f, 0xdc, 0xa6, 0x41, 0xb8, 0x8b, 0xd7, 0xb8, 0xe6, 0x26, 0x56, + 0x24, 0xfa, 0x02, 0x80, 0x1d, 0x86, 0xbe, 0xb3, 0x37, 0x08, 0x49, 0x30, 0x5b, 0xe0, 0x69, 0x56, + 0x45, 0xb2, 0x3a, 0xd2, 0xa2, 0x62, 0x90, 0x79, 0x50, 0x5b, 0x21, 0x7d, 0xf5, 0x1a, 0x98, 0x8a, + 0x39, 0x40, 0xcf, 0x83, 0xd9, 0x57, 0x84, 0x4c, 0xdc, 0x27, 0x53, 0x12, 0xa5, 0xa0, 0x98, 0xcf, + 0xfa, 0x8d, 0x01, 0xf5, 0x34, 0x02, 0xe3, 0xe3, 0x1b, 0xc7, 0x76, 0xfc, 0xdc, 0xc3, 0x8e, 0x9f, + 0x7f, 0xd4, 0xe3, 0xc7, 0x01, 0x5c, 0xd0, 0x02, 0xd8, 0x7a, 0x0b, 0x26, 0x31, 0x09, 0xe8, 0xc0, + 0x6f, 0x93, 0x5d, 0xcf, 0x09, 0xd1, 0x93, 0x90, 0x5f, 0xde, 0xda, 0xe5, 0xa7, 0xa8, 0x2d, 0x95, + 0xff, 0x71, 0xff, 0x5c, 0xbe, 0xdd, 0x1f, 0x60, 0x36, 0xc6, 0x42, 0xaa, 0x47, 0x7a, 0xd4, 0x3f, + 0x94, 0xd0, 0x90, 0x14, 0x42, 0x50, 0xe8, 0x38, 0xc1, 0x1d, 0x19, 0x68, 0xfc, 0x5b, 0xda, 0xba, + 0x0f, 0x35, 0x25, 0xfc, 0xa6, 0x4f, 0x07, 0x7d, 0x74, 0x09, 0x0a, 0x03, 0xcf, 0x09, 0xb9, 0xf8, + 0x18, 0xf4, 0xba, 0x02, 0x52, 0x71, 0xce, 0xc6, 0x54, 0xe6, 0x10, 0xe7, 0x1b, 0xd6, 0xb0, 0x20, + 0xd8, 0x68, 0xdf, 0x77, 0x62, 0x24, 0x72, 0x42, 0xee, 0xb8, 0x0c, 0x53, 0x43, 0xb6, 0x60, 0x0a, + 0x7a, 0x76, 0x4f, 0x5c, 0x7a, 0x26, 0xe6, 0xdf, 0x4c, 0xc8, 0xbe, 0xed, 0x0e, 0x88, 0xb4, 0xb2, + 0x20, 0xa4, 0x90, 0x1f, 0x1a, 0x60, 0x72, 0x7d, 0xb7, 0xfb, 0xa4, 0x9d, 0xb9, 0x7a, 0x09, 0x26, + 0x7d, 0xf2, 0xce, 0xc0, 0xf1, 0x09, 0xcb, 0x69, 0xc1, 0x6c, 0xee, 0x48, 0xde, 0x48, 0xac, 0x41, + 0xaf, 0x80, 0xe9, 0xcb, 0x83, 0x2b, 0x77, 0xce, 0xa4, 0x0c, 0xc2, 0x95, 0x50, 0x01, 0x18, 0x31, + 0x5b, 0xf7, 0x60, 0x2a, 0xce, 0xce, 0x9c, 0x67, 0x6d, 0x05, 0x6d, 0x01, 0x74, 0xe2, 0x3c, 0x3f, + 0x6e, 0x14, 0x6a, 0x32, 0xd8, 0xe3, 0x24, 0x20, 0xef, 0x48, 0x67, 0xb3, 0xcf, 0x6b, 0x85, 0xef, + 0xff, 0xf8, 0xdc, 0x84, 0xf5, 0xaf, 0x1c, 0x9c, 0x4c, 0xed, 0x8f, 0x16, 0x20, 0xe7, 0x74, 0xa4, + 0x5b, 0x95, 0x19, 0x86, 0x74, 0x5c, 0xaa, 0x30, 0x7d, 0x3e, 0xbc, 0x7f, 0xce, 0xc0, 0x39, 0xa7, + 0x13, 0x19, 0x36, 0xa7, 0x19, 0xb6, 0x01, 0x15, 0xca, 0xae, 0xe4, 0x9d, 0x9d, 0x75, 0xee, 0xde, + 0x3c, 0x8e, 0x68, 0xb4, 0x08, 0xc5, 0x20, 0xb4, 0x43, 0x11, 0xc0, 0x27, 0x16, 0x2e, 0x64, 0x6f, + 0x93, 0xa6, 0xb7, 0xd9, 0x12, 0x2c, 0x56, 0x0e, 0xf9, 0xad, 0xf8, 0xb8, 0x7e, 0x2b, 0x3d, 0x8a, + 0xdf, 0xae, 0xc2, 0x4c, 0x96, 0x72, 0xa8, 0x02, 0x85, 0xcd, 0xad, 0xd6, 0x46, 0x7d, 0x02, 0x55, + 0xa1, 0xbc, 0x89, 0x57, 0x5a, 0xb8, 0xb5, 0x52, 0x37, 0x10, 0x40, 0x69, 0x79, 0x7d, 0x73, 0xbb, + 0xb5, 0x52, 0xcf, 0x47, 0xb9, 0xab, 0x9e, 0x12, 0x10, 0xa0, 0x8b, 0x50, 0x74, 0x42, 0xd2, 0x53, + 0xe9, 0xeb, 0x74, 0xb6, 0x55, 0xb0, 0x60, 0xb2, 0x3e, 0xca, 0x01, 0x68, 0x37, 0xfb, 0x71, 0x5e, + 0x00, 0xab, 0x50, 0x0a, 0x89, 0x67, 0x4b, 0xb4, 0x8e, 0x23, 0x4a, 0xae, 0x47, 0x2f, 0x2b, 0x47, + 0xe7, 0xb9, 0xa3, 0x3f, 0x37, 0x74, 0x24, 0xed, 0x33, 0xe1, 0xde, 0xd7, 0xa1, 0xbc, 0x4f, 0xfc, + 0xc0, 0xa1, 0x1e, 0x8f, 0x91, 0xb1, 0x8e, 0x23, 0x05, 0x58, 0xcf, 0xea, 0x41, 0x2e, 0xfc, 0x04, + 0x50, 0x5a, 0x5c, 0xde, 0x59, 0x7b, 0xb3, 0x55, 0x9f, 0xd0, 0x9c, 0x93, 0x93, 0xce, 0xb9, 0x0e, + 0xd5, 0x78, 0x41, 0x80, 0x2e, 0x25, 0xfd, 0x32, 0x35, 0x74, 0x08, 0x19, 0x1f, 0xd2, 0x31, 0xdf, + 0xca, 0x01, 0x1a, 0x7e, 0x3a, 0x6b, 0x46, 0x35, 0x1e, 0xd3, 0xa8, 0x51, 0xfa, 0xcf, 0xe9, 0x4f, + 0xff, 0x87, 0xe1, 0xed, 0x18, 0xad, 0x89, 0xe6, 0xa0, 0xd4, 0xe5, 0xf1, 0x2a, 0x21, 0xa7, 0xea, + 0x96, 0x28, 0xcd, 0x62, 0x39, 0x6f, 0xfd, 0xdc, 0x60, 0x86, 0x18, 0x7a, 0xe0, 0x1f, 0x7f, 0x7a, + 0xd3, 0x8e, 0x97, 0x7b, 0xdc, 0x60, 0xf9, 0xab, 0x01, 0x53, 0x43, 0x8f, 0xe9, 0x4f, 0x40, 0xe7, + 0x57, 0xa1, 0xe4, 0x13, 0x3b, 0x90, 0x2a, 0x9f, 0x58, 0x78, 0x6a, 0xd4, 0x43, 0x7e, 0x1e, 0x73, + 0xb6, 0x65, 0xda, 0x21, 0x58, 0x2e, 0xb1, 0x5e, 0x05, 0x88, 0x47, 0x91, 0x09, 0xc5, 0xdd, 0x8d, + 0xed, 0xd6, 0x4e, 0x7d, 0x02, 0xd5, 0x61, 0x72, 0xa7, 0xb5, 0xb1, 0xb8, 0xb1, 0xf3, 0x36, 0x0f, + 0xe9, 0xba, 0xc1, 0x46, 0xd6, 0x36, 0xb6, 0x77, 0x6f, 0xdc, 0x58, 0x5b, 0x5e, 0x6b, 0x6d, 0xec, + 0xd4, 0x73, 0xd6, 0xfb, 0x06, 0x94, 0x79, 0xb1, 0xf4, 0x89, 0x5c, 0x35, 0x33, 0x50, 0xe4, 0xee, + 0x57, 0xc1, 0xc9, 0x09, 0x75, 0x01, 0xe5, 0xd3, 0x17, 0xd0, 0xcf, 0x0c, 0x28, 0x8a, 0xc2, 0x6d, + 0x4e, 0xbb, 0x76, 0x54, 0xc5, 0x2d, 0xb5, 0x4c, 0x5d, 0x36, 0x33, 0x50, 0x24, 0x5e, 0x67, 0x51, + 0x24, 0xa7, 0x3c, 0x16, 0x04, 0x03, 0xa9, 0x9e, 0x69, 0x9e, 0xd0, 0x45, 0x88, 0xbf, 0x7a, 0x7e, + 0xb1, 0x9a, 0x00, 0xf1, 0x60, 0x32, 0x6d, 0xbf, 0xb1, 0xb8, 0xb3, 0xbc, 0x9a, 0x4a, 0xdb, 0x2a, + 0x33, 0x6c, 0x42, 0x2d, 0x51, 0x80, 0x3e, 0xae, 0xda, 0xd6, 0x45, 0x28, 0x71, 0xf6, 0x00, 0x59, + 0xc9, 0x2c, 0x33, 0xa9, 0x0b, 0x53, 0xa9, 0xe5, 0x81, 0x01, 0x35, 0xad, 0x02, 0xfb, 0x1f, 0x3a, + 0x70, 0x06, 0x8a, 0x3c, 0x9b, 0xa8, 0x97, 0x1a, 0x27, 0xd0, 0x3a, 0x54, 0xd4, 0x63, 0x7a, 0xec, + 0xc4, 0x12, 0x49, 0x90, 0x21, 0xf1, 0x5b, 0x03, 0xaa, 0x7a, 0x95, 0x39, 0xaf, 0x59, 0x58, 0xdd, + 0xce, 0x09, 0x1b, 0x0c, 0xdb, 0x59, 0xbc, 0x29, 0x73, 0xda, 0x9b, 0x12, 0x5d, 0x4d, 0x86, 0xc7, + 0x53, 0xc3, 0x82, 0xf4, 0xef, 0x44, 0xa8, 0xbc, 0x08, 0xf5, 0xf4, 0xd4, 0xd1, 0x03, 0xe6, 0x15, + 0x98, 0xd4, 0x16, 0x07, 0x68, 0x2e, 0xe9, 0x65, 0x34, 0xac, 0x87, 0xf2, 0xf5, 0x5b, 0x30, 0x9d, + 0xd1, 0xa7, 0x38, 0x1e, 0x73, 0x58, 0x2b, 0xfc, 0x8a, 0x4a, 0x17, 0xf4, 0x8f, 0x28, 0xdb, 0xfa, + 0xb3, 0x01, 0x65, 0x5e, 0xcf, 0xff, 0x5f, 0x06, 0xe2, 0x0f, 0x0c, 0x28, 0x8a, 0x36, 0x4e, 0x16, + 0xc8, 0xe5, 0xb9, 0x8f, 0x14, 0x7c, 0x23, 0x72, 0x13, 0x17, 0x21, 0xfe, 0x26, 0x02, 0xee, 0x69, + 0x80, 0x78, 0x70, 0xd4, 0x53, 0x45, 0x4f, 0x45, 0xc7, 0xa2, 0x25, 0x0b, 0x55, 0xbd, 0x67, 0x73, + 0x74, 0x79, 0x2c, 0x89, 0xf1, 0x89, 0x91, 0x49, 0x8c, 0xcf, 0xaa, 0xc0, 0xfe, 0x49, 0x0e, 0x4e, + 0xbe, 0x61, 0x7b, 0xce, 0x2d, 0x12, 0x84, 0x98, 0xbc, 0x33, 0x20, 0x41, 0x88, 0x96, 0xb4, 0xee, + 0xe9, 0x18, 0xae, 0xe3, 0xfd, 0xd6, 0x8d, 0xa1, 0x7e, 0xeb, 0x18, 0x92, 0xb4, 0x0e, 0x6d, 0x32, + 0xa2, 0xf3, 0xc7, 0x10, 0xd1, 0x17, 0xa0, 0xd2, 0x93, 0x07, 0x97, 0xdd, 0x51, 0xd5, 0xa2, 0x88, + 0xec, 0x11, 0x31, 0x58, 0xaf, 0x40, 0x45, 0x8d, 0xa2, 0x8b, 0xd1, 0x9b, 0xcb, 0x48, 0x54, 0x29, + 0x8a, 0x41, 0x14, 0x06, 0xea, 0xdd, 0xf5, 0x15, 0xa8, 0x25, 0x26, 0x32, 0xeb, 0xde, 0x05, 0xa8, + 0x04, 0xc4, 0xdf, 0x77, 0x58, 0xe9, 0x93, 0x4b, 0xd4, 0x1b, 0x6a, 0xed, 0xb6, 0x98, 0xc6, 0x11, + 0x9f, 0xf5, 0x07, 0x23, 0xf6, 0x9c, 0x9c, 0x1d, 0x55, 0x91, 0x3b, 0x3d, 0xbb, 0x1b, 0x55, 0xe4, + 0x9c, 0x60, 0x9c, 0xb6, 0xdf, 0x15, 0x05, 0xb2, 0x89, 0xf9, 0x37, 0x7b, 0x17, 0x10, 0x6f, 0x9f, + 0x77, 0x80, 0x4c, 0xcc, 0x3e, 0xd1, 0x33, 0xb2, 0xaf, 0x50, 0x1c, 0xd9, 0x57, 0x48, 0x77, 0x14, + 0x4a, 0x7a, 0x47, 0xe1, 0x05, 0x28, 0x91, 0x83, 0x3e, 0xe5, 0x8d, 0x5a, 0x76, 0xa8, 0x33, 0xd9, + 0x87, 0x6a, 0x71, 0x1e, 0x2c, 0x79, 0xd9, 0x33, 0xe4, 0x54, 0x26, 0x07, 0x53, 0xba, 0x4f, 0x7d, + 0x91, 0xd0, 0x6a, 0x98, 0x7f, 0x23, 0x0b, 0x26, 0xc9, 0x41, 0x48, 0x7c, 0xcf, 0x76, 0xb7, 0xd8, + 0x9c, 0x68, 0x69, 0x24, 0xc6, 0x04, 0xc4, 0x68, 0x48, 0x65, 0xe7, 0x4b, 0x10, 0x68, 0x16, 0xca, + 0xd2, 0x98, 0xdc, 0xff, 0x26, 0x56, 0x24, 0x3a, 0x0d, 0xa5, 0xae, 0x4b, 0xf7, 0x6c, 0x97, 0x1f, + 0xbc, 0x82, 0x25, 0xc5, 0xe4, 0xdc, 0xa6, 0x41, 0x28, 0xca, 0x53, 0x13, 0x0b, 0xc2, 0x2a, 0x43, + 0xb1, 0xd5, 0xeb, 0x87, 0x87, 0xd6, 0x0e, 0x4c, 0x2e, 0xb2, 0xb8, 0x7b, 0x53, 0x3e, 0xce, 0x67, + 0xe3, 0x97, 0xb0, 0x70, 0x48, 0xf4, 0x6c, 0x3f, 0x0d, 0xa5, 0x36, 0xed, 0xf5, 0x9c, 0x50, 0x3a, + 0x45, 0x52, 0xbc, 0xe5, 0xa3, 0x52, 0x93, 0x89, 0xf9, 0xb7, 0xf5, 0x23, 0x03, 0x26, 0x99, 0x19, + 0xc4, 0xf3, 0x68, 0x10, 0x30, 0xa6, 0x36, 0xed, 0x08, 0x27, 0x17, 0x31, 0xff, 0x46, 0x97, 0x92, + 0x8f, 0xee, 0xd8, 0x57, 0xba, 0x42, 0xf1, 0xfe, 0x57, 0xb4, 0x0c, 0x2d, 0x7e, 0x66, 0x38, 0x95, + 0xaa, 0xd5, 0xc5, 0x5e, 0x71, 0x1a, 0x66, 0x87, 0xe9, 0x91, 0x20, 0x60, 0x81, 0x24, 0xad, 0x25, + 0x49, 0xeb, 0x83, 0x0a, 0x9c, 0xd2, 0x15, 0xdc, 0xb2, 0xfd, 0x80, 0xd8, 0x7b, 0x2e, 0x39, 0x0e, + 0x4d, 0x6f, 0x0e, 0x69, 0xaa, 0xfa, 0x13, 0x99, 0x5b, 0x8e, 0xa1, 0x7f, 0xe3, 0x8f, 0x06, 0x9c, + 0x48, 0x2e, 0x43, 0xeb, 0x50, 0x6e, 0xbb, 0x83, 0x20, 0x94, 0x7d, 0xc7, 0xea, 0xc2, 0xc2, 0x91, + 0x36, 0x5d, 0x16, 0x6b, 0xe4, 0xde, 0x4a, 0x04, 0xba, 0xaa, 0x65, 0x1a, 0x71, 0xe6, 0xcf, 0xa6, + 0xac, 0x1d, 0x85, 0xbb, 0xd4, 0x5a, 0xb1, 0xa3, 0xeb, 0x60, 0xee, 0x39, 0x1d, 0xe2, 0x75, 0x1d, + 0x8f, 0xc8, 0xf3, 0x9f, 0x4d, 0x37, 0x52, 0xd5, 0xbc, 0x5c, 0x1c, 0x2f, 0x68, 0x7c, 0xd3, 0x80, + 0x53, 0x99, 0xba, 0xb1, 0x00, 0x74, 0xf9, 0x25, 0x21, 0xb1, 0x24, 0x29, 0x84, 0xc1, 0x74, 0xbc, + 0x7d, 0xe2, 0x85, 0xaa, 0x1d, 0x59, 0x5d, 0x78, 0xe1, 0x48, 0x47, 0x5f, 0x53, 0xab, 0x94, 0x16, + 0x91, 0x98, 0xc6, 0xd7, 0x0b, 0xf0, 0xc4, 0x08, 0x36, 0x44, 0x60, 0xd2, 0x27, 0x0c, 0x76, 0xe2, + 0x17, 0x40, 0x69, 0xed, 0xc5, 0x71, 0xb6, 0x64, 0x69, 0x29, 0x12, 0x84, 0x13, 0x62, 0xd1, 0xdb, + 0x60, 0xda, 0xfb, 0xb6, 0xe3, 0xb2, 0xf5, 0x32, 0xc1, 0x8e, 0xbd, 0x47, 0x9c, 0xfa, 0x62, 0x99, + 0x8d, 0xdd, 0x71, 0xdb, 0xbd, 0x66, 0x66, 0xbb, 0xd7, 0x14, 0xed, 0xde, 0xc6, 0xaf, 0x0c, 0x2e, + 0x37, 0x3e, 0xc8, 0x57, 0xa1, 0x64, 0xb7, 0x43, 0x67, 0x9f, 0xc8, 0xbb, 0xe7, 0x18, 0x4e, 0x21, + 0x05, 0xa2, 0xb7, 0xa0, 0xdc, 0x27, 0x5e, 0xc7, 0xf1, 0xba, 0xc7, 0x67, 0x21, 0x25, 0xd1, 0xfa, + 0xe5, 0x30, 0xc6, 0x5e, 0x4a, 0x63, 0xec, 0x4c, 0x2a, 0xb0, 0x3f, 0x65, 0x68, 0xb2, 0xae, 0xc1, + 0xe9, 0xec, 0x1d, 0xd0, 0x79, 0xa8, 0xc6, 0x0f, 0x0b, 0x05, 0x29, 0x7d, 0xc8, 0xba, 0x12, 0x43, + 0x20, 0xb5, 0x03, 0x8b, 0x07, 0xfe, 0x6c, 0x8e, 0xa0, 0x28, 0x28, 0xab, 0xf7, 0xa8, 0xd8, 0xbd, + 0x3e, 0x8c, 0xdd, 0xf4, 0xe9, 0x46, 0xa3, 0xd4, 0xfa, 0x4b, 0x6e, 0x34, 0x4a, 0x37, 0x33, 0x51, + 0x7a, 0xe1, 0xe1, 0xc2, 0x1f, 0x86, 0xc7, 0x2b, 0xc3, 0x78, 0xcc, 0x7c, 0x5c, 0x68, 0x08, 0xfb, + 0x32, 0x54, 0xd4, 0xd4, 0xd1, 0xd1, 0x55, 0xcb, 0x44, 0x57, 0x4d, 0xa2, 0xeb, 0x6b, 0x29, 0x70, + 0x5d, 0x48, 0x81, 0x2b, 0x53, 0x25, 0x05, 0x97, 0x4b, 0x69, 0xb8, 0x64, 0x72, 0x47, 0x00, 0x78, + 0x16, 0x6a, 0xa2, 0x8b, 0x84, 0x49, 0xd0, 0xa7, 0x1e, 0xd1, 0xef, 0x23, 0x23, 0x79, 0x9f, 0xbe, + 0x07, 0x28, 0xaa, 0x38, 0x06, 0x81, 0x7a, 0x94, 0x9f, 0x1d, 0x2a, 0xe9, 0xcc, 0xd1, 0x05, 0x9a, + 0x99, 0x59, 0xa0, 0x99, 0xaa, 0x40, 0x6b, 0xa4, 0x0a, 0x34, 0x33, 0xbe, 0x27, 0xad, 0xef, 0x18, + 0x30, 0x23, 0x5f, 0x5d, 0x49, 0x05, 0xb2, 0xde, 0x96, 0x49, 0xa5, 0x72, 0xa3, 0x95, 0xca, 0x67, + 0x2a, 0x55, 0x18, 0xa5, 0x54, 0x31, 0xa5, 0xd4, 0x03, 0x43, 0x3c, 0x31, 0x34, 0xa5, 0x98, 0x15, + 0x03, 0x82, 0xe6, 0x01, 0xd1, 0x3d, 0xe6, 0x43, 0xd2, 0xb9, 0x49, 0x3c, 0xe2, 0x73, 0x57, 0x72, + 0x1d, 0xf3, 0x38, 0x63, 0x86, 0xed, 0xe2, 0x93, 0xbe, 0xeb, 0xb4, 0xed, 0x80, 0xeb, 0x5b, 0xc4, + 0x11, 0x8d, 0xe6, 0xe0, 0xe4, 0x80, 0xf7, 0x47, 0x3b, 0x58, 0xb1, 0xe4, 0x39, 0x4b, 0x7a, 0x18, + 0x3d, 0x0d, 0x35, 0x9f, 0xd8, 0x9d, 0xc3, 0x88, 0xaf, 0xc0, 0xf9, 0x92, 0x83, 0xe8, 0x22, 0x4c, + 0x45, 0xf1, 0x1b, 0x71, 0x16, 0x39, 0xe7, 0xf0, 0x84, 0xf5, 0x0b, 0x03, 0x60, 0x9d, 0x76, 0x3f, + 0x05, 0xe6, 0x46, 0x17, 0xa0, 0x4c, 0xfb, 0x02, 0xea, 0xe2, 0x7f, 0x35, 0x54, 0x97, 0x7d, 0x9d, + 0x76, 0x37, 0xc5, 0x04, 0x56, 0x1c, 0xd6, 0x12, 0x57, 0x5b, 0x0e, 0xa3, 0x33, 0x60, 0x86, 0xb6, + 0xe3, 0xae, 0x3b, 0x9e, 0xcc, 0x4f, 0x79, 0x1c, 0x0f, 0x30, 0x74, 0xde, 0xa2, 0xae, 0x4b, 0xdf, + 0xe5, 0xca, 0x57, 0xb0, 0xa4, 0xac, 0xe7, 0x21, 0xbf, 0x4e, 0xbb, 0x99, 0x67, 0xd6, 0x70, 0x92, + 0x4b, 0xe2, 0xe4, 0x0a, 0x54, 0xb9, 0xbd, 0x64, 0x24, 0x58, 0x50, 0xf2, 0x49, 0x30, 0x70, 0xd5, + 0xaf, 0xa0, 0x10, 0xeb, 0x8c, 0xe5, 0x8c, 0x75, 0x13, 0xa6, 0x13, 0xd0, 0x92, 0x4b, 0x2f, 0x6b, + 0xe5, 0x57, 0xb2, 0xa6, 0x4b, 0x06, 0x5d, 0x5c, 0x7c, 0xdd, 0x81, 0x5a, 0x62, 0x2a, 0x53, 0x75, + 0x04, 0x85, 0x5d, 0xbc, 0x26, 0x2a, 0x3a, 0x13, 0xf3, 0x6f, 0x66, 0x9f, 0x38, 0xf3, 0x89, 0xe8, + 0x8a, 0x07, 0x98, 0xab, 0x42, 0x1a, 0xda, 0xae, 0x8c, 0x27, 0x41, 0x58, 0xcf, 0x01, 0x8a, 0x4a, + 0x48, 0x12, 0x55, 0xe9, 0x33, 0x50, 0xe4, 0x89, 0x5f, 0xfe, 0x97, 0x93, 0x20, 0xac, 0x25, 0x98, + 0x4e, 0xf0, 0xca, 0x13, 0xea, 0xc5, 0xae, 0xf1, 0xdf, 0x8a, 0xdd, 0x4b, 0x30, 0xd5, 0xf2, 0x59, + 0x3a, 0xb7, 0x5d, 0xa7, 0xa3, 0xfe, 0xc5, 0x69, 0x74, 0xbe, 0xba, 0x08, 0x75, 0xce, 0x2e, 0x0a, + 0xae, 0x96, 0xef, 0x53, 0xff, 0x21, 0xdc, 0x4d, 0x98, 0x6e, 0xf9, 0xbe, 0x4a, 0x92, 0x1b, 0x34, + 0xbc, 0x41, 0x07, 0xde, 0x43, 0xc4, 0x2f, 0x7c, 0xaf, 0x00, 0x65, 0x79, 0x01, 0xa2, 0xeb, 0x50, + 0x92, 0xf6, 0x56, 0xcd, 0x0c, 0x5e, 0x79, 0x35, 0xa6, 0x33, 0x9e, 0x2a, 0xd6, 0xc9, 0x6f, 0xfc, + 0xee, 0x6f, 0xdf, 0xcd, 0x99, 0xa8, 0xdc, 0x0c, 0xd4, 0xab, 0xbe, 0x24, 0x72, 0x30, 0x4a, 0x57, + 0xd7, 0xd2, 0xa6, 0x8d, 0x99, 0xc4, 0xaf, 0x49, 0x32, 0x55, 0x5b, 0x33, 0x5c, 0xd0, 0x09, 0xcb, + 0x6c, 0x2a, 0x13, 0x5d, 0x33, 0x9e, 0x43, 0xef, 0x41, 0x55, 0x8b, 0x25, 0xf4, 0xa4, 0xde, 0x5d, + 0x49, 0x64, 0xce, 0x46, 0x23, 0x6b, 0x4a, 0x38, 0xc6, 0x7a, 0x89, 0xcb, 0xbe, 0x8c, 0xe6, 0x9b, + 0xdc, 0x7f, 0xcd, 0xbb, 0x31, 0x9c, 0xef, 0x35, 0xef, 0x72, 0x00, 0xdf, 0x6b, 0xde, 0xe5, 0x90, + 0xbd, 0xd7, 0xbc, 0xab, 0x10, 0x7a, 0x0f, 0xbd, 0x6f, 0xa4, 0x23, 0xf0, 0x33, 0x99, 0x21, 0x2b, + 0x55, 0x38, 0x93, 0x3d, 0x29, 0x95, 0xf8, 0x3c, 0x57, 0xe2, 0x65, 0xf4, 0xe2, 0xa3, 0x29, 0xd1, + 0xbc, 0xcb, 0xc2, 0xfc, 0x1e, 0x1a, 0x40, 0x55, 0xca, 0x5d, 0xa7, 0xdd, 0x00, 0x69, 0xc9, 0x42, + 0x6d, 0xaf, 0x61, 0xd1, 0x6a, 0xf1, 0xcd, 0xbe, 0x68, 0xbd, 0xd0, 0x74, 0x69, 0x37, 0x78, 0xc4, + 0xbd, 0xae, 0xa9, 0xb4, 0x73, 0xd9, 0x58, 0xaa, 0x7f, 0xf4, 0xe0, 0xac, 0xf1, 0xcf, 0x07, 0x67, + 0x8d, 0x0f, 0x3f, 0x3e, 0x6b, 0x7c, 0xf4, 0xf1, 0x59, 0x63, 0xaf, 0xc4, 0x0b, 0xfb, 0xe7, 0xff, + 0x13, 0x00, 0x00, 0xff, 0xff, 0x06, 0x98, 0x34, 0xbd, 0xa9, 0x28, 0x00, 0x00, } diff --git a/types/types.proto b/types/types.proto index fa0c9d2c0b..98f4322773 100644 --- a/types/types.proto +++ b/types/types.proto @@ -413,9 +413,76 @@ message AkashVersion { } message ServerStatus { - int32 code = 1; - AkashVersion version = 2; - string message = 3; + int32 code = 1; + AkashVersion version = 2; + ProviderStatus provider = 3; + string message = 4; +} + +message ServerStatusParseable { + + message ProviderStatus { + ProviderClusterStatus cluster = 1; + ProviderManifestStatus manifest = 2; + ProviderBidengineStatus bidengine = 3; + } + + message ProviderClusterStatus { + uint32 leases = 1; + ProviderInventoryStatus inventory = 2; + } + + message ProviderInventoryStatus { + message ResourceUnit { + uint32 CPU = 1 [(gogoproto.jsontag)="cpu"]; + string memory = 2; + string disk = 3; + } + message Reservations { + repeated ResourceUnit active = 1; + repeated ResourceUnit pending = 2; + } + Reservations reservations = 1; + repeated ResourceUnit available = 2; + } + + int32 code = 1; + AkashVersion version = 2; + ProviderStatus provider = 3; + string message = 4; +} + +message ProviderStatus { + ProviderClusterStatus cluster = 1; + ProviderManifestStatus manifest = 2; + ProviderBidengineStatus bidengine = 3; +} + +message ProviderManifestStatus { + uint32 deployments = 1; +} + +message ProviderBidengineStatus { + uint32 orders = 1; +} + +message ProviderClusterStatus { + uint32 leases = 1; + ProviderInventoryStatus inventory = 2; +} + +message ProviderInventoryStatus { + message Resource { + uint32 CPU = 1 [(gogoproto.jsontag)="cpu"]; + uint32 memory = 2; + uint32 disk = 3; + } + message Reservations { + repeated ResourceUnit active = 1; + repeated ResourceUnit pending = 2; + } + Reservations reservations = 1; + repeated ResourceUnit available = 2; } message DeployRespone { diff --git a/types/types.swagger.json b/types/types.swagger.json index d1680fd18f..6370752f87 100644 --- a/types/types.swagger.json +++ b/types/types.swagger.json @@ -380,6 +380,81 @@ } } }, + "typesProviderBidengineStatus": { + "type": "object", + "properties": { + "orders": { + "type": "integer", + "format": "int64" + } + } + }, + "typesProviderClusterStatus": { + "type": "object", + "properties": { + "leases": { + "type": "integer", + "format": "int64" + }, + "inventory": { + "$ref": "#/definitions/typesProviderInventoryStatus" + } + } + }, + "typesProviderInventoryStatus": { + "type": "object", + "properties": { + "reservations": { + "$ref": "#/definitions/typesProviderInventoryStatusReservations" + }, + "available": { + "type": "array", + "items": { + "$ref": "#/definitions/typesResourceUnit" + } + } + } + }, + "typesProviderInventoryStatusReservations": { + "type": "object", + "properties": { + "active": { + "type": "array", + "items": { + "$ref": "#/definitions/typesResourceUnit" + } + }, + "pending": { + "type": "array", + "items": { + "$ref": "#/definitions/typesResourceUnit" + } + } + } + }, + "typesProviderManifestStatus": { + "type": "object", + "properties": { + "deployments": { + "type": "integer", + "format": "int64" + } + } + }, + "typesProviderStatus": { + "type": "object", + "properties": { + "cluster": { + "$ref": "#/definitions/typesProviderClusterStatus" + }, + "manifest": { + "$ref": "#/definitions/typesProviderManifestStatus" + }, + "bidengine": { + "$ref": "#/definitions/typesProviderBidengineStatus" + } + } + }, "typesResourceUnit": { "type": "object", "properties": { @@ -408,6 +483,9 @@ "version": { "$ref": "#/definitions/typesAkashVersion" }, + "provider": { + "$ref": "#/definitions/typesProviderStatus" + }, "message": { "type": "string" }