diff --git a/api/service/v1alpha1/service.proto b/api/service/v1alpha1/service.proto index a2ece8074..651ff982c 100644 --- a/api/service/v1alpha1/service.proto +++ b/api/service/v1alpha1/service.proto @@ -60,6 +60,14 @@ service KargoService { rpc QueryFreight(QueryFreightRequest) returns (QueryFreightResponse); + /* Warehouse APIs */ + + rpc ListWarehouses(ListWarehousesRequest) returns (ListWarehousesResponse); + rpc GetWarehouse(GetWarehouseRequest) returns (GetWarehouseResponse); + rpc CreateWarehouse(CreateWarehouseRequest) returns (CreateWarehouseResponse); + rpc UpdateWarehouse(UpdateWarehouseRequest) returns (UpdateWarehouseResponse); + rpc DeleteWarehouse(DeleteWarehouseRequest) returns (DeleteWarehouseResponse); + rpc RefreshWarehouse(RefreshWarehouseRequest) returns (RefreshWarehouseResponse); } message ComponentVersions { @@ -418,3 +426,66 @@ message QueryFreightResponse { message FreightList { repeated github.com.akuity.kargo.pkg.api.v1alpha1.Freight freight = 1; } + +message ListWarehousesRequest { + string project = 1; +} + +message ListWarehousesResponse { + repeated github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouses = 1; +} + +message GetWarehouseRequest { + string project = 1; + string name = 2; +} + +message GetWarehouseResponse { + github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; +} + +message TypedWarehouseSpec { + string project = 1; + string name = 2; + github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec spec = 3; +} + +message CreateWarehouseRequest { + oneof warehouse { + TypedWarehouseSpec typed = 1; + string yaml = 2; + } +} + +message CreateWarehouseResponse { + github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; +} + +message UpdateWarehouseRequest { + oneof warehouse { + TypedWarehouseSpec typed = 1; + string yaml = 2; + } +} + +message UpdateWarehouseResponse { + github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; +} + +message DeleteWarehouseRequest { + string project = 1; + string name = 2; +} + +message DeleteWarehouseResponse { + /* explicitly empty */ +} + +message RefreshWarehouseRequest { + string project = 1; + string name = 2; +} + +message RefreshWarehouseResponse { + github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; +} diff --git a/api/v1alpha1/helpers.go b/api/v1alpha1/helpers.go new file mode 100644 index 000000000..65801a499 --- /dev/null +++ b/api/v1alpha1/helpers.go @@ -0,0 +1,31 @@ +package v1alpha1 + +import ( + "context" + "fmt" + "time" + + "github.com/pkg/errors" + "k8s.io/apimachinery/pkg/types" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +func refreshObject( + ctx context.Context, + c client.Client, + obj client.Object, + nowFunc func() time.Time, +) error { + patchBytes := []byte( + fmt.Sprintf( + `{"metadata":{"annotations":{"%s":"%s"}}}`, + AnnotationKeyRefresh, + nowFunc().UTC().Format(time.RFC3339), + ), + ) + patch := client.RawPatch(types.MergePatchType, patchBytes) + if err := c.Patch(ctx, obj, patch); err != nil { + return errors.Wrap(err, "patch annotation") + } + return nil +} diff --git a/api/v1alpha1/helpers_test.go b/api/v1alpha1/helpers_test.go new file mode 100644 index 000000000..57645d8e0 --- /dev/null +++ b/api/v1alpha1/helpers_test.go @@ -0,0 +1,94 @@ +package v1alpha1 + +import ( + "context" + "testing" + "time" + + "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + k8sruntime "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/fake" +) + +func Test_refreshObject(t *testing.T) { + scheme := k8sruntime.NewScheme() + require.NoError(t, SchemeBuilder.AddToScheme(scheme)) + + t.Parallel() + newFakeClient := func(obj ...client.Object) client.Client { + return fake.NewClientBuilder(). + WithScheme(scheme). + WithObjects(obj...). + Build() + } + mockNow := func() time.Time { + return time.Date(2023, 11, 2, 0, 0, 0, 0, time.UTC) + } + testCases := map[string]struct { + obj client.Object + cli client.Client + nowFunc func() time.Time + errExpected bool + }{ + "stage": { + obj: &Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "test", + Name: "stage", + }, + }, + cli: newFakeClient(&Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "test", + Name: "stage", + }, + }), + nowFunc: mockNow, + }, + "stage with refresh annotation key": { + obj: &Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "test", + Name: "stage", + }, + }, + cli: newFakeClient(&Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "test", + Name: "stage", + Annotations: map[string]string{ + AnnotationKeyRefresh: time.Date(2023, 11, 1, 0, 0, 0, 0, time.UTC).Format(time.RFC3339), + }, + }, + }), + nowFunc: mockNow, + }, + "non-existing stage": { + obj: &Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "test", + Name: "stage", + }, + }, + cli: newFakeClient(), + nowFunc: mockNow, + errExpected: true, + }, + } + for name, tc := range testCases { + tc := tc + t.Run(name, func(t *testing.T) { + err := refreshObject(context.Background(), tc.cli, tc.obj, tc.nowFunc) + if tc.errExpected { + require.Error(t, err) + return + } + require.Contains(t, tc.obj.GetAnnotations(), AnnotationKeyRefresh) + actual, err := time.Parse(time.RFC3339, tc.obj.GetAnnotations()[AnnotationKeyRefresh]) + require.NoError(t, err) + require.Equal(t, tc.nowFunc(), actual) + }) + } +} diff --git a/api/v1alpha1/stage_helpers.go b/api/v1alpha1/stage_helpers.go index 784b55a72..118cc2a85 100644 --- a/api/v1alpha1/stage_helpers.go +++ b/api/v1alpha1/stage_helpers.go @@ -43,17 +43,16 @@ func RefreshStage( c client.Client, namespacedName types.NamespacedName, ) (*Stage, error) { - now := time.Now().UTC().Format(time.RFC3339) - stage := Stage{} - stage.Name = namespacedName.Name - stage.Namespace = namespacedName.Namespace - patchBytes := []byte(fmt.Sprintf(`{"metadata":{"annotations":{"%s":"%s"}}}`, AnnotationKeyRefresh, now)) - patch := client.RawPatch(types.MergePatchType, patchBytes) - err := c.Patch(ctx, &stage, patch) - if err != nil { - return nil, err + stage := &Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: namespacedName.Namespace, + Name: namespacedName.Name, + }, } - return &stage, nil + if err := refreshObject(ctx, c, stage, time.Now); err != nil { + return nil, errors.Wrap(err, "refresh") + } + return stage, nil } // ClearStageRefresh is called by the Stage controller to clear the refresh diff --git a/api/v1alpha1/types.proto b/api/v1alpha1/types.proto index 82efe3d21..54f81d6f8 100644 --- a/api/v1alpha1/types.proto +++ b/api/v1alpha1/types.proto @@ -250,3 +250,20 @@ message Subscriptions { repeated StageSubscription upstream_stages = 2 [json_name = "upstreamStages"]; string warehouse = 3 [json_name = "warehouse"]; } + +message Warehouse { + string api_version = 1 [json_name = "apiVersion"]; + string kind = 2 [json_name = "kind"]; + github.com.akuity.kargo.pkg.api.metav1.ObjectMeta metadata = 3 [json_name = "metadata"]; + WarehouseSpec spec = 4 [json_name = "spec"]; + WarehouseStatus status = 5 [json_name = "status"]; +} + +message WarehouseSpec { + repeated RepoSubscription subscriptions = 1 [json_name = "subscriptions"]; +} + +message WarehouseStatus { + string error = 1 [json_name = "error"]; + int64 observed_generation = 2 [json_name = "observedGeneration"]; +} diff --git a/api/v1alpha1/warehouse_helpers.go b/api/v1alpha1/warehouse_helpers.go index d5aea7adf..db8d314a2 100644 --- a/api/v1alpha1/warehouse_helpers.go +++ b/api/v1alpha1/warehouse_helpers.go @@ -2,8 +2,10 @@ package v1alpha1 import ( "context" + "time" "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -30,3 +32,24 @@ func GetWarehouse( } return &warehouse, nil } + +// RefreshWarehouse forces reconciliation of a Warehouse by setting an annotation +// on the Warehouse, causing the controller to reconcile it. Currently, the +// annotation value is the timestamp of the request, but might in the +// future include additional metadata/context necessary for the request. +func RefreshWarehouse( + ctx context.Context, + c client.Client, + namespacedName types.NamespacedName, +) (*Warehouse, error) { + warehouse := &Warehouse{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: namespacedName.Namespace, + Name: namespacedName.Name, + }, + } + if err := refreshObject(ctx, c, warehouse, time.Now); err != nil { + return nil, errors.Wrap(err, "refresh") + } + return warehouse, nil +} diff --git a/charts/kargo/templates/api/cluster-role.yaml b/charts/kargo/templates/api/cluster-role.yaml index 3a538dd1e..e785e81ce 100644 --- a/charts/kargo/templates/api/cluster-role.yaml +++ b/charts/kargo/templates/api/cluster-role.yaml @@ -32,6 +32,7 @@ rules: resources: - promotionpolicies - stages + - warehouses verbs: - "*" - apiGroups: diff --git a/internal/api/create_warehouse_v1alpha1.go b/internal/api/create_warehouse_v1alpha1.go new file mode 100644 index 000000000..8e42b8503 --- /dev/null +++ b/internal/api/create_warehouse_v1alpha1.go @@ -0,0 +1,54 @@ +package api + +import ( + "context" + + "connectrpc.com/connect" + "github.com/pkg/errors" + kubeerr "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/yaml" + + kargoapi "github.com/akuity/kargo/api/v1alpha1" + typesv1alpha1 "github.com/akuity/kargo/internal/api/types/v1alpha1" + svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" +) + +func (s *server) CreateWarehouse( + ctx context.Context, + req *connect.Request[svcv1alpha1.CreateWarehouseRequest], +) (*connect.Response[svcv1alpha1.CreateWarehouseResponse], error) { + var warehouse kargoapi.Warehouse + switch { + case req.Msg.GetYaml() != "": + if err := yaml.Unmarshal([]byte(req.Msg.GetYaml()), &warehouse); err != nil { + return nil, connect.NewError(connect.CodeInvalidArgument, errors.Wrap(err, "invalid yaml")) + } + case req.Msg.GetTyped() != nil: + warehouse = kargoapi.Warehouse{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: req.Msg.GetTyped().GetProject(), + Name: req.Msg.GetTyped().GetName(), + }, + Spec: typesv1alpha1.FromWarehouseSpecProto(req.Msg.GetTyped().GetSpec()), + } + default: + return nil, connect.NewError(connect.CodeInvalidArgument, errors.New("warehouse should not be empty")) + } + + if err := validateProjectAndWarehouseName(warehouse.GetNamespace(), warehouse.GetName()); err != nil { + return nil, err + } + if err := s.validateProject(ctx, warehouse.GetNamespace()); err != nil { + return nil, err + } + if err := s.client.Create(ctx, &warehouse); err != nil { + if kubeerr.IsAlreadyExists(err) { + return nil, connect.NewError(connect.CodeAlreadyExists, err) + } + return nil, connect.NewError(connect.CodeInternal, errors.Wrap(err, "create warehouse")) + } + return connect.NewResponse(&svcv1alpha1.CreateWarehouseResponse{ + Warehouse: typesv1alpha1.ToWarehouseProto(warehouse), + }), nil +} diff --git a/internal/api/delete_warehouse_v1alpha1.go b/internal/api/delete_warehouse_v1alpha1.go new file mode 100644 index 000000000..31cdebbcd --- /dev/null +++ b/internal/api/delete_warehouse_v1alpha1.go @@ -0,0 +1,41 @@ +package api + +import ( + "context" + "fmt" + + "connectrpc.com/connect" + kubeerr "k8s.io/apimachinery/pkg/api/errors" + "sigs.k8s.io/controller-runtime/pkg/client" + + kargoapi "github.com/akuity/kargo/api/v1alpha1" + svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" +) + +func (s *server) DeleteWarehouse( + ctx context.Context, + req *connect.Request[svcv1alpha1.DeleteWarehouseRequest], +) (*connect.Response[svcv1alpha1.DeleteWarehouseResponse], error) { + if err := validateProjectAndWarehouseName(req.Msg.GetProject(), req.Msg.GetName()); err != nil { + return nil, err + } + if err := s.validateProject(ctx, req.Msg.GetProject()); err != nil { + return nil, err + } + var warehouse kargoapi.Warehouse + key := client.ObjectKey{ + Namespace: req.Msg.GetProject(), + Name: req.Msg.GetName(), + } + if err := s.client.Get(ctx, key, &warehouse); err != nil { + if kubeerr.IsNotFound(err) { + return nil, connect.NewError(connect.CodeNotFound, + fmt.Errorf("warehouse %q not found", key.String())) + } + return nil, connect.NewError(connect.CodeInternal, err) + } + if err := s.client.Delete(ctx, &warehouse); err != nil && !kubeerr.IsNotFound(err) { + return nil, connect.NewError(connect.CodeInternal, err) + } + return connect.NewResponse(&svcv1alpha1.DeleteWarehouseResponse{}), nil +} diff --git a/internal/api/get_warehouse_v1alpha1.go b/internal/api/get_warehouse_v1alpha1.go new file mode 100644 index 000000000..ec86c7466 --- /dev/null +++ b/internal/api/get_warehouse_v1alpha1.go @@ -0,0 +1,40 @@ +package api + +import ( + "context" + + "connectrpc.com/connect" + "github.com/pkg/errors" + kubeerr "k8s.io/apimachinery/pkg/api/errors" + "sigs.k8s.io/controller-runtime/pkg/client" + + kargoapi "github.com/akuity/kargo/api/v1alpha1" + typesv1alpha1 "github.com/akuity/kargo/internal/api/types/v1alpha1" + svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" +) + +func (s *server) GetWarehouse( + ctx context.Context, + req *connect.Request[svcv1alpha1.GetWarehouseRequest], +) (*connect.Response[svcv1alpha1.GetWarehouseResponse], error) { + if err := validateProjectAndWarehouseName(req.Msg.GetProject(), req.Msg.GetName()); err != nil { + return nil, err + } + if err := s.validateProject(ctx, req.Msg.GetProject()); err != nil { + return nil, err + } + + var warehouse kargoapi.Warehouse + if err := s.client.Get(ctx, client.ObjectKey{ + Namespace: req.Msg.GetProject(), + Name: req.Msg.GetName(), + }, &warehouse); err != nil { + if kubeerr.IsNotFound(err) { + return nil, connect.NewError(connect.CodeNotFound, err) + } + return nil, connect.NewError(connect.CodeInternal, errors.Wrap(err, "get warehouse")) + } + return connect.NewResponse(&svcv1alpha1.GetWarehouseResponse{ + Warehouse: typesv1alpha1.ToWarehouseProto(warehouse), + }), nil +} diff --git a/internal/api/list_warehouses_v1alpha1.go b/internal/api/list_warehouses_v1alpha1.go new file mode 100644 index 000000000..6a189e544 --- /dev/null +++ b/internal/api/list_warehouses_v1alpha1.go @@ -0,0 +1,39 @@ +package api + +import ( + "context" + + "connectrpc.com/connect" + "github.com/pkg/errors" + "sigs.k8s.io/controller-runtime/pkg/client" + + kargoapi "github.com/akuity/kargo/api/v1alpha1" + typesv1alpha1 "github.com/akuity/kargo/internal/api/types/v1alpha1" + svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" + "github.com/akuity/kargo/pkg/api/v1alpha1" +) + +func (s *server) ListWarehouses( + ctx context.Context, + req *connect.Request[svcv1alpha1.ListWarehousesRequest], +) (*connect.Response[svcv1alpha1.ListWarehousesResponse], error) { + if req.Msg.GetProject() == "" { + return nil, connect.NewError(connect.CodeInvalidArgument, errors.New("project should not be empty")) + } + if err := s.validateProject(ctx, req.Msg.GetProject()); err != nil { + return nil, err + } + + var list kargoapi.WarehouseList + if err := s.client.List(ctx, &list, client.InNamespace(req.Msg.GetProject())); err != nil { + return nil, connect.NewError(connect.CodeInternal, err) + } + + warehouses := make([]*v1alpha1.Warehouse, len(list.Items)) + for idx := range list.Items { + warehouses[idx] = typesv1alpha1.ToWarehouseProto(list.Items[idx]) + } + return connect.NewResponse(&svcv1alpha1.ListWarehousesResponse{ + Warehouses: warehouses, + }), nil +} diff --git a/internal/api/refresh_warehouse_v1alpha1.go b/internal/api/refresh_warehouse_v1alpha1.go new file mode 100644 index 000000000..4d202958e --- /dev/null +++ b/internal/api/refresh_warehouse_v1alpha1.go @@ -0,0 +1,35 @@ +package api + +import ( + "context" + + "connectrpc.com/connect" + "sigs.k8s.io/controller-runtime/pkg/client" + + kargoapi "github.com/akuity/kargo/api/v1alpha1" + typesv1alpha1 "github.com/akuity/kargo/internal/api/types/v1alpha1" + svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" +) + +func (s *server) RefreshWarehouse( + ctx context.Context, + req *connect.Request[svcv1alpha1.RefreshWarehouseRequest], +) (*connect.Response[svcv1alpha1.RefreshWarehouseResponse], error) { + if err := validateProjectAndWarehouseName(req.Msg.GetProject(), req.Msg.GetName()); err != nil { + return nil, err + } + if err := s.validateProject(ctx, req.Msg.GetProject()); err != nil { + return nil, err + } + + warehouse, err := kargoapi.RefreshWarehouse(ctx, s.client, client.ObjectKey{ + Namespace: req.Msg.GetProject(), + Name: req.Msg.GetName(), + }) + if err != nil { + return nil, err + } + return connect.NewResponse(&svcv1alpha1.RefreshWarehouseResponse{ + Warehouse: typesv1alpha1.ToWarehouseProto(*warehouse), + }), nil +} diff --git a/internal/api/types/v1alpha1/types.go b/internal/api/types/v1alpha1/types.go index 428b80999..6e3887a77 100644 --- a/internal/api/types/v1alpha1/types.go +++ b/internal/api/types/v1alpha1/types.go @@ -138,6 +138,52 @@ func FromSimpleFreightProto(s *v1alpha1.SimpleFreight) *kargoapi.SimpleFreight { } } +func FromWarehouseProto(w *v1alpha1.Warehouse) *kargoapi.Warehouse { + if w == nil { + return nil + } + var objectMeta kubemetav1.ObjectMeta + if w.GetMetadata() != nil { + objectMeta = *typesmetav1.FromObjectMetaProto(w.GetMetadata()) + } + var status kargoapi.WarehouseStatus + if w.GetStatus() != nil { + status = *FromWarehouseStatusProto(w.GetStatus()) + } + return &kargoapi.Warehouse{ + TypeMeta: kubemetav1.TypeMeta{ + APIVersion: kargoapi.GroupVersion.String(), + Kind: "Warehouse", + }, + ObjectMeta: objectMeta, + Spec: FromWarehouseSpecProto(w.GetSpec()), + Status: status, + } +} + +func FromWarehouseSpecProto(s *v1alpha1.WarehouseSpec) *kargoapi.WarehouseSpec { + if s == nil { + return nil + } + subscriptions := make([]kargoapi.RepoSubscription, 0, len(s.GetSubscriptions())) + for _, subscription := range s.GetSubscriptions() { + if subscription == nil { + continue + } + subscriptions = append(subscriptions, *FromRepoSubscriptionProto(subscription)) + } + return &kargoapi.WarehouseSpec{ + Subscriptions: subscriptions, + } +} + +func FromWarehouseStatusProto(s *v1alpha1.WarehouseStatus) *kargoapi.WarehouseStatus { + if s == nil { + return nil + } + return &kargoapi.WarehouseStatus{} +} + func FromGitCommitProto(g *v1alpha1.GitCommit) *kargoapi.GitCommit { if g == nil { return nil @@ -572,6 +618,26 @@ func ToStageProto(e kargoapi.Stage) *v1alpha1.Stage { } } +func ToRepoSubscriptionProto(s kargoapi.RepoSubscription) *v1alpha1.RepoSubscription { + var git *v1alpha1.GitSubscription + if s.Git != nil { + git = ToGitSubscriptionProto(*s.Git) + } + var image *v1alpha1.ImageSubscription + if s.Image != nil { + image = ToImageSubscriptionProto(*s.Image) + } + var chart *v1alpha1.ChartSubscription + if s.Chart != nil { + chart = ToChartSubscriptionProto(*s.Chart) + } + return &v1alpha1.RepoSubscription{ + Git: git, + Image: image, + Chart: chart, + } +} + func ToSubscriptionsProto(s kargoapi.Subscriptions) *v1alpha1.Subscriptions { upstreamStages := make([]*v1alpha1.StageSubscription, len(s.UpstreamStages)) for idx := range s.UpstreamStages { @@ -824,6 +890,29 @@ func ToSimpleFreightProto(s kargoapi.SimpleFreight, firstSeen *time.Time) *v1alp } } +func ToWarehouseProto(w kargoapi.Warehouse) *v1alpha1.Warehouse { + subscriptions := make([]*v1alpha1.RepoSubscription, len(w.Spec.Subscriptions)) + for idx, subscription := range w.Spec.Subscriptions { + subscriptions[idx] = ToRepoSubscriptionProto(subscription) + } + var status *v1alpha1.WarehouseStatus + if w.GetStatus() != nil { + status = &v1alpha1.WarehouseStatus{ + Error: w.GetStatus().Error, + ObservedGeneration: w.GetStatus().ObservedGeneration, + } + } + return &v1alpha1.Warehouse{ + ApiVersion: w.APIVersion, + Kind: w.Kind, + Metadata: typesmetav1.ToObjectMetaProto(w.ObjectMeta), + Spec: &v1alpha1.WarehouseSpec{ + Subscriptions: subscriptions, + }, + Status: status, + } +} + func ToGitCommitProto(g kargoapi.GitCommit) *v1alpha1.GitCommit { return &v1alpha1.GitCommit{ RepoUrl: g.RepoURL, diff --git a/internal/api/update_warehouse_v1alpha1.go b/internal/api/update_warehouse_v1alpha1.go new file mode 100644 index 000000000..92837e743 --- /dev/null +++ b/internal/api/update_warehouse_v1alpha1.go @@ -0,0 +1,59 @@ +package api + +import ( + "context" + + "connectrpc.com/connect" + "github.com/pkg/errors" + kubeerr "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/yaml" + "sigs.k8s.io/controller-runtime/pkg/client" + + kargoapi "github.com/akuity/kargo/api/v1alpha1" + typesv1alpha1 "github.com/akuity/kargo/internal/api/types/v1alpha1" + svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" +) + +func (s *server) UpdateWarehouse( + ctx context.Context, + req *connect.Request[svcv1alpha1.UpdateWarehouseRequest], +) (*connect.Response[svcv1alpha1.UpdateWarehouseResponse], error) { + var warehouse kargoapi.Warehouse + switch { + case req.Msg.GetYaml() != "": + if err := yaml.Unmarshal([]byte(req.Msg.GetYaml()), &warehouse); err != nil { + return nil, connect.NewError(connect.CodeInvalidArgument, errors.Wrap(err, "invalid yaml")) + } + case req.Msg.GetTyped() != nil: + warehouse = kargoapi.Warehouse{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: req.Msg.GetTyped().GetProject(), + Name: req.Msg.GetTyped().GetName(), + }, + Spec: typesv1alpha1.FromWarehouseSpecProto(req.Msg.GetTyped().GetSpec()), + } + default: + return nil, connect.NewError(connect.CodeInvalidArgument, errors.New("warehouse should not be empty")) + } + + if err := validateProjectAndWarehouseName(warehouse.GetNamespace(), warehouse.GetName()); err != nil { + return nil, err + } + if err := s.validateProject(ctx, warehouse.GetNamespace()); err != nil { + return nil, err + } + var existingWarehouse kargoapi.Warehouse + if err := s.client.Get(ctx, client.ObjectKeyFromObject(&warehouse), &existingWarehouse); err != nil { + if kubeerr.IsNotFound(err) { + return nil, connect.NewError(connect.CodeNotFound, err) + } + } + warehouse.SetResourceVersion(existingWarehouse.GetResourceVersion()) + if err := s.client.Update(ctx, &warehouse); err != nil { + return nil, connect.NewError(connect.CodeInternal, err) + } + return connect.NewResponse(&svcv1alpha1.UpdateWarehouseResponse{ + Warehouse: typesv1alpha1.ToWarehouseProto(warehouse), + }), nil +} diff --git a/internal/api/validators.go b/internal/api/validators.go index a8ba27965..ab24bae1a 100644 --- a/internal/api/validators.go +++ b/internal/api/validators.go @@ -34,6 +34,16 @@ func validateProjectAndStageNonEmpty(project string, stage string) error { return nil } +func validateProjectAndWarehouseName(project, name string) error { + if project == "" { + return connect.NewError(connect.CodeInvalidArgument, errors.New("project should not be empty")) + } + if name == "" { + return connect.NewError(connect.CodeInvalidArgument, errors.New("name should not be empty")) + } + return nil +} + func validateGroupByOrderBy(group string, groupBy string, orderBy string) error { if group != "" && groupBy == "" { return connect.NewError( diff --git a/pkg/api/service/v1alpha1/service.pb.go b/pkg/api/service/v1alpha1/service.pb.go index 4bbcb61b5..b595c59d4 100644 --- a/pkg/api/service/v1alpha1/service.pb.go +++ b/pkg/api/service/v1alpha1/service.pb.go @@ -4061,6 +4061,716 @@ func (x *FreightList) GetFreight() []*v1alpha1.Freight { return nil } +type ListWarehousesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` +} + +func (x *ListWarehousesRequest) Reset() { + *x = ListWarehousesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWarehousesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWarehousesRequest) ProtoMessage() {} + +func (x *ListWarehousesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[74] + 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 ListWarehousesRequest.ProtoReflect.Descriptor instead. +func (*ListWarehousesRequest) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{74} +} + +func (x *ListWarehousesRequest) GetProject() string { + if x != nil { + return x.Project + } + return "" +} + +type ListWarehousesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Warehouses []*v1alpha1.Warehouse `protobuf:"bytes,1,rep,name=warehouses,proto3" json:"warehouses,omitempty"` +} + +func (x *ListWarehousesResponse) Reset() { + *x = ListWarehousesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWarehousesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWarehousesResponse) ProtoMessage() {} + +func (x *ListWarehousesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[75] + 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 ListWarehousesResponse.ProtoReflect.Descriptor instead. +func (*ListWarehousesResponse) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{75} +} + +func (x *ListWarehousesResponse) GetWarehouses() []*v1alpha1.Warehouse { + if x != nil { + return x.Warehouses + } + return nil +} + +type GetWarehouseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetWarehouseRequest) Reset() { + *x = GetWarehouseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWarehouseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWarehouseRequest) ProtoMessage() {} + +func (x *GetWarehouseRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[76] + 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 GetWarehouseRequest.ProtoReflect.Descriptor instead. +func (*GetWarehouseRequest) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{76} +} + +func (x *GetWarehouseRequest) GetProject() string { + if x != nil { + return x.Project + } + return "" +} + +func (x *GetWarehouseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetWarehouseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Warehouse *v1alpha1.Warehouse `protobuf:"bytes,1,opt,name=warehouse,proto3" json:"warehouse,omitempty"` +} + +func (x *GetWarehouseResponse) Reset() { + *x = GetWarehouseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWarehouseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWarehouseResponse) ProtoMessage() {} + +func (x *GetWarehouseResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[77] + 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 GetWarehouseResponse.ProtoReflect.Descriptor instead. +func (*GetWarehouseResponse) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{77} +} + +func (x *GetWarehouseResponse) GetWarehouse() *v1alpha1.Warehouse { + if x != nil { + return x.Warehouse + } + return nil +} + +type TypedWarehouseSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Spec *v1alpha1.WarehouseSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"` +} + +func (x *TypedWarehouseSpec) Reset() { + *x = TypedWarehouseSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TypedWarehouseSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TypedWarehouseSpec) ProtoMessage() {} + +func (x *TypedWarehouseSpec) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[78] + 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 TypedWarehouseSpec.ProtoReflect.Descriptor instead. +func (*TypedWarehouseSpec) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{78} +} + +func (x *TypedWarehouseSpec) GetProject() string { + if x != nil { + return x.Project + } + return "" +} + +func (x *TypedWarehouseSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TypedWarehouseSpec) GetSpec() *v1alpha1.WarehouseSpec { + if x != nil { + return x.Spec + } + return nil +} + +type CreateWarehouseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Warehouse: + // + // *CreateWarehouseRequest_Typed + // *CreateWarehouseRequest_Yaml + Warehouse isCreateWarehouseRequest_Warehouse `protobuf_oneof:"warehouse"` +} + +func (x *CreateWarehouseRequest) Reset() { + *x = CreateWarehouseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWarehouseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWarehouseRequest) ProtoMessage() {} + +func (x *CreateWarehouseRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[79] + 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 CreateWarehouseRequest.ProtoReflect.Descriptor instead. +func (*CreateWarehouseRequest) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{79} +} + +func (m *CreateWarehouseRequest) GetWarehouse() isCreateWarehouseRequest_Warehouse { + if m != nil { + return m.Warehouse + } + return nil +} + +func (x *CreateWarehouseRequest) GetTyped() *TypedWarehouseSpec { + if x, ok := x.GetWarehouse().(*CreateWarehouseRequest_Typed); ok { + return x.Typed + } + return nil +} + +func (x *CreateWarehouseRequest) GetYaml() string { + if x, ok := x.GetWarehouse().(*CreateWarehouseRequest_Yaml); ok { + return x.Yaml + } + return "" +} + +type isCreateWarehouseRequest_Warehouse interface { + isCreateWarehouseRequest_Warehouse() +} + +type CreateWarehouseRequest_Typed struct { + Typed *TypedWarehouseSpec `protobuf:"bytes,1,opt,name=typed,proto3,oneof"` +} + +type CreateWarehouseRequest_Yaml struct { + Yaml string `protobuf:"bytes,2,opt,name=yaml,proto3,oneof"` +} + +func (*CreateWarehouseRequest_Typed) isCreateWarehouseRequest_Warehouse() {} + +func (*CreateWarehouseRequest_Yaml) isCreateWarehouseRequest_Warehouse() {} + +type CreateWarehouseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Warehouse *v1alpha1.Warehouse `protobuf:"bytes,1,opt,name=warehouse,proto3" json:"warehouse,omitempty"` +} + +func (x *CreateWarehouseResponse) Reset() { + *x = CreateWarehouseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWarehouseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWarehouseResponse) ProtoMessage() {} + +func (x *CreateWarehouseResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[80] + 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 CreateWarehouseResponse.ProtoReflect.Descriptor instead. +func (*CreateWarehouseResponse) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{80} +} + +func (x *CreateWarehouseResponse) GetWarehouse() *v1alpha1.Warehouse { + if x != nil { + return x.Warehouse + } + return nil +} + +type UpdateWarehouseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Warehouse: + // + // *UpdateWarehouseRequest_Typed + // *UpdateWarehouseRequest_Yaml + Warehouse isUpdateWarehouseRequest_Warehouse `protobuf_oneof:"warehouse"` +} + +func (x *UpdateWarehouseRequest) Reset() { + *x = UpdateWarehouseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateWarehouseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWarehouseRequest) ProtoMessage() {} + +func (x *UpdateWarehouseRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[81] + 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 UpdateWarehouseRequest.ProtoReflect.Descriptor instead. +func (*UpdateWarehouseRequest) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{81} +} + +func (m *UpdateWarehouseRequest) GetWarehouse() isUpdateWarehouseRequest_Warehouse { + if m != nil { + return m.Warehouse + } + return nil +} + +func (x *UpdateWarehouseRequest) GetTyped() *TypedWarehouseSpec { + if x, ok := x.GetWarehouse().(*UpdateWarehouseRequest_Typed); ok { + return x.Typed + } + return nil +} + +func (x *UpdateWarehouseRequest) GetYaml() string { + if x, ok := x.GetWarehouse().(*UpdateWarehouseRequest_Yaml); ok { + return x.Yaml + } + return "" +} + +type isUpdateWarehouseRequest_Warehouse interface { + isUpdateWarehouseRequest_Warehouse() +} + +type UpdateWarehouseRequest_Typed struct { + Typed *TypedWarehouseSpec `protobuf:"bytes,1,opt,name=typed,proto3,oneof"` +} + +type UpdateWarehouseRequest_Yaml struct { + Yaml string `protobuf:"bytes,2,opt,name=yaml,proto3,oneof"` +} + +func (*UpdateWarehouseRequest_Typed) isUpdateWarehouseRequest_Warehouse() {} + +func (*UpdateWarehouseRequest_Yaml) isUpdateWarehouseRequest_Warehouse() {} + +type UpdateWarehouseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Warehouse *v1alpha1.Warehouse `protobuf:"bytes,1,opt,name=warehouse,proto3" json:"warehouse,omitempty"` +} + +func (x *UpdateWarehouseResponse) Reset() { + *x = UpdateWarehouseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateWarehouseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWarehouseResponse) ProtoMessage() {} + +func (x *UpdateWarehouseResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[82] + 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 UpdateWarehouseResponse.ProtoReflect.Descriptor instead. +func (*UpdateWarehouseResponse) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{82} +} + +func (x *UpdateWarehouseResponse) GetWarehouse() *v1alpha1.Warehouse { + if x != nil { + return x.Warehouse + } + return nil +} + +type DeleteWarehouseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteWarehouseRequest) Reset() { + *x = DeleteWarehouseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteWarehouseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteWarehouseRequest) ProtoMessage() {} + +func (x *DeleteWarehouseRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[83] + 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 DeleteWarehouseRequest.ProtoReflect.Descriptor instead. +func (*DeleteWarehouseRequest) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{83} +} + +func (x *DeleteWarehouseRequest) GetProject() string { + if x != nil { + return x.Project + } + return "" +} + +func (x *DeleteWarehouseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type DeleteWarehouseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteWarehouseResponse) Reset() { + *x = DeleteWarehouseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteWarehouseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteWarehouseResponse) ProtoMessage() {} + +func (x *DeleteWarehouseResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[84] + 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 DeleteWarehouseResponse.ProtoReflect.Descriptor instead. +func (*DeleteWarehouseResponse) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{84} +} + +type RefreshWarehouseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *RefreshWarehouseRequest) Reset() { + *x = RefreshWarehouseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RefreshWarehouseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RefreshWarehouseRequest) ProtoMessage() {} + +func (x *RefreshWarehouseRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[85] + 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 RefreshWarehouseRequest.ProtoReflect.Descriptor instead. +func (*RefreshWarehouseRequest) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{85} +} + +func (x *RefreshWarehouseRequest) GetProject() string { + if x != nil { + return x.Project + } + return "" +} + +func (x *RefreshWarehouseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type RefreshWarehouseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Warehouse *v1alpha1.Warehouse `protobuf:"bytes,1,opt,name=warehouse,proto3" json:"warehouse,omitempty"` +} + +func (x *RefreshWarehouseResponse) Reset() { + *x = RefreshWarehouseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_v1alpha1_service_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RefreshWarehouseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RefreshWarehouseResponse) ProtoMessage() {} + +func (x *RefreshWarehouseResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_v1alpha1_service_proto_msgTypes[86] + 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 RefreshWarehouseResponse.ProtoReflect.Descriptor instead. +func (*RefreshWarehouseResponse) Descriptor() ([]byte, []int) { + return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{86} +} + +func (x *RefreshWarehouseResponse) GetWarehouse() *v1alpha1.Warehouse { + if x != nil { + return x.Warehouse + } + return nil +} + var File_service_v1alpha1_service_proto protoreflect.FileDescriptor var file_service_v1alpha1_service_proto_rawDesc = []byte{ @@ -4538,288 +5248,418 @@ var file_service_v1alpha1_service_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x72, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0xe8, - 0x20, 0x0a, 0x0c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x31, + 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x22, 0x6d, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x77, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, + 0x6f, 0x75, 0x73, 0x65, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, + 0x22, 0x43, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x69, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, + 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x22, 0x8f, 0x01, 0x0a, 0x12, 0x54, 0x79, 0x70, 0x65, 0x64, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, + 0x75, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x22, 0x89, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x64, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x04, 0x79, + 0x61, 0x6d, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x79, 0x61, 0x6d, + 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x22, 0x6c, + 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x52, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, + 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x05, + 0x74, 0x79, 0x70, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x77, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x22, 0x6c, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x09, 0x77, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x19, + 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x18, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, + 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x32, 0x94, 0x27, 0x0a, 0x0c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, + 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, - 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3f, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x7a, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, + 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x12, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, - 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7a, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x31, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, + 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x67, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, + 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x7d, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, + 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, + 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x30, 0x01, 0x12, 0x7a, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, - 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x35, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, + 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7d, 0x0a, 0x0c, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x0e, - 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x30, 0x01, 0x12, 0xa1, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x67, 0x65, - 0x12, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, + 0x01, 0x0a, 0x0e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, + 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0xa1, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x41, 0x75, + 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x67, 0x65, 0x12, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, + 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x2e, 0x61, + 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x98, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, + 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, + 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x38, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, + 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, + 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, + 0x10, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x12, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x97, 0x02, 0x0a, 0x24, 0x63, 0x6f, - 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2f, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x76, 0x63, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0xa2, 0x02, 0x04, 0x41, 0x49, 0x4b, 0x53, 0xaa, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x49, 0x6f, 0x2e, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x20, 0x41, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2c, - 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x24, 0x41, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x49, 0x6f, 0x3a, 0x3a, 0x4b, 0x61, 0x72, 0x67, 0x6f, - 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x97, 0x02, 0x0a, 0x24, 0x63, 0x6f, 0x6d, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2f, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x3b, 0x73, 0x76, 0x63, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, + 0x02, 0x04, 0x41, 0x49, 0x4b, 0x53, 0xaa, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x49, 0x6f, 0x2e, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2c, 0x41, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x24, 0x41, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x49, 0x6f, 0x3a, 0x3a, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x3a, + 0x3a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4834,7 +5674,7 @@ func file_service_v1alpha1_service_proto_rawDescGZIP() []byte { return file_service_v1alpha1_service_proto_rawDescData } -var file_service_v1alpha1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 76) +var file_service_v1alpha1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 89) var file_service_v1alpha1_service_proto_goTypes = []interface{}{ (*ComponentVersions)(nil), // 0: akuity.io.kargo.service.v1alpha1.ComponentVersions (*VersionInfo)(nil), // 1: akuity.io.kargo.service.v1alpha1.VersionInfo @@ -4910,122 +5750,157 @@ var file_service_v1alpha1_service_proto_goTypes = []interface{}{ (*QueryFreightRequest)(nil), // 71: akuity.io.kargo.service.v1alpha1.QueryFreightRequest (*QueryFreightResponse)(nil), // 72: akuity.io.kargo.service.v1alpha1.QueryFreightResponse (*FreightList)(nil), // 73: akuity.io.kargo.service.v1alpha1.FreightList - nil, // 74: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry - nil, // 75: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry - (*timestamppb.Timestamp)(nil), // 76: google.protobuf.Timestamp - (*v1alpha1.StageSpec)(nil), // 77: github.com.akuity.kargo.pkg.api.v1alpha1.StageSpec - (*v1alpha1.Stage)(nil), // 78: github.com.akuity.kargo.pkg.api.v1alpha1.Stage - (*v1alpha1.Promotion)(nil), // 79: github.com.akuity.kargo.pkg.api.v1alpha1.Promotion - (*v1alpha1.PromotionPolicy)(nil), // 80: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy - (*v1alpha1.Freight)(nil), // 81: github.com.akuity.kargo.pkg.api.v1alpha1.Freight + (*ListWarehousesRequest)(nil), // 74: akuity.io.kargo.service.v1alpha1.ListWarehousesRequest + (*ListWarehousesResponse)(nil), // 75: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse + (*GetWarehouseRequest)(nil), // 76: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest + (*GetWarehouseResponse)(nil), // 77: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse + (*TypedWarehouseSpec)(nil), // 78: akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec + (*CreateWarehouseRequest)(nil), // 79: akuity.io.kargo.service.v1alpha1.CreateWarehouseRequest + (*CreateWarehouseResponse)(nil), // 80: akuity.io.kargo.service.v1alpha1.CreateWarehouseResponse + (*UpdateWarehouseRequest)(nil), // 81: akuity.io.kargo.service.v1alpha1.UpdateWarehouseRequest + (*UpdateWarehouseResponse)(nil), // 82: akuity.io.kargo.service.v1alpha1.UpdateWarehouseResponse + (*DeleteWarehouseRequest)(nil), // 83: akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest + (*DeleteWarehouseResponse)(nil), // 84: akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse + (*RefreshWarehouseRequest)(nil), // 85: akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest + (*RefreshWarehouseResponse)(nil), // 86: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse + nil, // 87: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry + nil, // 88: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry + (*timestamppb.Timestamp)(nil), // 89: google.protobuf.Timestamp + (*v1alpha1.StageSpec)(nil), // 90: github.com.akuity.kargo.pkg.api.v1alpha1.StageSpec + (*v1alpha1.Stage)(nil), // 91: github.com.akuity.kargo.pkg.api.v1alpha1.Stage + (*v1alpha1.Promotion)(nil), // 92: github.com.akuity.kargo.pkg.api.v1alpha1.Promotion + (*v1alpha1.PromotionPolicy)(nil), // 93: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy + (*v1alpha1.Freight)(nil), // 94: github.com.akuity.kargo.pkg.api.v1alpha1.Freight + (*v1alpha1.Warehouse)(nil), // 95: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + (*v1alpha1.WarehouseSpec)(nil), // 96: github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec } var file_service_v1alpha1_service_proto_depIdxs = []int32{ 1, // 0: akuity.io.kargo.service.v1alpha1.ComponentVersions.server:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo 1, // 1: akuity.io.kargo.service.v1alpha1.ComponentVersions.cli:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo - 76, // 2: akuity.io.kargo.service.v1alpha1.VersionInfo.build_time:type_name -> google.protobuf.Timestamp + 89, // 2: akuity.io.kargo.service.v1alpha1.VersionInfo.build_time:type_name -> google.protobuf.Timestamp 1, // 3: akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse.version_info:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo - 74, // 4: akuity.io.kargo.service.v1alpha1.GetConfigResponse.argocd_shards:type_name -> akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry + 87, // 4: akuity.io.kargo.service.v1alpha1.GetConfigResponse.argocd_shards:type_name -> akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry 9, // 5: akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse.oidc_config:type_name -> akuity.io.kargo.service.v1alpha1.OIDCConfig - 77, // 6: akuity.io.kargo.service.v1alpha1.TypedStageSpec.spec:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.StageSpec + 90, // 6: akuity.io.kargo.service.v1alpha1.TypedStageSpec.spec:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.StageSpec 14, // 7: akuity.io.kargo.service.v1alpha1.CreateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.CreateResourceResult 17, // 8: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResult 20, // 9: akuity.io.kargo.service.v1alpha1.UpdateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.UpdateResourceResult 23, // 10: akuity.io.kargo.service.v1alpha1.DeleteResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.DeleteResourceResult 12, // 11: akuity.io.kargo.service.v1alpha1.CreateStageRequest.typed:type_name -> akuity.io.kargo.service.v1alpha1.TypedStageSpec - 78, // 12: akuity.io.kargo.service.v1alpha1.CreateStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage - 78, // 13: akuity.io.kargo.service.v1alpha1.ListStagesResponse.stages:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage - 78, // 14: akuity.io.kargo.service.v1alpha1.GetStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage - 78, // 15: akuity.io.kargo.service.v1alpha1.WatchStagesResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage + 91, // 12: akuity.io.kargo.service.v1alpha1.CreateStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage + 91, // 13: akuity.io.kargo.service.v1alpha1.ListStagesResponse.stages:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage + 91, // 14: akuity.io.kargo.service.v1alpha1.GetStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage + 91, // 15: akuity.io.kargo.service.v1alpha1.WatchStagesResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage 12, // 16: akuity.io.kargo.service.v1alpha1.UpdateStageRequest.typed:type_name -> akuity.io.kargo.service.v1alpha1.TypedStageSpec - 78, // 17: akuity.io.kargo.service.v1alpha1.UpdateStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage - 79, // 18: akuity.io.kargo.service.v1alpha1.PromoteStageResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion - 79, // 19: akuity.io.kargo.service.v1alpha1.PromoteSubscribersResponse.promotions:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion - 78, // 20: akuity.io.kargo.service.v1alpha1.RefreshStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage - 79, // 21: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse.promotions:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion - 79, // 22: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion - 79, // 23: akuity.io.kargo.service.v1alpha1.GetPromotionResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion - 79, // 24: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion - 80, // 25: akuity.io.kargo.service.v1alpha1.SetAutoPromotionForStageResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy + 91, // 17: akuity.io.kargo.service.v1alpha1.UpdateStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage + 92, // 18: akuity.io.kargo.service.v1alpha1.PromoteStageResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion + 92, // 19: akuity.io.kargo.service.v1alpha1.PromoteSubscribersResponse.promotions:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion + 91, // 20: akuity.io.kargo.service.v1alpha1.RefreshStageResponse.stage:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage + 92, // 21: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse.promotions:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion + 92, // 22: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion + 92, // 23: akuity.io.kargo.service.v1alpha1.GetPromotionResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion + 92, // 24: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse.promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion + 93, // 25: akuity.io.kargo.service.v1alpha1.SetAutoPromotionForStageResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy 43, // 26: akuity.io.kargo.service.v1alpha1.CreatePromotionPolicyRequest.typed:type_name -> akuity.io.kargo.service.v1alpha1.TypedPromotionPolicySpec - 80, // 27: akuity.io.kargo.service.v1alpha1.CreatePromotionPolicyResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy - 80, // 28: akuity.io.kargo.service.v1alpha1.ListPromotionPoliciesResponse.promotion_policies:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy - 80, // 29: akuity.io.kargo.service.v1alpha1.GetPromotionPolicyResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy + 93, // 27: akuity.io.kargo.service.v1alpha1.CreatePromotionPolicyResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy + 93, // 28: akuity.io.kargo.service.v1alpha1.ListPromotionPoliciesResponse.promotion_policies:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy + 93, // 29: akuity.io.kargo.service.v1alpha1.GetPromotionPolicyResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy 43, // 30: akuity.io.kargo.service.v1alpha1.UpdatePromotionPolicyRequest.typed:type_name -> akuity.io.kargo.service.v1alpha1.TypedPromotionPolicySpec - 80, // 31: akuity.io.kargo.service.v1alpha1.UpdatePromotionPolicyResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy - 76, // 32: akuity.io.kargo.service.v1alpha1.Project.create_time:type_name -> google.protobuf.Timestamp + 93, // 31: akuity.io.kargo.service.v1alpha1.UpdatePromotionPolicyResponse.promotion_policy:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy + 89, // 32: akuity.io.kargo.service.v1alpha1.Project.create_time:type_name -> google.protobuf.Timestamp 64, // 33: akuity.io.kargo.service.v1alpha1.CreateProjectResponse.project:type_name -> akuity.io.kargo.service.v1alpha1.Project 64, // 34: akuity.io.kargo.service.v1alpha1.ListProjectsResponse.projects:type_name -> akuity.io.kargo.service.v1alpha1.Project - 75, // 35: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.groups:type_name -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry - 81, // 36: akuity.io.kargo.service.v1alpha1.FreightList.freight:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Freight - 5, // 37: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ArgoCDShard - 73, // 38: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.FreightList - 2, // 39: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:input_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest - 4, // 40: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigRequest - 7, // 41: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest - 10, // 42: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:input_type -> akuity.io.kargo.service.v1alpha1.AdminLoginRequest - 13, // 43: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateResourceRequest - 16, // 44: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest - 19, // 45: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceRequest - 22, // 46: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:input_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceRequest - 25, // 47: akuity.io.kargo.service.v1alpha1.KargoService.CreateStage:input_type -> akuity.io.kargo.service.v1alpha1.CreateStageRequest - 27, // 48: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:input_type -> akuity.io.kargo.service.v1alpha1.ListStagesRequest - 29, // 49: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:input_type -> akuity.io.kargo.service.v1alpha1.GetStageRequest - 31, // 50: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:input_type -> akuity.io.kargo.service.v1alpha1.WatchStagesRequest - 33, // 51: akuity.io.kargo.service.v1alpha1.KargoService.UpdateStage:input_type -> akuity.io.kargo.service.v1alpha1.UpdateStageRequest - 35, // 52: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:input_type -> akuity.io.kargo.service.v1alpha1.DeleteStageRequest - 37, // 53: akuity.io.kargo.service.v1alpha1.KargoService.PromoteStage:input_type -> akuity.io.kargo.service.v1alpha1.PromoteStageRequest - 39, // 54: akuity.io.kargo.service.v1alpha1.KargoService.PromoteSubscribers:input_type -> akuity.io.kargo.service.v1alpha1.PromoteSubscribersRequest - 41, // 55: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:input_type -> akuity.io.kargo.service.v1alpha1.RefreshStageRequest - 44, // 56: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsRequest - 46, // 57: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest - 48, // 58: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionRequest - 50, // 59: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionRequest - 52, // 60: akuity.io.kargo.service.v1alpha1.KargoService.SetAutoPromotionForStage:input_type -> akuity.io.kargo.service.v1alpha1.SetAutoPromotionForStageRequest - 54, // 61: akuity.io.kargo.service.v1alpha1.KargoService.CreatePromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.CreatePromotionPolicyRequest - 56, // 62: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionPolicies:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionPoliciesRequest - 58, // 63: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionPolicyRequest - 60, // 64: akuity.io.kargo.service.v1alpha1.KargoService.UpdatePromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.UpdatePromotionPolicyRequest - 62, // 65: akuity.io.kargo.service.v1alpha1.KargoService.DeletePromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.DeletePromotionPolicyRequest - 65, // 66: akuity.io.kargo.service.v1alpha1.KargoService.CreateProject:input_type -> akuity.io.kargo.service.v1alpha1.CreateProjectRequest - 67, // 67: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectsRequest - 69, // 68: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectRequest - 71, // 69: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:input_type -> akuity.io.kargo.service.v1alpha1.QueryFreightRequest - 3, // 70: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:output_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse - 6, // 71: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigResponse - 8, // 72: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse - 11, // 73: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:output_type -> akuity.io.kargo.service.v1alpha1.AdminLoginResponse - 15, // 74: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateResourceResponse - 18, // 75: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse - 21, // 76: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceResponse - 24, // 77: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:output_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceResponse - 26, // 78: akuity.io.kargo.service.v1alpha1.KargoService.CreateStage:output_type -> akuity.io.kargo.service.v1alpha1.CreateStageResponse - 28, // 79: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:output_type -> akuity.io.kargo.service.v1alpha1.ListStagesResponse - 30, // 80: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:output_type -> akuity.io.kargo.service.v1alpha1.GetStageResponse - 32, // 81: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:output_type -> akuity.io.kargo.service.v1alpha1.WatchStagesResponse - 34, // 82: akuity.io.kargo.service.v1alpha1.KargoService.UpdateStage:output_type -> akuity.io.kargo.service.v1alpha1.UpdateStageResponse - 36, // 83: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:output_type -> akuity.io.kargo.service.v1alpha1.DeleteStageResponse - 38, // 84: akuity.io.kargo.service.v1alpha1.KargoService.PromoteStage:output_type -> akuity.io.kargo.service.v1alpha1.PromoteStageResponse - 40, // 85: akuity.io.kargo.service.v1alpha1.KargoService.PromoteSubscribers:output_type -> akuity.io.kargo.service.v1alpha1.PromoteSubscribersResponse - 42, // 86: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:output_type -> akuity.io.kargo.service.v1alpha1.RefreshStageResponse - 45, // 87: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsResponse - 47, // 88: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse - 49, // 89: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionResponse - 51, // 90: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionResponse - 53, // 91: akuity.io.kargo.service.v1alpha1.KargoService.SetAutoPromotionForStage:output_type -> akuity.io.kargo.service.v1alpha1.SetAutoPromotionForStageResponse - 55, // 92: akuity.io.kargo.service.v1alpha1.KargoService.CreatePromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.CreatePromotionPolicyResponse - 57, // 93: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionPolicies:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionPoliciesResponse - 59, // 94: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionPolicyResponse - 61, // 95: akuity.io.kargo.service.v1alpha1.KargoService.UpdatePromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.UpdatePromotionPolicyResponse - 63, // 96: akuity.io.kargo.service.v1alpha1.KargoService.DeletePromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.DeletePromotionPolicyResponse - 66, // 97: akuity.io.kargo.service.v1alpha1.KargoService.CreateProject:output_type -> akuity.io.kargo.service.v1alpha1.CreateProjectResponse - 68, // 98: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectsResponse - 70, // 99: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectResponse - 72, // 100: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:output_type -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse - 70, // [70:101] is the sub-list for method output_type - 39, // [39:70] is the sub-list for method input_type - 39, // [39:39] is the sub-list for extension type_name - 39, // [39:39] is the sub-list for extension extendee - 0, // [0:39] is the sub-list for field type_name + 88, // 35: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.groups:type_name -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry + 94, // 36: akuity.io.kargo.service.v1alpha1.FreightList.freight:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Freight + 95, // 37: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse.warehouses:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + 95, // 38: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + 96, // 39: akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec.spec:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec + 78, // 40: akuity.io.kargo.service.v1alpha1.CreateWarehouseRequest.typed:type_name -> akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec + 95, // 41: akuity.io.kargo.service.v1alpha1.CreateWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + 78, // 42: akuity.io.kargo.service.v1alpha1.UpdateWarehouseRequest.typed:type_name -> akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec + 95, // 43: akuity.io.kargo.service.v1alpha1.UpdateWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + 95, // 44: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + 5, // 45: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ArgoCDShard + 73, // 46: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.FreightList + 2, // 47: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:input_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest + 4, // 48: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigRequest + 7, // 49: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest + 10, // 50: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:input_type -> akuity.io.kargo.service.v1alpha1.AdminLoginRequest + 13, // 51: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateResourceRequest + 16, // 52: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest + 19, // 53: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceRequest + 22, // 54: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:input_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceRequest + 25, // 55: akuity.io.kargo.service.v1alpha1.KargoService.CreateStage:input_type -> akuity.io.kargo.service.v1alpha1.CreateStageRequest + 27, // 56: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:input_type -> akuity.io.kargo.service.v1alpha1.ListStagesRequest + 29, // 57: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:input_type -> akuity.io.kargo.service.v1alpha1.GetStageRequest + 31, // 58: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:input_type -> akuity.io.kargo.service.v1alpha1.WatchStagesRequest + 33, // 59: akuity.io.kargo.service.v1alpha1.KargoService.UpdateStage:input_type -> akuity.io.kargo.service.v1alpha1.UpdateStageRequest + 35, // 60: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:input_type -> akuity.io.kargo.service.v1alpha1.DeleteStageRequest + 37, // 61: akuity.io.kargo.service.v1alpha1.KargoService.PromoteStage:input_type -> akuity.io.kargo.service.v1alpha1.PromoteStageRequest + 39, // 62: akuity.io.kargo.service.v1alpha1.KargoService.PromoteSubscribers:input_type -> akuity.io.kargo.service.v1alpha1.PromoteSubscribersRequest + 41, // 63: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:input_type -> akuity.io.kargo.service.v1alpha1.RefreshStageRequest + 44, // 64: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsRequest + 46, // 65: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest + 48, // 66: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionRequest + 50, // 67: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionRequest + 52, // 68: akuity.io.kargo.service.v1alpha1.KargoService.SetAutoPromotionForStage:input_type -> akuity.io.kargo.service.v1alpha1.SetAutoPromotionForStageRequest + 54, // 69: akuity.io.kargo.service.v1alpha1.KargoService.CreatePromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.CreatePromotionPolicyRequest + 56, // 70: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionPolicies:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionPoliciesRequest + 58, // 71: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionPolicyRequest + 60, // 72: akuity.io.kargo.service.v1alpha1.KargoService.UpdatePromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.UpdatePromotionPolicyRequest + 62, // 73: akuity.io.kargo.service.v1alpha1.KargoService.DeletePromotionPolicy:input_type -> akuity.io.kargo.service.v1alpha1.DeletePromotionPolicyRequest + 65, // 74: akuity.io.kargo.service.v1alpha1.KargoService.CreateProject:input_type -> akuity.io.kargo.service.v1alpha1.CreateProjectRequest + 67, // 75: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectsRequest + 69, // 76: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectRequest + 71, // 77: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:input_type -> akuity.io.kargo.service.v1alpha1.QueryFreightRequest + 74, // 78: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesRequest + 76, // 79: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseRequest + 79, // 80: akuity.io.kargo.service.v1alpha1.KargoService.CreateWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.CreateWarehouseRequest + 81, // 81: akuity.io.kargo.service.v1alpha1.KargoService.UpdateWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.UpdateWarehouseRequest + 83, // 82: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest + 85, // 83: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest + 3, // 84: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:output_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse + 6, // 85: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigResponse + 8, // 86: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse + 11, // 87: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:output_type -> akuity.io.kargo.service.v1alpha1.AdminLoginResponse + 15, // 88: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateResourceResponse + 18, // 89: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse + 21, // 90: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceResponse + 24, // 91: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:output_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceResponse + 26, // 92: akuity.io.kargo.service.v1alpha1.KargoService.CreateStage:output_type -> akuity.io.kargo.service.v1alpha1.CreateStageResponse + 28, // 93: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:output_type -> akuity.io.kargo.service.v1alpha1.ListStagesResponse + 30, // 94: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:output_type -> akuity.io.kargo.service.v1alpha1.GetStageResponse + 32, // 95: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:output_type -> akuity.io.kargo.service.v1alpha1.WatchStagesResponse + 34, // 96: akuity.io.kargo.service.v1alpha1.KargoService.UpdateStage:output_type -> akuity.io.kargo.service.v1alpha1.UpdateStageResponse + 36, // 97: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:output_type -> akuity.io.kargo.service.v1alpha1.DeleteStageResponse + 38, // 98: akuity.io.kargo.service.v1alpha1.KargoService.PromoteStage:output_type -> akuity.io.kargo.service.v1alpha1.PromoteStageResponse + 40, // 99: akuity.io.kargo.service.v1alpha1.KargoService.PromoteSubscribers:output_type -> akuity.io.kargo.service.v1alpha1.PromoteSubscribersResponse + 42, // 100: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:output_type -> akuity.io.kargo.service.v1alpha1.RefreshStageResponse + 45, // 101: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsResponse + 47, // 102: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse + 49, // 103: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionResponse + 51, // 104: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionResponse + 53, // 105: akuity.io.kargo.service.v1alpha1.KargoService.SetAutoPromotionForStage:output_type -> akuity.io.kargo.service.v1alpha1.SetAutoPromotionForStageResponse + 55, // 106: akuity.io.kargo.service.v1alpha1.KargoService.CreatePromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.CreatePromotionPolicyResponse + 57, // 107: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionPolicies:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionPoliciesResponse + 59, // 108: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionPolicyResponse + 61, // 109: akuity.io.kargo.service.v1alpha1.KargoService.UpdatePromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.UpdatePromotionPolicyResponse + 63, // 110: akuity.io.kargo.service.v1alpha1.KargoService.DeletePromotionPolicy:output_type -> akuity.io.kargo.service.v1alpha1.DeletePromotionPolicyResponse + 66, // 111: akuity.io.kargo.service.v1alpha1.KargoService.CreateProject:output_type -> akuity.io.kargo.service.v1alpha1.CreateProjectResponse + 68, // 112: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectsResponse + 70, // 113: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectResponse + 72, // 114: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:output_type -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse + 75, // 115: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesResponse + 77, // 116: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseResponse + 80, // 117: akuity.io.kargo.service.v1alpha1.KargoService.CreateWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.CreateWarehouseResponse + 82, // 118: akuity.io.kargo.service.v1alpha1.KargoService.UpdateWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.UpdateWarehouseResponse + 84, // 119: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse + 86, // 120: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse + 84, // [84:121] is the sub-list for method output_type + 47, // [47:84] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name } func init() { file_service_v1alpha1_service_proto_init() } @@ -5922,6 +6797,162 @@ func file_service_v1alpha1_service_proto_init() { return nil } } + file_service_v1alpha1_service_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWarehousesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWarehousesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWarehouseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWarehouseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TypedWarehouseSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWarehouseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWarehouseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateWarehouseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateWarehouseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteWarehouseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteWarehouseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshWarehouseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_v1alpha1_service_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshWarehouseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_service_v1alpha1_service_proto_msgTypes[0].OneofWrappers = []interface{}{} file_service_v1alpha1_service_proto_msgTypes[14].OneofWrappers = []interface{}{ @@ -5959,13 +6990,21 @@ func file_service_v1alpha1_service_proto_init() { (*UpdatePromotionPolicyRequest_Typed)(nil), (*UpdatePromotionPolicyRequest_Yaml)(nil), } + file_service_v1alpha1_service_proto_msgTypes[79].OneofWrappers = []interface{}{ + (*CreateWarehouseRequest_Typed)(nil), + (*CreateWarehouseRequest_Yaml)(nil), + } + file_service_v1alpha1_service_proto_msgTypes[81].OneofWrappers = []interface{}{ + (*UpdateWarehouseRequest_Typed)(nil), + (*UpdateWarehouseRequest_Yaml)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_v1alpha1_service_proto_rawDesc, NumEnums: 0, - NumMessages: 76, + NumMessages: 89, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go b/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go index 158b2c06f..349b9fab5 100644 --- a/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go +++ b/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go @@ -122,6 +122,24 @@ const ( // KargoServiceQueryFreightProcedure is the fully-qualified name of the KargoService's QueryFreight // RPC. KargoServiceQueryFreightProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/QueryFreight" + // KargoServiceListWarehousesProcedure is the fully-qualified name of the KargoService's + // ListWarehouses RPC. + KargoServiceListWarehousesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListWarehouses" + // KargoServiceGetWarehouseProcedure is the fully-qualified name of the KargoService's GetWarehouse + // RPC. + KargoServiceGetWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetWarehouse" + // KargoServiceCreateWarehouseProcedure is the fully-qualified name of the KargoService's + // CreateWarehouse RPC. + KargoServiceCreateWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/CreateWarehouse" + // KargoServiceUpdateWarehouseProcedure is the fully-qualified name of the KargoService's + // UpdateWarehouse RPC. + KargoServiceUpdateWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/UpdateWarehouse" + // KargoServiceDeleteWarehouseProcedure is the fully-qualified name of the KargoService's + // DeleteWarehouse RPC. + KargoServiceDeleteWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteWarehouse" + // KargoServiceRefreshWarehouseProcedure is the fully-qualified name of the KargoService's + // RefreshWarehouse RPC. + KargoServiceRefreshWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/RefreshWarehouse" ) // KargoServiceClient is a client for the akuity.io.kargo.service.v1alpha1.KargoService service. @@ -160,6 +178,12 @@ type KargoServiceClient interface { ListProjects(context.Context, *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error) DeleteProject(context.Context, *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error) QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error) + ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error) + GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error) + CreateWarehouse(context.Context, *connect.Request[v1alpha1.CreateWarehouseRequest]) (*connect.Response[v1alpha1.CreateWarehouseResponse], error) + UpdateWarehouse(context.Context, *connect.Request[v1alpha1.UpdateWarehouseRequest]) (*connect.Response[v1alpha1.UpdateWarehouseResponse], error) + DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error) + RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error) } // NewKargoServiceClient constructs a client for the akuity.io.kargo.service.v1alpha1.KargoService @@ -327,6 +351,36 @@ func NewKargoServiceClient(httpClient connect.HTTPClient, baseURL string, opts . baseURL+KargoServiceQueryFreightProcedure, opts..., ), + listWarehouses: connect.NewClient[v1alpha1.ListWarehousesRequest, v1alpha1.ListWarehousesResponse]( + httpClient, + baseURL+KargoServiceListWarehousesProcedure, + opts..., + ), + getWarehouse: connect.NewClient[v1alpha1.GetWarehouseRequest, v1alpha1.GetWarehouseResponse]( + httpClient, + baseURL+KargoServiceGetWarehouseProcedure, + opts..., + ), + createWarehouse: connect.NewClient[v1alpha1.CreateWarehouseRequest, v1alpha1.CreateWarehouseResponse]( + httpClient, + baseURL+KargoServiceCreateWarehouseProcedure, + opts..., + ), + updateWarehouse: connect.NewClient[v1alpha1.UpdateWarehouseRequest, v1alpha1.UpdateWarehouseResponse]( + httpClient, + baseURL+KargoServiceUpdateWarehouseProcedure, + opts..., + ), + deleteWarehouse: connect.NewClient[v1alpha1.DeleteWarehouseRequest, v1alpha1.DeleteWarehouseResponse]( + httpClient, + baseURL+KargoServiceDeleteWarehouseProcedure, + opts..., + ), + refreshWarehouse: connect.NewClient[v1alpha1.RefreshWarehouseRequest, v1alpha1.RefreshWarehouseResponse]( + httpClient, + baseURL+KargoServiceRefreshWarehouseProcedure, + opts..., + ), } } @@ -363,6 +417,12 @@ type kargoServiceClient struct { listProjects *connect.Client[v1alpha1.ListProjectsRequest, v1alpha1.ListProjectsResponse] deleteProject *connect.Client[v1alpha1.DeleteProjectRequest, v1alpha1.DeleteProjectResponse] queryFreight *connect.Client[v1alpha1.QueryFreightRequest, v1alpha1.QueryFreightResponse] + listWarehouses *connect.Client[v1alpha1.ListWarehousesRequest, v1alpha1.ListWarehousesResponse] + getWarehouse *connect.Client[v1alpha1.GetWarehouseRequest, v1alpha1.GetWarehouseResponse] + createWarehouse *connect.Client[v1alpha1.CreateWarehouseRequest, v1alpha1.CreateWarehouseResponse] + updateWarehouse *connect.Client[v1alpha1.UpdateWarehouseRequest, v1alpha1.UpdateWarehouseResponse] + deleteWarehouse *connect.Client[v1alpha1.DeleteWarehouseRequest, v1alpha1.DeleteWarehouseResponse] + refreshWarehouse *connect.Client[v1alpha1.RefreshWarehouseRequest, v1alpha1.RefreshWarehouseResponse] } // GetVersionInfo calls akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo. @@ -522,6 +582,36 @@ func (c *kargoServiceClient) QueryFreight(ctx context.Context, req *connect.Requ return c.queryFreight.CallUnary(ctx, req) } +// ListWarehouses calls akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses. +func (c *kargoServiceClient) ListWarehouses(ctx context.Context, req *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error) { + return c.listWarehouses.CallUnary(ctx, req) +} + +// GetWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse. +func (c *kargoServiceClient) GetWarehouse(ctx context.Context, req *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error) { + return c.getWarehouse.CallUnary(ctx, req) +} + +// CreateWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.CreateWarehouse. +func (c *kargoServiceClient) CreateWarehouse(ctx context.Context, req *connect.Request[v1alpha1.CreateWarehouseRequest]) (*connect.Response[v1alpha1.CreateWarehouseResponse], error) { + return c.createWarehouse.CallUnary(ctx, req) +} + +// UpdateWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.UpdateWarehouse. +func (c *kargoServiceClient) UpdateWarehouse(ctx context.Context, req *connect.Request[v1alpha1.UpdateWarehouseRequest]) (*connect.Response[v1alpha1.UpdateWarehouseResponse], error) { + return c.updateWarehouse.CallUnary(ctx, req) +} + +// DeleteWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse. +func (c *kargoServiceClient) DeleteWarehouse(ctx context.Context, req *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error) { + return c.deleteWarehouse.CallUnary(ctx, req) +} + +// RefreshWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse. +func (c *kargoServiceClient) RefreshWarehouse(ctx context.Context, req *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error) { + return c.refreshWarehouse.CallUnary(ctx, req) +} + // KargoServiceHandler is an implementation of the akuity.io.kargo.service.v1alpha1.KargoService // service. type KargoServiceHandler interface { @@ -559,6 +649,12 @@ type KargoServiceHandler interface { ListProjects(context.Context, *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error) DeleteProject(context.Context, *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error) QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error) + ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error) + GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error) + CreateWarehouse(context.Context, *connect.Request[v1alpha1.CreateWarehouseRequest]) (*connect.Response[v1alpha1.CreateWarehouseResponse], error) + UpdateWarehouse(context.Context, *connect.Request[v1alpha1.UpdateWarehouseRequest]) (*connect.Response[v1alpha1.UpdateWarehouseResponse], error) + DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error) + RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error) } // NewKargoServiceHandler builds an HTTP handler from the service implementation. It returns the @@ -722,6 +818,36 @@ func NewKargoServiceHandler(svc KargoServiceHandler, opts ...connect.HandlerOpti svc.QueryFreight, opts..., ) + kargoServiceListWarehousesHandler := connect.NewUnaryHandler( + KargoServiceListWarehousesProcedure, + svc.ListWarehouses, + opts..., + ) + kargoServiceGetWarehouseHandler := connect.NewUnaryHandler( + KargoServiceGetWarehouseProcedure, + svc.GetWarehouse, + opts..., + ) + kargoServiceCreateWarehouseHandler := connect.NewUnaryHandler( + KargoServiceCreateWarehouseProcedure, + svc.CreateWarehouse, + opts..., + ) + kargoServiceUpdateWarehouseHandler := connect.NewUnaryHandler( + KargoServiceUpdateWarehouseProcedure, + svc.UpdateWarehouse, + opts..., + ) + kargoServiceDeleteWarehouseHandler := connect.NewUnaryHandler( + KargoServiceDeleteWarehouseProcedure, + svc.DeleteWarehouse, + opts..., + ) + kargoServiceRefreshWarehouseHandler := connect.NewUnaryHandler( + KargoServiceRefreshWarehouseProcedure, + svc.RefreshWarehouse, + opts..., + ) return "/akuity.io.kargo.service.v1alpha1.KargoService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case KargoServiceGetVersionInfoProcedure: @@ -786,6 +912,18 @@ func NewKargoServiceHandler(svc KargoServiceHandler, opts ...connect.HandlerOpti kargoServiceDeleteProjectHandler.ServeHTTP(w, r) case KargoServiceQueryFreightProcedure: kargoServiceQueryFreightHandler.ServeHTTP(w, r) + case KargoServiceListWarehousesProcedure: + kargoServiceListWarehousesHandler.ServeHTTP(w, r) + case KargoServiceGetWarehouseProcedure: + kargoServiceGetWarehouseHandler.ServeHTTP(w, r) + case KargoServiceCreateWarehouseProcedure: + kargoServiceCreateWarehouseHandler.ServeHTTP(w, r) + case KargoServiceUpdateWarehouseProcedure: + kargoServiceUpdateWarehouseHandler.ServeHTTP(w, r) + case KargoServiceDeleteWarehouseProcedure: + kargoServiceDeleteWarehouseHandler.ServeHTTP(w, r) + case KargoServiceRefreshWarehouseProcedure: + kargoServiceRefreshWarehouseHandler.ServeHTTP(w, r) default: http.NotFound(w, r) } @@ -918,3 +1056,27 @@ func (UnimplementedKargoServiceHandler) DeleteProject(context.Context, *connect. func (UnimplementedKargoServiceHandler) QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight is not implemented")) } + +func (UnimplementedKargoServiceHandler) ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses is not implemented")) +} + +func (UnimplementedKargoServiceHandler) GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse is not implemented")) +} + +func (UnimplementedKargoServiceHandler) CreateWarehouse(context.Context, *connect.Request[v1alpha1.CreateWarehouseRequest]) (*connect.Response[v1alpha1.CreateWarehouseResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.CreateWarehouse is not implemented")) +} + +func (UnimplementedKargoServiceHandler) UpdateWarehouse(context.Context, *connect.Request[v1alpha1.UpdateWarehouseRequest]) (*connect.Response[v1alpha1.UpdateWarehouseResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.UpdateWarehouse is not implemented")) +} + +func (UnimplementedKargoServiceHandler) DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse is not implemented")) +} + +func (UnimplementedKargoServiceHandler) RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse is not implemented")) +} diff --git a/pkg/api/v1alpha1/types.pb.go b/pkg/api/v1alpha1/types.pb.go index f0a1d927a..617a9ff3f 100644 --- a/pkg/api/v1alpha1/types.pb.go +++ b/pkg/api/v1alpha1/types.pb.go @@ -2587,6 +2587,187 @@ func (x *Subscriptions) GetWarehouse() string { return "" } +type Warehouse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ApiVersion string `protobuf:"bytes,1,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` + Metadata *metav1.ObjectMeta `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` + Spec *WarehouseSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"` + Status *WarehouseStatus `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *Warehouse) Reset() { + *x = Warehouse{} + if protoimpl.UnsafeEnabled { + mi := &file_v1alpha1_types_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Warehouse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Warehouse) ProtoMessage() {} + +func (x *Warehouse) ProtoReflect() protoreflect.Message { + mi := &file_v1alpha1_types_proto_msgTypes[41] + 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 Warehouse.ProtoReflect.Descriptor instead. +func (*Warehouse) Descriptor() ([]byte, []int) { + return file_v1alpha1_types_proto_rawDescGZIP(), []int{41} +} + +func (x *Warehouse) GetApiVersion() string { + if x != nil { + return x.ApiVersion + } + return "" +} + +func (x *Warehouse) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +func (x *Warehouse) GetMetadata() *metav1.ObjectMeta { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Warehouse) GetSpec() *WarehouseSpec { + if x != nil { + return x.Spec + } + return nil +} + +func (x *Warehouse) GetStatus() *WarehouseStatus { + if x != nil { + return x.Status + } + return nil +} + +type WarehouseSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Subscriptions []*RepoSubscription `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"` +} + +func (x *WarehouseSpec) Reset() { + *x = WarehouseSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_v1alpha1_types_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WarehouseSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WarehouseSpec) ProtoMessage() {} + +func (x *WarehouseSpec) ProtoReflect() protoreflect.Message { + mi := &file_v1alpha1_types_proto_msgTypes[42] + 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 WarehouseSpec.ProtoReflect.Descriptor instead. +func (*WarehouseSpec) Descriptor() ([]byte, []int) { + return file_v1alpha1_types_proto_rawDescGZIP(), []int{42} +} + +func (x *WarehouseSpec) GetSubscriptions() []*RepoSubscription { + if x != nil { + return x.Subscriptions + } + return nil +} + +type WarehouseStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + ObservedGeneration int64 `protobuf:"varint,2,opt,name=observed_generation,json=observedGeneration,proto3" json:"observed_generation,omitempty"` +} + +func (x *WarehouseStatus) Reset() { + *x = WarehouseStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_v1alpha1_types_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WarehouseStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WarehouseStatus) ProtoMessage() {} + +func (x *WarehouseStatus) ProtoReflect() protoreflect.Message { + mi := &file_v1alpha1_types_proto_msgTypes[43] + 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 WarehouseStatus.ProtoReflect.Descriptor instead. +func (*WarehouseStatus) Descriptor() ([]byte, []int) { + return file_v1alpha1_types_proto_rawDescGZIP(), []int{43} +} + +func (x *WarehouseStatus) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *WarehouseStatus) GetObservedGeneration() int64 { + if x != nil { + return x.ObservedGeneration + } + return 0 +} + var File_v1alpha1_types_proto protoreflect.FileDescriptor var file_v1alpha1_types_proto_rawDesc = []byte{ @@ -3068,7 +3249,39 @@ var file_v1alpha1_types_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, - 0x73, 0x65, 0x42, 0xad, 0x02, 0x0a, 0x2c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x73, 0x65, 0x22, 0xb0, 0x02, 0x0a, 0x09, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x4e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x76, 0x31, + 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4b, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x12, 0x51, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, + 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x71, 0x0a, 0x0d, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x60, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x58, 0x0a, 0x0f, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, + 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0xad, 0x02, 0x0a, 0x2c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, @@ -3102,7 +3315,7 @@ func file_v1alpha1_types_proto_rawDescGZIP() []byte { return file_v1alpha1_types_proto_rawDescData } -var file_v1alpha1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 42) +var file_v1alpha1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_v1alpha1_types_proto_goTypes = []interface{}{ (*ArgoCDAppUpdate)(nil), // 0: github.com.akuity.kargo.pkg.api.v1alpha1.ArgoCDAppUpdate (*ArgoCDHelm)(nil), // 1: github.com.akuity.kargo.pkg.api.v1alpha1.ArgoCDHelm @@ -3145,10 +3358,13 @@ var file_v1alpha1_types_proto_goTypes = []interface{}{ (*StageStatus)(nil), // 38: github.com.akuity.kargo.pkg.api.v1alpha1.StageStatus (*StageSubscription)(nil), // 39: github.com.akuity.kargo.pkg.api.v1alpha1.StageSubscription (*Subscriptions)(nil), // 40: github.com.akuity.kargo.pkg.api.v1alpha1.Subscriptions - nil, // 41: github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.QualificationsEntry - (*metav1.ObjectMeta)(nil), // 42: github.com.akuity.kargo.pkg.api.metav1.ObjectMeta - (*metav1.ListMeta)(nil), // 43: github.com.akuity.kargo.pkg.api.metav1.ListMeta - (*timestamppb.Timestamp)(nil), // 44: google.protobuf.Timestamp + (*Warehouse)(nil), // 41: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + (*WarehouseSpec)(nil), // 42: github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec + (*WarehouseStatus)(nil), // 43: github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseStatus + nil, // 44: github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.QualificationsEntry + (*metav1.ObjectMeta)(nil), // 45: github.com.akuity.kargo.pkg.api.metav1.ObjectMeta + (*metav1.ListMeta)(nil), // 46: github.com.akuity.kargo.pkg.api.metav1.ListMeta + (*timestamppb.Timestamp)(nil), // 47: google.protobuf.Timestamp } var file_v1alpha1_types_proto_depIdxs = []int32{ 4, // 0: github.com.akuity.kargo.pkg.api.v1alpha1.ArgoCDAppUpdate.source_updates:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.ArgoCDSourceUpdate @@ -3164,34 +3380,34 @@ var file_v1alpha1_types_proto_depIdxs = []int32{ 16, // 10: github.com.akuity.kargo.pkg.api.v1alpha1.HelmPromotionMechanism.images:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.HelmImageUpdate 15, // 11: github.com.akuity.kargo.pkg.api.v1alpha1.HelmPromotionMechanism.charts:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.HelmChartDependencyUpdate 20, // 12: github.com.akuity.kargo.pkg.api.v1alpha1.KustomizePromotionMechanism.images:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.KustomizeImageUpdate - 42, // 13: github.com.akuity.kargo.pkg.api.v1alpha1.Promotion.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta + 45, // 13: github.com.akuity.kargo.pkg.api.v1alpha1.Promotion.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta 28, // 14: github.com.akuity.kargo.pkg.api.v1alpha1.Promotion.spec:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionSpec 29, // 15: github.com.akuity.kargo.pkg.api.v1alpha1.Promotion.status:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionStatus 37, // 16: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionInfo.freight:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.SimpleFreight - 43, // 17: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionList.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ListMeta + 46, // 17: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionList.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ListMeta 22, // 18: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionList.items:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Promotion 9, // 19: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionMechanisms.git_repo_updates:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.GitRepoUpdate 0, // 20: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionMechanisms.argocd_app_updates:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.ArgoCDAppUpdate - 42, // 21: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta - 43, // 22: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicyList.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ListMeta + 45, // 21: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta + 46, // 22: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicyList.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ListMeta 26, // 23: github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicyList.items:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionPolicy 10, // 24: github.com.akuity.kargo.pkg.api.v1alpha1.RepoSubscription.git:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.GitSubscription 19, // 25: github.com.akuity.kargo.pkg.api.v1alpha1.RepoSubscription.image:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.ImageSubscription 7, // 26: github.com.akuity.kargo.pkg.api.v1alpha1.RepoSubscription.chart:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.ChartSubscription - 42, // 27: github.com.akuity.kargo.pkg.api.v1alpha1.Stage.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta + 45, // 27: github.com.akuity.kargo.pkg.api.v1alpha1.Stage.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta 33, // 28: github.com.akuity.kargo.pkg.api.v1alpha1.Stage.spec:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.StageSpec 38, // 29: github.com.akuity.kargo.pkg.api.v1alpha1.Stage.status:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.StageStatus - 43, // 30: github.com.akuity.kargo.pkg.api.v1alpha1.StageList.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ListMeta + 46, // 30: github.com.akuity.kargo.pkg.api.v1alpha1.StageList.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ListMeta 31, // 31: github.com.akuity.kargo.pkg.api.v1alpha1.StageList.items:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Stage 40, // 32: github.com.akuity.kargo.pkg.api.v1alpha1.StageSpec.subscriptions:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Subscriptions 25, // 33: github.com.akuity.kargo.pkg.api.v1alpha1.StageSpec.promotion_mechanisms:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionMechanisms - 42, // 34: github.com.akuity.kargo.pkg.api.v1alpha1.Freight.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta + 45, // 34: github.com.akuity.kargo.pkg.api.v1alpha1.Freight.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta 8, // 35: github.com.akuity.kargo.pkg.api.v1alpha1.Freight.commits:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.GitCommit 18, // 36: github.com.akuity.kargo.pkg.api.v1alpha1.Freight.images:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Image 6, // 37: github.com.akuity.kargo.pkg.api.v1alpha1.Freight.charts:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Chart 35, // 38: github.com.akuity.kargo.pkg.api.v1alpha1.Freight.status:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus - 41, // 39: github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.qualifications:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.QualificationsEntry - 44, // 40: github.com.akuity.kargo.pkg.api.v1alpha1.SimpleFreight.first_seen:type_name -> google.protobuf.Timestamp + 44, // 39: github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.qualifications:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.QualificationsEntry + 47, // 40: github.com.akuity.kargo.pkg.api.v1alpha1.SimpleFreight.first_seen:type_name -> google.protobuf.Timestamp 8, // 41: github.com.akuity.kargo.pkg.api.v1alpha1.SimpleFreight.commits:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.GitCommit 18, // 42: github.com.akuity.kargo.pkg.api.v1alpha1.SimpleFreight.images:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Image 6, // 43: github.com.akuity.kargo.pkg.api.v1alpha1.SimpleFreight.charts:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Chart @@ -3200,12 +3416,16 @@ var file_v1alpha1_types_proto_depIdxs = []int32{ 11, // 46: github.com.akuity.kargo.pkg.api.v1alpha1.StageStatus.health:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Health 23, // 47: github.com.akuity.kargo.pkg.api.v1alpha1.StageStatus.current_promotion:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.PromotionInfo 39, // 48: github.com.akuity.kargo.pkg.api.v1alpha1.Subscriptions.upstream_stages:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.StageSubscription - 36, // 49: github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.QualificationsEntry.value:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Qualification - 50, // [50:50] is the sub-list for method output_type - 50, // [50:50] is the sub-list for method input_type - 50, // [50:50] is the sub-list for extension type_name - 50, // [50:50] is the sub-list for extension extendee - 0, // [0:50] is the sub-list for field type_name + 45, // 49: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse.metadata:type_name -> github.com.akuity.kargo.pkg.api.metav1.ObjectMeta + 42, // 50: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse.spec:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec + 43, // 51: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse.status:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseStatus + 30, // 52: github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec.subscriptions:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.RepoSubscription + 36, // 53: github.com.akuity.kargo.pkg.api.v1alpha1.FreightStatus.QualificationsEntry.value:type_name -> github.com.akuity.kargo.pkg.api.v1alpha1.Qualification + 54, // [54:54] is the sub-list for method output_type + 54, // [54:54] is the sub-list for method input_type + 54, // [54:54] is the sub-list for extension type_name + 54, // [54:54] is the sub-list for extension extendee + 0, // [0:54] is the sub-list for field type_name } func init() { file_v1alpha1_types_proto_init() } @@ -3706,6 +3926,42 @@ func file_v1alpha1_types_proto_init() { return nil } } + file_v1alpha1_types_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Warehouse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v1alpha1_types_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WarehouseSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v1alpha1_types_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WarehouseStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_v1alpha1_types_proto_msgTypes[0].OneofWrappers = []interface{}{} file_v1alpha1_types_proto_msgTypes[4].OneofWrappers = []interface{}{} @@ -3724,7 +3980,7 @@ func file_v1alpha1_types_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_v1alpha1_types_proto_rawDesc, NumEnums: 0, - NumMessages: 42, + NumMessages: 45, NumExtensions: 0, NumServices: 0, }, diff --git a/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts b/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts index 6fd3fc7d4..34b7314ed 100644 --- a/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts +++ b/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts @@ -5,7 +5,7 @@ import { createQueryService } from "@bufbuild/connect-query"; import { MethodKind } from "@bufbuild/protobuf"; -import { AdminLoginRequest, AdminLoginResponse, CreateOrUpdateResourceRequest, CreateOrUpdateResourceResponse, CreateProjectRequest, CreateProjectResponse, CreatePromotionPolicyRequest, CreatePromotionPolicyResponse, CreateResourceRequest, CreateResourceResponse, CreateStageRequest, CreateStageResponse, DeleteProjectRequest, DeleteProjectResponse, DeletePromotionPolicyRequest, DeletePromotionPolicyResponse, DeleteResourceRequest, DeleteResourceResponse, DeleteStageRequest, DeleteStageResponse, GetConfigRequest, GetConfigResponse, GetPromotionPolicyRequest, GetPromotionPolicyResponse, GetPromotionRequest, GetPromotionResponse, GetPublicConfigRequest, GetPublicConfigResponse, GetStageRequest, GetStageResponse, GetVersionInfoRequest, GetVersionInfoResponse, ListProjectsRequest, ListProjectsResponse, ListPromotionPoliciesRequest, ListPromotionPoliciesResponse, ListPromotionsRequest, ListPromotionsResponse, ListStagesRequest, ListStagesResponse, PromoteStageRequest, PromoteStageResponse, PromoteSubscribersRequest, PromoteSubscribersResponse, QueryFreightRequest, QueryFreightResponse, RefreshStageRequest, RefreshStageResponse, SetAutoPromotionForStageRequest, SetAutoPromotionForStageResponse, UpdatePromotionPolicyRequest, UpdatePromotionPolicyResponse, UpdateResourceRequest, UpdateResourceResponse, UpdateStageRequest, UpdateStageResponse } from "./service_pb.js"; +import { AdminLoginRequest, AdminLoginResponse, CreateOrUpdateResourceRequest, CreateOrUpdateResourceResponse, CreateProjectRequest, CreateProjectResponse, CreatePromotionPolicyRequest, CreatePromotionPolicyResponse, CreateResourceRequest, CreateResourceResponse, CreateStageRequest, CreateStageResponse, CreateWarehouseRequest, CreateWarehouseResponse, DeleteProjectRequest, DeleteProjectResponse, DeletePromotionPolicyRequest, DeletePromotionPolicyResponse, DeleteResourceRequest, DeleteResourceResponse, DeleteStageRequest, DeleteStageResponse, DeleteWarehouseRequest, DeleteWarehouseResponse, GetConfigRequest, GetConfigResponse, GetPromotionPolicyRequest, GetPromotionPolicyResponse, GetPromotionRequest, GetPromotionResponse, GetPublicConfigRequest, GetPublicConfigResponse, GetStageRequest, GetStageResponse, GetVersionInfoRequest, GetVersionInfoResponse, GetWarehouseRequest, GetWarehouseResponse, ListProjectsRequest, ListProjectsResponse, ListPromotionPoliciesRequest, ListPromotionPoliciesResponse, ListPromotionsRequest, ListPromotionsResponse, ListStagesRequest, ListStagesResponse, ListWarehousesRequest, ListWarehousesResponse, PromoteStageRequest, PromoteStageResponse, PromoteSubscribersRequest, PromoteSubscribersResponse, QueryFreightRequest, QueryFreightResponse, RefreshStageRequest, RefreshStageResponse, RefreshWarehouseRequest, RefreshWarehouseResponse, SetAutoPromotionForStageRequest, SetAutoPromotionForStageResponse, UpdatePromotionPolicyRequest, UpdatePromotionPolicyResponse, UpdateResourceRequest, UpdateResourceResponse, UpdateStageRequest, UpdateStageResponse, UpdateWarehouseRequest, UpdateWarehouseResponse } from "./service_pb.js"; export const typeName = "akuity.io.kargo.service.v1alpha1.KargoService"; @@ -489,3 +489,105 @@ export const queryFreight = createQueryService({ typeName: "akuity.io.kargo.service.v1alpha1.KargoService", }, }).queryFreight; + +/** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses + */ +export const listWarehouses = createQueryService({ + service: { + methods: { + listWarehouses: { + name: "ListWarehouses", + kind: MethodKind.Unary, + I: ListWarehousesRequest, + O: ListWarehousesResponse, + }, + }, + typeName: "akuity.io.kargo.service.v1alpha1.KargoService", + }, +}).listWarehouses; + +/** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse + */ +export const getWarehouse = createQueryService({ + service: { + methods: { + getWarehouse: { + name: "GetWarehouse", + kind: MethodKind.Unary, + I: GetWarehouseRequest, + O: GetWarehouseResponse, + }, + }, + typeName: "akuity.io.kargo.service.v1alpha1.KargoService", + }, +}).getWarehouse; + +/** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.CreateWarehouse + */ +export const createWarehouse = createQueryService({ + service: { + methods: { + createWarehouse: { + name: "CreateWarehouse", + kind: MethodKind.Unary, + I: CreateWarehouseRequest, + O: CreateWarehouseResponse, + }, + }, + typeName: "akuity.io.kargo.service.v1alpha1.KargoService", + }, +}).createWarehouse; + +/** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.UpdateWarehouse + */ +export const updateWarehouse = createQueryService({ + service: { + methods: { + updateWarehouse: { + name: "UpdateWarehouse", + kind: MethodKind.Unary, + I: UpdateWarehouseRequest, + O: UpdateWarehouseResponse, + }, + }, + typeName: "akuity.io.kargo.service.v1alpha1.KargoService", + }, +}).updateWarehouse; + +/** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse + */ +export const deleteWarehouse = createQueryService({ + service: { + methods: { + deleteWarehouse: { + name: "DeleteWarehouse", + kind: MethodKind.Unary, + I: DeleteWarehouseRequest, + O: DeleteWarehouseResponse, + }, + }, + typeName: "akuity.io.kargo.service.v1alpha1.KargoService", + }, +}).deleteWarehouse; + +/** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse + */ +export const refreshWarehouse = createQueryService({ + service: { + methods: { + refreshWarehouse: { + name: "RefreshWarehouse", + kind: MethodKind.Unary, + I: RefreshWarehouseRequest, + O: RefreshWarehouseResponse, + }, + }, + typeName: "akuity.io.kargo.service.v1alpha1.KargoService", + }, +}).refreshWarehouse; diff --git a/ui/src/gen/service/v1alpha1/service_connect.ts b/ui/src/gen/service/v1alpha1/service_connect.ts index ca7b9ba8a..c58e5d9e4 100644 --- a/ui/src/gen/service/v1alpha1/service_connect.ts +++ b/ui/src/gen/service/v1alpha1/service_connect.ts @@ -3,7 +3,7 @@ /* eslint-disable */ // @ts-nocheck -import { AdminLoginRequest, AdminLoginResponse, CreateOrUpdateResourceRequest, CreateOrUpdateResourceResponse, CreateProjectRequest, CreateProjectResponse, CreatePromotionPolicyRequest, CreatePromotionPolicyResponse, CreateResourceRequest, CreateResourceResponse, CreateStageRequest, CreateStageResponse, DeleteProjectRequest, DeleteProjectResponse, DeletePromotionPolicyRequest, DeletePromotionPolicyResponse, DeleteResourceRequest, DeleteResourceResponse, DeleteStageRequest, DeleteStageResponse, GetConfigRequest, GetConfigResponse, GetPromotionPolicyRequest, GetPromotionPolicyResponse, GetPromotionRequest, GetPromotionResponse, GetPublicConfigRequest, GetPublicConfigResponse, GetStageRequest, GetStageResponse, GetVersionInfoRequest, GetVersionInfoResponse, ListProjectsRequest, ListProjectsResponse, ListPromotionPoliciesRequest, ListPromotionPoliciesResponse, ListPromotionsRequest, ListPromotionsResponse, ListStagesRequest, ListStagesResponse, PromoteStageRequest, PromoteStageResponse, PromoteSubscribersRequest, PromoteSubscribersResponse, QueryFreightRequest, QueryFreightResponse, RefreshStageRequest, RefreshStageResponse, SetAutoPromotionForStageRequest, SetAutoPromotionForStageResponse, UpdatePromotionPolicyRequest, UpdatePromotionPolicyResponse, UpdateResourceRequest, UpdateResourceResponse, UpdateStageRequest, UpdateStageResponse, WatchPromotionRequest, WatchPromotionResponse, WatchPromotionsRequest, WatchPromotionsResponse, WatchStagesRequest, WatchStagesResponse } from "./service_pb.js"; +import { AdminLoginRequest, AdminLoginResponse, CreateOrUpdateResourceRequest, CreateOrUpdateResourceResponse, CreateProjectRequest, CreateProjectResponse, CreatePromotionPolicyRequest, CreatePromotionPolicyResponse, CreateResourceRequest, CreateResourceResponse, CreateStageRequest, CreateStageResponse, CreateWarehouseRequest, CreateWarehouseResponse, DeleteProjectRequest, DeleteProjectResponse, DeletePromotionPolicyRequest, DeletePromotionPolicyResponse, DeleteResourceRequest, DeleteResourceResponse, DeleteStageRequest, DeleteStageResponse, DeleteWarehouseRequest, DeleteWarehouseResponse, GetConfigRequest, GetConfigResponse, GetPromotionPolicyRequest, GetPromotionPolicyResponse, GetPromotionRequest, GetPromotionResponse, GetPublicConfigRequest, GetPublicConfigResponse, GetStageRequest, GetStageResponse, GetVersionInfoRequest, GetVersionInfoResponse, GetWarehouseRequest, GetWarehouseResponse, ListProjectsRequest, ListProjectsResponse, ListPromotionPoliciesRequest, ListPromotionPoliciesResponse, ListPromotionsRequest, ListPromotionsResponse, ListStagesRequest, ListStagesResponse, ListWarehousesRequest, ListWarehousesResponse, PromoteStageRequest, PromoteStageResponse, PromoteSubscribersRequest, PromoteSubscribersResponse, QueryFreightRequest, QueryFreightResponse, RefreshStageRequest, RefreshStageResponse, RefreshWarehouseRequest, RefreshWarehouseResponse, SetAutoPromotionForStageRequest, SetAutoPromotionForStageResponse, UpdatePromotionPolicyRequest, UpdatePromotionPolicyResponse, UpdateResourceRequest, UpdateResourceResponse, UpdateStageRequest, UpdateStageResponse, UpdateWarehouseRequest, UpdateWarehouseResponse, WatchPromotionRequest, WatchPromotionResponse, WatchPromotionsRequest, WatchPromotionsResponse, WatchStagesRequest, WatchStagesResponse } from "./service_pb.js"; import { MethodKind } from "@bufbuild/protobuf"; /** @@ -296,6 +296,60 @@ export const KargoService = { O: QueryFreightResponse, kind: MethodKind.Unary, }, + /** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses + */ + listWarehouses: { + name: "ListWarehouses", + I: ListWarehousesRequest, + O: ListWarehousesResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse + */ + getWarehouse: { + name: "GetWarehouse", + I: GetWarehouseRequest, + O: GetWarehouseResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.CreateWarehouse + */ + createWarehouse: { + name: "CreateWarehouse", + I: CreateWarehouseRequest, + O: CreateWarehouseResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.UpdateWarehouse + */ + updateWarehouse: { + name: "UpdateWarehouse", + I: UpdateWarehouseRequest, + O: UpdateWarehouseResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse + */ + deleteWarehouse: { + name: "DeleteWarehouse", + I: DeleteWarehouseRequest, + O: DeleteWarehouseResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse + */ + refreshWarehouse: { + name: "RefreshWarehouse", + I: RefreshWarehouseRequest, + O: RefreshWarehouseResponse, + kind: MethodKind.Unary, + }, } } as const; diff --git a/ui/src/gen/service/v1alpha1/service_pb.ts b/ui/src/gen/service/v1alpha1/service_pb.ts index 6d4a96ee6..bed9bb8cb 100644 --- a/ui/src/gen/service/v1alpha1/service_pb.ts +++ b/ui/src/gen/service/v1alpha1/service_pb.ts @@ -5,7 +5,7 @@ import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, Timestamp } from "@bufbuild/protobuf"; -import { Freight, Promotion, PromotionPolicy, Stage, StageSpec } from "../../v1alpha1/types_pb.js"; +import { Freight, Promotion, PromotionPolicy, Stage, StageSpec, Warehouse, WarehouseSpec } from "../../v1alpha1/types_pb.js"; /** * @generated from message akuity.io.kargo.service.v1alpha1.ComponentVersions @@ -3074,3 +3074,536 @@ export class FreightList extends Message { } } +/** + * @generated from message akuity.io.kargo.service.v1alpha1.ListWarehousesRequest + */ +export class ListWarehousesRequest extends Message { + /** + * @generated from field: string project = 1; + */ + project = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.ListWarehousesRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): ListWarehousesRequest { + return new ListWarehousesRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): ListWarehousesRequest { + return new ListWarehousesRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): ListWarehousesRequest { + return new ListWarehousesRequest().fromJsonString(jsonString, options); + } + + static equals(a: ListWarehousesRequest | PlainMessage | undefined, b: ListWarehousesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(ListWarehousesRequest, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.ListWarehousesResponse + */ +export class ListWarehousesResponse extends Message { + /** + * @generated from field: repeated github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouses = 1; + */ + warehouses: Warehouse[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.ListWarehousesResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "warehouses", kind: "message", T: Warehouse, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): ListWarehousesResponse { + return new ListWarehousesResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): ListWarehousesResponse { + return new ListWarehousesResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): ListWarehousesResponse { + return new ListWarehousesResponse().fromJsonString(jsonString, options); + } + + static equals(a: ListWarehousesResponse | PlainMessage | undefined, b: ListWarehousesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(ListWarehousesResponse, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.GetWarehouseRequest + */ +export class GetWarehouseRequest extends Message { + /** + * @generated from field: string project = 1; + */ + project = ""; + + /** + * @generated from field: string name = 2; + */ + name = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.GetWarehouseRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetWarehouseRequest { + return new GetWarehouseRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetWarehouseRequest { + return new GetWarehouseRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetWarehouseRequest { + return new GetWarehouseRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetWarehouseRequest | PlainMessage | undefined, b: GetWarehouseRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetWarehouseRequest, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.GetWarehouseResponse + */ +export class GetWarehouseResponse extends Message { + /** + * @generated from field: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; + */ + warehouse?: Warehouse; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.GetWarehouseResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "warehouse", kind: "message", T: Warehouse }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetWarehouseResponse { + return new GetWarehouseResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetWarehouseResponse { + return new GetWarehouseResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetWarehouseResponse { + return new GetWarehouseResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetWarehouseResponse | PlainMessage | undefined, b: GetWarehouseResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetWarehouseResponse, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec + */ +export class TypedWarehouseSpec extends Message { + /** + * @generated from field: string project = 1; + */ + project = ""; + + /** + * @generated from field: string name = 2; + */ + name = ""; + + /** + * @generated from field: github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec spec = 3; + */ + spec?: WarehouseSpec; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "spec", kind: "message", T: WarehouseSpec }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): TypedWarehouseSpec { + return new TypedWarehouseSpec().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): TypedWarehouseSpec { + return new TypedWarehouseSpec().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): TypedWarehouseSpec { + return new TypedWarehouseSpec().fromJsonString(jsonString, options); + } + + static equals(a: TypedWarehouseSpec | PlainMessage | undefined, b: TypedWarehouseSpec | PlainMessage | undefined): boolean { + return proto3.util.equals(TypedWarehouseSpec, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.CreateWarehouseRequest + */ +export class CreateWarehouseRequest extends Message { + /** + * @generated from oneof akuity.io.kargo.service.v1alpha1.CreateWarehouseRequest.warehouse + */ + warehouse: { + /** + * @generated from field: akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec typed = 1; + */ + value: TypedWarehouseSpec; + case: "typed"; + } | { + /** + * @generated from field: string yaml = 2; + */ + value: string; + case: "yaml"; + } | { case: undefined; value?: undefined } = { case: undefined }; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.CreateWarehouseRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "typed", kind: "message", T: TypedWarehouseSpec, oneof: "warehouse" }, + { no: 2, name: "yaml", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "warehouse" }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): CreateWarehouseRequest { + return new CreateWarehouseRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): CreateWarehouseRequest { + return new CreateWarehouseRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): CreateWarehouseRequest { + return new CreateWarehouseRequest().fromJsonString(jsonString, options); + } + + static equals(a: CreateWarehouseRequest | PlainMessage | undefined, b: CreateWarehouseRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(CreateWarehouseRequest, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.CreateWarehouseResponse + */ +export class CreateWarehouseResponse extends Message { + /** + * @generated from field: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; + */ + warehouse?: Warehouse; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.CreateWarehouseResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "warehouse", kind: "message", T: Warehouse }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): CreateWarehouseResponse { + return new CreateWarehouseResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): CreateWarehouseResponse { + return new CreateWarehouseResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): CreateWarehouseResponse { + return new CreateWarehouseResponse().fromJsonString(jsonString, options); + } + + static equals(a: CreateWarehouseResponse | PlainMessage | undefined, b: CreateWarehouseResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(CreateWarehouseResponse, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.UpdateWarehouseRequest + */ +export class UpdateWarehouseRequest extends Message { + /** + * @generated from oneof akuity.io.kargo.service.v1alpha1.UpdateWarehouseRequest.warehouse + */ + warehouse: { + /** + * @generated from field: akuity.io.kargo.service.v1alpha1.TypedWarehouseSpec typed = 1; + */ + value: TypedWarehouseSpec; + case: "typed"; + } | { + /** + * @generated from field: string yaml = 2; + */ + value: string; + case: "yaml"; + } | { case: undefined; value?: undefined } = { case: undefined }; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.UpdateWarehouseRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "typed", kind: "message", T: TypedWarehouseSpec, oneof: "warehouse" }, + { no: 2, name: "yaml", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "warehouse" }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): UpdateWarehouseRequest { + return new UpdateWarehouseRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): UpdateWarehouseRequest { + return new UpdateWarehouseRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): UpdateWarehouseRequest { + return new UpdateWarehouseRequest().fromJsonString(jsonString, options); + } + + static equals(a: UpdateWarehouseRequest | PlainMessage | undefined, b: UpdateWarehouseRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(UpdateWarehouseRequest, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.UpdateWarehouseResponse + */ +export class UpdateWarehouseResponse extends Message { + /** + * @generated from field: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; + */ + warehouse?: Warehouse; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.UpdateWarehouseResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "warehouse", kind: "message", T: Warehouse }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): UpdateWarehouseResponse { + return new UpdateWarehouseResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): UpdateWarehouseResponse { + return new UpdateWarehouseResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): UpdateWarehouseResponse { + return new UpdateWarehouseResponse().fromJsonString(jsonString, options); + } + + static equals(a: UpdateWarehouseResponse | PlainMessage | undefined, b: UpdateWarehouseResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(UpdateWarehouseResponse, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest + */ +export class DeleteWarehouseRequest extends Message { + /** + * @generated from field: string project = 1; + */ + project = ""; + + /** + * @generated from field: string name = 2; + */ + name = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeleteWarehouseRequest { + return new DeleteWarehouseRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeleteWarehouseRequest { + return new DeleteWarehouseRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeleteWarehouseRequest { + return new DeleteWarehouseRequest().fromJsonString(jsonString, options); + } + + static equals(a: DeleteWarehouseRequest | PlainMessage | undefined, b: DeleteWarehouseRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(DeleteWarehouseRequest, a, b); + } +} + +/** + * explicitly empty + * + * @generated from message akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse + */ +export class DeleteWarehouseResponse extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeleteWarehouseResponse { + return new DeleteWarehouseResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeleteWarehouseResponse { + return new DeleteWarehouseResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeleteWarehouseResponse { + return new DeleteWarehouseResponse().fromJsonString(jsonString, options); + } + + static equals(a: DeleteWarehouseResponse | PlainMessage | undefined, b: DeleteWarehouseResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(DeleteWarehouseResponse, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest + */ +export class RefreshWarehouseRequest extends Message { + /** + * @generated from field: string project = 1; + */ + project = ""; + + /** + * @generated from field: string name = 2; + */ + name = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): RefreshWarehouseRequest { + return new RefreshWarehouseRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): RefreshWarehouseRequest { + return new RefreshWarehouseRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): RefreshWarehouseRequest { + return new RefreshWarehouseRequest().fromJsonString(jsonString, options); + } + + static equals(a: RefreshWarehouseRequest | PlainMessage | undefined, b: RefreshWarehouseRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(RefreshWarehouseRequest, a, b); + } +} + +/** + * @generated from message akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse + */ +export class RefreshWarehouseResponse extends Message { + /** + * @generated from field: github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse warehouse = 1; + */ + warehouse?: Warehouse; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "warehouse", kind: "message", T: Warehouse }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): RefreshWarehouseResponse { + return new RefreshWarehouseResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): RefreshWarehouseResponse { + return new RefreshWarehouseResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): RefreshWarehouseResponse { + return new RefreshWarehouseResponse().fromJsonString(jsonString, options); + } + + static equals(a: RefreshWarehouseResponse | PlainMessage | undefined, b: RefreshWarehouseResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(RefreshWarehouseResponse, a, b); + } +} + diff --git a/ui/src/gen/v1alpha1/types_pb.ts b/ui/src/gen/v1alpha1/types_pb.ts index 230733ca2..88d6e3b46 100644 --- a/ui/src/gen/v1alpha1/types_pb.ts +++ b/ui/src/gen/v1alpha1/types_pb.ts @@ -4,7 +4,7 @@ // @ts-nocheck import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; -import { Message, proto3, Timestamp } from "@bufbuild/protobuf"; +import { Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf"; import { ListMeta, ObjectMeta } from "../metav1/types_pb.js"; /** @@ -2004,3 +2004,144 @@ export class Subscriptions extends Message { } } +/** + * @generated from message github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse + */ +export class Warehouse extends Message { + /** + * @generated from field: string api_version = 1; + */ + apiVersion = ""; + + /** + * @generated from field: string kind = 2; + */ + kind = ""; + + /** + * @generated from field: github.com.akuity.kargo.pkg.api.metav1.ObjectMeta metadata = 3; + */ + metadata?: ObjectMeta; + + /** + * @generated from field: github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec spec = 4; + */ + spec?: WarehouseSpec; + + /** + * @generated from field: github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseStatus status = 5; + */ + status?: WarehouseStatus; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "github.com.akuity.kargo.pkg.api.v1alpha1.Warehouse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "api_version", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "kind", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "metadata", kind: "message", T: ObjectMeta }, + { no: 4, name: "spec", kind: "message", T: WarehouseSpec }, + { no: 5, name: "status", kind: "message", T: WarehouseStatus }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): Warehouse { + return new Warehouse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): Warehouse { + return new Warehouse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): Warehouse { + return new Warehouse().fromJsonString(jsonString, options); + } + + static equals(a: Warehouse | PlainMessage | undefined, b: Warehouse | PlainMessage | undefined): boolean { + return proto3.util.equals(Warehouse, a, b); + } +} + +/** + * @generated from message github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec + */ +export class WarehouseSpec extends Message { + /** + * @generated from field: repeated github.com.akuity.kargo.pkg.api.v1alpha1.RepoSubscription subscriptions = 1; + */ + subscriptions: RepoSubscription[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseSpec"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "subscriptions", kind: "message", T: RepoSubscription, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): WarehouseSpec { + return new WarehouseSpec().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): WarehouseSpec { + return new WarehouseSpec().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): WarehouseSpec { + return new WarehouseSpec().fromJsonString(jsonString, options); + } + + static equals(a: WarehouseSpec | PlainMessage | undefined, b: WarehouseSpec | PlainMessage | undefined): boolean { + return proto3.util.equals(WarehouseSpec, a, b); + } +} + +/** + * @generated from message github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseStatus + */ +export class WarehouseStatus extends Message { + /** + * @generated from field: string error = 1; + */ + error = ""; + + /** + * @generated from field: int64 observed_generation = 2; + */ + observedGeneration = protoInt64.zero; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "github.com.akuity.kargo.pkg.api.v1alpha1.WarehouseStatus"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "observed_generation", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): WarehouseStatus { + return new WarehouseStatus().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): WarehouseStatus { + return new WarehouseStatus().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): WarehouseStatus { + return new WarehouseStatus().fromJsonString(jsonString, options); + } + + static equals(a: WarehouseStatus | PlainMessage | undefined, b: WarehouseStatus | PlainMessage | undefined): boolean { + return proto3.util.equals(WarehouseStatus, a, b); + } +} +