Răsfoiți Sursa

Merge pull request #1158 from docker/move_e2e_into_backend_folders

Nicolas De loof 4 ani în urmă
părinte
comite
fea9697d77
80 a modificat fișierele cu 944 adăugiri și 1047 ștergeri
  1. 4 4
      .github/labeler.yml
  2. 0 1
      .github/workflows/ci.yml
  3. 1 1
      Dockerfile
  4. 5 5
      Makefile
  5. 0 0
      aci/e2e/aci-demo/aci_demo_port_secrets.yaml
  6. 0 0
      aci/e2e/aci-demo/aci_demo_port_volumes.yaml
  7. 0 0
      aci/e2e/aci-demo/db/Dockerfile
  8. 0 0
      aci/e2e/aci-demo/db/words.sql
  9. 0 0
      aci/e2e/aci-demo/demo_multi_port.yaml
  10. 0 0
      aci/e2e/aci-demo/img/dockercon-barcelona-logo.svg
  11. 0 0
      aci/e2e/aci-demo/img/dockercon_EU_17.jpg
  12. 0 0
      aci/e2e/aci-demo/my_secret1.txt
  13. 0 0
      aci/e2e/aci-demo/my_secret2.txt
  14. 0 0
      aci/e2e/aci-demo/web/Dockerfile
  15. 0 0
      aci/e2e/aci-demo/web/dispatcher.go
  16. 0 0
      aci/e2e/aci-demo/web/static/angular.min.js
  17. 0 0
      aci/e2e/aci-demo/web/static/app.js
  18. 0 0
      aci/e2e/aci-demo/web/static/favicon.ico
  19. 0 0
      aci/e2e/aci-demo/web/static/fonts/font1.woff2
  20. 0 0
      aci/e2e/aci-demo/web/static/fonts/font2.woff2
  21. 0 0
      aci/e2e/aci-demo/web/static/images/dockercon-log.png
  22. 0 0
      aci/e2e/aci-demo/web/static/images/dockercon-logo-2020.png
  23. 0 0
      aci/e2e/aci-demo/web/static/images/homes.png
  24. 0 0
      aci/e2e/aci-demo/web/static/images/lego_blue.png
  25. 0 0
      aci/e2e/aci-demo/web/static/images/lego_light_blue.png
  26. 0 0
      aci/e2e/aci-demo/web/static/images/lego_yellow.png
  27. 0 0
      aci/e2e/aci-demo/web/static/images/logo.svg
  28. 0 0
      aci/e2e/aci-demo/web/static/index.html
  29. 0 0
      aci/e2e/aci-demo/web/static/style.css
  30. 0 0
      aci/e2e/aci-demo/words/.dockerignore
  31. 0 0
      aci/e2e/aci-demo/words/Dockerfile
  32. 0 0
      aci/e2e/aci-demo/words/pom.xml
  33. 0 0
      aci/e2e/aci-demo/words/src/main/java/Main.java
  34. 0 0
      aci/e2e/aci_secrets_resources/compose.yml
  35. 0 0
      aci/e2e/aci_secrets_resources/my_secret1.txt
  36. 0 0
      aci/e2e/aci_secrets_resources/my_secret2.txt
  37. 0 0
      aci/e2e/aci_secrets_resources/web/Dockerfile
  38. 0 0
      aci/e2e/aci_secrets_resources/web/main.go
  39. 6 8
      aci/e2e/e2e-aci_test.go
  40. 1 1
      builder.Makefile
  41. 155 155
      cli/server/protos/compose/v1/compose.pb.go
  42. 290 290
      cli/server/protos/containers/v1/containers.pb.go
  43. 132 132
      cli/server/protos/contexts/v1/contexts.pb.go
  44. 76 76
      cli/server/protos/streams/v1/streams.pb.go
  45. 151 151
      cli/server/protos/volumes/v1/volumes.pb.go
  46. 1 1
      ecs/e2e/ecs-local/context_test.go
  47. 3 3
      ecs/e2e/ecs/e2e-ecs_test.go
  48. 0 0
      ecs/e2e/ecs/multi_port_secrets.yaml
  49. 0 0
      ecs/e2e/ecs/my_secret1.txt
  50. 1 1
      local/e2e/cli-only/e2e_test.go
  51. 1 1
      local/e2e/cli-only/mockmetrics.go
  52. 0 0
      local/e2e/cli-only/testdata/ls-out-default-windows.golden
  53. 0 0
      local/e2e/cli-only/testdata/ls-out-default.golden
  54. 0 0
      local/e2e/cli-only/testdata/ls-out-json-windows.golden
  55. 0 0
      local/e2e/cli-only/testdata/ls-out-json.golden
  56. 0 0
      local/e2e/cli-only/testdata/ls-out-legacy-json-windows.golden
  57. 0 0
      local/e2e/cli-only/testdata/ls-out-legacy-json.golden
  58. 0 0
      local/e2e/cli-only/testdata/ls-out-test-docker-quiet.golden
  59. 0 0
      local/e2e/cli-only/testdata/ls-out-test-docker-windows.golden
  60. 0 0
      local/e2e/cli-only/testdata/ls-out-test-docker.golden
  61. 2 2
      local/e2e/compose/compose_test.go
  62. 0 0
      local/e2e/compose/fixtures/build-test/docker-compose.yml
  63. 0 0
      local/e2e/compose/fixtures/build-test/nginx-build/Dockerfile
  64. 0 0
      local/e2e/compose/fixtures/build-test/nginx-build/static/index.html
  65. 0 0
      local/e2e/compose/fixtures/logs-test/compose.yaml
  66. 0 0
      local/e2e/compose/fixtures/network-test/docker-compose.yaml
  67. 0 0
      local/e2e/compose/fixtures/run-test/docker-compose.yml
  68. 0 0
      local/e2e/compose/fixtures/sentences/docker-compose.yaml
  69. 0 0
      local/e2e/compose/fixtures/simple-composefile/docker-compose.yml
  70. 0 0
      local/e2e/compose/fixtures/volume-test/docker-compose.yml
  71. 0 0
      local/e2e/compose/fixtures/volume-test/nginx-build/Dockerfile
  72. 0 0
      local/e2e/compose/fixtures/volume-test/static/index.html
  73. 1 1
      local/e2e/compose/logs_test.go
  74. 29 5
      local/e2e/container/container_test.go
  75. 83 0
      local/e2e/container/skip_win_ci_test.go
  76. 0 0
      local/e2e/container/testdata/ls-out-test-local.golden
  77. 0 5
      tests/composefiles/nginx.yaml
  78. 0 42
      tests/framework/unit.go
  79. 0 161
      tests/skip-win-ci-e2e/skip_win_ci_test.go
  80. 2 1
      utils/e2e/framework.go

+ 4 - 4
.github/labeler.yml

@@ -10,15 +10,15 @@ local:
 cli:
   - cli/**/*
 
+metrics:
+  - cli/metrics/**/*
+
 api:
   - api/**/*
-  - protos/**/*
+  - cli/server/protos/**/*
 
 ci:
   - .github/**/*
 
 documentation:
   - docs/**/*
-
-metrics:
-  - metrics/**/*

+ 0 - 1
.github/workflows/ci.yml

@@ -64,7 +64,6 @@ jobs:
         run: make -f builder.Makefile cross
 
       - name: Test
-        env:
         run: make -f builder.Makefile test
 
       - name: Build for local E2E

+ 1 - 1
Dockerfile

@@ -87,7 +87,7 @@ RUN --mount=target=. \
     make BINARY=/out/docker  -f builder.Makefile cross
 
 FROM scratch AS protos
