diff --git a/Makefile b/Makefile
index fef6e03f8a..4f73e632d0 100644
--- a/Makefile
+++ b/Makefile
@@ -192,6 +192,10 @@ gen/test-tls:
-subj "/CN=localhost" \
-config pkg/rpc/testdata/tls.config
+.PHONY: gen/contributions
+gen/contributions:
+ ./hack/gen-contributions.sh
+
.PHONY: release
release: release/init release/docs
diff --git a/README.md b/README.md
index 14423d938f..10fd6821ca 100644
--- a/README.md
+++ b/README.md
@@ -79,31 +79,34 @@ We'd love you to join us! Please see the [Contributor Guide](https://pipecd.dev/
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
+
+
-
+
-
-
-
+
+
+
diff --git a/docs/content/en/docs-dev/examples/_index.md b/docs/content/en/docs-dev/examples/_index.md
index 96a0197d7f..8030751054 100755
--- a/docs/content/en/docs-dev/examples/_index.md
+++ b/docs/content/en/docs-dev/examples/_index.md
@@ -81,6 +81,8 @@ https://github.com/pipe-cd/examples
| [bluegreen](https://github.com/pipe-cd/examples/tree/master/ecs/bluegreen) | Deployment pipeline with blue-green strategy. |
| [secret-management](https://github.com/pipe-cd/examples/tree/master/ecs/secret-management) | Demonstrate how to manage sensitive data by using [Secret Management](../user-guide/managing-application/secret-management/) feature. |
| [wait-approval](https://github.com/pipe-cd/examples/tree/master/ecs/wait-approval) | Deployment pipeline that contains a manual approval stage. |
+| [standalone-task](https://github.com/pipe-cd/examples/tree/master/ecs/standalone-task) | Deployment Standalone Task. (`Standalone task is only supported for Quick sync`) |
+
### Deployment chain
diff --git a/docs/content/en/docs-dev/user-guide/command-line-tool.md b/docs/content/en/docs-dev/user-guide/command-line-tool.md
index 10af71bbff..d9c3ae6f72 100644
--- a/docs/content/en/docs-dev/user-guide/command-line-tool.md
+++ b/docs/content/en/docs-dev/user-guide/command-line-tool.md
@@ -193,6 +193,17 @@ pipectl application list \
--app-kind=KUBERNETES \
```
+### Disable an application
+
+Disable an application with given id:
+
+``` console
+pipectl application disable \
+ --address={CONTROL_PLANE_API_ADDRESS} \
+ --api-key={API_KEY} \
+ --app-id={APPLICATION_ID}
+```
+
### Deleting an application
Delete an application with given id:
diff --git a/docs/content/en/docs-dev/user-guide/managing-application/defining-app-configuration/ecs.md b/docs/content/en/docs-dev/user-guide/managing-application/defining-app-configuration/ecs.md
index 18eda91166..54fe3ad3d3 100644
--- a/docs/content/en/docs-dev/user-guide/managing-application/defining-app-configuration/ecs.md
+++ b/docs/content/en/docs-dev/user-guide/managing-application/defining-app-configuration/ecs.md
@@ -6,7 +6,16 @@ description: >
Specific guide to configuring deployment for Amazon ECS application.
---
-Deploying an Amazon ECS application requires `TaskDefinition` and `Service` configuration files placing inside the application directory. Those files contain all configuration for [ECS TaskDefinition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) object and [ECS Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) object, and will be used by Piped agent while deploy your application/service to ECS cluster.
+There are two main ways to deploy an Amazon ECS application.
+- Your application is a one-time or periodic batch job.
+ - it's a standalone task.
+ - you need to prepare `TaskDefinition`
+- Your application is deployed to run continuously or behind a load balancer.
+ - you need to prepare `TaskDefinition` and `Service`
+
+To deploy an Amazon ECS application, the `TaskDefinition` configuration file must be located in the application directory. This file contains all configuration for [ECS TaskDefinition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) object and will be used by Piped agent while deploying your application/service to the ECS cluster.
+
+To deploy your application to run continuously or to place it behind a load balancer, You need to create [ECS Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). The `Service` configuration file also must be located in the application directory. This file contains all configurations for [ECS Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) object.
If you're not familiar with ECS, you can get examples for those files from [here](../../../../examples/#ecs-applications).
@@ -14,6 +23,53 @@ If you're not familiar with ECS, you can get examples for those files from [here
By default, when the [pipeline](../../../configuration-reference/#ecs-application) was not specified, PipeCD triggers a quick sync deployment for the merged pull request.
Quick sync for an ECS deployment will roll out the new version and switch all traffic to it immediately.
+> In case of standalone task, only Quick sync is supported.
+
+Here is an example for Quick sync.
+
+ {{< tabpane >}}
+ {{< tab lang="yaml" header="application" >}}
+apiVersion: pipecd.dev/v1beta1
+kind: ECSApp
+spec:
+ name: simple
+ labels:
+ env: example
+ team: xyz
+ input:
+ # Path to Service configuration file in Yaml/JSON format.
+ serviceDefinitionFile: servicedef.yaml
+ # Path to TaskDefinition configuration file in Yaml/JSON format.
+ # Default is `taskdef.json`
+ taskDefinitionFile: taskdef.yaml
+ targetGroups:
+ primary:
+ targetGroupArn: arn:aws:elasticloadbalancing:ap-northeast-1:XXXX:targetgroup/ecs-lb/YYYY
+ containerName: web
+ containerPort: 80
+ {{< /tab >}}
+ {{< tab lang="yaml" header="standalone task" >}}
+apiVersion: pipecd.dev/v1beta1
+kind: ECSApp
+spec:
+ name: standalonetask-fargate
+ labels:
+ env: example
+ team: xyz
+ input:
+ # Path to TaskDefinition configuration file in Yaml/JSON format.
+ # Default is `taskdef.json`
+ taskDefinitionFile: taskdef.yaml
+ clusterArn: arn:aws:ecs:ap-northeast-1:XXXX:cluster/test-cluster
+ awsvpcConfiguration:
+ assignPublicIp: ENABLED
+ subnets:
+ - subnet-YYYY
+ - subnet-YYYY
+ securityGroups:
+ - sg-YYYY
+ {{< /tab >}}
+ {{< /tabpane >}}
## Sync with the specified pipeline
@@ -46,7 +102,6 @@ kind: ECSApp
spec:
input:
# Path to Service configuration file in Yaml/JSON format.
- # Default is `service.json`
serviceDefinitionFile: servicedef.yaml
# Path to TaskDefinition configuration file in Yaml/JSON format.
# Default is `taskdef.json`
diff --git a/examples/ecs/standalone-task/launch-type/ec2/network-mode/awsvpc/app.pipecd.yaml b/examples/ecs/standalone-task/launch-type/ec2/network-mode/awsvpc/app.pipecd.yaml
new file mode 100644
index 0000000000..187f3fa8f8
--- /dev/null
+++ b/examples/ecs/standalone-task/launch-type/ec2/network-mode/awsvpc/app.pipecd.yaml
@@ -0,0 +1,19 @@
+apiVersion: pipecd.dev/v1beta1
+kind: ECSApp
+spec:
+ name: standalonetask-ec2-awsvpc
+ labels:
+ env: example
+ team: xyz
+ input:
+ taskDefinitionFile: taskdef.yaml
+ clusterArn: arn:aws:ecs:ap-northeast-1:XXXX:cluster/test-cluster
+ launchType: EC2
+ awsvpcConfiguration:
+ subnets:
+ - subnet-YYYY
+ - subnet-YYYY
+ description: |
+ This app demonstrates how to deploy an ECS application with [Quick Sync](https://pipecd.dev/docs/concepts/#sync-strategy) strategy.\
+ No pipeline is specified then in each deployment PipeCD will roll out the new version and switch all traffic to it immediately.\
+ References: [adding a new app](https://pipecd.dev/docs/user-guide/managing-application/adding-an-application/), [app configuration](https://pipecd.dev/docs/user-guide/configuration-reference/)
diff --git a/examples/ecs/standalone-task/launch-type/ec2/network-mode/awsvpc/taskdef.yaml b/examples/ecs/standalone-task/launch-type/ec2/network-mode/awsvpc/taskdef.yaml
new file mode 100644
index 0000000000..f1373f1ab2
--- /dev/null
+++ b/examples/ecs/standalone-task/launch-type/ec2/network-mode/awsvpc/taskdef.yaml
@@ -0,0 +1,20 @@
+family: nginx-test-fam-ec2
+executionRoleArn: arn:aws:iam::XXXX:role/ecsTaskExecutionRole
+containerDefinitions:
+ - command: null
+ cpu: 100
+ image: XXXX.dkr.ecr.ap-northeast-1.amazonaws.com/nginx:1
+ memory: 100
+ mountPoints: []
+ name: web
+ portMappings:
+ - containerPort: 80
+compatibilities:
+ - EC2
+requiresCompatibilities:
+ - EC2
+networkMode: awsvpc
+memory: 512
+cpu: 256
+pidMode: ""
+volumes: []
diff --git a/examples/ecs/standalone-task/launch-type/ec2/network-mode/bridge/app.pipecd.yaml b/examples/ecs/standalone-task/launch-type/ec2/network-mode/bridge/app.pipecd.yaml
new file mode 100644
index 0000000000..e8c49b3550
--- /dev/null
+++ b/examples/ecs/standalone-task/launch-type/ec2/network-mode/bridge/app.pipecd.yaml
@@ -0,0 +1,15 @@
+apiVersion: pipecd.dev/v1beta1
+kind: ECSApp
+spec:
+ name: standalonetask-ec2-bridge-1
+ labels:
+ env: example
+ team: xyz
+ input:
+ taskDefinitionFile: taskdef.yaml
+ launchType: EC2
+ clusterArn: arn:aws:ecs:ap-northeast-1:XXXX:cluster/test-cluster
+ description: |
+ This app demonstrates how to deploy an ECS application with [Quick Sync](https://pipecd.dev/docs/concepts/#sync-strategy) strategy.\
+ No pipeline is specified then in each deployment PipeCD will roll out the new version and switch all traffic to it immediately.\
+ References: [adding a new app](https://pipecd.dev/docs/user-guide/managing-application/adding-an-application/), [app configuration](https://pipecd.dev/docs/user-guide/configuration-reference/)
diff --git a/examples/ecs/standalone-task/launch-type/ec2/network-mode/bridge/taskdef.yaml b/examples/ecs/standalone-task/launch-type/ec2/network-mode/bridge/taskdef.yaml
new file mode 100644
index 0000000000..5a9225b10b
--- /dev/null
+++ b/examples/ecs/standalone-task/launch-type/ec2/network-mode/bridge/taskdef.yaml
@@ -0,0 +1,20 @@
+family: nginx-test-fam-ec2-bridge
+executionRoleArn: arn:aws:iam::XXXX:role/ecsTaskExecutionRole
+containerDefinitions:
+ - command: null
+ cpu: 100
+ image: XXXX.dkr.ecr.ap-northeast-1.amazonaws.com/nginx:1
+ memory: 100
+ mountPoints: []
+ name: web
+ portMappings:
+ - containerPort: 80
+compatibilities:
+ - EC2
+requiresCompatibilities:
+ - EC2
+networkMode: bridge
+memory: 512
+cpu: 256
+pidMode: ""
+volumes: []
diff --git a/examples/ecs/standalone-task/launch-type/fargate/app.pipecd.yaml b/examples/ecs/standalone-task/launch-type/fargate/app.pipecd.yaml
new file mode 100644
index 0000000000..8a1221d657
--- /dev/null
+++ b/examples/ecs/standalone-task/launch-type/fargate/app.pipecd.yaml
@@ -0,0 +1,21 @@
+apiVersion: pipecd.dev/v1beta1
+kind: ECSApp
+spec:
+ name: standalonetask-fargate
+ labels:
+ env: example
+ team: xyz
+ input:
+ taskDefinitionFile: taskdef.yaml
+ clusterArn: arn:aws:ecs:ap-northeast-1:XXXX:cluster/test-cluster
+ awsvpcConfiguration:
+ assignPublicIp: ENABLED
+ subnets:
+ - subnet-YYYY
+ - subnet-YYYY
+ securityGroups:
+ - sg-YYYY
+ description: |
+ This app demonstrates how to deploy an ECS application with [Quick Sync](https://pipecd.dev/docs/concepts/#sync-strategy) strategy.\
+ No pipeline is specified then in each deployment PipeCD will roll out the new version and switch all traffic to it immediately.\
+ References: [adding a new app](https://pipecd.dev/docs/user-guide/managing-application/adding-an-application/), [app configuration](https://pipecd.dev/docs/user-guide/configuration-reference/)
diff --git a/examples/ecs/standalone-task/launch-type/fargate/taskdef.yaml b/examples/ecs/standalone-task/launch-type/fargate/taskdef.yaml
new file mode 100644
index 0000000000..e5a60a6bdd
--- /dev/null
+++ b/examples/ecs/standalone-task/launch-type/fargate/taskdef.yaml
@@ -0,0 +1,20 @@
+family: nginx-test-fam-1
+executionRoleArn: arn:aws:iam::XXXX:role/ecsTaskExecutionRole
+containerDefinitions:
+ - command: null
+ cpu: 100
+ image: XXXX.dkr.ecr.ap-northeast-1.amazonaws.com/nginx:1
+ memory: 100
+ mountPoints: []
+ name: web
+ portMappings:
+ - containerPort: 80
+compatibilities:
+ - FARGATE
+requiresCompatibilities:
+ - FARGATE
+networkMode: awsvpc
+memory: 512
+cpu: 256
+pidMode: ""
+volumes: []
diff --git a/go.mod b/go.mod
index ca2c922453..7c7971dbf9 100644
--- a/go.mod
+++ b/go.mod
@@ -20,7 +20,7 @@ require (
github.com/envoyproxy/protoc-gen-validate v0.6.6
github.com/fsouza/fake-gcs-server v1.21.0
github.com/go-sql-driver/mysql v1.6.0
- github.com/goccy/go-yaml v1.9.3
+ github.com/goccy/go-yaml v1.9.8
github.com/golang-jwt/jwt v3.2.1+incompatible
github.com/golang/mock v1.5.0
github.com/golang/protobuf v1.5.2
diff --git a/go.sum b/go.sum
index bc961e5196..93a923ada2 100644
--- a/go.sum
+++ b/go.sum
@@ -270,8 +270,8 @@ github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LB
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
-github.com/goccy/go-yaml v1.9.3 h1:9A7DkTBb7cZs5wqcqAhgR+2Ms8O7HTjT0SqOXO10HqM=
-github.com/goccy/go-yaml v1.9.3/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA=
+github.com/goccy/go-yaml v1.9.8 h1:5gMyLUeU1/6zl+WFfR1hN7D2kf+1/eRGa7DFtToiBvQ=
+github.com/goccy/go-yaml v1.9.8/go.mod h1:JubOolP3gh0HpiBc4BLRD4YmjEjHAmIIB2aaXKkTfoE=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE=
@@ -877,6 +877,7 @@ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
diff --git a/hack/gen-contributions.sh b/hack/gen-contributions.sh
new file mode 100755
index 0000000000..bd9985b736
--- /dev/null
+++ b/hack/gen-contributions.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+# Copyright 2022 The PipeCD 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.
+
+echo "Updating the contributors list on README.md ..."
+
+LINE_NUM=$(($(grep -Fn "### Thanks to the contributors of PipeCD" README.md | cut -f1 -d ':')+1))
+head -n $LINE_NUM README.md >> README.md.tmp
+
+while read -r line
+do
+ cat <> README.md.tmp
+$line
+EOT
+done < <(gh api -XGET /repos/pipe-cd/pipecd/contributors -F per_page=100 | jq -r '.[] | ""')
+
+mv README.md.tmp README.md
+
+echo "Successfully update the contributions list on README.md"
diff --git a/pkg/app/pipectl/cmd/application/application.go b/pkg/app/pipectl/cmd/application/application.go
index 52d8c4911d..bb69d845b4 100644
--- a/pkg/app/pipectl/cmd/application/application.go
+++ b/pkg/app/pipectl/cmd/application/application.go
@@ -39,6 +39,7 @@ func NewCommand() *cobra.Command {
newGetCommand(c),
newListCommand(c),
newDeleteCommand(c),
+ newDisableCommand(c),
)
c.clientOptions.RegisterPersistentFlags(cmd)
diff --git a/pkg/app/pipectl/cmd/application/disable.go b/pkg/app/pipectl/cmd/application/disable.go
new file mode 100644
index 0000000000..88633875d2
--- /dev/null
+++ b/pkg/app/pipectl/cmd/application/disable.go
@@ -0,0 +1,67 @@
+// Copyright 2022 The PipeCD 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 application
+
+import (
+ "context"
+ "fmt"
+
+ "github.com/spf13/cobra"
+
+ "github.com/pipe-cd/pipecd/pkg/app/server/service/apiservice"
+ "github.com/pipe-cd/pipecd/pkg/cli"
+)
+
+type disable struct {
+ root *command
+
+ appID string
+}
+
+func newDisableCommand(root *command) *cobra.Command {
+ c := &disable{
+ root: root,
+ }
+ cmd := &cobra.Command{
+ Use: "disable",
+ Short: "Disable an application.",
+ RunE: cli.WithContext(c.run),
+ }
+
+ cmd.Flags().StringVar(&c.appID, "app-id", c.appID, "The application ID.")
+ cmd.MarkFlagRequired("app-id")
+
+ return cmd
+}
+
+func (c *disable) run(ctx context.Context, input cli.Input) error {
+ cli, err := c.root.clientOptions.NewClient(ctx)
+ if err != nil {
+ return fmt.Errorf("failed to initialize client: %w", err)
+ }
+ defer cli.Close()
+
+ req := &apiservice.DisableApplicationRequest{
+ ApplicationId: c.appID,
+ }
+
+ resp, err := cli.DisableApplication(ctx, req)
+ if err != nil {
+ return fmt.Errorf("failed to disable application: %w", err)
+ }
+
+ input.Logger.Info(fmt.Sprintf("Successfully disable application id = %s", resp.ApplicationId))
+ return nil
+}
diff --git a/pkg/app/piped/eventwatcher/eventwatcher_test.go b/pkg/app/piped/eventwatcher/eventwatcher_test.go
index 291d658e78..5164f427fd 100644
--- a/pkg/app/piped/eventwatcher/eventwatcher_test.go
+++ b/pkg/app/piped/eventwatcher/eventwatcher_test.go
@@ -98,7 +98,7 @@ func TestModifyYAML(t *testing.T) {
path: "testdata/a.yaml",
field: "$.foo",
newValue: "2",
- wantNewYml: []byte("foo: 2"),
+ wantNewYml: []byte("foo: 2\n"),
wantUpToDate: false,
wantErr: false,
},
diff --git a/pkg/app/piped/executor/ecs/deploy.go b/pkg/app/piped/executor/ecs/deploy.go
index afdf35d6bf..c5be37077a 100644
--- a/pkg/app/piped/executor/ecs/deploy.go
+++ b/pkg/app/piped/executor/ecs/deploy.go
@@ -78,11 +78,21 @@ func (e *deployExecutor) Execute(sig executor.StopSignal) model.StageStatus {
}
func (e *deployExecutor) ensureSync(ctx context.Context) model.StageStatus {
- taskDefinition, ok := loadTaskDefinition(&e.Input, e.appCfg.Input.TaskDefinitionFile, e.deploySource)
+ ecsInput := e.appCfg.Input
+
+ taskDefinition, ok := loadTaskDefinition(&e.Input, ecsInput.TaskDefinitionFile, e.deploySource)
if !ok {
return model.StageStatus_STAGE_FAILURE
}
- servicedefinition, ok := loadServiceDefinition(&e.Input, e.appCfg.Input.ServiceDefinitionFile, e.deploySource)
+
+ if ecsInput.IsStandaloneTask() {
+ if !runStandaloneTask(ctx, &e.Input, e.platformProviderName, e.platformProviderCfg, taskDefinition, &ecsInput) {
+ return model.StageStatus_STAGE_FAILURE
+ }
+ return model.StageStatus_STAGE_SUCCESS
+ }
+
+ servicedefinition, ok := loadServiceDefinition(&e.Input, ecsInput.ServiceDefinitionFile, e.deploySource)
if !ok {
return model.StageStatus_STAGE_FAILURE
}
diff --git a/pkg/app/piped/executor/ecs/ecs.go b/pkg/app/piped/executor/ecs/ecs.go
index b7e988f19a..a97b33d233 100644
--- a/pkg/app/piped/executor/ecs/ecs.go
+++ b/pkg/app/piped/executor/ecs/ecs.go
@@ -157,6 +157,41 @@ func applyServiceDefinition(ctx context.Context, cli provider.Client, serviceDef
return service, nil
}
+func runStandaloneTask(
+ ctx context.Context,
+ in *executor.Input,
+ cloudProviderName string,
+ cloudProviderCfg *config.PlatformProviderECSConfig,
+ taskDefinition types.TaskDefinition,
+ ecsInput *config.ECSDeploymentInput,
+) bool {
+ client, err := provider.DefaultRegistry().Client(cloudProviderName, cloudProviderCfg, in.Logger)
+ if err != nil {
+ in.LogPersister.Errorf("Unable to create ECS client for the provider %s: %v", cloudProviderName, err)
+ return false
+ }
+
+ in.LogPersister.Infof("Start applying the ECS task definition")
+ td, err := applyTaskDefinition(ctx, client, taskDefinition)
+ if err != nil {
+ in.LogPersister.Errorf("Failed to apply ECS task definition: %v", err)
+ return false
+ }
+
+ err = client.RunTask(
+ ctx,
+ *td,
+ ecsInput.ClusterArn,
+ ecsInput.LaunchType,
+ &ecsInput.AwsVpcConfiguration,
+ )
+ if err != nil {
+ in.LogPersister.Errorf("Failed to run ECS task: %v", err)
+ return false
+ }
+ return true
+}
+
func createPrimaryTaskSet(ctx context.Context, client provider.Client, service types.Service, taskDef types.TaskDefinition, targetGroup *types.LoadBalancer) error {
// Get current PRIMARY task set.
prevPrimaryTaskSet, err := client.GetPrimaryTaskSet(ctx, service)
diff --git a/pkg/app/piped/executor/kubernetes/kubernetes_test.go b/pkg/app/piped/executor/kubernetes/kubernetes_test.go
index 039e19201d..d2406e2f4a 100644
--- a/pkg/app/piped/executor/kubernetes/kubernetes_test.go
+++ b/pkg/app/piped/executor/kubernetes/kubernetes_test.go
@@ -601,7 +601,7 @@ metadata:
name: canary-by-config-change
data:
two: "2"
- `,
+`,
expected: `
apiVersion: apps/v1
kind: Deployment
@@ -645,7 +645,7 @@ metadata:
name: canary-by-config-change
data:
two: "2"
- `,
+`,
},
{
name: "multiple configs",
@@ -704,7 +704,7 @@ metadata:
type: my-type
data:
"one": "Mg=="
- `,
+`,
expected: `
apiVersion: apps/v1
kind: Deployment
@@ -762,7 +762,7 @@ metadata:
type: my-type
data:
"one": "Mg=="
- `,
+`,
},
}
diff --git a/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field.yaml b/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field.yaml
index adc653e76f..56e406b95c 100644
--- a/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field.yaml
+++ b/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field.yaml
@@ -3,7 +3,7 @@ kind: ConfigMap
metadata:
name: envoy-config
data:
- envoy-config: |-
+ envoy-config: |
admin:
address:
socket_address:
@@ -42,7 +42,7 @@ kind: ConfigMap
metadata:
name: envoy-config
data:
- envoy-config: |-
+ envoy-config: |
admin:
address:
socket_address:
diff --git a/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field_multi_ops.yaml b/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field_multi_ops.yaml
index 3553d6b2d1..efeb218de7 100644
--- a/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field_multi_ops.yaml
+++ b/pkg/app/piped/executor/kubernetes/testdata/patch_configmap_field_multi_ops.yaml
@@ -3,7 +3,7 @@ kind: ConfigMap
metadata:
name: envoy-config
data:
- envoy-config: |-
+ envoy-config: |
admin:
address:
socket_address:
@@ -151,7 +151,7 @@ kind: ConfigMap
metadata:
name: envoy-config
data:
- envoy-config: |-
+ envoy-config: |
admin:
address:
socket_address:
diff --git a/pkg/app/piped/platformprovider/ecs/client.go b/pkg/app/piped/platformprovider/ecs/client.go
index 6091f4a308..105f2659c5 100644
--- a/pkg/app/piped/platformprovider/ecs/client.go
+++ b/pkg/app/piped/platformprovider/ecs/client.go
@@ -29,6 +29,7 @@ import (
"go.uber.org/zap"
"github.com/pipe-cd/pipecd/pkg/app/piped/platformprovider"
+ appconfig "github.com/pipe-cd/pipecd/pkg/config"
)
type client struct {
@@ -150,6 +151,34 @@ func (c *client) RegisterTaskDefinition(ctx context.Context, taskDefinition type
return output.TaskDefinition, nil
}
+func (c *client) RunTask(ctx context.Context, taskDefinition types.TaskDefinition, clusterArn string, launchType string, awsVpcConfiguration *appconfig.ECSVpcConfiguration) error {
+ if taskDefinition.TaskDefinitionArn == nil {
+ return fmt.Errorf("failed to run task of task family %s: no task definition provided", *taskDefinition.Family)
+ }
+
+ input := &ecs.RunTaskInput{
+ TaskDefinition: taskDefinition.Family,
+ Cluster: aws.String(clusterArn),
+ LaunchType: types.LaunchType(launchType),
+ }
+
+ if len(awsVpcConfiguration.Subnets) > 0 {
+ input.NetworkConfiguration = &types.NetworkConfiguration{
+ AwsvpcConfiguration: &types.AwsVpcConfiguration{
+ Subnets: awsVpcConfiguration.Subnets,
+ AssignPublicIp: types.AssignPublicIp(awsVpcConfiguration.AssignPublicIP),
+ SecurityGroups: awsVpcConfiguration.SecurityGroups,
+ },
+ }
+ }
+
+ _, err := c.ecsClient.RunTask(ctx, input)
+ if err != nil {
+ return fmt.Errorf("failed to run ECS task %s: %w", *taskDefinition.TaskDefinitionArn, err)
+ }
+ return nil
+}
+
func (c *client) CreateTaskSet(ctx context.Context, service types.Service, taskDefinition types.TaskDefinition, targetGroup *types.LoadBalancer, scale int) (*types.TaskSet, error) {
if taskDefinition.TaskDefinitionArn == nil {
return nil, fmt.Errorf("failed to create task set of task family %s: no task definition provided", *taskDefinition.Family)
diff --git a/pkg/app/piped/platformprovider/ecs/ecs.go b/pkg/app/piped/platformprovider/ecs/ecs.go
index 3492a0c3dc..4eaee15a0d 100644
--- a/pkg/app/piped/platformprovider/ecs/ecs.go
+++ b/pkg/app/piped/platformprovider/ecs/ecs.go
@@ -37,6 +37,7 @@ type ECS interface {
CreateService(ctx context.Context, service types.Service) (*types.Service, error)
UpdateService(ctx context.Context, service types.Service) (*types.Service, error)
RegisterTaskDefinition(ctx context.Context, taskDefinition types.TaskDefinition) (*types.TaskDefinition, error)
+ RunTask(ctx context.Context, taskDefinition types.TaskDefinition, clusterArn string, launchType string, awsVpcConfiguration *config.ECSVpcConfiguration) error
GetPrimaryTaskSet(ctx context.Context, service types.Service) (*types.TaskSet, error)
CreateTaskSet(ctx context.Context, service types.Service, taskDefinition types.TaskDefinition, targetGroup *types.LoadBalancer, scale int) (*types.TaskSet, error)
DeleteTaskSet(ctx context.Context, service types.Service, taskSetArn string) error
diff --git a/pkg/app/piped/platformprovider/kubernetes/deployment_test.go b/pkg/app/piped/platformprovider/kubernetes/deployment_test.go
index d96efa48e4..5c1b1c3e78 100644
--- a/pkg/app/piped/platformprovider/kubernetes/deployment_test.go
+++ b/pkg/app/piped/platformprovider/kubernetes/deployment_test.go
@@ -61,7 +61,7 @@ spec:
- server
ports:
- containerPort: 9085
- `,
+`,
expected: nil,
},
{
@@ -100,7 +100,7 @@ spec:
- name: config
configMap:
name: canary-by-config-change
- `,
+`,
expected: []string{
"canary-by-config-change",
},
@@ -164,7 +164,7 @@ spec:
- name: config2
configMap:
name: configmap-2
- `,
+`,
expected: []string{
"canary-by-config-change",
"configmap-1",
@@ -228,7 +228,7 @@ spec:
- server
ports:
- containerPort: 9085
- `,
+`,
expected: nil,
},
{
@@ -267,7 +267,7 @@ spec:
- name: config
secret:
secretName: canary-by-config-change
- `,
+`,
expected: []string{
"canary-by-config-change",
},
@@ -331,7 +331,7 @@ spec:
- name: config2
secret:
secretName: secret-2
- `,
+`,
expected: []string{
"canary-by-config-change",
"init-secret-1",
diff --git a/pkg/app/piped/platformprovider/kubernetes/hasher_test.go b/pkg/app/piped/platformprovider/kubernetes/hasher_test.go
index 709d8c4c8f..19b486a05b 100644
--- a/pkg/app/piped/platformprovider/kubernetes/hasher_test.go
+++ b/pkg/app/piped/platformprovider/kubernetes/hasher_test.go
@@ -42,7 +42,7 @@ apiVersion: v1
kind: ConfigMap
data: {}
binaryData: {}
- `,
+`,
expected: "42745tchd9",
},
{
@@ -53,7 +53,7 @@ kind: ConfigMap
data:
one: ""
binaryData: {}
- `,
+`,
expected: "9g67k2htb6",
},
{
@@ -66,7 +66,7 @@ data:
one: ""
three: "3"
binaryData: {}
- `,
+`,
expected: "f5h7t85m9b",
},
{
@@ -76,7 +76,7 @@ apiVersion: v1
kind: Secret
type: my-type
data: {}
- `,
+`,
expected: "t75bgf6ctb",
},
{
@@ -87,7 +87,7 @@ kind: Secret
type: my-type
data:
"one": ""
- `,
+`,
expected: "74bd68bm66",
},
{
@@ -100,7 +100,7 @@ data:
two: Mg==
one: ""
three: Mw==
- `,
+`,
expected: "dgcb6h9tmk",
},
{
@@ -119,7 +119,7 @@ type: my-type
data:
one: ""
three: Mw==
- `,
+`,
expected: "57hhd7795k",
},
{
@@ -151,7 +151,7 @@ spec:
- hello
ports:
- containerPort: 9085
- `,
+`,
expected: "db48kd6689",
},
}
diff --git a/pkg/app/piped/platformprovider/kubernetes/manifest.go b/pkg/app/piped/platformprovider/kubernetes/manifest.go
index fe3d0af38a..3bbe31e323 100644
--- a/pkg/app/piped/platformprovider/kubernetes/manifest.go
+++ b/pkg/app/piped/platformprovider/kubernetes/manifest.go
@@ -224,12 +224,15 @@ func ParseManifests(data string) ([]Manifest, error) {
manifests = make([]Manifest, 0, len(parts))
)
- for _, part := range parts {
+ for i, part := range parts {
// Ignore all the cases where no content between separator.
- part = strings.TrimSpace(part)
- if len(part) == 0 {
+ if len(strings.TrimSpace(part)) == 0 {
continue
}
+ // Append new line which trim by document separator.
+ if i != len(parts)-1 {
+ part += "\n"
+ }
var obj unstructured.Unstructured
if err := yaml.Unmarshal([]byte(part), &obj); err != nil {
return nil, err
diff --git a/pkg/app/piped/platformprovider/kubernetes/manifest_test.go b/pkg/app/piped/platformprovider/kubernetes/manifest_test.go
index fdf8a4fa76..3066cfcb31 100644
--- a/pkg/app/piped/platformprovider/kubernetes/manifest_test.go
+++ b/pkg/app/piped/platformprovider/kubernetes/manifest_test.go
@@ -81,6 +81,39 @@ metadata:
}),
},
},
+ {
+ name: "contains new line at the end of file",
+ manifests: `
+apiVersion: v1
+kind: Kind1
+metadata:
+ name: config
+ extra: |
+ single-new-line
+`,
+ want: []Manifest{
+ maker("config", "Kind1", map[string]interface{}{
+ "name": "config",
+ "extra": "single-new-line\n",
+ }),
+ },
+ },
+ {
+ name: "not contains new line at the end of file",
+ manifests: `
+apiVersion: v1
+kind: Kind1
+metadata:
+ name: config
+ extra: |
+ no-new-line`,
+ want: []Manifest{
+ maker("config", "Kind1", map[string]interface{}{
+ "name": "config",
+ "extra": "no-new-line",
+ }),
+ },
+ },
{
name: "multiple manifests",
manifests: `
@@ -88,21 +121,64 @@ apiVersion: v1
kind: Kind1
metadata:
name: config1
+ extra: |-
+ no-new-line
---
apiVersion: v1
kind: Kind2
metadata:
name: config2
+ extra: |
+ single-new-line-1
---
apiVersion: v1
kind: Kind3
metadata:
name: config3
- `,
+ extra: |
+ single-new-line-2
+
+
+---
+apiVersion: v1
+kind: Kind4
+metadata:
+ name: config4
+ extra: |+
+ multiple-new-line-1
+
+
+---
+apiVersion: v1
+kind: Kind5
+metadata:
+ name: config5
+ extra: |+
+ multiple-new-line-2
+
+
+`,
want: []Manifest{
- maker("config1", "Kind1", map[string]interface{}{"name": "config1"}),
- maker("config2", "Kind2", map[string]interface{}{"name": "config2"}),
- maker("config3", "Kind3", map[string]interface{}{"name": "config3"}),
+ maker("config1", "Kind1", map[string]interface{}{
+ "name": "config1",
+ "extra": "no-new-line",
+ }),
+ maker("config2", "Kind2", map[string]interface{}{
+ "name": "config2",
+ "extra": "single-new-line-1\n",
+ }),
+ maker("config3", "Kind3", map[string]interface{}{
+ "name": "config3",
+ "extra": "single-new-line-2\n",
+ }),
+ maker("config4", "Kind4", map[string]interface{}{
+ "name": "config4",
+ "extra": "multiple-new-line-1\n\n\n",
+ }),
+ maker("config5", "Kind5", map[string]interface{}{
+ "name": "config5",
+ "extra": "multiple-new-line-2\n\n\n",
+ }),
},
},
}
diff --git a/pkg/app/server/grpcapi/api.go b/pkg/app/server/grpcapi/api.go
index 948ccb588b..20571d83a0 100644
--- a/pkg/app/server/grpcapi/api.go
+++ b/pkg/app/server/grpcapi/api.go
@@ -40,6 +40,7 @@ type apiApplicationStore interface {
Get(ctx context.Context, id string) (*model.Application, error)
List(ctx context.Context, opts datastore.ListOptions) ([]*model.Application, string, error)
Delete(ctx context.Context, id string) error
+ Disable(ctx context.Context, id string) error
UpdateConfigFilename(ctx context.Context, id, filename string) error
}
@@ -308,6 +309,30 @@ func (a *API) DeleteApplication(ctx context.Context, req *apiservice.DeleteAppli
}, nil
}
+func (a *API) DisableApplication(ctx context.Context, req *apiservice.DisableApplicationRequest) (*apiservice.DisableApplicationResponse, error) {
+ key, err := requireAPIKey(ctx, model.APIKey_READ_WRITE, a.logger)
+ if err != nil {
+ return nil, err
+ }
+
+ app, err := getApplication(ctx, a.applicationStore, req.ApplicationId, a.logger)
+ if err != nil {
+ return nil, err
+ }
+
+ if app.ProjectId != key.ProjectId {
+ return nil, status.Error(codes.InvalidArgument, "Requested application does not belong to your project")
+ }
+
+ if err := a.applicationStore.Disable(ctx, req.ApplicationId); err != nil {
+ return nil, gRPCStoreError(err, fmt.Sprintf("disable application %s", req.ApplicationId))
+ }
+
+ return &apiservice.DisableApplicationResponse{
+ ApplicationId: app.Id,
+ }, nil
+}
+
func (a *API) RenameApplicationConfigFile(ctx context.Context, req *apiservice.RenameApplicationConfigFileRequest) (*apiservice.RenameApplicationConfigFileResponse, error) {
key, err := requireAPIKey(ctx, model.APIKey_READ_WRITE, a.logger)
if err != nil {
diff --git a/pkg/app/server/service/apiservice/service.pb.go b/pkg/app/server/service/apiservice/service.pb.go
index 7731d845e1..356536ad3e 100644
--- a/pkg/app/server/service/apiservice/service.pb.go
+++ b/pkg/app/server/service/apiservice/service.pb.go
@@ -485,6 +485,100 @@ func (x *ListApplicationsResponse) GetCursor() string {
return ""
}
+type DisableApplicationRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ApplicationId string `protobuf:"bytes,1,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"`
+}
+
+func (x *DisableApplicationRequest) Reset() {
+ *x = DisableApplicationRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DisableApplicationRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DisableApplicationRequest) ProtoMessage() {}
+
+func (x *DisableApplicationRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DisableApplicationRequest.ProtoReflect.Descriptor instead.
+func (*DisableApplicationRequest) Descriptor() ([]byte, []int) {
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *DisableApplicationRequest) GetApplicationId() string {
+ if x != nil {
+ return x.ApplicationId
+ }
+ return ""
+}
+
+type DisableApplicationResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ApplicationId string `protobuf:"bytes,1,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"`
+}
+
+func (x *DisableApplicationResponse) Reset() {
+ *x = DisableApplicationResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DisableApplicationResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DisableApplicationResponse) ProtoMessage() {}
+
+func (x *DisableApplicationResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DisableApplicationResponse.ProtoReflect.Descriptor instead.
+func (*DisableApplicationResponse) Descriptor() ([]byte, []int) {
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *DisableApplicationResponse) GetApplicationId() string {
+ if x != nil {
+ return x.ApplicationId
+ }
+ return ""
+}
+
type DeleteApplicationRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -496,7 +590,7 @@ type DeleteApplicationRequest struct {
func (x *DeleteApplicationRequest) Reset() {
*x = DeleteApplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[8]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -509,7 +603,7 @@ func (x *DeleteApplicationRequest) String() string {
func (*DeleteApplicationRequest) ProtoMessage() {}
func (x *DeleteApplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[8]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -522,7 +616,7 @@ func (x *DeleteApplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteApplicationRequest.ProtoReflect.Descriptor instead.
func (*DeleteApplicationRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{8}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{10}
}
func (x *DeleteApplicationRequest) GetApplicationId() string {
@@ -543,7 +637,7 @@ type DeleteApplicationResponse struct {
func (x *DeleteApplicationResponse) Reset() {
*x = DeleteApplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[9]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -556,7 +650,7 @@ func (x *DeleteApplicationResponse) String() string {
func (*DeleteApplicationResponse) ProtoMessage() {}
func (x *DeleteApplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[9]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -569,7 +663,7 @@ func (x *DeleteApplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteApplicationResponse.ProtoReflect.Descriptor instead.
func (*DeleteApplicationResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{9}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{11}
}
func (x *DeleteApplicationResponse) GetApplicationId() string {
@@ -593,7 +687,7 @@ type RenameApplicationConfigFileRequest struct {
func (x *RenameApplicationConfigFileRequest) Reset() {
*x = RenameApplicationConfigFileRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[10]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -606,7 +700,7 @@ func (x *RenameApplicationConfigFileRequest) String() string {
func (*RenameApplicationConfigFileRequest) ProtoMessage() {}
func (x *RenameApplicationConfigFileRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[10]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -619,7 +713,7 @@ func (x *RenameApplicationConfigFileRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use RenameApplicationConfigFileRequest.ProtoReflect.Descriptor instead.
func (*RenameApplicationConfigFileRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{10}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{12}
}
func (x *RenameApplicationConfigFileRequest) GetApplicationIds() []string {
@@ -645,7 +739,7 @@ type RenameApplicationConfigFileResponse struct {
func (x *RenameApplicationConfigFileResponse) Reset() {
*x = RenameApplicationConfigFileResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[11]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -658,7 +752,7 @@ func (x *RenameApplicationConfigFileResponse) String() string {
func (*RenameApplicationConfigFileResponse) ProtoMessage() {}
func (x *RenameApplicationConfigFileResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[11]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -671,7 +765,7 @@ func (x *RenameApplicationConfigFileResponse) ProtoReflect() protoreflect.Messag
// Deprecated: Use RenameApplicationConfigFileResponse.ProtoReflect.Descriptor instead.
func (*RenameApplicationConfigFileResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{11}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{13}
}
type GetDeploymentRequest struct {
@@ -685,7 +779,7 @@ type GetDeploymentRequest struct {
func (x *GetDeploymentRequest) Reset() {
*x = GetDeploymentRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[12]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -698,7 +792,7 @@ func (x *GetDeploymentRequest) String() string {
func (*GetDeploymentRequest) ProtoMessage() {}
func (x *GetDeploymentRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[12]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -711,7 +805,7 @@ func (x *GetDeploymentRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetDeploymentRequest.ProtoReflect.Descriptor instead.
func (*GetDeploymentRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{12}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{14}
}
func (x *GetDeploymentRequest) GetDeploymentId() string {
@@ -732,7 +826,7 @@ type GetDeploymentResponse struct {
func (x *GetDeploymentResponse) Reset() {
*x = GetDeploymentResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[13]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -745,7 +839,7 @@ func (x *GetDeploymentResponse) String() string {
func (*GetDeploymentResponse) ProtoMessage() {}
func (x *GetDeploymentResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[13]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -758,7 +852,7 @@ func (x *GetDeploymentResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetDeploymentResponse.ProtoReflect.Descriptor instead.
func (*GetDeploymentResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{13}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{15}
}
func (x *GetDeploymentResponse) GetDeployment() *model.Deployment {
@@ -779,7 +873,7 @@ type GetCommandRequest struct {
func (x *GetCommandRequest) Reset() {
*x = GetCommandRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[14]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -792,7 +886,7 @@ func (x *GetCommandRequest) String() string {
func (*GetCommandRequest) ProtoMessage() {}
func (x *GetCommandRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[14]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -805,7 +899,7 @@ func (x *GetCommandRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetCommandRequest.ProtoReflect.Descriptor instead.
func (*GetCommandRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{14}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{16}
}
func (x *GetCommandRequest) GetCommandId() string {
@@ -826,7 +920,7 @@ type GetCommandResponse struct {
func (x *GetCommandResponse) Reset() {
*x = GetCommandResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[15]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -839,7 +933,7 @@ func (x *GetCommandResponse) String() string {
func (*GetCommandResponse) ProtoMessage() {}
func (x *GetCommandResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[15]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -852,7 +946,7 @@ func (x *GetCommandResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetCommandResponse.ProtoReflect.Descriptor instead.
func (*GetCommandResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{15}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{17}
}
func (x *GetCommandResponse) GetCommand() *model.Command {
@@ -873,7 +967,7 @@ type EnablePipedRequest struct {
func (x *EnablePipedRequest) Reset() {
*x = EnablePipedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[16]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -886,7 +980,7 @@ func (x *EnablePipedRequest) String() string {
func (*EnablePipedRequest) ProtoMessage() {}
func (x *EnablePipedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[16]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -899,7 +993,7 @@ func (x *EnablePipedRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use EnablePipedRequest.ProtoReflect.Descriptor instead.
func (*EnablePipedRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{16}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{18}
}
func (x *EnablePipedRequest) GetPipedId() string {
@@ -918,7 +1012,7 @@ type EnablePipedResponse struct {
func (x *EnablePipedResponse) Reset() {
*x = EnablePipedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[17]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -931,7 +1025,7 @@ func (x *EnablePipedResponse) String() string {
func (*EnablePipedResponse) ProtoMessage() {}
func (x *EnablePipedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[17]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -944,7 +1038,7 @@ func (x *EnablePipedResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use EnablePipedResponse.ProtoReflect.Descriptor instead.
func (*EnablePipedResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{17}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{19}
}
type DisablePipedRequest struct {
@@ -958,7 +1052,7 @@ type DisablePipedRequest struct {
func (x *DisablePipedRequest) Reset() {
*x = DisablePipedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[18]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -971,7 +1065,7 @@ func (x *DisablePipedRequest) String() string {
func (*DisablePipedRequest) ProtoMessage() {}
func (x *DisablePipedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[18]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -984,7 +1078,7 @@ func (x *DisablePipedRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DisablePipedRequest.ProtoReflect.Descriptor instead.
func (*DisablePipedRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{18}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{20}
}
func (x *DisablePipedRequest) GetPipedId() string {
@@ -1003,7 +1097,7 @@ type DisablePipedResponse struct {
func (x *DisablePipedResponse) Reset() {
*x = DisablePipedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[19]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1016,7 +1110,7 @@ func (x *DisablePipedResponse) String() string {
func (*DisablePipedResponse) ProtoMessage() {}
func (x *DisablePipedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[19]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1029,7 +1123,7 @@ func (x *DisablePipedResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DisablePipedResponse.ProtoReflect.Descriptor instead.
func (*DisablePipedResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{19}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{21}
}
type RegisterEventRequest struct {
@@ -1045,7 +1139,7 @@ type RegisterEventRequest struct {
func (x *RegisterEventRequest) Reset() {
*x = RegisterEventRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[20]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1058,7 +1152,7 @@ func (x *RegisterEventRequest) String() string {
func (*RegisterEventRequest) ProtoMessage() {}
func (x *RegisterEventRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[20]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1071,7 +1165,7 @@ func (x *RegisterEventRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RegisterEventRequest.ProtoReflect.Descriptor instead.
func (*RegisterEventRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{20}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{22}
}
func (x *RegisterEventRequest) GetName() string {
@@ -1106,7 +1200,7 @@ type RegisterEventResponse struct {
func (x *RegisterEventResponse) Reset() {
*x = RegisterEventResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[21]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1119,7 +1213,7 @@ func (x *RegisterEventResponse) String() string {
func (*RegisterEventResponse) ProtoMessage() {}
func (x *RegisterEventResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[21]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1132,7 +1226,7 @@ func (x *RegisterEventResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RegisterEventResponse.ProtoReflect.Descriptor instead.
func (*RegisterEventResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{21}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{23}
}
func (x *RegisterEventResponse) GetEventId() string {
@@ -1158,7 +1252,7 @@ type RequestPlanPreviewRequest struct {
func (x *RequestPlanPreviewRequest) Reset() {
*x = RequestPlanPreviewRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[22]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1171,7 +1265,7 @@ func (x *RequestPlanPreviewRequest) String() string {
func (*RequestPlanPreviewRequest) ProtoMessage() {}
func (x *RequestPlanPreviewRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[22]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1184,7 +1278,7 @@ func (x *RequestPlanPreviewRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RequestPlanPreviewRequest.ProtoReflect.Descriptor instead.
func (*RequestPlanPreviewRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{22}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{24}
}
func (x *RequestPlanPreviewRequest) GetRepoRemoteUrl() string {
@@ -1233,7 +1327,7 @@ type RequestPlanPreviewResponse struct {
func (x *RequestPlanPreviewResponse) Reset() {
*x = RequestPlanPreviewResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[23]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1246,7 +1340,7 @@ func (x *RequestPlanPreviewResponse) String() string {
func (*RequestPlanPreviewResponse) ProtoMessage() {}
func (x *RequestPlanPreviewResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[23]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1259,7 +1353,7 @@ func (x *RequestPlanPreviewResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RequestPlanPreviewResponse.ProtoReflect.Descriptor instead.
func (*RequestPlanPreviewResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{23}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{25}
}
func (x *RequestPlanPreviewResponse) GetCommands() []string {
@@ -1282,7 +1376,7 @@ type GetPlanPreviewResultsRequest struct {
func (x *GetPlanPreviewResultsRequest) Reset() {
*x = GetPlanPreviewResultsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[24]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1295,7 +1389,7 @@ func (x *GetPlanPreviewResultsRequest) String() string {
func (*GetPlanPreviewResultsRequest) ProtoMessage() {}
func (x *GetPlanPreviewResultsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[24]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1308,7 +1402,7 @@ func (x *GetPlanPreviewResultsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetPlanPreviewResultsRequest.ProtoReflect.Descriptor instead.
func (*GetPlanPreviewResultsRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{24}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{26}
}
func (x *GetPlanPreviewResultsRequest) GetCommands() []string {
@@ -1336,7 +1430,7 @@ type GetPlanPreviewResultsResponse struct {
func (x *GetPlanPreviewResultsResponse) Reset() {
*x = GetPlanPreviewResultsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[25]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1349,7 +1443,7 @@ func (x *GetPlanPreviewResultsResponse) String() string {
func (*GetPlanPreviewResultsResponse) ProtoMessage() {}
func (x *GetPlanPreviewResultsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[25]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1362,7 +1456,7 @@ func (x *GetPlanPreviewResultsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetPlanPreviewResultsResponse.ProtoReflect.Descriptor instead.
func (*GetPlanPreviewResultsResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{25}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{27}
}
func (x *GetPlanPreviewResultsResponse) GetResults() []*model.PlanPreviewCommandResult {
@@ -1386,7 +1480,7 @@ type EncryptRequest struct {
func (x *EncryptRequest) Reset() {
*x = EncryptRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[26]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1399,7 +1493,7 @@ func (x *EncryptRequest) String() string {
func (*EncryptRequest) ProtoMessage() {}
func (x *EncryptRequest) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[26]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1412,7 +1506,7 @@ func (x *EncryptRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use EncryptRequest.ProtoReflect.Descriptor instead.
func (*EncryptRequest) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{26}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{28}
}
func (x *EncryptRequest) GetPlaintext() string {
@@ -1447,7 +1541,7 @@ type EncryptResponse struct {
func (x *EncryptResponse) Reset() {
*x = EncryptResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[27]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1460,7 +1554,7 @@ func (x *EncryptResponse) String() string {
func (*EncryptResponse) ProtoMessage() {}
func (x *EncryptResponse) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[27]
+ mi := &file_pkg_app_server_service_apiservice_service_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1473,7 +1567,7 @@ func (x *EncryptResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use EncryptResponse.ProtoReflect.Descriptor instead.
func (*EncryptResponse) Descriptor() ([]byte, []int) {
- return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{27}
+ return file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP(), []int{29}
}
func (x *EncryptResponse) GetCiphertext() string {
@@ -1557,227 +1651,245 @@ var file_pkg_app_server_service_apiservice_service_proto_rawDesc = []byte{
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16,
0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x4a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72,
- 0x02, 0x10, 0x01, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x2e, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
+ 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c,
+ 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
+ 0x72, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x1a, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x70,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x2e, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
+ 0x10, 0x01, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
+ 0x64, 0x22, 0x4a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a,
+ 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0d,
+ 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x4b, 0x0a,
+ 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0e, 0x61, 0x70,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x61, 0x70, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x85, 0x01, 0x0a, 0x22, 0x52,
+ 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x33, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x92,
+ 0x01, 0x04, 0x08, 0x01, 0x10, 0x32, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69,
+ 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
+ 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61,
+ 0x6d, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x0a, 0x14, 0x47, 0x65, 0x74,
+ 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
+ 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70,
+ 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x70, 0x6c,
+ 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65,
+ 0x6e, 0x74, 0x22, 0x3b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
+ 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
+ 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x22,
+ 0x3e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22,
+ 0x38, 0x0a, 0x12, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x64, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
- 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22,
- 0x85, 0x01, 0x0a, 0x22, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42,
- 0x0a, 0xfa, 0x42, 0x07, 0x92, 0x01, 0x04, 0x08, 0x01, 0x10, 0x32, 0x52, 0x0e, 0x61, 0x70, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x0c, 0x6e,
- 0x65, 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x46,
- 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x52, 0x65, 0x6e, 0x61, 0x6d,
- 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b,
- 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
- 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64,
- 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x15, 0x47,
- 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65,
- 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
- 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x70,
- 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f,
- 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a,
- 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
- 0x6e, 0x64, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
- 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f,
- 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f,
- 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d,
- 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x38, 0x0a, 0x12, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69,
- 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x70, 0x69,
- 0x70, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
- 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x69, 0x70, 0x65, 0x64, 0x49, 0x64, 0x22, 0x15,
- 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
- 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08,
- 0x70, 0x69, 0x70, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
- 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x69, 0x70, 0x65, 0x64, 0x49, 0x64,
- 0x22, 0x16, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x67,
- 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
- 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b,
- 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
- 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6b, 0x0a, 0x06, 0x6c,
- 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x72,
+ 0x52, 0x07, 0x70, 0x69, 0x70, 0x65, 0x64, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x45, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x39, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x64,
+ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
+ 0x10, 0x01, 0x52, 0x07, 0x70, 0x69, 0x70, 0x65, 0x64, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44,
+ 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72,
+ 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
+ 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
+ 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x42, 0x18, 0xfa, 0x42, 0x09, 0x9a, 0x01, 0x06, 0x22, 0x04, 0x72, 0x02, 0x10, 0x01, 0xfa,
+ 0x42, 0x09, 0x9a, 0x01, 0x06, 0x2a, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b,
+ 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
+ 0x10, 0x01, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xed, 0x01, 0x0a, 0x19,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69,
+ 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0f, 0x72, 0x65, 0x70,
+ 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70,
+ 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0b, 0x68, 0x65,
+ 0x61, 0x64, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
+ 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x42, 0x72,
+ 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
+ 0x10, 0x01, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x28,
+ 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x62, 0x61,
+ 0x73, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65,
+ 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x22, 0x02,
+ 0x28, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x38, 0x0a, 0x1a, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65,
+ 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x70, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e,
+ 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
+ 0x73, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x5a, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6c,
+ 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74,
+ 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
+ 0x10, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x22, 0x0a,
+ 0x08, 0x70, 0x69, 0x70, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
+ 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x69, 0x70, 0x65, 0x64, 0x49,
+ 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x5f, 0x65, 0x6e, 0x63, 0x6f,
+ 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65,
+ 0x36, 0x34, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x6e,
+ 0x63, 0x72, 0x79, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a,
+ 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68,
+ 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x32, 0x99, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x0f, 0x53, 0x79,
+ 0x6e, 0x63, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e,
+ 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30,
+ 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70,
+ 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x73, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47,
+ 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47,
+ 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41,
+ 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x72,
0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76,
- 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x18, 0xfa, 0x42, 0x09, 0x9a, 0x01, 0x06, 0x22, 0x04,
- 0x72, 0x02, 0x10, 0x01, 0xfa, 0x42, 0x09, 0x9a, 0x01, 0x06, 0x2a, 0x04, 0x72, 0x02, 0x10, 0x01,
- 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65,
- 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45,
- 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x08,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
- 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64,
- 0x22, 0xed, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e,
- 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f,
- 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x75, 0x72,
- 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
- 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x12,
- 0x28, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x68,
- 0x65, 0x61, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x0b, 0x68, 0x65, 0x61,
- 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
- 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x62, 0x72, 0x61, 0x6e,
- 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
- 0x01, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x21, 0x0a,
- 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, 0x07,
- 0xfa, 0x42, 0x04, 0x22, 0x02, 0x28, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
- 0x22, 0x38, 0x0a, 0x1a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50,
- 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a,
- 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
- 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x70, 0x0a, 0x1c, 0x47, 0x65,
- 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f,
- 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f,
- 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
- 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x5a, 0x0a, 0x1d,
- 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a,
- 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f,
- 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69,
- 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
- 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x45, 0x6e, 0x63,
- 0x72, 0x79, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x70,
- 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
- 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65,
- 0x78, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70,
- 0x69, 0x70, 0x65, 0x64, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34,
- 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x0e, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22,
- 0x3a, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
- 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x32, 0x98, 0x0d, 0x0a, 0x0a,
- 0x41, 0x50, 0x49, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0e, 0x41, 0x64,
- 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67,
- 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67,
- 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x76, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x79, 0x6e,
- 0x63, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
- 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x79,
- 0x6e, 0x63, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x72, 0x70, 0x63,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x10,
- 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x30, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
- 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41,
- 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73,
- 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7c, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x67,
- 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x32, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61,
- 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65,
- 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
- 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x6e,
- 0x61, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x70, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d,
- 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
- 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65,
- 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74,
- 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
- 0x6e, 0x64, 0x12, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74,
- 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e,
+ 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x7c, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x72, 0x70,
+ 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x7f, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x72, 0x70,
+ 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c,
+ 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x6e, 0x61,
+ 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c,
+ 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70,
+ 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41,
+ 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70,
+ 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12,
+ 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61,
+ 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70,
+ 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e,
+ 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70,
+ 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c,
+ 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x67, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2a,
0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70,
0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
- 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a,
- 0x0b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x12, 0x2b, 0x2e, 0x67,
- 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70,
- 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x72, 0x70, 0x63,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x0c, 0x44, 0x69, 0x73,
- 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x67, 0x72, 0x70, 0x63,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69,
- 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
+ 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x72, 0x70,
+ 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0b, 0x45, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x12, 0x2b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69,
- 0x63, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x12, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77,
- 0x12, 0x32, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
- 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65,
- 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, 0x15,
- 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
+ 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
- 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67,
+ 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
+ 0x50, 0x69, 0x70, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
+ 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69,
+ 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
+ 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52,
+ 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x32, 0x2e, 0x67,
0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72,
- 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x07, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70,
- 0x74, 0x12, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x63, 0x72,
- 0x79, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x72, 0x70,
- 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
- 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x2d, 0x63, 0x64, 0x2f, 0x70, 0x69, 0x70,
- 0x65, 0x63, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c,
+ 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x33, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
+ 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50,
+ 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x73, 0x12, 0x35, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50,
+ 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65,
+ 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x07, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x12, 0x27, 0x2e,
+ 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x70, 0x69, 0x70, 0x65, 0x2d, 0x63, 0x64, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x63, 0x64, 0x2f,
+ 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1792,7 +1904,7 @@ func file_pkg_app_server_service_apiservice_service_proto_rawDescGZIP() []byte {
return file_pkg_app_server_service_apiservice_service_proto_rawDescData
}
-var file_pkg_app_server_service_apiservice_service_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
+var file_pkg_app_server_service_apiservice_service_proto_msgTypes = make([]protoimpl.MessageInfo, 31)
var file_pkg_app_server_service_apiservice_service_proto_goTypes = []interface{}{
(*AddApplicationRequest)(nil), // 0: grpc.service.apiservice.AddApplicationRequest
(*AddApplicationResponse)(nil), // 1: grpc.service.apiservice.AddApplicationResponse
@@ -1802,73 +1914,77 @@ var file_pkg_app_server_service_apiservice_service_proto_goTypes = []interface{}
(*GetApplicationResponse)(nil), // 5: grpc.service.apiservice.GetApplicationResponse
(*ListApplicationsRequest)(nil), // 6: grpc.service.apiservice.ListApplicationsRequest
(*ListApplicationsResponse)(nil), // 7: grpc.service.apiservice.ListApplicationsResponse
- (*DeleteApplicationRequest)(nil), // 8: grpc.service.apiservice.DeleteApplicationRequest
- (*DeleteApplicationResponse)(nil), // 9: grpc.service.apiservice.DeleteApplicationResponse
- (*RenameApplicationConfigFileRequest)(nil), // 10: grpc.service.apiservice.RenameApplicationConfigFileRequest
- (*RenameApplicationConfigFileResponse)(nil), // 11: grpc.service.apiservice.RenameApplicationConfigFileResponse
- (*GetDeploymentRequest)(nil), // 12: grpc.service.apiservice.GetDeploymentRequest
- (*GetDeploymentResponse)(nil), // 13: grpc.service.apiservice.GetDeploymentResponse
- (*GetCommandRequest)(nil), // 14: grpc.service.apiservice.GetCommandRequest
- (*GetCommandResponse)(nil), // 15: grpc.service.apiservice.GetCommandResponse
- (*EnablePipedRequest)(nil), // 16: grpc.service.apiservice.EnablePipedRequest
- (*EnablePipedResponse)(nil), // 17: grpc.service.apiservice.EnablePipedResponse
- (*DisablePipedRequest)(nil), // 18: grpc.service.apiservice.DisablePipedRequest
- (*DisablePipedResponse)(nil), // 19: grpc.service.apiservice.DisablePipedResponse
- (*RegisterEventRequest)(nil), // 20: grpc.service.apiservice.RegisterEventRequest
- (*RegisterEventResponse)(nil), // 21: grpc.service.apiservice.RegisterEventResponse
- (*RequestPlanPreviewRequest)(nil), // 22: grpc.service.apiservice.RequestPlanPreviewRequest
- (*RequestPlanPreviewResponse)(nil), // 23: grpc.service.apiservice.RequestPlanPreviewResponse
- (*GetPlanPreviewResultsRequest)(nil), // 24: grpc.service.apiservice.GetPlanPreviewResultsRequest
- (*GetPlanPreviewResultsResponse)(nil), // 25: grpc.service.apiservice.GetPlanPreviewResultsResponse
- (*EncryptRequest)(nil), // 26: grpc.service.apiservice.EncryptRequest
- (*EncryptResponse)(nil), // 27: grpc.service.apiservice.EncryptResponse
- nil, // 28: grpc.service.apiservice.RegisterEventRequest.LabelsEntry
- (*model.ApplicationGitPath)(nil), // 29: model.ApplicationGitPath
- (model.ApplicationKind)(0), // 30: model.ApplicationKind
- (*model.Application)(nil), // 31: model.Application
- (*model.Deployment)(nil), // 32: model.Deployment
- (*model.Command)(nil), // 33: model.Command
- (*model.PlanPreviewCommandResult)(nil), // 34: model.PlanPreviewCommandResult
+ (*DisableApplicationRequest)(nil), // 8: grpc.service.apiservice.DisableApplicationRequest
+ (*DisableApplicationResponse)(nil), // 9: grpc.service.apiservice.DisableApplicationResponse
+ (*DeleteApplicationRequest)(nil), // 10: grpc.service.apiservice.DeleteApplicationRequest
+ (*DeleteApplicationResponse)(nil), // 11: grpc.service.apiservice.DeleteApplicationResponse
+ (*RenameApplicationConfigFileRequest)(nil), // 12: grpc.service.apiservice.RenameApplicationConfigFileRequest
+ (*RenameApplicationConfigFileResponse)(nil), // 13: grpc.service.apiservice.RenameApplicationConfigFileResponse
+ (*GetDeploymentRequest)(nil), // 14: grpc.service.apiservice.GetDeploymentRequest
+ (*GetDeploymentResponse)(nil), // 15: grpc.service.apiservice.GetDeploymentResponse
+ (*GetCommandRequest)(nil), // 16: grpc.service.apiservice.GetCommandRequest
+ (*GetCommandResponse)(nil), // 17: grpc.service.apiservice.GetCommandResponse
+ (*EnablePipedRequest)(nil), // 18: grpc.service.apiservice.EnablePipedRequest
+ (*EnablePipedResponse)(nil), // 19: grpc.service.apiservice.EnablePipedResponse
+ (*DisablePipedRequest)(nil), // 20: grpc.service.apiservice.DisablePipedRequest
+ (*DisablePipedResponse)(nil), // 21: grpc.service.apiservice.DisablePipedResponse
+ (*RegisterEventRequest)(nil), // 22: grpc.service.apiservice.RegisterEventRequest
+ (*RegisterEventResponse)(nil), // 23: grpc.service.apiservice.RegisterEventResponse
+ (*RequestPlanPreviewRequest)(nil), // 24: grpc.service.apiservice.RequestPlanPreviewRequest
+ (*RequestPlanPreviewResponse)(nil), // 25: grpc.service.apiservice.RequestPlanPreviewResponse
+ (*GetPlanPreviewResultsRequest)(nil), // 26: grpc.service.apiservice.GetPlanPreviewResultsRequest
+ (*GetPlanPreviewResultsResponse)(nil), // 27: grpc.service.apiservice.GetPlanPreviewResultsResponse
+ (*EncryptRequest)(nil), // 28: grpc.service.apiservice.EncryptRequest
+ (*EncryptResponse)(nil), // 29: grpc.service.apiservice.EncryptResponse
+ nil, // 30: grpc.service.apiservice.RegisterEventRequest.LabelsEntry
+ (*model.ApplicationGitPath)(nil), // 31: model.ApplicationGitPath
+ (model.ApplicationKind)(0), // 32: model.ApplicationKind
+ (*model.Application)(nil), // 33: model.Application
+ (*model.Deployment)(nil), // 34: model.Deployment
+ (*model.Command)(nil), // 35: model.Command
+ (*model.PlanPreviewCommandResult)(nil), // 36: model.PlanPreviewCommandResult
}
var file_pkg_app_server_service_apiservice_service_proto_depIdxs = []int32{
- 29, // 0: grpc.service.apiservice.AddApplicationRequest.git_path:type_name -> model.ApplicationGitPath
- 30, // 1: grpc.service.apiservice.AddApplicationRequest.kind:type_name -> model.ApplicationKind
- 31, // 2: grpc.service.apiservice.GetApplicationResponse.application:type_name -> model.Application
- 31, // 3: grpc.service.apiservice.ListApplicationsResponse.applications:type_name -> model.Application
- 32, // 4: grpc.service.apiservice.GetDeploymentResponse.deployment:type_name -> model.Deployment
- 33, // 5: grpc.service.apiservice.GetCommandResponse.command:type_name -> model.Command
- 28, // 6: grpc.service.apiservice.RegisterEventRequest.labels:type_name -> grpc.service.apiservice.RegisterEventRequest.LabelsEntry
- 34, // 7: grpc.service.apiservice.GetPlanPreviewResultsResponse.results:type_name -> model.PlanPreviewCommandResult
+ 31, // 0: grpc.service.apiservice.AddApplicationRequest.git_path:type_name -> model.ApplicationGitPath
+ 32, // 1: grpc.service.apiservice.AddApplicationRequest.kind:type_name -> model.ApplicationKind
+ 33, // 2: grpc.service.apiservice.GetApplicationResponse.application:type_name -> model.Application
+ 33, // 3: grpc.service.apiservice.ListApplicationsResponse.applications:type_name -> model.Application
+ 34, // 4: grpc.service.apiservice.GetDeploymentResponse.deployment:type_name -> model.Deployment
+ 35, // 5: grpc.service.apiservice.GetCommandResponse.command:type_name -> model.Command
+ 30, // 6: grpc.service.apiservice.RegisterEventRequest.labels:type_name -> grpc.service.apiservice.RegisterEventRequest.LabelsEntry
+ 36, // 7: grpc.service.apiservice.GetPlanPreviewResultsResponse.results:type_name -> model.PlanPreviewCommandResult
0, // 8: grpc.service.apiservice.APIService.AddApplication:input_type -> grpc.service.apiservice.AddApplicationRequest
2, // 9: grpc.service.apiservice.APIService.SyncApplication:input_type -> grpc.service.apiservice.SyncApplicationRequest
4, // 10: grpc.service.apiservice.APIService.GetApplication:input_type -> grpc.service.apiservice.GetApplicationRequest
6, // 11: grpc.service.apiservice.APIService.ListApplications:input_type -> grpc.service.apiservice.ListApplicationsRequest
- 8, // 12: grpc.service.apiservice.APIService.DeleteApplication:input_type -> grpc.service.apiservice.DeleteApplicationRequest
- 10, // 13: grpc.service.apiservice.APIService.RenameApplicationConfigFile:input_type -> grpc.service.apiservice.RenameApplicationConfigFileRequest
- 12, // 14: grpc.service.apiservice.APIService.GetDeployment:input_type -> grpc.service.apiservice.GetDeploymentRequest
- 14, // 15: grpc.service.apiservice.APIService.GetCommand:input_type -> grpc.service.apiservice.GetCommandRequest
- 16, // 16: grpc.service.apiservice.APIService.EnablePiped:input_type -> grpc.service.apiservice.EnablePipedRequest
- 18, // 17: grpc.service.apiservice.APIService.DisablePiped:input_type -> grpc.service.apiservice.DisablePipedRequest
- 20, // 18: grpc.service.apiservice.APIService.RegisterEvent:input_type -> grpc.service.apiservice.RegisterEventRequest
- 22, // 19: grpc.service.apiservice.APIService.RequestPlanPreview:input_type -> grpc.service.apiservice.RequestPlanPreviewRequest
- 24, // 20: grpc.service.apiservice.APIService.GetPlanPreviewResults:input_type -> grpc.service.apiservice.GetPlanPreviewResultsRequest
- 26, // 21: grpc.service.apiservice.APIService.Encrypt:input_type -> grpc.service.apiservice.EncryptRequest
- 1, // 22: grpc.service.apiservice.APIService.AddApplication:output_type -> grpc.service.apiservice.AddApplicationResponse
- 3, // 23: grpc.service.apiservice.APIService.SyncApplication:output_type -> grpc.service.apiservice.SyncApplicationResponse
- 5, // 24: grpc.service.apiservice.APIService.GetApplication:output_type -> grpc.service.apiservice.GetApplicationResponse
- 7, // 25: grpc.service.apiservice.APIService.ListApplications:output_type -> grpc.service.apiservice.ListApplicationsResponse
- 9, // 26: grpc.service.apiservice.APIService.DeleteApplication:output_type -> grpc.service.apiservice.DeleteApplicationResponse
- 11, // 27: grpc.service.apiservice.APIService.RenameApplicationConfigFile:output_type -> grpc.service.apiservice.RenameApplicationConfigFileResponse
- 13, // 28: grpc.service.apiservice.APIService.GetDeployment:output_type -> grpc.service.apiservice.GetDeploymentResponse
- 15, // 29: grpc.service.apiservice.APIService.GetCommand:output_type -> grpc.service.apiservice.GetCommandResponse
- 17, // 30: grpc.service.apiservice.APIService.EnablePiped:output_type -> grpc.service.apiservice.EnablePipedResponse
- 19, // 31: grpc.service.apiservice.APIService.DisablePiped:output_type -> grpc.service.apiservice.DisablePipedResponse
- 21, // 32: grpc.service.apiservice.APIService.RegisterEvent:output_type -> grpc.service.apiservice.RegisterEventResponse
- 23, // 33: grpc.service.apiservice.APIService.RequestPlanPreview:output_type -> grpc.service.apiservice.RequestPlanPreviewResponse
- 25, // 34: grpc.service.apiservice.APIService.GetPlanPreviewResults:output_type -> grpc.service.apiservice.GetPlanPreviewResultsResponse
- 27, // 35: grpc.service.apiservice.APIService.Encrypt:output_type -> grpc.service.apiservice.EncryptResponse
- 22, // [22:36] is the sub-list for method output_type
- 8, // [8:22] is the sub-list for method input_type
+ 10, // 12: grpc.service.apiservice.APIService.DeleteApplication:input_type -> grpc.service.apiservice.DeleteApplicationRequest
+ 8, // 13: grpc.service.apiservice.APIService.DisableApplication:input_type -> grpc.service.apiservice.DisableApplicationRequest
+ 12, // 14: grpc.service.apiservice.APIService.RenameApplicationConfigFile:input_type -> grpc.service.apiservice.RenameApplicationConfigFileRequest
+ 14, // 15: grpc.service.apiservice.APIService.GetDeployment:input_type -> grpc.service.apiservice.GetDeploymentRequest
+ 16, // 16: grpc.service.apiservice.APIService.GetCommand:input_type -> grpc.service.apiservice.GetCommandRequest
+ 18, // 17: grpc.service.apiservice.APIService.EnablePiped:input_type -> grpc.service.apiservice.EnablePipedRequest
+ 20, // 18: grpc.service.apiservice.APIService.DisablePiped:input_type -> grpc.service.apiservice.DisablePipedRequest
+ 22, // 19: grpc.service.apiservice.APIService.RegisterEvent:input_type -> grpc.service.apiservice.RegisterEventRequest
+ 24, // 20: grpc.service.apiservice.APIService.RequestPlanPreview:input_type -> grpc.service.apiservice.RequestPlanPreviewRequest
+ 26, // 21: grpc.service.apiservice.APIService.GetPlanPreviewResults:input_type -> grpc.service.apiservice.GetPlanPreviewResultsRequest
+ 28, // 22: grpc.service.apiservice.APIService.Encrypt:input_type -> grpc.service.apiservice.EncryptRequest
+ 1, // 23: grpc.service.apiservice.APIService.AddApplication:output_type -> grpc.service.apiservice.AddApplicationResponse
+ 3, // 24: grpc.service.apiservice.APIService.SyncApplication:output_type -> grpc.service.apiservice.SyncApplicationResponse
+ 5, // 25: grpc.service.apiservice.APIService.GetApplication:output_type -> grpc.service.apiservice.GetApplicationResponse
+ 7, // 26: grpc.service.apiservice.APIService.ListApplications:output_type -> grpc.service.apiservice.ListApplicationsResponse
+ 11, // 27: grpc.service.apiservice.APIService.DeleteApplication:output_type -> grpc.service.apiservice.DeleteApplicationResponse
+ 9, // 28: grpc.service.apiservice.APIService.DisableApplication:output_type -> grpc.service.apiservice.DisableApplicationResponse
+ 13, // 29: grpc.service.apiservice.APIService.RenameApplicationConfigFile:output_type -> grpc.service.apiservice.RenameApplicationConfigFileResponse
+ 15, // 30: grpc.service.apiservice.APIService.GetDeployment:output_type -> grpc.service.apiservice.GetDeploymentResponse
+ 17, // 31: grpc.service.apiservice.APIService.GetCommand:output_type -> grpc.service.apiservice.GetCommandResponse
+ 19, // 32: grpc.service.apiservice.APIService.EnablePiped:output_type -> grpc.service.apiservice.EnablePipedResponse
+ 21, // 33: grpc.service.apiservice.APIService.DisablePiped:output_type -> grpc.service.apiservice.DisablePipedResponse
+ 23, // 34: grpc.service.apiservice.APIService.RegisterEvent:output_type -> grpc.service.apiservice.RegisterEventResponse
+ 25, // 35: grpc.service.apiservice.APIService.RequestPlanPreview:output_type -> grpc.service.apiservice.RequestPlanPreviewResponse
+ 27, // 36: grpc.service.apiservice.APIService.GetPlanPreviewResults:output_type -> grpc.service.apiservice.GetPlanPreviewResultsResponse
+ 29, // 37: grpc.service.apiservice.APIService.Encrypt:output_type -> grpc.service.apiservice.EncryptResponse
+ 23, // [23:38] is the sub-list for method output_type
+ 8, // [8:23] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
@@ -1977,7 +2093,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteApplicationRequest); i {
+ switch v := v.(*DisableApplicationRequest); i {
case 0:
return &v.state
case 1:
@@ -1989,7 +2105,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteApplicationResponse); i {
+ switch v := v.(*DisableApplicationResponse); i {
case 0:
return &v.state
case 1:
@@ -2001,7 +2117,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RenameApplicationConfigFileRequest); i {
+ switch v := v.(*DeleteApplicationRequest); i {
case 0:
return &v.state
case 1:
@@ -2013,7 +2129,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RenameApplicationConfigFileResponse); i {
+ switch v := v.(*DeleteApplicationResponse); i {
case 0:
return &v.state
case 1:
@@ -2025,7 +2141,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetDeploymentRequest); i {
+ switch v := v.(*RenameApplicationConfigFileRequest); i {
case 0:
return &v.state
case 1:
@@ -2037,7 +2153,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetDeploymentResponse); i {
+ switch v := v.(*RenameApplicationConfigFileResponse); i {
case 0:
return &v.state
case 1:
@@ -2049,7 +2165,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetCommandRequest); i {
+ switch v := v.(*GetDeploymentRequest); i {
case 0:
return &v.state
case 1:
@@ -2061,7 +2177,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetCommandResponse); i {
+ switch v := v.(*GetDeploymentResponse); i {
case 0:
return &v.state
case 1:
@@ -2073,7 +2189,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EnablePipedRequest); i {
+ switch v := v.(*GetCommandRequest); i {
case 0:
return &v.state
case 1:
@@ -2085,7 +2201,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EnablePipedResponse); i {
+ switch v := v.(*GetCommandResponse); i {
case 0:
return &v.state
case 1:
@@ -2097,7 +2213,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DisablePipedRequest); i {
+ switch v := v.(*EnablePipedRequest); i {
case 0:
return &v.state
case 1:
@@ -2109,7 +2225,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DisablePipedResponse); i {
+ switch v := v.(*EnablePipedResponse); i {
case 0:
return &v.state
case 1:
@@ -2121,7 +2237,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RegisterEventRequest); i {
+ switch v := v.(*DisablePipedRequest); i {
case 0:
return &v.state
case 1:
@@ -2133,7 +2249,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RegisterEventResponse); i {
+ switch v := v.(*DisablePipedResponse); i {
case 0:
return &v.state
case 1:
@@ -2145,7 +2261,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RequestPlanPreviewRequest); i {
+ switch v := v.(*RegisterEventRequest); i {
case 0:
return &v.state
case 1:
@@ -2157,7 +2273,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RequestPlanPreviewResponse); i {
+ switch v := v.(*RegisterEventResponse); i {
case 0:
return &v.state
case 1:
@@ -2169,7 +2285,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetPlanPreviewResultsRequest); i {
+ switch v := v.(*RequestPlanPreviewRequest); i {
case 0:
return &v.state
case 1:
@@ -2181,7 +2297,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetPlanPreviewResultsResponse); i {
+ switch v := v.(*RequestPlanPreviewResponse); i {
case 0:
return &v.state
case 1:
@@ -2193,7 +2309,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EncryptRequest); i {
+ switch v := v.(*GetPlanPreviewResultsRequest); i {
case 0:
return &v.state
case 1:
@@ -2205,6 +2321,30 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
}
}
file_pkg_app_server_service_apiservice_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetPlanPreviewResultsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pkg_app_server_service_apiservice_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EncryptRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pkg_app_server_service_apiservice_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EncryptResponse); i {
case 0:
return &v.state
@@ -2223,7 +2363,7 @@ func file_pkg_app_server_service_apiservice_service_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pkg_app_server_service_apiservice_service_proto_rawDesc,
NumEnums: 0,
- NumMessages: 29,
+ NumMessages: 31,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/pkg/app/server/service/apiservice/service.pb.validate.go b/pkg/app/server/service/apiservice/service.pb.validate.go
index 63580a9825..72b935946d 100644
--- a/pkg/app/server/service/apiservice/service.pb.validate.go
+++ b/pkg/app/server/service/apiservice/service.pb.validate.go
@@ -1049,6 +1049,232 @@ var _ interface {
ErrorName() string
} = ListApplicationsResponseValidationError{}
+// Validate checks the field values on DisableApplicationRequest with the rules
+// defined in the proto definition for this message. If any rules are
+// violated, the first error encountered is returned, or nil if there are no violations.
+func (m *DisableApplicationRequest) Validate() error {
+ return m.validate(false)
+}
+
+// ValidateAll checks the field values on DisableApplicationRequest with the
+// rules defined in the proto definition for this message. If any rules are
+// violated, the result is a list of violation errors wrapped in
+// DisableApplicationRequestMultiError, or nil if none found.
+func (m *DisableApplicationRequest) ValidateAll() error {
+ return m.validate(true)
+}
+
+func (m *DisableApplicationRequest) validate(all bool) error {
+ if m == nil {
+ return nil
+ }
+
+ var errors []error
+
+ if utf8.RuneCountInString(m.GetApplicationId()) < 1 {
+ err := DisableApplicationRequestValidationError{
+ field: "ApplicationId",
+ reason: "value length must be at least 1 runes",
+ }
+ if !all {
+ return err
+ }
+ errors = append(errors, err)
+ }
+
+ if len(errors) > 0 {
+ return DisableApplicationRequestMultiError(errors)
+ }
+
+ return nil
+}
+
+// DisableApplicationRequestMultiError is an error wrapping multiple validation
+// errors returned by DisableApplicationRequest.ValidateAll() if the
+// designated constraints aren't met.
+type DisableApplicationRequestMultiError []error
+
+// Error returns a concatenation of all the error messages it wraps.
+func (m DisableApplicationRequestMultiError) Error() string {
+ var msgs []string
+ for _, err := range m {
+ msgs = append(msgs, err.Error())
+ }
+ return strings.Join(msgs, "; ")
+}
+
+// AllErrors returns a list of validation violation errors.
+func (m DisableApplicationRequestMultiError) AllErrors() []error { return m }
+
+// DisableApplicationRequestValidationError is the validation error returned by
+// DisableApplicationRequest.Validate if the designated constraints aren't met.
+type DisableApplicationRequestValidationError struct {
+ field string
+ reason string
+ cause error
+ key bool
+}
+
+// Field function returns field value.
+func (e DisableApplicationRequestValidationError) Field() string { return e.field }
+
+// Reason function returns reason value.
+func (e DisableApplicationRequestValidationError) Reason() string { return e.reason }
+
+// Cause function returns cause value.
+func (e DisableApplicationRequestValidationError) Cause() error { return e.cause }
+
+// Key function returns key value.
+func (e DisableApplicationRequestValidationError) Key() bool { return e.key }
+
+// ErrorName returns error name.
+func (e DisableApplicationRequestValidationError) ErrorName() string {
+ return "DisableApplicationRequestValidationError"
+}
+
+// Error satisfies the builtin error interface
+func (e DisableApplicationRequestValidationError) Error() string {
+ cause := ""
+ if e.cause != nil {
+ cause = fmt.Sprintf(" | caused by: %v", e.cause)
+ }
+
+ key := ""
+ if e.key {
+ key = "key for "
+ }
+
+ return fmt.Sprintf(
+ "invalid %sDisableApplicationRequest.%s: %s%s",
+ key,
+ e.field,
+ e.reason,
+ cause)
+}
+
+var _ error = DisableApplicationRequestValidationError{}
+
+var _ interface {
+ Field() string
+ Reason() string
+ Key() bool
+ Cause() error
+ ErrorName() string
+} = DisableApplicationRequestValidationError{}
+
+// Validate checks the field values on DisableApplicationResponse with the
+// rules defined in the proto definition for this message. If any rules are
+// violated, the first error encountered is returned, or nil if there are no violations.
+func (m *DisableApplicationResponse) Validate() error {
+ return m.validate(false)
+}
+
+// ValidateAll checks the field values on DisableApplicationResponse with the
+// rules defined in the proto definition for this message. If any rules are
+// violated, the result is a list of violation errors wrapped in
+// DisableApplicationResponseMultiError, or nil if none found.
+func (m *DisableApplicationResponse) ValidateAll() error {
+ return m.validate(true)
+}
+
+func (m *DisableApplicationResponse) validate(all bool) error {
+ if m == nil {
+ return nil
+ }
+
+ var errors []error
+
+ if utf8.RuneCountInString(m.GetApplicationId()) < 1 {
+ err := DisableApplicationResponseValidationError{
+ field: "ApplicationId",
+ reason: "value length must be at least 1 runes",
+ }
+ if !all {
+ return err
+ }
+ errors = append(errors, err)
+ }
+
+ if len(errors) > 0 {
+ return DisableApplicationResponseMultiError(errors)
+ }
+
+ return nil
+}
+
+// DisableApplicationResponseMultiError is an error wrapping multiple
+// validation errors returned by DisableApplicationResponse.ValidateAll() if
+// the designated constraints aren't met.
+type DisableApplicationResponseMultiError []error
+
+// Error returns a concatenation of all the error messages it wraps.
+func (m DisableApplicationResponseMultiError) Error() string {
+ var msgs []string
+ for _, err := range m {
+ msgs = append(msgs, err.Error())
+ }
+ return strings.Join(msgs, "; ")
+}
+
+// AllErrors returns a list of validation violation errors.
+func (m DisableApplicationResponseMultiError) AllErrors() []error { return m }
+
+// DisableApplicationResponseValidationError is the validation error returned
+// by DisableApplicationResponse.Validate if the designated constraints aren't met.
+type DisableApplicationResponseValidationError struct {
+ field string
+ reason string
+ cause error
+ key bool
+}
+
+// Field function returns field value.
+func (e DisableApplicationResponseValidationError) Field() string { return e.field }
+
+// Reason function returns reason value.
+func (e DisableApplicationResponseValidationError) Reason() string { return e.reason }
+
+// Cause function returns cause value.
+func (e DisableApplicationResponseValidationError) Cause() error { return e.cause }
+
+// Key function returns key value.
+func (e DisableApplicationResponseValidationError) Key() bool { return e.key }
+
+// ErrorName returns error name.
+func (e DisableApplicationResponseValidationError) ErrorName() string {
+ return "DisableApplicationResponseValidationError"
+}
+
+// Error satisfies the builtin error interface
+func (e DisableApplicationResponseValidationError) Error() string {
+ cause := ""
+ if e.cause != nil {
+ cause = fmt.Sprintf(" | caused by: %v", e.cause)
+ }
+
+ key := ""
+ if e.key {
+ key = "key for "
+ }
+
+ return fmt.Sprintf(
+ "invalid %sDisableApplicationResponse.%s: %s%s",
+ key,
+ e.field,
+ e.reason,
+ cause)
+}
+
+var _ error = DisableApplicationResponseValidationError{}
+
+var _ interface {
+ Field() string
+ Reason() string
+ Key() bool
+ Cause() error
+ ErrorName() string
+} = DisableApplicationResponseValidationError{}
+
// Validate checks the field values on DeleteApplicationRequest with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
diff --git a/pkg/app/server/service/apiservice/service.proto b/pkg/app/server/service/apiservice/service.proto
index 2c63a7089a..536511440f 100644
--- a/pkg/app/server/service/apiservice/service.proto
+++ b/pkg/app/server/service/apiservice/service.proto
@@ -32,6 +32,7 @@ service APIService {
rpc GetApplication(GetApplicationRequest) returns (GetApplicationResponse) {}
rpc ListApplications(ListApplicationsRequest) returns (ListApplicationsResponse) {}
rpc DeleteApplication(DeleteApplicationRequest) returns (DeleteApplicationResponse) {}
+ rpc DisableApplication(DisableApplicationRequest) returns (DisableApplicationResponse) {}
rpc RenameApplicationConfigFile(RenameApplicationConfigFileRequest) returns (RenameApplicationConfigFileResponse) {}
rpc GetDeployment(GetDeploymentRequest) returns (GetDeploymentResponse) {}
@@ -95,6 +96,14 @@ message ListApplicationsResponse {
string cursor = 2;
}
+message DisableApplicationRequest {
+ string application_id = 1 [(validate.rules).string.min_len = 1];
+}
+
+message DisableApplicationResponse {
+ string application_id = 1 [(validate.rules).string.min_len = 1];
+}
+
message DeleteApplicationRequest {
string application_id = 1 [(validate.rules).string.min_len = 1];
}
diff --git a/pkg/app/server/service/apiservice/service_grpc.pb.go b/pkg/app/server/service/apiservice/service_grpc.pb.go
index 481d0390c6..5771236c9f 100644
--- a/pkg/app/server/service/apiservice/service_grpc.pb.go
+++ b/pkg/app/server/service/apiservice/service_grpc.pb.go
@@ -27,6 +27,7 @@ type APIServiceClient interface {
GetApplication(ctx context.Context, in *GetApplicationRequest, opts ...grpc.CallOption) (*GetApplicationResponse, error)
ListApplications(ctx context.Context, in *ListApplicationsRequest, opts ...grpc.CallOption) (*ListApplicationsResponse, error)
DeleteApplication(ctx context.Context, in *DeleteApplicationRequest, opts ...grpc.CallOption) (*DeleteApplicationResponse, error)
+ DisableApplication(ctx context.Context, in *DisableApplicationRequest, opts ...grpc.CallOption) (*DisableApplicationResponse, error)
RenameApplicationConfigFile(ctx context.Context, in *RenameApplicationConfigFileRequest, opts ...grpc.CallOption) (*RenameApplicationConfigFileResponse, error)
GetDeployment(ctx context.Context, in *GetDeploymentRequest, opts ...grpc.CallOption) (*GetDeploymentResponse, error)
GetCommand(ctx context.Context, in *GetCommandRequest, opts ...grpc.CallOption) (*GetCommandResponse, error)
@@ -91,6 +92,15 @@ func (c *aPIServiceClient) DeleteApplication(ctx context.Context, in *DeleteAppl
return out, nil
}
+func (c *aPIServiceClient) DisableApplication(ctx context.Context, in *DisableApplicationRequest, opts ...grpc.CallOption) (*DisableApplicationResponse, error) {
+ out := new(DisableApplicationResponse)
+ err := c.cc.Invoke(ctx, "/grpc.service.apiservice.APIService/DisableApplication", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *aPIServiceClient) RenameApplicationConfigFile(ctx context.Context, in *RenameApplicationConfigFileRequest, opts ...grpc.CallOption) (*RenameApplicationConfigFileResponse, error) {
out := new(RenameApplicationConfigFileResponse)
err := c.cc.Invoke(ctx, "/grpc.service.apiservice.APIService/RenameApplicationConfigFile", in, out, opts...)
@@ -181,6 +191,7 @@ type APIServiceServer interface {
GetApplication(context.Context, *GetApplicationRequest) (*GetApplicationResponse, error)
ListApplications(context.Context, *ListApplicationsRequest) (*ListApplicationsResponse, error)
DeleteApplication(context.Context, *DeleteApplicationRequest) (*DeleteApplicationResponse, error)
+ DisableApplication(context.Context, *DisableApplicationRequest) (*DisableApplicationResponse, error)
RenameApplicationConfigFile(context.Context, *RenameApplicationConfigFileRequest) (*RenameApplicationConfigFileResponse, error)
GetDeployment(context.Context, *GetDeploymentRequest) (*GetDeploymentResponse, error)
GetCommand(context.Context, *GetCommandRequest) (*GetCommandResponse, error)
@@ -212,6 +223,9 @@ func (UnimplementedAPIServiceServer) ListApplications(context.Context, *ListAppl
func (UnimplementedAPIServiceServer) DeleteApplication(context.Context, *DeleteApplicationRequest) (*DeleteApplicationResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteApplication not implemented")
}
+func (UnimplementedAPIServiceServer) DisableApplication(context.Context, *DisableApplicationRequest) (*DisableApplicationResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DisableApplication not implemented")
+}
func (UnimplementedAPIServiceServer) RenameApplicationConfigFile(context.Context, *RenameApplicationConfigFileRequest) (*RenameApplicationConfigFileResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RenameApplicationConfigFile not implemented")
}
@@ -342,6 +356,24 @@ func _APIService_DeleteApplication_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler)
}
+func _APIService_DisableApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DisableApplicationRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(APIServiceServer).DisableApplication(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/grpc.service.apiservice.APIService/DisableApplication",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(APIServiceServer).DisableApplication(ctx, req.(*DisableApplicationRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _APIService_RenameApplicationConfigFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RenameApplicationConfigFileRequest)
if err := dec(in); err != nil {
@@ -531,6 +563,10 @@ var APIService_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteApplication",
Handler: _APIService_DeleteApplication_Handler,
},
+ {
+ MethodName: "DisableApplication",
+ Handler: _APIService_DisableApplication_Handler,
+ },
{
MethodName: "RenameApplicationConfigFile",
Handler: _APIService_RenameApplicationConfigFile_Handler,
diff --git a/pkg/config/application_ecs.go b/pkg/config/application_ecs.go
index cc4c1d7134..0246e90433 100644
--- a/pkg/config/application_ecs.go
+++ b/pkg/config/application_ecs.go
@@ -14,7 +14,9 @@
package config
-import "encoding/json"
+import (
+ "encoding/json"
+)
// ECSApplicationSpec represents an application configuration for ECS application.
type ECSApplicationSpec struct {
@@ -34,9 +36,16 @@ func (s *ECSApplicationSpec) Validate() error {
}
type ECSDeploymentInput struct {
+ // The Amazon Resource Name (ARN) that identifies the cluster.
+ ClusterArn string `json:"clusterArn"`
+ // The launch type on which to run your task.
+ // https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html
+ // Default is FARGATE
+ LaunchType string `json:"launchType" default:"FARGATE"`
+ // VpcConfiguration ECSVpcConfiguration `json:"awsvpcConfiguration"`
+ AwsVpcConfiguration ECSVpcConfiguration `json:"awsvpcConfiguration"`
// The name of service definition file placing in application directory.
- // Default is service.json
- ServiceDefinitionFile string `json:"serviceDefinitionFile" default:"service.json"`
+ ServiceDefinitionFile string `json:"serviceDefinitionFile"`
// The name of task definition file placing in application directory.
// Default is taskdef.json
TaskDefinitionFile string `json:"taskDefinitionFile" default:"taskdef.json"`
@@ -47,6 +56,16 @@ type ECSDeploymentInput struct {
AutoRollback *bool `json:"autoRollback,omitempty" default:"true"`
}
+func (in *ECSDeploymentInput) IsStandaloneTask() bool {
+ return in.ServiceDefinitionFile == ""
+}
+
+type ECSVpcConfiguration struct {
+ Subnets []string
+ AssignPublicIP string
+ SecurityGroups []string
+}
+
type ECSTargetGroups struct {
Primary json.RawMessage `json:"primary"`
Canary json.RawMessage `json:"canary"`
diff --git a/pkg/config/application_ecs_test.go b/pkg/config/application_ecs_test.go
index bd0bcb69fa..85e74159b8 100644
--- a/pkg/config/application_ecs_test.go
+++ b/pkg/config/application_ecs_test.go
@@ -28,6 +28,7 @@ func TestECSApplicationConfig(t *testing.T) {
fileName string
expectedKind Kind
expectedAPIVersion string
+ expectedLaunchType string
expectedSpec interface{}
expectedError error
}{
@@ -60,6 +61,7 @@ func TestECSApplicationConfig(t *testing.T) {
TargetGroups: ECSTargetGroups{
Primary: json.RawMessage(`{"containerName":"web","containerPort":80,"targetGroupArn":"arn:aws:elasticloadbalancing:xyz"}`),
},
+ LaunchType: "FARGATE",
AutoRollback: newBoolPointer(true),
},
},
diff --git a/pkg/yamlprocessor/yamlprocessor_test.go b/pkg/yamlprocessor/yamlprocessor_test.go
index f418e178fe..8599da84cc 100644
--- a/pkg/yamlprocessor/yamlprocessor_test.go
+++ b/pkg/yamlprocessor/yamlprocessor_test.go
@@ -48,7 +48,7 @@ b: bv
c:
- 1
- 2
- `,
+`,
},
}
for _, tc := range testcases {
@@ -190,7 +190,7 @@ func TestReplaceString(t *testing.T) {
yml: "foo: bar",
path: "$.foo",
value: "",
- want: []byte("foo: "),
+ want: []byte("foo: \n"),
wantErr: false,
},
{
@@ -198,7 +198,7 @@ func TestReplaceString(t *testing.T) {
yml: "foo: bar",
path: "$.foo",
value: "new-text",
- want: []byte("foo: new-text"),
+ want: []byte("foo: new-text\n"),
wantErr: false,
},
{
@@ -208,16 +208,17 @@ foo: bar`,
path: "$.foo",
value: "new-text",
want: []byte(`# comments
-foo: new-text`),
+foo: new-text
+`),
wantErr: false,
},
{
name: "valid value with comment at the same line",
yml: `foo: bar # comments
- `,
+`,
path: "$.foo",
value: "new-text",
- want: []byte("foo: new-text # comments"),
+ want: []byte("foo: new-text # comments\n"),
wantErr: false,
},
{
@@ -229,7 +230,8 @@ foo: new-text`),
value: "new-text",
want: []byte(`foo:
- new-text
- - baz`),
+ - baz
+`),
wantErr: false,
},
{
@@ -237,7 +239,7 @@ foo: new-text`),
yml: `foo: [bar, baz]`,
path: "$.foo[0]",
value: "new-text",
- want: []byte(`foo: [new-text, baz]`),
+ want: []byte("foo: [new-text, baz]\n"),
wantErr: false,
},
{
@@ -250,7 +252,8 @@ foo:
value: "new-text",
want: []byte(`foo:
- new-text
- - baz`),
+ - baz
+`),
wantErr: false,
},
}
diff --git a/tool/actions-plan-preview/planpreview.go b/tool/actions-plan-preview/planpreview.go
index ab58752297..6b2af8efeb 100644
--- a/tool/actions-plan-preview/planpreview.go
+++ b/tool/actions-plan-preview/planpreview.go
@@ -133,7 +133,7 @@ const (
noChangeTitleFormat = "Ran plan-preview against head commit %s of this pull request. PipeCD detected `0` updated application. It means no deployment will be triggered once this pull request got merged.\n"
hasChangeTitleFormat = "Ran plan-preview against head commit %s of this pull request. PipeCD detected `%d` updated applications and here are their plan results. Once this pull request got merged their deployments will be triggered to run as these estimations.\n"
- detailsFormat = "\nDetails (Click me)
\n\n\n``` %s\n%s\n```\n
\n \n"
+ detailsFormat = "\nDetails (Click me)
\n\n\n``` %s\n%s\n```\n
\n \n\n"
detailsOmittedMessage = "The details are too long to display. Please check the actions log to see full details."
appInfoWithEnvFormat = "app: [%s](%s), env: %s, kind: %s"
appInfoWithoutEnvFormat = "app: [%s](%s), kind: %s"