-COPY --from=make-protos /compose-cli/protos .
+COPY --from=make-protos /compose-cli/cli/server/protos .
 
 FROM scratch AS cli
 COPY --from=make-cli /out/* .

+ 5 - 5
Makefile

@@ -34,7 +34,7 @@ all: cli
 
 protos: ## Generate go code from .proto files
 	@docker build . --target protos \
-	--output ./protos
+	--output ./cli/server/protos
 
 cli: ## Compile the cli
 	@docker build . --target cli \
@@ -44,16 +44,16 @@ cli: ## Compile the cli
 	--output ./bin
 
 e2e-local: ## Run End to end local tests. Set E2E_TEST=TestName to run a single test
-	go test -count=1 -v $(TEST_FLAGS) ./tests/e2e ./tests/compose-e2e ./tests/skip-win-ci-e2e ./local/e2e
+	go test -count=1 -v $(TEST_FLAGS) ./local/e2e/compose ./local/e2e/container ./local/e2e/cli-only
 
 e2e-win-ci: ## Run end to end local tests on Windows CI, no Docker for Linux containers available ATM. Set E2E_TEST=TestName to run a single test
-	go test -count=1 -v $(TEST_FLAGS) ./tests/e2e
+	go test -count=1 -v $(TEST_FLAGS) ./local/e2e/cli-only
 
 e2e-aci: ## Run End to end ACI tests. Set E2E_TEST=TestName to run a single test
-	go test -count=1 -v $(TEST_FLAGS) ./tests/aci-e2e
+	go test -count=1 -v $(TEST_FLAGS) ./aci/e2e
 
 e2e-ecs: ## Run End to end ECS tests. Set E2E_TEST=TestName to run a single test
-	go test -timeout 20m -count=1 -v $(TEST_FLAGS) ./tests/ecs-e2e
+	go test -timeout 20m -count=1 -v $(TEST_FLAGS) ./ecs/e2e/ecs ./ecs/e2e/ecs-local
 
 cross: ## Compile the CLI for linux, darwin and windows
 	@docker build . --target cross \

+ 0 - 0
tests/composefiles/aci-demo/aci_demo_port_secrets.yaml → aci/e2e/aci-demo/aci_demo_port_secrets.yaml


+ 0 - 0
tests/composefiles/aci-demo/aci_demo_port_volumes.yaml → aci/e2e/aci-demo/aci_demo_port_volumes.yaml


+ 0 - 0
tests/composefiles/aci-demo/db/Dockerfile → aci/e2e/aci-demo/db/Dockerfile


+ 0 - 0
tests/composefiles/aci-demo/db/words.sql → aci/e2e/aci-demo/db/words.sql


+ 0 - 0
tests/composefiles/demo_multi_port.yaml → aci/e2e/aci-demo/demo_multi_port.yaml


+ 0 - 0
tests/composefiles/aci-demo/img/dockercon-barcelona-logo.svg → aci/e2e/aci-demo/img/dockercon-barcelona-logo.svg


+ 0 - 0
tests/composefiles/aci-demo/img/dockercon_EU_17.jpg → aci/e2e/aci-demo/img/dockercon_EU_17.jpg


+ 0 - 0
tests/composefiles/aci-demo/my_secret1.txt → aci/e2e/aci-demo/my_secret1.txt


+ 0 - 0
tests/composefiles/aci-demo/my_secret2.txt → aci/e2e/aci-demo/my_secret2.txt


+ 0 - 0
tests/composefiles/aci-demo/web/Dockerfile → aci/e2e/aci-demo/web/Dockerfile


+ 0 - 0
tests/composefiles/aci-demo/web/dispatcher.go → aci/e2e/aci-demo/web/dispatcher.go


+ 0 - 0
tests/composefiles/aci-demo/web/static/angular.min.js → aci/e2e/aci-demo/web/static/angular.min.js


+ 0 - 0
tests/composefiles/aci-demo/web/static/app.js → aci/e2e/aci-demo/web/static/app.js


+ 0 - 0
tests/composefiles/aci-demo/web/static/favicon.ico → aci/e2e/aci-demo/web/static/favicon.ico


+ 0 - 0
tests/composefiles/aci-demo/web/static/fonts/font1.woff2 → aci/e2e/aci-demo/web/static/fonts/font1.woff2


+ 0 - 0
tests/composefiles/aci-demo/web/static/fonts/font2.woff2 → aci/e2e/aci-demo/web/static/fonts/font2.woff2


+ 0 - 0
tests/composefiles/aci-demo/web/static/images/dockercon-log.png → aci/e2e/aci-demo/web/static/images/dockercon-log.png


+ 0 - 0
tests/composefiles/aci-demo/web/static/images/dockercon-logo-2020.png → aci/e2e/aci-demo/web/static/images/dockercon-logo-2020.png


+ 0 - 0
tests/composefiles/aci-demo/web/static/images/homes.png → aci/e2e/aci-demo/web/static/images/homes.png


+ 0 - 0
tests/composefiles/aci-demo/web/static/images/lego_blue.png → aci/e2e/aci-demo/web/static/images/lego_blue.png


+ 0 - 0
tests/composefiles/aci-demo/web/static/images/lego_light_blue.png → aci/e2e/aci-demo/web/static/images/lego_light_blue.png


+ 0 - 0
tests/composefiles/aci-demo/web/static/images/lego_yellow.png → aci/e2e/aci-demo/web/static/images/lego_yellow.png


+ 0 - 0
tests/composefiles/aci-demo/web/static/images/logo.svg → aci/e2e/aci-demo/web/static/images/logo.svg


+ 0 - 0
tests/composefiles/aci-demo/web/static/index.html → aci/e2e/aci-demo/web/static/index.html


+ 0 - 0
tests/composefiles/aci-demo/web/static/style.css → aci/e2e/aci-demo/web/static/style.css


+ 0 - 0
tests/composefiles/aci-demo/words/.dockerignore → aci/e2e/aci-demo/words/.dockerignore


+ 0 - 0
tests/composefiles/aci-demo/words/Dockerfile → aci/e2e/aci-demo/words/Dockerfile


+ 0 - 0
tests/composefiles/aci-demo/words/pom.xml → aci/e2e/aci-demo/words/pom.xml


+ 0 - 0
tests/composefiles/aci-demo/words/src/main/java/Main.java → aci/e2e/aci-demo/words/src/main/java/Main.java


+ 0 - 0
tests/composefiles/aci_secrets_resources/compose.yml → aci/e2e/aci_secrets_resources/compose.yml


+ 0 - 0
tests/composefiles/aci_secrets_resources/my_secret1.txt → aci/e2e/aci_secrets_resources/my_secret1.txt


+ 0 - 0
tests/composefiles/aci_secrets_resources/my_secret2.txt → aci/e2e/aci_secrets_resources/my_secret2.txt


+ 0 - 0
tests/composefiles/aci_secrets_resources/web/Dockerfile → aci/e2e/aci_secrets_resources/web/Dockerfile


+ 0 - 0
tests/composefiles/aci_secrets_resources/web/main.go → aci/e2e/aci_secrets_resources/web/main.go


+ 6 - 8
tests/aci-e2e/e2e-aci_test.go → aci/e2e/e2e-aci_test.go

@@ -54,7 +54,7 @@ import (
 	"github.com/docker/compose-cli/api/context/store"
 	"github.com/docker/compose-cli/api/errdefs"
 	"github.com/docker/compose-cli/cli/cmd"
-	. "github.com/docker/compose-cli/tests/framework"
+	. "github.com/docker/compose-cli/utils/e2e"
 )
 
 const (
@@ -542,10 +542,9 @@ func TestUpSecretsResources(t *testing.T) {
 		secret2Name  = "mysecret2"
 		secret2Value = "another_password\n"
 	)
-	var (
-		basefilePath    = filepath.Join("..", "composefiles", "aci_secrets_resources")
-		composefilePath = filepath.Join(basefilePath, "compose.yml")
-	)
+
+	composefilePath := filepath.Join("aci_secrets_resources", "compose.yml")
+
 	c := NewParallelE2eCLI(t, binDir)
 	_, _, _ = setupTestResourceGroup(t, c)
 
@@ -660,13 +659,12 @@ func TestUpUpdate(t *testing.T) {
 	composeAccountName := strings.ToLower(strings.ReplaceAll(groupID, "-", "") + "sa")
 
 	dstDir := filepath.Join(os.TempDir(), "e2e-aci-volume-"+composeAccountName)
-	srcDir := filepath.Join("..", "composefiles", "aci-demo")
-	err := fileutil.CopyDirs(srcDir, dstDir)
+	err := fileutil.CopyDirs("aci-demo", dstDir)
 	assert.NilError(t, err)
 	t.Cleanup(func() {
 		assert.NilError(t, os.RemoveAll(dstDir))
 	})
-	_, err = fileutils.CopyFile(filepath.Join(filepath.Join("..", "composefiles"), multiPortComposefile), filepath.Join(dstDir, multiPortComposefile))
+	_, err = fileutils.CopyFile(filepath.Join(filepath.Join("aci-demo"), multiPortComposefile), filepath.Join(dstDir, multiPortComposefile))
 	assert.NilError(t, err)
 
 	singlePortVolumesComposefile = filepath.Join(dstDir, singlePortVolumesComposefile)

+ 1 - 1
builder.Makefile

@@ -17,7 +17,7 @@ GOARCH?=$(shell go env GOARCH)
 
 PKG_NAME := github.com/docker/compose-cli
 
-PROTOS=$(shell find protos -name \*.proto)
+PROTOS=$(shell find cli/server/protos -name \*.proto)
 
 EXTENSION:=
 ifeq ($(GOOS),windows)

+ 155 - 155
cli/server/protos/compose/v1/compose.pb.go

@@ -17,21 +17,20 @@
 // versions:
 // 	protoc-gen-go v1.25.0
 // 	protoc        v3.12.2
-// source: protos/compose/v1/compose.proto
+// source: cli/server/protos/compose/v1/compose.proto
 
 package v1
 
 import (
 	context "context"
-	reflect "reflect"
-	sync "sync"
-
 	proto "github.com/golang/protobuf/proto"
 	grpc "google.golang.org/grpc"
 	codes "google.golang.org/grpc/codes"
 	status "google.golang.org/grpc/status"
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
 )
 
 const (
@@ -58,7 +57,7 @@ type ComposeUpRequest struct {
 func (x *ComposeUpRequest) Reset() {
 	*x = ComposeUpRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[0]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[0]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -71,7 +70,7 @@ func (x *ComposeUpRequest) String() string {
 func (*ComposeUpRequest) ProtoMessage() {}
 
 func (x *ComposeUpRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[0]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[0]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -84,7 +83,7 @@ func (x *ComposeUpRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeUpRequest.ProtoReflect.Descriptor instead.
 func (*ComposeUpRequest) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{0}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *ComposeUpRequest) GetProjectName() string {
@@ -119,7 +118,7 @@ type ComposeUpResponse struct {
 func (x *ComposeUpResponse) Reset() {
 	*x = ComposeUpResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[1]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[1]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -132,7 +131,7 @@ func (x *ComposeUpResponse) String() string {
 func (*ComposeUpResponse) ProtoMessage() {}
 
 func (x *ComposeUpResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[1]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[1]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -145,7 +144,7 @@ func (x *ComposeUpResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeUpResponse.ProtoReflect.Descriptor instead.
 func (*ComposeUpResponse) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{1}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *ComposeUpResponse) GetProjectName() string {
@@ -168,7 +167,7 @@ type ComposeDownRequest struct {
 func (x *ComposeDownRequest) Reset() {
 	*x = ComposeDownRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[2]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[2]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -181,7 +180,7 @@ func (x *ComposeDownRequest) String() string {
 func (*ComposeDownRequest) ProtoMessage() {}
 
 func (x *ComposeDownRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[2]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[2]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -194,7 +193,7 @@ func (x *ComposeDownRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeDownRequest.ProtoReflect.Descriptor instead.
 func (*ComposeDownRequest) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{2}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *ComposeDownRequest) GetProjectName() string {
@@ -229,7 +228,7 @@ type ComposeDownResponse struct {
 func (x *ComposeDownResponse) Reset() {
 	*x = ComposeDownResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[3]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[3]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -242,7 +241,7 @@ func (x *ComposeDownResponse) String() string {
 func (*ComposeDownResponse) ProtoMessage() {}
 
 func (x *ComposeDownResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[3]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[3]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -255,7 +254,7 @@ func (x *ComposeDownResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeDownResponse.ProtoReflect.Descriptor instead.
 func (*ComposeDownResponse) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{3}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *ComposeDownResponse) GetProjectName() string {
@@ -276,7 +275,7 @@ type ComposeStacksRequest struct {
 func (x *ComposeStacksRequest) Reset() {
 	*x = ComposeStacksRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[4]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[4]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -289,7 +288,7 @@ func (x *ComposeStacksRequest) String() string {
 func (*ComposeStacksRequest) ProtoMessage() {}
 
 func (x *ComposeStacksRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[4]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[4]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -302,7 +301,7 @@ func (x *ComposeStacksRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeStacksRequest.ProtoReflect.Descriptor instead.
 func (*ComposeStacksRequest) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{4}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *ComposeStacksRequest) GetProjectName() string {
@@ -323,7 +322,7 @@ type ComposeStacksResponse struct {
 func (x *ComposeStacksResponse) Reset() {
 	*x = ComposeStacksResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[5]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[5]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -336,7 +335,7 @@ func (x *ComposeStacksResponse) String() string {
 func (*ComposeStacksResponse) ProtoMessage() {}
 
 func (x *ComposeStacksResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[5]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[5]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -349,7 +348,7 @@ func (x *ComposeStacksResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeStacksResponse.ProtoReflect.Descriptor instead.
 func (*ComposeStacksResponse) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{5}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *ComposeStacksResponse) GetStacks() []*Stack {
@@ -373,7 +372,7 @@ type Stack struct {
 func (x *Stack) Reset() {
 	*x = Stack{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[6]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[6]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -386,7 +385,7 @@ func (x *Stack) String() string {
 func (*Stack) ProtoMessage() {}
 
 func (x *Stack) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[6]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[6]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -399,7 +398,7 @@ func (x *Stack) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Stack.ProtoReflect.Descriptor instead.
 func (*Stack) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{6}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *Stack) GetId() string {
@@ -443,7 +442,7 @@ type ComposeServicesRequest struct {
 func (x *ComposeServicesRequest) Reset() {
 	*x = ComposeServicesRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[7]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[7]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -456,7 +455,7 @@ func (x *ComposeServicesRequest) String() string {
 func (*ComposeServicesRequest) ProtoMessage() {}
 
 func (x *ComposeServicesRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[7]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[7]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -469,7 +468,7 @@ func (x *ComposeServicesRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeServicesRequest.ProtoReflect.Descriptor instead.
 func (*ComposeServicesRequest) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{7}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *ComposeServicesRequest) GetProjectName() string {
@@ -504,7 +503,7 @@ type ComposeServicesResponse struct {
 func (x *ComposeServicesResponse) Reset() {
 	*x = ComposeServicesResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[8]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -517,7 +516,7 @@ func (x *ComposeServicesResponse) String() string {
 func (*ComposeServicesResponse) ProtoMessage() {}
 
 func (x *ComposeServicesResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[8]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -530,7 +529,7 @@ func (x *ComposeServicesResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComposeServicesResponse.ProtoReflect.Descriptor instead.
 func (*ComposeServicesResponse) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{8}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *ComposeServicesResponse) GetServices() []*Service {
@@ -555,7 +554,7 @@ type Service struct {
 func (x *Service) Reset() {
 	*x = Service{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_compose_v1_compose_proto_msgTypes[9]
+		mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -568,7 +567,7 @@ func (x *Service) String() string {
 func (*Service) ProtoMessage() {}
 
 func (x *Service) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_compose_v1_compose_proto_msgTypes[9]
+	mi := &file_cli_server_protos_compose_v1_compose_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -581,7 +580,7 @@ func (x *Service) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Service.ProtoReflect.Descriptor instead.
 func (*Service) Descriptor() ([]byte, []int) {
-	return file_protos_compose_v1_compose_proto_rawDescGZIP(), []int{9}
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *Service) GetId() string {
@@ -619,120 +618,121 @@ func (x *Service) GetPorts() []string {
 	return nil
 }
 
-var File_protos_compose_v1_compose_proto protoreflect.FileDescriptor
+var File_cli_server_protos_compose_v1_compose_proto protoreflect.FileDescriptor
 
-var file_protos_compose_v1_compose_proto_rawDesc = []byte{
-	0x0a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
-	0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
-	0x2e, 0x76, 0x31, 0x22, 0x64, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x55, 0x70,
+var file_cli_server_protos_compose_v1_compose_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63,
+	0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x63, 0x6f,
+	0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x22, 0x64,
+	0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d,
+	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
+	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x14,
+	0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66,
+	0x69, 0x6c, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x55,
+	0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f,
+	0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x12, 0x43,
+	0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e,
+	0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x14, 0x0a,
+	0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69,
+	0x6c, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x44, 0x6f,
+	0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72,
+	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x38, 0x0a, 0x14,
+	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e,
+	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65,
+	0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73,
+	0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+	0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x27, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e,
+	0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x06, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x73,
+	0x22, 0x5b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a,
+	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x6a, 0x0a,
+	0x16, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
 	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65,
 	0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72,
 	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72,
 	0x6b, 0x44, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b,
 	0x44, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
-	0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x11, 0x43, 0x6f, 0x6d,
-	0x70, 0x6f, 0x73, 0x65, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20,
-	0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65,
-	0x22, 0x66, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
-	0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f,
-	0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b,
-	0x44, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44,
-	0x69, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
-	0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70,
-	0x6f, 0x73, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
-	0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d,
-	0x65, 0x22, 0x38, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x74, 0x61, 0x63,
-	0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f,
-	0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
-	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x43,
-	0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x01,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65,
-	0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
-	0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x06, 0x73,
-	0x74, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x5b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x0e,
-	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
-	0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73,
-	0x6f, 0x6e, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b,
-	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18,
-	0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65,
-	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x60,
-	0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x73, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f,
-	0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
-	0x22, 0x79, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
-	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
-	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
-	0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x0d, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64,
-	0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x65,
-	0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05,
-	0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x32, 0xe9, 0x03, 0x0a, 0x07,
-	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x02, 0x55, 0x70, 0x12, 0x32, 0x2e,
-	0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61,
-	0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x55, 0x70, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x04, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x34,
-	0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65,
-	0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
-	0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x44,
-	0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x06, 0x53,
-	0x74, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b,
-	0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f,
-	0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
-	0x53, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e,
-	0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x08, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x73, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e,
-	0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63,
+	0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x60, 0x0a, 0x17, 0x43, 0x6f, 0x6d,
+	0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
+	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63,
+	0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63,
+	0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+	0x65, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x07, 0x53,
+	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
+	0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65,
+	0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65,
+	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64,
+	0x12, 0x14, 0x0a, 0x05, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52,
+	0x05, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x32, 0xe9, 0x03, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+	0x73, 0x65, 0x12, 0x6d, 0x0a, 0x02, 0x55, 0x70, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64,
+	0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
+	0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
+	0x6f, 0x73, 0x65, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63,
 	0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72,
 	0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e,
-	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d,
-	0x70, 0x6f, 0x73, 0x65, 0x2d, 0x63, 0x6c, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f,
-	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62, 0x06, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x12, 0x73, 0x0a, 0x04, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
+	0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d,
+	0x70, 0x6f, 0x73, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e,
+	0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x73,
+	0x12, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
+	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
+	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b,
+	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64,
+	0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
+	0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
+	0x6f, 0x73, 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x12, 0x7f, 0x0a, 0x08, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x38, 0x2e,
+	0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31,
+	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f,
+	0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
+	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+	0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+	0x2f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2d,
+	0x63, 0x6c, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2f, 0x76, 0x31,
+	0x3b, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_protos_compose_v1_compose_proto_rawDescOnce sync.Once
-	file_protos_compose_v1_compose_proto_rawDescData = file_protos_compose_v1_compose_proto_rawDesc
+	file_cli_server_protos_compose_v1_compose_proto_rawDescOnce sync.Once
+	file_cli_server_protos_compose_v1_compose_proto_rawDescData = file_cli_server_protos_compose_v1_compose_proto_rawDesc
 )
 
-func file_protos_compose_v1_compose_proto_rawDescGZIP() []byte {
-	file_protos_compose_v1_compose_proto_rawDescOnce.Do(func() {
-		file_protos_compose_v1_compose_proto_rawDescData = protoimpl.X.CompressGZIP(file_protos_compose_v1_compose_proto_rawDescData)
+func file_cli_server_protos_compose_v1_compose_proto_rawDescGZIP() []byte {
+	file_cli_server_protos_compose_v1_compose_proto_rawDescOnce.Do(func() {
+		file_cli_server_protos_compose_v1_compose_proto_rawDescData = protoimpl.X.CompressGZIP(file_cli_server_protos_compose_v1_compose_proto_rawDescData)
 	})
-	return file_protos_compose_v1_compose_proto_rawDescData
+	return file_cli_server_protos_compose_v1_compose_proto_rawDescData
 }
 
-var file_protos_compose_v1_compose_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_protos_compose_v1_compose_proto_goTypes = []interface{}{
+var file_cli_server_protos_compose_v1_compose_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_cli_server_protos_compose_v1_compose_proto_goTypes = []interface{}{
 	(*ComposeUpRequest)(nil),        // 0: com.docker.api.protos.compose.v1.ComposeUpRequest
 	(*ComposeUpResponse)(nil),       // 1: com.docker.api.protos.compose.v1.ComposeUpResponse
 	(*ComposeDownRequest)(nil),      // 2: com.docker.api.protos.compose.v1.ComposeDownRequest
@@ -744,7 +744,7 @@ var file_protos_compose_v1_compose_proto_goTypes = []interface{}{
 	(*ComposeServicesResponse)(nil), // 8: com.docker.api.protos.compose.v1.ComposeServicesResponse
 	(*Service)(nil),                 // 9: com.docker.api.protos.compose.v1.Service
 }
-var file_protos_compose_v1_compose_proto_depIdxs = []int32{
+var file_cli_server_protos_compose_v1_compose_proto_depIdxs = []int32{
 	6, // 0: com.docker.api.protos.compose.v1.ComposeStacksResponse.stacks:type_name -> com.docker.api.protos.compose.v1.Stack
 	9, // 1: com.docker.api.protos.compose.v1.ComposeServicesResponse.services:type_name -> com.docker.api.protos.compose.v1.Service
 	0, // 2: com.docker.api.protos.compose.v1.Compose.Up:input_type -> com.docker.api.protos.compose.v1.ComposeUpRequest
@@ -762,13 +762,13 @@ var file_protos_compose_v1_compose_proto_depIdxs = []int32{
 	0, // [0:2] is the sub-list for field type_name
 }
 
-func init() { file_protos_compose_v1_compose_proto_init() }
-func file_protos_compose_v1_compose_proto_init() {
-	if File_protos_compose_v1_compose_proto != nil {
+func init() { file_cli_server_protos_compose_v1_compose_proto_init() }
+func file_cli_server_protos_compose_v1_compose_proto_init() {
+	if File_cli_server_protos_compose_v1_compose_proto != nil {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_protos_compose_v1_compose_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeUpRequest); i {
 			case 0:
 				return &v.state
@@ -780,7 +780,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeUpResponse); i {
 			case 0:
 				return &v.state
@@ -792,7 +792,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeDownRequest); i {
 			case 0:
 				return &v.state
@@ -804,7 +804,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeDownResponse); i {
 			case 0:
 				return &v.state
@@ -816,7 +816,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeStacksRequest); i {
 			case 0:
 				return &v.state
@@ -828,7 +828,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeStacksResponse); i {
 			case 0:
 				return &v.state
@@ -840,7 +840,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*Stack); i {
 			case 0:
 				return &v.state
@@ -852,7 +852,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeServicesRequest); i {
 			case 0:
 				return &v.state
@@ -864,7 +864,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ComposeServicesResponse); i {
 			case 0:
 				return &v.state
@@ -876,7 +876,7 @@ func file_protos_compose_v1_compose_proto_init() {
 				return nil
 			}
 		}
-		file_protos_compose_v1_compose_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_compose_v1_compose_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*Service); i {
 			case 0:
 				return &v.state
@@ -893,20 +893,20 @@ func file_protos_compose_v1_compose_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_protos_compose_v1_compose_proto_rawDesc,
+			RawDescriptor: file_cli_server_protos_compose_v1_compose_proto_rawDesc,
 			NumEnums:      0,
 			NumMessages:   10,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_protos_compose_v1_compose_proto_goTypes,
-		DependencyIndexes: file_protos_compose_v1_compose_proto_depIdxs,
-		MessageInfos:      file_protos_compose_v1_compose_proto_msgTypes,
+		GoTypes:           file_cli_server_protos_compose_v1_compose_proto_goTypes,
+		DependencyIndexes: file_cli_server_protos_compose_v1_compose_proto_depIdxs,
+		MessageInfos:      file_cli_server_protos_compose_v1_compose_proto_msgTypes,
 	}.Build()
-	File_protos_compose_v1_compose_proto = out.File
-	file_protos_compose_v1_compose_proto_rawDesc = nil
-	file_protos_compose_v1_compose_proto_goTypes = nil
-	file_protos_compose_v1_compose_proto_depIdxs = nil
+	File_cli_server_protos_compose_v1_compose_proto = out.File
+	file_cli_server_protos_compose_v1_compose_proto_rawDesc = nil
+	file_cli_server_protos_compose_v1_compose_proto_goTypes = nil
+	file_cli_server_protos_compose_v1_compose_proto_depIdxs = nil
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1094,5 +1094,5 @@ var _Compose_serviceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "protos/compose/v1/compose.proto",
+	Metadata: "cli/server/protos/compose/v1/compose.proto",
 }

Fișier diff suprimat deoarece este prea mare
+ 290 - 290
cli/server/protos/containers/v1/containers.pb.go


+ 132 - 132
cli/server/protos/contexts/v1/contexts.pb.go

@@ -17,21 +17,20 @@
 // versions:
 // 	protoc-gen-go v1.25.0
 // 	protoc        v3.12.2
-// source: protos/contexts/v1/contexts.proto
+// source: cli/server/protos/contexts/v1/contexts.proto
 
 package v1
 
 import (
 	context "context"
-	reflect "reflect"
-	sync "sync"
-
 	proto "github.com/golang/protobuf/proto"
 	grpc "google.golang.org/grpc"
 	codes "google.golang.org/grpc/codes"
 	status "google.golang.org/grpc/status"
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
 )
 
 const (
@@ -64,7 +63,7 @@ type Context struct {
 func (x *Context) Reset() {
 	*x = Context{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[0]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[0]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -77,7 +76,7 @@ func (x *Context) String() string {
 func (*Context) ProtoMessage() {}
 
 func (x *Context) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[0]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[0]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -90,7 +89,7 @@ func (x *Context) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Context.ProtoReflect.Descriptor instead.
 func (*Context) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{0}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *Context) GetName() string {
@@ -182,7 +181,7 @@ type DockerEndpoint struct {
 func (x *DockerEndpoint) Reset() {
 	*x = DockerEndpoint{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[1]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[1]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -195,7 +194,7 @@ func (x *DockerEndpoint) String() string {
 func (*DockerEndpoint) ProtoMessage() {}
 
 func (x *DockerEndpoint) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[1]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[1]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -208,7 +207,7 @@ func (x *DockerEndpoint) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DockerEndpoint.ProtoReflect.Descriptor instead.
 func (*DockerEndpoint) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{1}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *DockerEndpoint) GetHost() string {
@@ -231,7 +230,7 @@ type AciEndpoint struct {
 func (x *AciEndpoint) Reset() {
 	*x = AciEndpoint{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[2]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[2]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -244,7 +243,7 @@ func (x *AciEndpoint) String() string {
 func (*AciEndpoint) ProtoMessage() {}
 
 func (x *AciEndpoint) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[2]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[2]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -257,7 +256,7 @@ func (x *AciEndpoint) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AciEndpoint.ProtoReflect.Descriptor instead.
 func (*AciEndpoint) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{2}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *AciEndpoint) GetRegion() string {
@@ -293,7 +292,7 @@ type EcsEndpoint struct {
 func (x *EcsEndpoint) Reset() {
 	*x = EcsEndpoint{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[3]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[3]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -306,7 +305,7 @@ func (x *EcsEndpoint) String() string {
 func (*EcsEndpoint) ProtoMessage() {}
 
 func (x *EcsEndpoint) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[3]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[3]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -319,7 +318,7 @@ func (x *EcsEndpoint) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use EcsEndpoint.ProtoReflect.Descriptor instead.
 func (*EcsEndpoint) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{3}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *EcsEndpoint) GetProfile() string {
@@ -347,7 +346,7 @@ type SetCurrentRequest struct {
 func (x *SetCurrentRequest) Reset() {
 	*x = SetCurrentRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[4]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[4]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -360,7 +359,7 @@ func (x *SetCurrentRequest) String() string {
 func (*SetCurrentRequest) ProtoMessage() {}
 
 func (x *SetCurrentRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[4]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[4]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -373,7 +372,7 @@ func (x *SetCurrentRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetCurrentRequest.ProtoReflect.Descriptor instead.
 func (*SetCurrentRequest) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{4}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *SetCurrentRequest) GetName() string {
@@ -392,7 +391,7 @@ type SetCurrentResponse struct {
 func (x *SetCurrentResponse) Reset() {
 	*x = SetCurrentResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[5]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[5]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -405,7 +404,7 @@ func (x *SetCurrentResponse) String() string {
 func (*SetCurrentResponse) ProtoMessage() {}
 
 func (x *SetCurrentResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[5]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[5]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -418,7 +417,7 @@ func (x *SetCurrentResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetCurrentResponse.ProtoReflect.Descriptor instead.
 func (*SetCurrentResponse) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{5}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{5}
 }
 
 type ListRequest struct {
@@ -430,7 +429,7 @@ type ListRequest struct {
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[6]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[6]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -443,7 +442,7 @@ func (x *ListRequest) String() string {
 func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[6]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[6]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -456,7 +455,7 @@ func (x *ListRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListRequest.ProtoReflect.Descriptor instead.
 func (*ListRequest) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{6}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{6}
 }
 
 type ListResponse struct {
@@ -470,7 +469,7 @@ type ListResponse struct {
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_contexts_v1_contexts_proto_msgTypes[7]
+		mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[7]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -483,7 +482,7 @@ func (x *ListResponse) String() string {
 func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_contexts_v1_contexts_proto_msgTypes[7]
+	mi := &file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[7]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -496,7 +495,7 @@ func (x *ListResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListResponse.ProtoReflect.Descriptor instead.
 func (*ListResponse) Descriptor() ([]byte, []int) {
-	return file_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{7}
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *ListResponse) GetContexts() []*Context {
@@ -506,99 +505,100 @@ func (x *ListResponse) GetContexts() []*Context {
 	return nil
 }
 
-var File_protos_contexts_v1_contexts_proto protoreflect.FileDescriptor
-
-var file_protos_contexts_v1_contexts_proto_rawDesc = []byte{
-	0x0a, 0x21, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
-	0x73, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x12, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e,
-	0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65,
-	0x78, 0x74, 0x2e, 0x76, 0x31, 0x22, 0x8c, 0x03, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
-	0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
-	0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
-	0x65, 0x78, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65,
-	0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
-	0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x6e,
-	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e,
-	0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x00,
-	0x52, 0x0e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
-	0x12, 0x52, 0x0a, 0x0c, 0x61, 0x63, 0x69, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
-	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63,
-	0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63,
-	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x69, 0x45, 0x6e, 0x64,
-	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x69, 0x45, 0x6e, 0x64, 0x70,
-	0x6f, 0x69, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x65, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x70,
-	0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d,
-	0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x63,
-	0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x63, 0x73,
-	0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70,
-	0x6f, 0x69, 0x6e, 0x74, 0x22, 0x24, 0x0a, 0x0e, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x45, 0x6e,
-	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x0b, 0x41, 0x63,
-	0x69, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67,
-	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f,
-	0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72,
-	0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75,
-	0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x73,
-	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49,
-	0x64, 0x22, 0x52, 0x0a, 0x0b, 0x45, 0x63, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
-	0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x72,
-	0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f,
-	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x27, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72,
-	0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14,
-	0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18,
-	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b,
+var File_cli_server_protos_contexts_v1_contexts_proto protoreflect.FileDescriptor
+
+var file_cli_server_protos_contexts_v1_contexts_proto_rawDesc = []byte{
+	0x0a, 0x2c, 0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f,
+	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20,
+	0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31,
+	0x22, 0x8c, 0x03, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04,
+	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+	0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x79,
+	0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b,
+	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b,
+	0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
+	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f,
+	0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
+	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x6b, 0x65,
+	0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x6f, 0x63,
+	0x6b, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x61,
+	0x63, 0x69, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61,
+	0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
+	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x69, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
+	0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x69, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12,
+	0x52, 0x0a, 0x0c, 0x65, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18,
+	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b,
 	0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f,
-	0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
-	0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x32, 0xea, 0x01, 0x0a, 0x08, 0x43,
-	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x43, 0x75,
-	0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b,
+	0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x63, 0x73, 0x45, 0x6e, 0x64, 0x70,
+	0x6f, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x63, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f,
+	0x69, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22,
+	0x24, 0x0a, 0x0e, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
+	0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x04, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x0b, 0x41, 0x63, 0x69, 0x45, 0x6e, 0x64, 0x70,
+	0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e,
+	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72,
+	0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75,
+	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x0b,
+	0x45, 0x63, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70,
+	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72,
+	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, 0x6e,
+	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
+	0x0f, 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
+	0x22, 0x27, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x65, 0x74,
+	0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x0d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55,
+	0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45,
+	0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
+	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
+	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e,
+	0x74, 0x65, 0x78, 0x74, 0x73, 0x32, 0xea, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
+	0x74, 0x73, 0x12, 0x77, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
+	0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
+	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
+	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b,
 	0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f,
 	0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72,
-	0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6d,
-	0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65,
-	0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x65, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64,
-	0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
-	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f,
-	0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
-	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d,
-	0x70, 0x6f, 0x73, 0x65, 0x2d, 0x63, 0x6c, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f,
-	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62, 0x06, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x04, 0x4c,
+	0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+	0x65, 0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+	0x78, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+	0x2f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2d,
+	0x63, 0x6c, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x31,
+	0x3b, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_protos_contexts_v1_contexts_proto_rawDescOnce sync.Once
-	file_protos_contexts_v1_contexts_proto_rawDescData = file_protos_contexts_v1_contexts_proto_rawDesc
+	file_cli_server_protos_contexts_v1_contexts_proto_rawDescOnce sync.Once
+	file_cli_server_protos_contexts_v1_contexts_proto_rawDescData = file_cli_server_protos_contexts_v1_contexts_proto_rawDesc
 )
 
-func file_protos_contexts_v1_contexts_proto_rawDescGZIP() []byte {
-	file_protos_contexts_v1_contexts_proto_rawDescOnce.Do(func() {
-		file_protos_contexts_v1_contexts_proto_rawDescData = protoimpl.X.CompressGZIP(file_protos_contexts_v1_contexts_proto_rawDescData)
+func file_cli_server_protos_contexts_v1_contexts_proto_rawDescGZIP() []byte {
+	file_cli_server_protos_contexts_v1_contexts_proto_rawDescOnce.Do(func() {
+		file_cli_server_protos_contexts_v1_contexts_proto_rawDescData = protoimpl.X.CompressGZIP(file_cli_server_protos_contexts_v1_contexts_proto_rawDescData)
 	})
-	return file_protos_contexts_v1_contexts_proto_rawDescData
+	return file_cli_server_protos_contexts_v1_contexts_proto_rawDescData
 }
 
-var file_protos_contexts_v1_contexts_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_protos_contexts_v1_contexts_proto_goTypes = []interface{}{
+var file_cli_server_protos_contexts_v1_contexts_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_cli_server_protos_contexts_v1_contexts_proto_goTypes = []interface{}{
 	(*Context)(nil),            // 0: com.docker.api.protos.context.v1.Context
 	(*DockerEndpoint)(nil),     // 1: com.docker.api.protos.context.v1.DockerEndpoint
 	(*AciEndpoint)(nil),        // 2: com.docker.api.protos.context.v1.AciEndpoint
@@ -608,7 +608,7 @@ var file_protos_contexts_v1_contexts_proto_goTypes = []interface{}{
 	(*ListRequest)(nil),        // 6: com.docker.api.protos.context.v1.ListRequest
 	(*ListResponse)(nil),       // 7: com.docker.api.protos.context.v1.ListResponse
 }
-var file_protos_contexts_v1_contexts_proto_depIdxs = []int32{
+var file_cli_server_protos_contexts_v1_contexts_proto_depIdxs = []int32{
 	1, // 0: com.docker.api.protos.context.v1.Context.docker_endpoint:type_name -> com.docker.api.protos.context.v1.DockerEndpoint
 	2, // 1: com.docker.api.protos.context.v1.Context.aci_endpoint:type_name -> com.docker.api.protos.context.v1.AciEndpoint
 	3, // 2: com.docker.api.protos.context.v1.Context.ecs_endpoint:type_name -> com.docker.api.protos.context.v1.EcsEndpoint
@@ -624,13 +624,13 @@ var file_protos_contexts_v1_contexts_proto_depIdxs = []int32{
 	0, // [0:4] is the sub-list for field type_name
 }
 
-func init() { file_protos_contexts_v1_contexts_proto_init() }
-func file_protos_contexts_v1_contexts_proto_init() {
-	if File_protos_contexts_v1_contexts_proto != nil {
+func init() { file_cli_server_protos_contexts_v1_contexts_proto_init() }
+func file_cli_server_protos_contexts_v1_contexts_proto_init() {
+	if File_cli_server_protos_contexts_v1_contexts_proto != nil {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_protos_contexts_v1_contexts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*Context); i {
 			case 0:
 				return &v.state
@@ -642,7 +642,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 				return nil
 			}
 		}
-		file_protos_contexts_v1_contexts_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*DockerEndpoint); i {
 			case 0:
 				return &v.state
@@ -654,7 +654,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 				return nil
 			}
 		}
-		file_protos_contexts_v1_contexts_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*AciEndpoint); i {
 			case 0:
 				return &v.state
@@ -666,7 +666,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 				return nil
 			}
 		}
-		file_protos_contexts_v1_contexts_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*EcsEndpoint); i {
 			case 0:
 				return &v.state
@@ -678,7 +678,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 				return nil
 			}
 		}
-		file_protos_contexts_v1_contexts_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*SetCurrentRequest); i {
 			case 0:
 				return &v.state
@@ -690,7 +690,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 				return nil
 			}
 		}
-		file_protos_contexts_v1_contexts_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*SetCurrentResponse); i {
 			case 0:
 				return &v.state
@@ -702,7 +702,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 				return nil
 			}
 		}
-		file_protos_contexts_v1_contexts_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ListRequest); i {
 			case 0:
 				return &v.state
@@ -714,7 +714,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 				return nil
 			}
 		}
-		file_protos_contexts_v1_contexts_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ListResponse); i {
 			case 0:
 				return &v.state
@@ -727,7 +727,7 @@ func file_protos_contexts_v1_contexts_proto_init() {
 			}
 		}
 	}
-	file_protos_contexts_v1_contexts_proto_msgTypes[0].OneofWrappers = []interface{}{
+	file_cli_server_protos_contexts_v1_contexts_proto_msgTypes[0].OneofWrappers = []interface{}{
 		(*Context_DockerEndpoint)(nil),
 		(*Context_AciEndpoint)(nil),
 		(*Context_EcsEndpoint)(nil),
@@ -736,20 +736,20 @@ func file_protos_contexts_v1_contexts_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_protos_contexts_v1_contexts_proto_rawDesc,
+			RawDescriptor: file_cli_server_protos_contexts_v1_contexts_proto_rawDesc,
 			NumEnums:      0,
 			NumMessages:   8,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_protos_contexts_v1_contexts_proto_goTypes,
-		DependencyIndexes: file_protos_contexts_v1_contexts_proto_depIdxs,
-		MessageInfos:      file_protos_contexts_v1_contexts_proto_msgTypes,
+		GoTypes:           file_cli_server_protos_contexts_v1_contexts_proto_goTypes,
+		DependencyIndexes: file_cli_server_protos_contexts_v1_contexts_proto_depIdxs,
+		MessageInfos:      file_cli_server_protos_contexts_v1_contexts_proto_msgTypes,
 	}.Build()
-	File_protos_contexts_v1_contexts_proto = out.File
-	file_protos_contexts_v1_contexts_proto_rawDesc = nil
-	file_protos_contexts_v1_contexts_proto_goTypes = nil
-	file_protos_contexts_v1_contexts_proto_depIdxs = nil
+	File_cli_server_protos_contexts_v1_contexts_proto = out.File
+	file_cli_server_protos_contexts_v1_contexts_proto_rawDesc = nil
+	file_cli_server_protos_contexts_v1_contexts_proto_goTypes = nil
+	file_cli_server_protos_contexts_v1_contexts_proto_depIdxs = nil
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -869,5 +869,5 @@ var _Contexts_serviceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "protos/contexts/v1/contexts.proto",
+	Metadata: "cli/server/protos/contexts/v1/contexts.proto",
 }

+ 76 - 76
cli/server/protos/streams/v1/streams.pb.go

@@ -17,15 +17,12 @@
 // versions:
 // 	protoc-gen-go v1.25.0
 // 	protoc        v3.12.2
-// source: protos/streams/v1/streams.proto
+// source: cli/server/protos/streams/v1/streams.proto
 
 package v1
 
 import (
 	context "context"
-	reflect "reflect"
-	sync "sync"
-
 	proto "github.com/golang/protobuf/proto"
 	any "github.com/golang/protobuf/ptypes/any"
 	grpc "google.golang.org/grpc"
@@ -33,6 +30,8 @@ import (
 	status "google.golang.org/grpc/status"
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
 )
 
 const (
@@ -79,11 +78,11 @@ func (x IOStream) String() string {
 }
 
 func (IOStream) Descriptor() protoreflect.EnumDescriptor {
-	return file_protos_streams_v1_streams_proto_enumTypes[0].Descriptor()
+	return file_cli_server_protos_streams_v1_streams_proto_enumTypes[0].Descriptor()
 }
 
 func (IOStream) Type() protoreflect.EnumType {
-	return &file_protos_streams_v1_streams_proto_enumTypes[0]
+	return &file_cli_server_protos_streams_v1_streams_proto_enumTypes[0]
 }
 
 func (x IOStream) Number() protoreflect.EnumNumber {
@@ -92,7 +91,7 @@ func (x IOStream) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use IOStream.Descriptor instead.
 func (IOStream) EnumDescriptor() ([]byte, []int) {
-	return file_protos_streams_v1_streams_proto_rawDescGZIP(), []int{0}
+	return file_cli_server_protos_streams_v1_streams_proto_rawDescGZIP(), []int{0}
 }
 
 type BytesMessage struct {
@@ -107,7 +106,7 @@ type BytesMessage struct {
 func (x *BytesMessage) Reset() {
 	*x = BytesMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_streams_v1_streams_proto_msgTypes[0]
+		mi := &file_cli_server_protos_streams_v1_streams_proto_msgTypes[0]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -120,7 +119,7 @@ func (x *BytesMessage) String() string {
 func (*BytesMessage) ProtoMessage() {}
 
 func (x *BytesMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_streams_v1_streams_proto_msgTypes[0]
+	mi := &file_cli_server_protos_streams_v1_streams_proto_msgTypes[0]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -133,7 +132,7 @@ func (x *BytesMessage) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use BytesMessage.ProtoReflect.Descriptor instead.
 func (*BytesMessage) Descriptor() ([]byte, []int) {
-	return file_protos_streams_v1_streams_proto_rawDescGZIP(), []int{0}
+	return file_cli_server_protos_streams_v1_streams_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *BytesMessage) GetType() IOStream {
@@ -162,7 +161,7 @@ type ResizeMessage struct {
 func (x *ResizeMessage) Reset() {
 	*x = ResizeMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_streams_v1_streams_proto_msgTypes[1]
+		mi := &file_cli_server_protos_streams_v1_streams_proto_msgTypes[1]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -175,7 +174,7 @@ func (x *ResizeMessage) String() string {
 func (*ResizeMessage) ProtoMessage() {}
 
 func (x *ResizeMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_streams_v1_streams_proto_msgTypes[1]
+	mi := &file_cli_server_protos_streams_v1_streams_proto_msgTypes[1]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -188,7 +187,7 @@ func (x *ResizeMessage) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ResizeMessage.ProtoReflect.Descriptor instead.
 func (*ResizeMessage) Descriptor() ([]byte, []int) {
-	return file_protos_streams_v1_streams_proto_rawDescGZIP(), []int{1}
+	return file_cli_server_protos_streams_v1_streams_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *ResizeMessage) GetWidth() uint32 {
@@ -216,7 +215,7 @@ type ExitMessage struct {
 func (x *ExitMessage) Reset() {
 	*x = ExitMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_streams_v1_streams_proto_msgTypes[2]
+		mi := &file_cli_server_protos_streams_v1_streams_proto_msgTypes[2]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -229,7 +228,7 @@ func (x *ExitMessage) String() string {
 func (*ExitMessage) ProtoMessage() {}
 
 func (x *ExitMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_streams_v1_streams_proto_msgTypes[2]
+	mi := &file_cli_server_protos_streams_v1_streams_proto_msgTypes[2]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -242,7 +241,7 @@ func (x *ExitMessage) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ExitMessage.ProtoReflect.Descriptor instead.
 func (*ExitMessage) Descriptor() ([]byte, []int) {
-	return file_protos_streams_v1_streams_proto_rawDescGZIP(), []int{2}
+	return file_cli_server_protos_streams_v1_streams_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *ExitMessage) GetStatus() uint32 {
@@ -252,64 +251,65 @@ func (x *ExitMessage) GetStatus() uint32 {
 	return 0
 }
 
-var File_protos_streams_v1_streams_proto protoreflect.FileDescriptor
-
-var file_protos_streams_v1_streams_proto_rawDesc = []byte{
-	0x0a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
-	0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
-	0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64,
-	0x0a, 0x0c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3e,
-	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e,
-	0x49, 0x4f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14,
-	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x22, 0x3d, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x4d, 0x65,
-	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68,
-	0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69,
-	0x67, 0x68, 0x74, 0x22, 0x25, 0x0a, 0x0b, 0x45, 0x78, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
-	0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x2d, 0x0a, 0x08, 0x49, 0x4f,
-	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x44, 0x49, 0x4e, 0x10,
-	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a,
-	0x06, 0x53, 0x54, 0x44, 0x45, 0x52, 0x52, 0x10, 0x02, 0x32, 0x48, 0x0a, 0x09, 0x53, 0x74, 0x72,
-	0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x09, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x72,
-	0x65, 0x61, 0x6d, 0x12, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x28,
-	0x01, 0x30, 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x2f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
-	0x2d, 0x63, 0x6c, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x72, 0x65,
-	0x61, 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x33,
+var File_cli_server_protos_streams_v1_streams_proto protoreflect.FileDescriptor
+
+var file_cli_server_protos_streams_v1_streams_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x73,
+	0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x63, 0x6f,
+	0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x19,
+	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
+	0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a, 0x0c, 0x42, 0x79, 0x74,
+	0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70,
+	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f,
+	0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
+	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x4f, 0x53, 0x74, 0x72,
+	0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
+	0x3d, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+	0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+	0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x25,
+	0x0a, 0x0b, 0x45, 0x78, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a,
+	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x2d, 0x0a, 0x08, 0x49, 0x4f, 0x53, 0x74, 0x72, 0x65, 0x61,
+	0x6d, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x44, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
+	0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x44, 0x45,
+	0x52, 0x52, 0x10, 0x02, 0x32, 0x48, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e,
+	0x67, 0x12, 0x3b, 0x0a, 0x09, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x14,
+	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+	0x2e, 0x41, 0x6e, 0x79, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x28, 0x01, 0x30, 0x01, 0x42, 0x3f,
+	0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x63,
+	0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2d, 0x63, 0x6c, 0x69, 0x2f,
+	0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x73, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62,
+	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_protos_streams_v1_streams_proto_rawDescOnce sync.Once
-	file_protos_streams_v1_streams_proto_rawDescData = file_protos_streams_v1_streams_proto_rawDesc
+	file_cli_server_protos_streams_v1_streams_proto_rawDescOnce sync.Once
+	file_cli_server_protos_streams_v1_streams_proto_rawDescData = file_cli_server_protos_streams_v1_streams_proto_rawDesc
 )
 
-func file_protos_streams_v1_streams_proto_rawDescGZIP() []byte {
-	file_protos_streams_v1_streams_proto_rawDescOnce.Do(func() {
-		file_protos_streams_v1_streams_proto_rawDescData = protoimpl.X.CompressGZIP(file_protos_streams_v1_streams_proto_rawDescData)
+func file_cli_server_protos_streams_v1_streams_proto_rawDescGZIP() []byte {
+	file_cli_server_protos_streams_v1_streams_proto_rawDescOnce.Do(func() {
+		file_cli_server_protos_streams_v1_streams_proto_rawDescData = protoimpl.X.CompressGZIP(file_cli_server_protos_streams_v1_streams_proto_rawDescData)
 	})
-	return file_protos_streams_v1_streams_proto_rawDescData
+	return file_cli_server_protos_streams_v1_streams_proto_rawDescData
 }
 
-var file_protos_streams_v1_streams_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_protos_streams_v1_streams_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
-var file_protos_streams_v1_streams_proto_goTypes = []interface{}{
+var file_cli_server_protos_streams_v1_streams_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_cli_server_protos_streams_v1_streams_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_cli_server_protos_streams_v1_streams_proto_goTypes = []interface{}{
 	(IOStream)(0),         // 0: com.docker.api.protos.streams.v1.IOStream
 	(*BytesMessage)(nil),  // 1: com.docker.api.protos.streams.v1.BytesMessage
 	(*ResizeMessage)(nil), // 2: com.docker.api.protos.streams.v1.ResizeMessage
 	(*ExitMessage)(nil),   // 3: com.docker.api.protos.streams.v1.ExitMessage
 	(*any.Any)(nil),       // 4: google.protobuf.Any
 }
-var file_protos_streams_v1_streams_proto_depIdxs = []int32{
+var file_cli_server_protos_streams_v1_streams_proto_depIdxs = []int32{
 	0, // 0: com.docker.api.protos.streams.v1.BytesMessage.type:type_name -> com.docker.api.protos.streams.v1.IOStream
 	4, // 1: com.docker.api.protos.streams.v1.Streaming.NewStream:input_type -> google.protobuf.Any
 	4, // 2: com.docker.api.protos.streams.v1.Streaming.NewStream:output_type -> google.protobuf.Any
@@ -320,13 +320,13 @@ var file_protos_streams_v1_streams_proto_depIdxs = []int32{
 	0, // [0:1] is the sub-list for field type_name
 }
 
-func init() { file_protos_streams_v1_streams_proto_init() }
-func file_protos_streams_v1_streams_proto_init() {
-	if File_protos_streams_v1_streams_proto != nil {
+func init() { file_cli_server_protos_streams_v1_streams_proto_init() }
+func file_cli_server_protos_streams_v1_streams_proto_init() {
+	if File_cli_server_protos_streams_v1_streams_proto != nil {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_protos_streams_v1_streams_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_streams_v1_streams_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*BytesMessage); i {
 			case 0:
 				return &v.state
@@ -338,7 +338,7 @@ func file_protos_streams_v1_streams_proto_init() {
 				return nil
 			}
 		}
-		file_protos_streams_v1_streams_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_streams_v1_streams_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ResizeMessage); i {
 			case 0:
 				return &v.state
@@ -350,7 +350,7 @@ func file_protos_streams_v1_streams_proto_init() {
 				return nil
 			}
 		}
-		file_protos_streams_v1_streams_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_streams_v1_streams_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ExitMessage); i {
 			case 0:
 				return &v.state
@@ -367,21 +367,21 @@ func file_protos_streams_v1_streams_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_protos_streams_v1_streams_proto_rawDesc,
+			RawDescriptor: file_cli_server_protos_streams_v1_streams_proto_rawDesc,
 			NumEnums:      1,
 			NumMessages:   3,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_protos_streams_v1_streams_proto_goTypes,
-		DependencyIndexes: file_protos_streams_v1_streams_proto_depIdxs,
-		EnumInfos:         file_protos_streams_v1_streams_proto_enumTypes,
-		MessageInfos:      file_protos_streams_v1_streams_proto_msgTypes,
+		GoTypes:           file_cli_server_protos_streams_v1_streams_proto_goTypes,
+		DependencyIndexes: file_cli_server_protos_streams_v1_streams_proto_depIdxs,
+		EnumInfos:         file_cli_server_protos_streams_v1_streams_proto_enumTypes,
+		MessageInfos:      file_cli_server_protos_streams_v1_streams_proto_msgTypes,
 	}.Build()
-	File_protos_streams_v1_streams_proto = out.File
-	file_protos_streams_v1_streams_proto_rawDesc = nil
-	file_protos_streams_v1_streams_proto_goTypes = nil
-	file_protos_streams_v1_streams_proto_depIdxs = nil
+	File_cli_server_protos_streams_v1_streams_proto = out.File
+	file_cli_server_protos_streams_v1_streams_proto_rawDesc = nil
+	file_cli_server_protos_streams_v1_streams_proto_goTypes = nil
+	file_cli_server_protos_streams_v1_streams_proto_depIdxs = nil
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -493,5 +493,5 @@ var _Streaming_serviceDesc = grpc.ServiceDesc{
 			ClientStreams: true,
 		},
 	},
-	Metadata: "protos/streams/v1/streams.proto",
+	Metadata: "cli/server/protos/streams/v1/streams.proto",
 }

+ 151 - 151
cli/server/protos/volumes/v1/volumes.pb.go

@@ -17,15 +17,12 @@
 // versions:
 // 	protoc-gen-go v1.25.0
 // 	protoc        v3.12.2
-// source: protos/volumes/v1/volumes.proto
+// source: cli/server/protos/volumes/v1/volumes.proto
 
 package v1
 
 import (
 	context "context"
-	reflect "reflect"
-	sync "sync"
-
 	proto "github.com/golang/protobuf/proto"
 	_ "github.com/golang/protobuf/ptypes/any"
 	grpc "google.golang.org/grpc"
@@ -33,6 +30,8 @@ import (
 	status "google.golang.org/grpc/status"
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
 )
 
 const (
@@ -58,7 +57,7 @@ type Volume struct {
 func (x *Volume) Reset() {
 	*x = Volume{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[0]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[0]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -71,7 +70,7 @@ func (x *Volume) String() string {
 func (*Volume) ProtoMessage() {}
 
 func (x *Volume) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[0]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[0]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -84,7 +83,7 @@ func (x *Volume) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Volume.ProtoReflect.Descriptor instead.
 func (*Volume) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{0}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *Volume) GetId() string {
@@ -112,7 +111,7 @@ type AciVolumeCreateOptions struct {
 func (x *AciVolumeCreateOptions) Reset() {
 	*x = AciVolumeCreateOptions{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[1]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[1]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -125,7 +124,7 @@ func (x *AciVolumeCreateOptions) String() string {
 func (*AciVolumeCreateOptions) ProtoMessage() {}
 
 func (x *AciVolumeCreateOptions) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[1]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[1]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -138,7 +137,7 @@ func (x *AciVolumeCreateOptions) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AciVolumeCreateOptions.ProtoReflect.Descriptor instead.
 func (*AciVolumeCreateOptions) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{1}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *AciVolumeCreateOptions) GetStorageAccount() string {
@@ -162,7 +161,7 @@ type VolumesCreateRequest struct {
 func (x *VolumesCreateRequest) Reset() {
 	*x = VolumesCreateRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[2]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[2]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -175,7 +174,7 @@ func (x *VolumesCreateRequest) String() string {
 func (*VolumesCreateRequest) ProtoMessage() {}
 
 func (x *VolumesCreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[2]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[2]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -188,7 +187,7 @@ func (x *VolumesCreateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesCreateRequest.ProtoReflect.Descriptor instead.
 func (*VolumesCreateRequest) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{2}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *VolumesCreateRequest) GetName() string {
@@ -233,7 +232,7 @@ type VolumesCreateResponse struct {
 func (x *VolumesCreateResponse) Reset() {
 	*x = VolumesCreateResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[3]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[3]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -246,7 +245,7 @@ func (x *VolumesCreateResponse) String() string {
 func (*VolumesCreateResponse) ProtoMessage() {}
 
 func (x *VolumesCreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[3]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[3]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -259,7 +258,7 @@ func (x *VolumesCreateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesCreateResponse.ProtoReflect.Descriptor instead.
 func (*VolumesCreateResponse) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{3}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *VolumesCreateResponse) GetVolume() *Volume {
@@ -278,7 +277,7 @@ type VolumesListRequest struct {
 func (x *VolumesListRequest) Reset() {
 	*x = VolumesListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[4]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[4]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -291,7 +290,7 @@ func (x *VolumesListRequest) String() string {
 func (*VolumesListRequest) ProtoMessage() {}
 
 func (x *VolumesListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[4]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[4]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -304,7 +303,7 @@ func (x *VolumesListRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesListRequest.ProtoReflect.Descriptor instead.
 func (*VolumesListRequest) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{4}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{4}
 }
 
 type VolumesListResponse struct {
@@ -318,7 +317,7 @@ type VolumesListResponse struct {
 func (x *VolumesListResponse) Reset() {
 	*x = VolumesListResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[5]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[5]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -331,7 +330,7 @@ func (x *VolumesListResponse) String() string {
 func (*VolumesListResponse) ProtoMessage() {}
 
 func (x *VolumesListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[5]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[5]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -344,7 +343,7 @@ func (x *VolumesListResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesListResponse.ProtoReflect.Descriptor instead.
 func (*VolumesListResponse) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{5}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *VolumesListResponse) GetVolumes() []*Volume {
@@ -365,7 +364,7 @@ type VolumesDeleteRequest struct {
 func (x *VolumesDeleteRequest) Reset() {
 	*x = VolumesDeleteRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[6]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[6]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -378,7 +377,7 @@ func (x *VolumesDeleteRequest) String() string {
 func (*VolumesDeleteRequest) ProtoMessage() {}
 
 func (x *VolumesDeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[6]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[6]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -391,7 +390,7 @@ func (x *VolumesDeleteRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesDeleteRequest.ProtoReflect.Descriptor instead.
 func (*VolumesDeleteRequest) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{6}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *VolumesDeleteRequest) GetId() string {
@@ -410,7 +409,7 @@ type VolumesDeleteResponse struct {
 func (x *VolumesDeleteResponse) Reset() {
 	*x = VolumesDeleteResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[7]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[7]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -423,7 +422,7 @@ func (x *VolumesDeleteResponse) String() string {
 func (*VolumesDeleteResponse) ProtoMessage() {}
 
 func (x *VolumesDeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[7]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[7]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -436,7 +435,7 @@ func (x *VolumesDeleteResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesDeleteResponse.ProtoReflect.Descriptor instead.
 func (*VolumesDeleteResponse) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{7}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{7}
 }
 
 type VolumesInspectRequest struct {
@@ -450,7 +449,7 @@ type VolumesInspectRequest struct {
 func (x *VolumesInspectRequest) Reset() {
 	*x = VolumesInspectRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[8]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -463,7 +462,7 @@ func (x *VolumesInspectRequest) String() string {
 func (*VolumesInspectRequest) ProtoMessage() {}
 
 func (x *VolumesInspectRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[8]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -476,7 +475,7 @@ func (x *VolumesInspectRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesInspectRequest.ProtoReflect.Descriptor instead.
 func (*VolumesInspectRequest) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{8}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *VolumesInspectRequest) GetId() string {
@@ -497,7 +496,7 @@ type VolumesInspectResponse struct {
 func (x *VolumesInspectResponse) Reset() {
 	*x = VolumesInspectResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_protos_volumes_v1_volumes_proto_msgTypes[9]
+		mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -510,7 +509,7 @@ func (x *VolumesInspectResponse) String() string {
 func (*VolumesInspectResponse) ProtoMessage() {}
 
 func (x *VolumesInspectResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_protos_volumes_v1_volumes_proto_msgTypes[9]
+	mi := &file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -523,7 +522,7 @@ func (x *VolumesInspectResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VolumesInspectResponse.ProtoReflect.Descriptor instead.
 func (*VolumesInspectResponse) Descriptor() ([]byte, []int) {
-	return file_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{9}
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *VolumesInspectResponse) GetVolume() *Volume {
@@ -533,111 +532,112 @@ func (x *VolumesInspectResponse) GetVolume() *Volume {
 	return nil
 }
 
-var File_protos_volumes_v1_volumes_proto protoreflect.FileDescriptor
-
-var file_protos_volumes_v1_volumes_proto_rawDesc = []byte{
-	0x0a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
-	0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
-	0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3a,
-	0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
-	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
-	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x16, 0x41, 0x63,
-	0x69, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f,
-	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73,
-	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01,
-	0x0a, 0x14, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x61, 0x63,
-	0x69, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38,
-	0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76,
-	0x31, 0x2e, 0x41, 0x63, 0x69, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74,
-	0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x63, 0x69, 0x4f,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-	0x22, 0x59, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74,
-	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x76, 0x6f, 0x6c,
-	0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
+var File_cli_server_protos_volumes_v1_volumes_proto protoreflect.FileDescriptor
+
+var file_cli_server_protos_volumes_v1_volumes_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x76,
+	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x63, 0x6f,
+	0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x19,
+	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
+	0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x06, 0x56, 0x6f, 0x6c,
+	0x75, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x16, 0x41, 0x63, 0x69, 0x56, 0x6f, 0x6c, 0x75,
+	0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+	0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75,
+	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
+	0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x14, 0x56, 0x6f, 0x6c,
+	0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x61, 0x63, 0x69, 0x5f, 0x6f, 0x70, 0x74,
+	0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
 	0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c,
-	0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x56,
+	0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x69,
+	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x63, 0x69, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x59, 0x0a, 0x15, 0x56,
+	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65,
+	0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c,
+	0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06,
+	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+	0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x59, 0x0a, 0x13,
+	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01,
+	0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65,
+	0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c,
+	0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x07,
+	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x22, 0x26, 0x0a, 0x14, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+	0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22,
+	0x17, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75,
+	0x6d, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
+	0x64, 0x22, 0x5a, 0x0a, 0x16, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x70,
+	0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x76,
+	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f,
+	0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56,
+	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x32, 0x91, 0x04,
+	0x0a, 0x07, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x56, 0x6f,
+	0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x63, 0x6f,
+	0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56,
+	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75,
+	0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72,
+	0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0b,
+	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x63, 0x6f,
+	0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56,
 	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x22, 0x59, 0x0a, 0x13, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75,
-	0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
-	0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c,
-	0x75, 0x6d, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x22, 0x26, 0x0a, 0x14,
-	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x02, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44,
-	0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x0a,
-	0x15, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x16, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
-	0x73, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x40, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
-	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75,
-	0x6d, 0x65, 0x32, 0x91, 0x04, 0x0a, 0x07, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x80,
-	0x01, 0x0a, 0x0d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
-	0x12, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
-	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64,
-	0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
-	0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75,
-	0x6d, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x7a, 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74,
-	0x12, 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
-	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63,
-	0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76,
-	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
-	0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01,
-	0x0a, 0x0d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
-	0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e,
-	0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f,
+	0x74, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61,
+	0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+	0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x56, 0x6f, 0x6c,
+	0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x63, 0x6f, 0x6d,
+	0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f,
+	0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
+	0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x6c,
+	0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e,
+	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x37,
+	0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76,
+	0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f,
 	0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
 	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
-	0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x83, 0x01, 0x0a, 0x0e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x70,
-	0x65, 0x63, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72,
-	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75,
-	0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x49, 0x6e,
-	0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e,
-	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d, 0x70,
-	0x6f, 0x73, 0x65, 0x2d, 0x63, 0x6c, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76,
-	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x73, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+	0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x2d, 0x63,
+	0x6c, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b,
+	0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_protos_volumes_v1_volumes_proto_rawDescOnce sync.Once
-	file_protos_volumes_v1_volumes_proto_rawDescData = file_protos_volumes_v1_volumes_proto_rawDesc
+	file_cli_server_protos_volumes_v1_volumes_proto_rawDescOnce sync.Once
+	file_cli_server_protos_volumes_v1_volumes_proto_rawDescData = file_cli_server_protos_volumes_v1_volumes_proto_rawDesc
 )
 
-func file_protos_volumes_v1_volumes_proto_rawDescGZIP() []byte {
-	file_protos_volumes_v1_volumes_proto_rawDescOnce.Do(func() {
-		file_protos_volumes_v1_volumes_proto_rawDescData = protoimpl.X.CompressGZIP(file_protos_volumes_v1_volumes_proto_rawDescData)
+func file_cli_server_protos_volumes_v1_volumes_proto_rawDescGZIP() []byte {
+	file_cli_server_protos_volumes_v1_volumes_proto_rawDescOnce.Do(func() {
+		file_cli_server_protos_volumes_v1_volumes_proto_rawDescData = protoimpl.X.CompressGZIP(file_cli_server_protos_volumes_v1_volumes_proto_rawDescData)
 	})
-	return file_protos_volumes_v1_volumes_proto_rawDescData
+	return file_cli_server_protos_volumes_v1_volumes_proto_rawDescData
 }
 
-var file_protos_volumes_v1_volumes_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_protos_volumes_v1_volumes_proto_goTypes = []interface{}{
+var file_cli_server_protos_volumes_v1_volumes_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_cli_server_protos_volumes_v1_volumes_proto_goTypes = []interface{}{
 	(*Volume)(nil),                 // 0: com.docker.api.protos.volumes.v1.Volume
 	(*AciVolumeCreateOptions)(nil), // 1: com.docker.api.protos.volumes.v1.AciVolumeCreateOptions
 	(*VolumesCreateRequest)(nil),   // 2: com.docker.api.protos.volumes.v1.VolumesCreateRequest
@@ -649,7 +649,7 @@ var file_protos_volumes_v1_volumes_proto_goTypes = []interface{}{
 	(*VolumesInspectRequest)(nil),  // 8: com.docker.api.protos.volumes.v1.VolumesInspectRequest
 	(*VolumesInspectResponse)(nil), // 9: com.docker.api.protos.volumes.v1.VolumesInspectResponse
 }
-var file_protos_volumes_v1_volumes_proto_depIdxs = []int32{
+var file_cli_server_protos_volumes_v1_volumes_proto_depIdxs = []int32{
 	1, // 0: com.docker.api.protos.volumes.v1.VolumesCreateRequest.aci_option:type_name -> com.docker.api.protos.volumes.v1.AciVolumeCreateOptions
 	0, // 1: com.docker.api.protos.volumes.v1.VolumesCreateResponse.volume:type_name -> com.docker.api.protos.volumes.v1.Volume
 	0, // 2: com.docker.api.protos.volumes.v1.VolumesListResponse.volumes:type_name -> com.docker.api.protos.volumes.v1.Volume
@@ -669,13 +669,13 @@ var file_protos_volumes_v1_volumes_proto_depIdxs = []int32{
 	0, // [0:4] is the sub-list for field type_name
 }
 
-func init() { file_protos_volumes_v1_volumes_proto_init() }
-func file_protos_volumes_v1_volumes_proto_init() {
-	if File_protos_volumes_v1_volumes_proto != nil {
+func init() { file_cli_server_protos_volumes_v1_volumes_proto_init() }
+func file_cli_server_protos_volumes_v1_volumes_proto_init() {
+	if File_cli_server_protos_volumes_v1_volumes_proto != nil {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_protos_volumes_v1_volumes_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*Volume); i {
 			case 0:
 				return &v.state
@@ -687,7 +687,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*AciVolumeCreateOptions); i {
 			case 0:
 				return &v.state
@@ -699,7 +699,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesCreateRequest); i {
 			case 0:
 				return &v.state
@@ -711,7 +711,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesCreateResponse); i {
 			case 0:
 				return &v.state
@@ -723,7 +723,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesListRequest); i {
 			case 0:
 				return &v.state
@@ -735,7 +735,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesListResponse); i {
 			case 0:
 				return &v.state
@@ -747,7 +747,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesDeleteRequest); i {
 			case 0:
 				return &v.state
@@ -759,7 +759,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesDeleteResponse); i {
 			case 0:
 				return &v.state
@@ -771,7 +771,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesInspectRequest); i {
 			case 0:
 				return &v.state
@@ -783,7 +783,7 @@ func file_protos_volumes_v1_volumes_proto_init() {
 				return nil
 			}
 		}
-		file_protos_volumes_v1_volumes_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*VolumesInspectResponse); i {
 			case 0:
 				return &v.state
@@ -796,27 +796,27 @@ func file_protos_volumes_v1_volumes_proto_init() {
 			}
 		}
 	}
-	file_protos_volumes_v1_volumes_proto_msgTypes[2].OneofWrappers = []interface{}{
+	file_cli_server_protos_volumes_v1_volumes_proto_msgTypes[2].OneofWrappers = []interface{}{
 		(*VolumesCreateRequest_AciOption)(nil),
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_protos_volumes_v1_volumes_proto_rawDesc,
+			RawDescriptor: file_cli_server_protos_volumes_v1_volumes_proto_rawDesc,
 			NumEnums:      0,
 			NumMessages:   10,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_protos_volumes_v1_volumes_proto_goTypes,
-		DependencyIndexes: file_protos_volumes_v1_volumes_proto_depIdxs,
-		MessageInfos:      file_protos_volumes_v1_volumes_proto_msgTypes,
+		GoTypes:           file_cli_server_protos_volumes_v1_volumes_proto_goTypes,
+		DependencyIndexes: file_cli_server_protos_volumes_v1_volumes_proto_depIdxs,
+		MessageInfos:      file_cli_server_protos_volumes_v1_volumes_proto_msgTypes,
 	}.Build()
-	File_protos_volumes_v1_volumes_proto = out.File
-	file_protos_volumes_v1_volumes_proto_rawDesc = nil
-	file_protos_volumes_v1_volumes_proto_goTypes = nil
-	file_protos_volumes_v1_volumes_proto_depIdxs = nil
+	File_cli_server_protos_volumes_v1_volumes_proto = out.File
+	file_cli_server_protos_volumes_v1_volumes_proto_rawDesc = nil
+	file_cli_server_protos_volumes_v1_volumes_proto_goTypes = nil
+	file_cli_server_protos_volumes_v1_volumes_proto_depIdxs = nil
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1004,5 +1004,5 @@ var _Volumes_serviceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "protos/volumes/v1/volumes.proto",
+	Metadata: "cli/server/protos/volumes/v1/volumes.proto",
 }

+ 1 - 1
tests/ecs-local-e2e/context_test.go → ecs/e2e/ecs-local/context_test.go

@@ -23,7 +23,7 @@ import (
 
 	"gotest.tools/v3/icmd"
 
-	. "github.com/docker/compose-cli/tests/framework"
+	. "github.com/docker/compose-cli/utils/e2e"
 )
 
 const (

+ 3 - 3
tests/ecs-e2e/e2e-ecs_test.go → ecs/e2e/ecs/e2e-ecs_test.go

@@ -31,7 +31,7 @@ import (
 	"gotest.tools/v3/icmd"
 	"gotest.tools/v3/poll"
 
-	. "github.com/docker/compose-cli/tests/framework"
+	. "github.com/docker/compose-cli/utils/e2e"
 )
 
 var binDir string
@@ -81,7 +81,7 @@ func TestCompose(t *testing.T) {
 	c, stack := setupTest(t)
 
 	t.Run("compose up", func(t *testing.T) {
-		c.RunDockerCmd("compose", "up", "--project-name", stack, "-f", "../composefiles/ecs_e2e/multi_port_secrets.yaml")
+		c.RunDockerCmd("compose", "up", "--project-name", stack, "-f", "./multi_port_secrets.yaml")
 	})
 
 	var webURL, wordsURL, secretsURL string
@@ -133,7 +133,7 @@ func TestCompose(t *testing.T) {
 	})
 
 	t.Run("Words GET validating cross service connection", func(t *testing.T) {
-		out := HTTPGetWithRetry(t, wordsURL, http.StatusOK, 5*time.Second, 240*time.Second)
+		out := HTTPGetWithRetry(t, wordsURL, http.StatusOK, 5*time.Second, 300*time.Second)
 		assert.Assert(t, strings.Contains(out, `"word":`))
 	})
 

+ 0 - 0
tests/composefiles/ecs_e2e/multi_port_secrets.yaml → ecs/e2e/ecs/multi_port_secrets.yaml


+ 0 - 0
tests/composefiles/ecs_e2e/my_secret1.txt → ecs/e2e/ecs/my_secret1.txt


+ 1 - 1
tests/e2e/e2e_test.go → local/e2e/cli-only/e2e_test.go

@@ -30,7 +30,7 @@ import (
 	"gotest.tools/v3/golden"
 	"gotest.tools/v3/icmd"
 
-	. "github.com/docker/compose-cli/tests/framework"
+	. "github.com/docker/compose-cli/utils/e2e"
 )
 
 var binDir string

+ 1 - 1
tests/framework/mockmetrics.go → local/e2e/cli-only/mockmetrics.go

@@ -14,7 +14,7 @@
    limitations under the License.
 */
 
-package framework
+package main
 
 import (
 	"io/ioutil"

+ 0 - 0
tests/e2e/testdata/ls-out-default-windows.golden → local/e2e/cli-only/testdata/ls-out-default-windows.golden


+ 0 - 0
tests/e2e/testdata/ls-out-default.golden → local/e2e/cli-only/testdata/ls-out-default.golden


+ 0 - 0
tests/e2e/testdata/ls-out-json-windows.golden → local/e2e/cli-only/testdata/ls-out-json-windows.golden


+ 0 - 0
tests/e2e/testdata/ls-out-json.golden → local/e2e/cli-only/testdata/ls-out-json.golden


+ 0 - 0
tests/e2e/testdata/ls-out-legacy-json-windows.golden → local/e2e/cli-only/testdata/ls-out-legacy-json-windows.golden


+ 0 - 0
tests/e2e/testdata/ls-out-legacy-json.golden → local/e2e/cli-only/testdata/ls-out-legacy-json.golden


+ 0 - 0
tests/e2e/testdata/ls-out-test-docker-quiet.golden → local/e2e/cli-only/testdata/ls-out-test-docker-quiet.golden


+ 0 - 0
tests/e2e/testdata/ls-out-test-docker-windows.golden → local/e2e/cli-only/testdata/ls-out-test-docker-windows.golden


+ 0 - 0
tests/e2e/testdata/ls-out-test-docker.golden → local/e2e/cli-only/testdata/ls-out-test-docker.golden


+ 2 - 2
tests/compose-e2e/compose_test.go → local/e2e/compose/compose_test.go

@@ -27,7 +27,7 @@ import (
 	"gotest.tools/v3/assert"
 	"gotest.tools/v3/icmd"
 
-	. "github.com/docker/compose-cli/tests/framework"
+	. "github.com/docker/compose-cli/utils/e2e"
 )
 
 var binDir string
@@ -264,7 +264,7 @@ func TestLocalComposeVolume(t *testing.T) {
 		res := c.RunDockerCmd("inspect", "compose-e2e-volume_nginx2_1", "--format", "{{ json .Mounts }}")
 		output := res.Stdout()
 		//nolint
-		assert.Assert(t, strings.Contains(output, `"Destination":"/usr/src/app/node_modules","Driver":"local","Mode":"","RW":true,"Propagation":""`))
+		assert.Assert(t, strings.Contains(output, `"Destination":"/usr/src/app/node_modules","Driver":"local","Mode":"","RW":true,"Propagation":""`), output)
 	})
 
 	t.Run("check container bind-mounts specs", func(t *testing.T) {

+ 0 - 0
tests/compose-e2e/fixtures/build-test/docker-compose.yml → local/e2e/compose/fixtures/build-test/docker-compose.yml


+ 0 - 0
tests/compose-e2e/fixtures/build-test/nginx-build/Dockerfile → local/e2e/compose/fixtures/build-test/nginx-build/Dockerfile


+ 0 - 0
tests/compose-e2e/fixtures/build-test/nginx-build/static/index.html → local/e2e/compose/fixtures/build-test/nginx-build/static/index.html


+ 0 - 0
tests/compose-e2e/fixtures/logs-test/compose.yaml → local/e2e/compose/fixtures/logs-test/compose.yaml


+ 0 - 0
tests/compose-e2e/fixtures/network-test/docker-compose.yaml → local/e2e/compose/fixtures/network-test/docker-compose.yaml


+ 0 - 0
tests/compose-e2e/fixtures/run-test/docker-compose.yml → local/e2e/compose/fixtures/run-test/docker-compose.yml


+ 0 - 0
tests/compose-e2e/fixtures/sentences/docker-compose.yaml → local/e2e/compose/fixtures/sentences/docker-compose.yaml


+ 0 - 0
tests/compose-e2e/fixtures/simple-composefile/docker-compose.yml → local/e2e/compose/fixtures/simple-composefile/docker-compose.yml


+ 0 - 0
tests/compose-e2e/fixtures/volume-test/docker-compose.yml → local/e2e/compose/fixtures/volume-test/docker-compose.yml


+ 0 - 0
tests/compose-e2e/fixtures/volume-test/nginx-build/Dockerfile → local/e2e/compose/fixtures/volume-test/nginx-build/Dockerfile


+ 0 - 0
tests/compose-e2e/fixtures/volume-test/static/index.html → local/e2e/compose/fixtures/volume-test/static/index.html


+ 1 - 1
tests/compose-e2e/logs_test.go → local/e2e/compose/logs_test.go

@@ -24,7 +24,7 @@ import (
 
 	"gotest.tools/v3/icmd"
 
-	. "github.com/docker/compose-cli/tests/framework"
+	. "github.com/docker/compose-cli/utils/e2e"
 )
 
 func TestLocalComposeLogs(t *testing.T) {

+ 29 - 5
local/e2e/backend_test.go → local/e2e/container/container_test.go

@@ -17,6 +17,7 @@
 package e2e
 
 import (
+	"encoding/json"
 	"fmt"
 	"os"
 	"strings"
@@ -24,11 +25,11 @@ import (
 	"time"
 
 	"gotest.tools/v3/assert"
-	"gotest.tools/v3/assert/cmp"
 	"gotest.tools/v3/icmd"
 	"gotest.tools/v3/poll"
 
-	. "github.com/docker/compose-cli/tests/framework"
+	"github.com/docker/compose-cli/cli/cmd"
+	. "github.com/docker/compose-cli/utils/e2e"
 )
 
 var binDir string
@@ -80,15 +81,38 @@ func TestLocalBackendRun(t *testing.T) {
 	})
 
 	t.Run("run with ports", func(t *testing.T) {
-		res := c.RunDockerCmd("run", "-d", "-p", "80", "nginx")
+		res := c.RunDockerCmd("run", "-d", "-p", "85:80", "nginx")
 		containerName := strings.TrimSpace(res.Combined())
 		t.Cleanup(func() {
 			_ = c.RunDockerOrExitError("rm", "-f", containerName)
 		})
 		res = c.RunDockerCmd("inspect", containerName)
-		res.Assert(t, icmd.Expected{Out: `"Status": "running"`})
+
+		inspect := &cmd.ContainerInspectView{}
+		err := json.Unmarshal([]byte(res.Stdout()), inspect)
+		assert.NilError(t, err)
+		assert.Equal(t, inspect.Status, "running")
+		nginxID := inspect.ID
+
 		res = c.RunDockerCmd("ps")
-		assert.Assert(t, cmp.Regexp(`0\.0\.0\.0:\d*->80/tcp`, res.Stdout()))
+		nginxFound := false
+		lines := Lines(res.Stdout())
+		for _, line := range lines {
+			fields := strings.Fields(line)
+			if fields[0] == nginxID {
+				nginxFound = true
+				assert.Equal(t, fields[1], "nginx")
+				assert.Equal(t, fields[2], "/docker-entrypoint.sh")
+				assert.Equal(t, fields[len(fields)-1], "0.0.0.0:85->80/tcp")
+			}
+		}
+		assert.Assert(t, nginxFound, res.Stdout())
+
+		res = c.RunDockerCmd("ps", "--format", "json")
+		res.Assert(t, icmd.Expected{Out: `"Image":"nginx","Status":"Up Less than a second","Command":"/docker-entrypoint.sh nginx -g 'daemon off;'","Ports":["0.0.0.0:85->80/tcp"`})
+
+		res = c.RunDockerCmd("ps", "--quiet")
+		res.Assert(t, icmd.Expected{Out: nginxID + "\n"})
 	})
 
 	t.Run("run with volume", func(t *testing.T) {

+ 83 - 0
local/e2e/container/skip_win_ci_test.go

@@ -0,0 +1,83 @@
+/*
+   Copyright 2020 Docker Compose CLI authors
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package e2e
+
+import (
+	"io/ioutil"
+	"os"
+	"path/filepath"
+	"runtime"
+	"strings"
+	"syscall"
+	"testing"
+	"time"
+
+	"gotest.tools/v3/assert"
+	"gotest.tools/v3/icmd"
+	"gotest.tools/v3/poll"
+
+	. "github.com/docker/compose-cli/utils/e2e"
+)
+
+func TestKillChildProcess(t *testing.T) {
+	assert.Assert(t, runtime.GOOS != "windows", "cannot test process signals on windows")
+	c := NewParallelE2eCLI(t, binDir)
+
+	image := "test-sleep-image"
+	psCmd := icmd.Command("ps", "-x")
+	psRes := icmd.RunCmd(psCmd)
+	psRes.Assert(t, icmd.Success)
+	assert.Assert(t, !strings.Contains(psRes.Combined(), image))
+
+	d := writeDockerfile(t)
+	buildArgs := []string{"build", "--no-cache", "-t", image, "."}
+	cmd := c.NewDockerCmd(buildArgs...)
+	cmd.Dir = d
+	res := icmd.StartCmd(cmd)
+
+	buildRunning := func(t poll.LogT) poll.Result {
+		res := icmd.RunCmd(psCmd)
+		if strings.Contains(res.Combined(), strings.Join(buildArgs, " ")) {
+			return poll.Success()
+		}
+		return poll.Continue("waiting for child process to be running")
+	}
+	poll.WaitOn(t, buildRunning, poll.WithDelay(1*time.Second))
+
+	err := res.Cmd.Process.Signal(syscall.SIGTERM)
+	assert.NilError(t, err)
+	buildStopped := func(t poll.LogT) poll.Result {
+		res := icmd.RunCmd(psCmd)
+		if !strings.Contains(res.Combined(), strings.Join(buildArgs, " ")) {
+			return poll.Success()
+		}
+		return poll.Continue("waiting for child process to be killed")
+	}
+	poll.WaitOn(t, buildStopped, poll.WithDelay(1*time.Second), poll.WithTimeout(60*time.Second))
+}
+
+func writeDockerfile(t *testing.T) string {
+	d, err := ioutil.TempDir("", "")
+	assert.NilError(t, err)
+	t.Cleanup(func() {
+		_ = os.RemoveAll(d)
+	})
+	err = ioutil.WriteFile(filepath.Join(d, "Dockerfile"), []byte(`FROM alpine:3.10
+RUN sleep 100`), 0644)
+	assert.NilError(t, err)
+	return d
+}

+ 0 - 0
tests/skip-win-ci-e2e/testdata/ls-out-test-local.golden → local/e2e/container/testdata/ls-out-test-local.golden


+ 0 - 5
tests/composefiles/nginx.yaml

@@ -1,5 +0,0 @@
-services:
-  nginx:
-    image: nginx
-    ports:
-      - "80:80"

+ 0 - 42
tests/framework/unit.go

@@ -1,42 +0,0 @@
-/*
-   Copyright 2020 Docker Compose CLI authors
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-*/
-
-package framework
-
-import (
-	"context"
-	"io/ioutil"
-	"os"
-)
-
-// TestCLI is a helper struct for CLI tests.
-type TestCLI struct {
-	ctx    context.Context
-	writer *os.File
-	reader *os.File
-}
-
-// Context returns a configured context
-func (c *TestCLI) Context() context.Context {
-	return c.ctx
-}
-
-// GetStdOut returns the output of the command
-func (c *TestCLI) GetStdOut() string {
-	_ = c.writer.Close()
-	out, _ := ioutil.ReadAll(c.reader)
-	return string(out)
-}

+ 0 - 161
tests/skip-win-ci-e2e/skip_win_ci_test.go

@@ -1,161 +0,0 @@
-/*
-   Copyright 2020 Docker Compose CLI authors
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-*/
-
-package main
-
-import (
-	"encoding/json"
-	"fmt"
-	"io/ioutil"
-	"os"
-	"path/filepath"
-	"runtime"
-	"strings"
-	"syscall"
-	"testing"
-	"time"
-
-	"gotest.tools/golden"
-	"gotest.tools/v3/assert"
-	"gotest.tools/v3/icmd"
-	"gotest.tools/v3/poll"
-
-	"github.com/docker/compose-cli/cli/cmd"
-	. "github.com/docker/compose-cli/tests/framework"
-)
-
-var binDir string
-
-func TestMain(m *testing.M) {
-	p, cleanup, err := SetupExistingCLI()
-	if err != nil {
-		fmt.Println(err)
-		os.Exit(1)
-	}
-	binDir = p
-	exitCode := m.Run()
-	cleanup()
-	os.Exit(exitCode)
-}
-
-func TestKillChildProcess(t *testing.T) {
-	c := NewParallelE2eCLI(t, binDir)
-
-	image := "test-sleep-image"
-	pCmd := icmd.Command("ps", "-x")
-	if runtime.GOOS == "windows" {
-		pCmd = icmd.Command("tasklist")
-	}
-	pRes := icmd.RunCmd(pCmd)
-	pRes.Assert(t, icmd.Success)
-	assert.Assert(t, !strings.Contains(pRes.Combined(), image))
-
-	d := writeDockerfile(t)
-	buildArgs := []string{"build", "--no-cache", "-t", image, "."}
-	cmd := c.NewDockerCmd(buildArgs...)
-	cmd.Dir = d
-	res := icmd.StartCmd(cmd)
-
-	buildRunning := func(t poll.LogT) poll.Result {
-		res := icmd.RunCmd(pCmd)
-		if strings.Contains(res.Combined(), strings.Join(buildArgs, " ")) {
-			return poll.Success()
-		}
-		return poll.Continue("waiting for child process to be running")
-	}
-	poll.WaitOn(t, buildRunning, poll.WithDelay(1*time.Second))
-
-	if runtime.GOOS == "windows" {
-		err := res.Cmd.Process.Kill()
-		assert.NilError(t, err)
-	} else {
-		err := res.Cmd.Process.Signal(syscall.SIGTERM)
-		assert.NilError(t, err)
-	}
-	buildStopped := func(t poll.LogT) poll.Result {
-		res := icmd.RunCmd(pCmd)
-		if !strings.Contains(res.Combined(), strings.Join(buildArgs, " ")) {
-			return poll.Success()
-		}
-		return poll.Continue("waiting for child process to be killed")
-	}
-	poll.WaitOn(t, buildStopped, poll.WithDelay(1*time.Second), poll.WithTimeout(60*time.Second))
-}
-
-// no linux containers on GHA Windows CI nodes (windows server)
-func TestLocalContainers(t *testing.T) {
-	c := NewParallelE2eCLI(t, binDir)
-	c.RunDockerCmd("context", "create", "local", "test-local")
-	res := c.RunDockerCmd("context", "use", "test-local")
-	res.Assert(t, icmd.Expected{Out: "test-local"})
-
-	t.Run("use", func(t *testing.T) {
-		res := c.RunDockerCmd("context", "show")
-		res.Assert(t, icmd.Expected{Out: "test-local"})
-		res = c.RunDockerCmd("context", "ls")
-		golden.Assert(t, res.Stdout(), GoldenFile("ls-out-test-local"))
-	})
-
-	var nginxContainerName string
-	t.Run("run", func(t *testing.T) {
-		res := c.RunDockerCmd("run", "-d", "-p", "85:80", "nginx")
-		nginxContainerName = strings.TrimSpace(res.Stdout())
-	})
-	defer c.RunDockerOrExitError("rm", "-f", nginxContainerName)
-
-	var nginxID string
-	t.Run("inspect", func(t *testing.T) {
-		res = c.RunDockerCmd("inspect", nginxContainerName)
-
-		inspect := &cmd.ContainerInspectView{}
-		err := json.Unmarshal([]byte(res.Stdout()), inspect)
-		assert.NilError(t, err)
-		nginxID = inspect.ID
-	})
-
-	t.Run("ps", func(t *testing.T) {
-		res = c.RunDockerCmd("ps")
-		lines := Lines(res.Stdout())
-		nginxFound := false
-		for _, line := range lines {
-			fields := strings.Fields(line)
-			if fields[0] == nginxID {
-				nginxFound = true
-				assert.Equal(t, fields[1], "nginx")
-				assert.Equal(t, fields[2], "/docker-entrypoint.sh")
-			}
-		}
-		assert.Assert(t, nginxFound, res.Stdout())
-
-		res = c.RunDockerCmd("ps", "--format", "json")
-		res.Assert(t, icmd.Expected{Out: `"Image":"nginx","Status":"Up Less than a second","Command":"/docker-entrypoint.sh nginx -g 'daemon off;'","Ports":["0.0.0.0:85->80/tcp"`})
-
-		res = c.RunDockerCmd("ps", "--quiet")
-		res.Assert(t, icmd.Expected{Out: nginxID + "\n"})
-	})
-}
-
-func writeDockerfile(t *testing.T) string {
-	d, err := ioutil.TempDir("", "")
-	assert.NilError(t, err)
-	t.Cleanup(func() {
-		_ = os.RemoveAll(d)
-	})
-	err = ioutil.WriteFile(filepath.Join(d, "Dockerfile"), []byte(`FROM alpine:3.10
-RUN sleep 100`), 0644)
-	assert.NilError(t, err)
-	return d
-}

+ 2 - 1
tests/framework/e2e.go → utils/e2e/framework.go

@@ -14,7 +14,7 @@
    limitations under the License.
 */
 
-package framework
+package e2e
 
 import (
 	"errors"
@@ -51,6 +51,7 @@ func init() {
 }
 
 // E2eCLI is used to wrap the CLI for end to end testing
+// nolint stutter
 type E2eCLI struct {
 	BinDir    string
 	ConfigDir string

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff