diff --git a/Justfile b/Justfile index 198bec6a41..91061631bf 100644 --- a/Justfile +++ b/Justfile @@ -5,7 +5,7 @@ WATCHEXEC_ARGS := "-d 1s -e proto -e go -e sql -f sqlc.yaml --ignore **/types.ft RELEASE := "build/release" VERSION := `git describe --tags --always | sed -e 's/^v//'` TIMESTAMP := `date +%s` -SCHEMA_OUT := "backend/protos/xyz/block/ftl/v1/schema/schema.proto" +SCHEMA_OUT := "backend/protos/xyz/block/ftl/schema/v1/schema.proto" ZIP_DIRS := "go-runtime/compile/build-template " + \ "go-runtime/compile/external-module-template " + \ "go-runtime/compile/main-work-template " + \ @@ -20,13 +20,29 @@ CONSOLE_ROOT := "frontend/console" FRONTEND_OUT := CONSOLE_ROOT + "/dist/index.html" EXTENSION_OUT := "frontend/vscode/dist/extension.js" PROTOS_IN := "backend/protos" -PROTOS_OUT := "backend/protos/xyz/block/ftl/v1/console/console.pb.go " + \ - "backend/protos/xyz/block/ftl/v1/ftl.pb.go " + \ - "backend/protos/xyz/block/ftl/v1/schema/schema.pb.go " + \ - CONSOLE_ROOT + "/src/protos/xyz/block/ftl/v1/console/console_pb.ts " + \ +PROTOS_OUT := "backend/protos/xyz/block/ftl/console/v1/console.pb.go " + \ + "backend/protos/xyz/block/ftl//v1/ftl.pb.go " + \ + "backend/protos/xyz/block/ftl/schema/v1/schema.pb.go " + \ + CONSOLE_ROOT + "/src/protos/xyz/block/ftl/console/v1/console_pb.ts " + \ CONSOLE_ROOT + "/src/protos/xyz/block/ftl/v1/ftl_pb.ts " + \ - CONSOLE_ROOT + "/src/protos/xyz/block/ftl/v1/schema/runtime_pb.ts " + \ - CONSOLE_ROOT + "/src/protos/xyz/block/ftl/v1/schema/schema_pb.ts" + CONSOLE_ROOT + "/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts" +# Configuration for building Docker images +DOCKER_IMAGES := ''' +{ + "controller": { + "extra_binaries": ["ftl"], + "extra_files": ["ftl-provisioner-config.toml"] + }, + "provisioner": { + "extra_binaries": ["ftl-provisioner-cloudformation"], + "extra_files": ["ftl-provisioner-config.toml"] + }, + "cron": {}, + "http-ingress": {}, + "runner": {}, + "runner-jvm": {} +} +''' _help: @just -l @@ -57,7 +73,7 @@ dev *args: watchexec -r {{WATCHEXEC_ARGS}} -- "just build-sqlc && ftl dev --plain {{args}}" # Build everything -build-all: build-protos-unconditionally build-backend build-frontend build-generate build-sqlc build-zips lsp-generate build-jvm build-language-plugins +build-all: build-protos-unconditionally build-backend build-frontend build-backend-tests build-generate build-sqlc build-zips lsp-generate build-jvm build-language-plugins # Run "go generate" on all packages build-generate: @@ -73,6 +89,7 @@ build +tools: build-protos build-zips build-frontend # But it will be included if it was already built build-without-frontend +tools: build-protos build-zips #!/bin/bash + set -euo pipefail mkdir -p frontend/console/dist touch frontend/console/dist/.phoney shopt -s extglob @@ -91,7 +108,7 @@ build-backend: # Build all backend tests build-backend-tests: - go test -run ^NONE -tags integration,infrastructure ./... + go test -run ^NONE -tags integration,infrastructure ./... > /dev/null build-jvm *args: @@ -176,9 +193,9 @@ build-protos: # Generate .proto files from .go types. go2proto: @mk "{{SCHEMA_OUT}}" : cmd/go2proto internal/schema -- go2proto -o "{{SCHEMA_OUT}}" \ - -O 'go_package="github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema;schemapb"' \ + -O 'go_package="github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1;schemapb"' \ -O 'java_multiple_files=true' \ - xyz.block.ftl.v1.schema ./internal/schema.Schema && buf format -w && buf lint + xyz.block.ftl.schema.v1 ./internal/schema.Schema && buf format -w && buf lint # Unconditionally rebuild protos build-protos-unconditionally: lint-protos pnpm-install go2proto @@ -299,7 +316,7 @@ build-docker name: # Run docker compose up with all docker compose files compose-up: #!/bin/bash - set -eo pipefail + set -o pipefail docker_compose_files=" -f docker-compose.yml -f internal/dev/docker-compose.grafana.yml @@ -307,7 +324,16 @@ compose-up: -f internal/dev/docker-compose.postgres.yml -f internal/dev/docker-compose.redpanda.yml -f internal/dev/docker-compose.registry.yml" + + docker compose -p "ftl" $docker_compose_files up -d --wait + status=$? + if [ $status -ne 0 ] && [ -n "${CI-}" ]; then + # CI fails regularly due to network issues. Retry once. + echo "docker compose up failed, retrying in 3s..." + docker compose -p "ftl" $docker_compose_files up -d --wait docker compose -p "ftl" $docker_compose_files up -d --wait + fi + # Run a Just command in the Helm charts directory chart *args: diff --git a/backend/controller/admin/admin.go b/backend/controller/admin/admin.go index 6af05070ae..d82fac180c 100644 --- a/backend/controller/admin/admin.go +++ b/backend/controller/admin/admin.go @@ -45,13 +45,13 @@ func (s *AdminService) Ping(ctx context.Context, req *connect.Request[ftlv1.Ping } // ConfigList returns the list of configuration values, optionally filtered by module. -func (s *AdminService) ConfigList(ctx context.Context, req *connect.Request[ftlv1.ListConfigRequest]) (*connect.Response[ftlv1.ListConfigResponse], error) { +func (s *AdminService) ConfigList(ctx context.Context, req *connect.Request[ftlv1.ConfigListRequest]) (*connect.Response[ftlv1.ConfigListResponse], error) { listing, err := s.cm.List(ctx) if err != nil { return nil, fmt.Errorf("failed to list configs: %w", err) } - configs := []*ftlv1.ListConfigResponse_Config{} + configs := []*ftlv1.ConfigListResponse_Config{} for _, config := range listing { module, ok := config.Module.Get() if req.Msg.Module != nil && *req.Msg.Module != "" && module != *req.Msg.Module { @@ -76,16 +76,16 @@ func (s *AdminService) ConfigList(ctx context.Context, req *connect.Request[ftlv } } - configs = append(configs, &ftlv1.ListConfigResponse_Config{ + configs = append(configs, &ftlv1.ConfigListResponse_Config{ RefPath: ref, Value: cv, }) } - return connect.NewResponse(&ftlv1.ListConfigResponse{Configs: configs}), nil + return connect.NewResponse(&ftlv1.ConfigListResponse{Configs: configs}), nil } // ConfigGet returns the configuration value for a given ref string. -func (s *AdminService) ConfigGet(ctx context.Context, req *connect.Request[ftlv1.GetConfigRequest]) (*connect.Response[ftlv1.GetConfigResponse], error) { +func (s *AdminService) ConfigGet(ctx context.Context, req *connect.Request[ftlv1.ConfigGetRequest]) (*connect.Response[ftlv1.ConfigGetResponse], error) { var value any err := s.cm.Get(ctx, refFromConfigRef(req.Msg.GetRef()), &value) if err != nil { @@ -95,7 +95,7 @@ func (s *AdminService) ConfigGet(ctx context.Context, req *connect.Request[ftlv1 if err != nil { return nil, fmt.Errorf("failed to marshal value: %w", err) } - return connect.NewResponse(&ftlv1.GetConfigResponse{Value: vb}), nil + return connect.NewResponse(&ftlv1.ConfigGetResponse{Value: vb}), nil } func configProviderKey(p *ftlv1.ConfigProvider) configuration.ProviderKey { @@ -103,18 +103,18 @@ func configProviderKey(p *ftlv1.ConfigProvider) configuration.ProviderKey { return "" } switch *p { - case ftlv1.ConfigProvider_CONFIG_INLINE: + case ftlv1.ConfigProvider_CONFIG_PROVIDER_INLINE: return providers.InlineProviderKey - case ftlv1.ConfigProvider_CONFIG_ENVAR: + case ftlv1.ConfigProvider_CONFIG_PROVIDER_ENVAR: return providers.EnvarProviderKey - case ftlv1.ConfigProvider_CONFIG_DB: + case ftlv1.ConfigProvider_CONFIG_PROVIDER_DB: return providers.DatabaseConfigProviderKey } return "" } // ConfigSet sets the configuration at the given ref to the provided value. -func (s *AdminService) ConfigSet(ctx context.Context, req *connect.Request[ftlv1.SetConfigRequest]) (*connect.Response[ftlv1.SetConfigResponse], error) { +func (s *AdminService) ConfigSet(ctx context.Context, req *connect.Request[ftlv1.ConfigSetRequest]) (*connect.Response[ftlv1.ConfigSetResponse], error) { err := s.validateAgainstSchema(ctx, false, refFromConfigRef(req.Msg.GetRef()), req.Msg.Value) if err != nil { return nil, err @@ -124,25 +124,25 @@ func (s *AdminService) ConfigSet(ctx context.Context, req *connect.Request[ftlv1 if err != nil { return nil, fmt.Errorf("failed to set config: %w", err) } - return connect.NewResponse(&ftlv1.SetConfigResponse{}), nil + return connect.NewResponse(&ftlv1.ConfigSetResponse{}), nil } // ConfigUnset unsets the config value at the given ref. -func (s *AdminService) ConfigUnset(ctx context.Context, req *connect.Request[ftlv1.UnsetConfigRequest]) (*connect.Response[ftlv1.UnsetConfigResponse], error) { +func (s *AdminService) ConfigUnset(ctx context.Context, req *connect.Request[ftlv1.ConfigUnsetRequest]) (*connect.Response[ftlv1.ConfigUnsetResponse], error) { err := s.cm.Unset(ctx, refFromConfigRef(req.Msg.GetRef())) if err != nil { return nil, fmt.Errorf("failed to unset config: %w", err) } - return connect.NewResponse(&ftlv1.UnsetConfigResponse{}), nil + return connect.NewResponse(&ftlv1.ConfigUnsetResponse{}), nil } // SecretsList returns the list of secrets, optionally filtered by module. -func (s *AdminService) SecretsList(ctx context.Context, req *connect.Request[ftlv1.ListSecretsRequest]) (*connect.Response[ftlv1.ListSecretsResponse], error) { +func (s *AdminService) SecretsList(ctx context.Context, req *connect.Request[ftlv1.SecretsListRequest]) (*connect.Response[ftlv1.SecretsListResponse], error) { listing, err := s.sm.List(ctx) if err != nil { return nil, fmt.Errorf("failed to list secrets: %w", err) } - secrets := []*ftlv1.ListSecretsResponse_Secret{} + secrets := []*ftlv1.SecretsListResponse_Secret{} for _, secret := range listing { module, ok := secret.Module.Get() if req.Msg.Module != nil && *req.Msg.Module != "" && module != *req.Msg.Module { @@ -164,16 +164,16 @@ func (s *AdminService) SecretsList(ctx context.Context, req *connect.Request[ftl return nil, fmt.Errorf("failed to marshal value for %s: %w", ref, err) } } - secrets = append(secrets, &ftlv1.ListSecretsResponse_Secret{ + secrets = append(secrets, &ftlv1.SecretsListResponse_Secret{ RefPath: ref, Value: sv, }) } - return connect.NewResponse(&ftlv1.ListSecretsResponse{Secrets: secrets}), nil + return connect.NewResponse(&ftlv1.SecretsListResponse{Secrets: secrets}), nil } // SecretGet returns the secret value for a given ref string. -func (s *AdminService) SecretGet(ctx context.Context, req *connect.Request[ftlv1.GetSecretRequest]) (*connect.Response[ftlv1.GetSecretResponse], error) { +func (s *AdminService) SecretGet(ctx context.Context, req *connect.Request[ftlv1.SecretGetRequest]) (*connect.Response[ftlv1.SecretGetResponse], error) { var value any err := s.sm.Get(ctx, refFromConfigRef(req.Msg.GetRef()), &value) if err != nil { @@ -183,11 +183,11 @@ func (s *AdminService) SecretGet(ctx context.Context, req *connect.Request[ftlv1 if err != nil { return nil, fmt.Errorf("failed to marshal value: %w", err) } - return connect.NewResponse(&ftlv1.GetSecretResponse{Value: vb}), nil + return connect.NewResponse(&ftlv1.SecretGetResponse{Value: vb}), nil } // SecretSet sets the secret at the given ref to the provided value. -func (s *AdminService) SecretSet(ctx context.Context, req *connect.Request[ftlv1.SetSecretRequest]) (*connect.Response[ftlv1.SetSecretResponse], error) { +func (s *AdminService) SecretSet(ctx context.Context, req *connect.Request[ftlv1.SecretSetRequest]) (*connect.Response[ftlv1.SecretSetResponse], error) { err := s.validateAgainstSchema(ctx, true, refFromConfigRef(req.Msg.GetRef()), req.Msg.Value) if err != nil { return nil, err @@ -197,16 +197,16 @@ func (s *AdminService) SecretSet(ctx context.Context, req *connect.Request[ftlv1 if err != nil { return nil, fmt.Errorf("failed to set secret: %w", err) } - return connect.NewResponse(&ftlv1.SetSecretResponse{}), nil + return connect.NewResponse(&ftlv1.SecretSetResponse{}), nil } // SecretUnset unsets the secret value at the given ref. -func (s *AdminService) SecretUnset(ctx context.Context, req *connect.Request[ftlv1.UnsetSecretRequest]) (*connect.Response[ftlv1.UnsetSecretResponse], error) { +func (s *AdminService) SecretUnset(ctx context.Context, req *connect.Request[ftlv1.SecretUnsetRequest]) (*connect.Response[ftlv1.SecretUnsetResponse], error) { err := s.sm.Unset(ctx, refFromConfigRef(req.Msg.GetRef())) if err != nil { return nil, fmt.Errorf("failed to unset secret: %w", err) } - return connect.NewResponse(&ftlv1.UnsetSecretResponse{}), nil + return connect.NewResponse(&ftlv1.SecretUnsetResponse{}), nil } func refFromConfigRef(cr *ftlv1.ConfigRef) configuration.Ref { diff --git a/backend/controller/admin/admin_test.go b/backend/controller/admin/admin_test.go index 282480ec63..43b3aebee3 100644 --- a/backend/controller/admin/admin_test.go +++ b/backend/controller/admin/admin_test.go @@ -84,7 +84,7 @@ func testAdminConfigs( module := "" includeValues := true - resp, err := admin.ConfigList(ctx, connect.NewRequest(&ftlv1.ListConfigRequest{ + resp, err := admin.ConfigList(ctx, connect.NewRequest(&ftlv1.ConfigListRequest{ Module: &module, IncludeValues: &includeValues, })) @@ -100,7 +100,7 @@ func testAdminConfigs( Module: &module, Name: entry.Ref.Name, } - resp, err := admin.ConfigGet(ctx, connect.NewRequest(&ftlv1.GetConfigRequest{Ref: ref})) + resp, err := admin.ConfigGet(ctx, connect.NewRequest(&ftlv1.ConfigGetRequest{Ref: ref})) assert.NoError(t, err) assert.Equal(t, entry.Value, string(resp.Msg.Value)) } @@ -119,7 +119,7 @@ func testAdminSecrets( module := "" includeValues := true - resp, err := admin.SecretsList(ctx, connect.NewRequest(&ftlv1.ListSecretsRequest{ + resp, err := admin.SecretsList(ctx, connect.NewRequest(&ftlv1.SecretsListRequest{ Module: &module, IncludeValues: &includeValues, })) @@ -135,7 +135,7 @@ func testAdminSecrets( Module: &module, Name: entry.Ref.Name, } - resp, err := admin.SecretGet(ctx, connect.NewRequest(&ftlv1.GetSecretRequest{Ref: ref})) + resp, err := admin.SecretGet(ctx, connect.NewRequest(&ftlv1.SecretGetRequest{Ref: ref})) assert.NoError(t, err) assert.Equal(t, entry.Value, string(resp.Msg.Value)) } @@ -235,8 +235,8 @@ func testSetConfig(t testing.TB, ctx context.Context, admin *AdminService, modul configRef.Module = &module } - _, err = admin.ConfigSet(ctx, connect.NewRequest(&ftlv1.SetConfigRequest{ - Provider: ftlv1.ConfigProvider_CONFIG_INLINE.Enum(), + _, err = admin.ConfigSet(ctx, connect.NewRequest(&ftlv1.ConfigSetRequest{ + Provider: ftlv1.ConfigProvider_CONFIG_PROVIDER_INLINE.Enum(), Ref: configRef, Value: buffer, })) @@ -254,8 +254,8 @@ func testSetSecret(t testing.TB, ctx context.Context, admin *AdminService, modul configRef.Module = &module } - _, err = admin.SecretSet(ctx, connect.NewRequest(&ftlv1.SetSecretRequest{ - Provider: ftlv1.SecretProvider_SECRET_INLINE.Enum(), + _, err = admin.SecretSet(ctx, connect.NewRequest(&ftlv1.SecretSetRequest{ + Provider: ftlv1.SecretProvider_SECRET_PROVIDER_INLINE.Enum(), Ref: configRef, Value: buffer, })) diff --git a/backend/controller/admin/client.go b/backend/controller/admin/client.go index 48cdba57d7..f286692ad8 100644 --- a/backend/controller/admin/client.go +++ b/backend/controller/admin/client.go @@ -20,28 +20,28 @@ type Client interface { Ping(ctx context.Context, req *connect.Request[ftlv1.PingRequest]) (*connect.Response[ftlv1.PingResponse], error) // List configuration. - ConfigList(ctx context.Context, req *connect.Request[ftlv1.ListConfigRequest]) (*connect.Response[ftlv1.ListConfigResponse], error) + ConfigList(ctx context.Context, req *connect.Request[ftlv1.ConfigListRequest]) (*connect.Response[ftlv1.ConfigListResponse], error) // Get a config value. - ConfigGet(ctx context.Context, req *connect.Request[ftlv1.GetConfigRequest]) (*connect.Response[ftlv1.GetConfigResponse], error) + ConfigGet(ctx context.Context, req *connect.Request[ftlv1.ConfigGetRequest]) (*connect.Response[ftlv1.ConfigGetResponse], error) // Set a config value. - ConfigSet(ctx context.Context, req *connect.Request[ftlv1.SetConfigRequest]) (*connect.Response[ftlv1.SetConfigResponse], error) + ConfigSet(ctx context.Context, req *connect.Request[ftlv1.ConfigSetRequest]) (*connect.Response[ftlv1.ConfigSetResponse], error) // Unset a config value. - ConfigUnset(ctx context.Context, req *connect.Request[ftlv1.UnsetConfigRequest]) (*connect.Response[ftlv1.UnsetConfigResponse], error) + ConfigUnset(ctx context.Context, req *connect.Request[ftlv1.ConfigUnsetRequest]) (*connect.Response[ftlv1.ConfigUnsetResponse], error) // List secrets. - SecretsList(ctx context.Context, req *connect.Request[ftlv1.ListSecretsRequest]) (*connect.Response[ftlv1.ListSecretsResponse], error) + SecretsList(ctx context.Context, req *connect.Request[ftlv1.SecretsListRequest]) (*connect.Response[ftlv1.SecretsListResponse], error) // Get a secret. - SecretGet(ctx context.Context, req *connect.Request[ftlv1.GetSecretRequest]) (*connect.Response[ftlv1.GetSecretResponse], error) + SecretGet(ctx context.Context, req *connect.Request[ftlv1.SecretGetRequest]) (*connect.Response[ftlv1.SecretGetResponse], error) // Set a secret. - SecretSet(ctx context.Context, req *connect.Request[ftlv1.SetSecretRequest]) (*connect.Response[ftlv1.SetSecretResponse], error) + SecretSet(ctx context.Context, req *connect.Request[ftlv1.SecretSetRequest]) (*connect.Response[ftlv1.SecretSetResponse], error) // Unset a secret. - SecretUnset(ctx context.Context, req *connect.Request[ftlv1.UnsetSecretRequest]) (*connect.Response[ftlv1.UnsetSecretResponse], error) + SecretUnset(ctx context.Context, req *connect.Request[ftlv1.SecretUnsetRequest]) (*connect.Response[ftlv1.SecretUnsetResponse], error) } // ShouldUseLocalClient returns whether a local admin client should be used based on the admin service client and the endpoint. diff --git a/backend/controller/console/console.go b/backend/controller/console/console.go index e15081145e..efaff5a314 100644 --- a/backend/controller/console/console.go +++ b/backend/controller/console/console.go @@ -16,10 +16,10 @@ import ( "github.com/TBD54566975/ftl/backend/controller/dal" dalmodel "github.com/TBD54566975/ftl/backend/controller/dal/model" "github.com/TBD54566975/ftl/backend/controller/timeline" + pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" + "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console/pbconsoleconnect" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" "github.com/TBD54566975/ftl/internal/buildengine" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/model" @@ -471,7 +471,7 @@ func addRefToSetMap(m map[schema.RefKey]map[schema.RefKey]bool, key schema.RefKe m[key][value.ToRefKey()] = true } -func (c *ConsoleService) GetEvents(ctx context.Context, req *connect.Request[pbconsole.EventsQuery]) (*connect.Response[pbconsole.GetEventsResponse], error) { +func (c *ConsoleService) GetEvents(ctx context.Context, req *connect.Request[pbconsole.GetEventsRequest]) (*connect.Response[pbconsole.GetEventsResponse], error) { query, err := eventsQueryProtoToDAL(req.Msg) if err != nil { return nil, err @@ -554,113 +554,72 @@ func (c *ConsoleService) StreamEvents(ctx context.Context, req *connect.Request[ } } -func eventsQueryProtoToDAL(pb *pbconsole.EventsQuery) ([]timeline.TimelineFilter, error) { - var query []timeline.TimelineFilter +func eventsQueryProtoToDAL(query *pbconsole.GetEventsRequest) ([]timeline.TimelineFilter, error) { + var result []timeline.TimelineFilter - if pb.Order == pbconsole.EventsQuery_DESC { - query = append(query, timeline.FilterDescending()) + if query.Order == pbconsole.GetEventsRequest_ORDER_DESC { + result = append(result, timeline.FilterDescending()) } - for _, filter := range pb.Filters { - switch filter := filter.Filter.(type) { - case *pbconsole.EventsQuery_Filter_Deployments: - deploymentKeys := make([]model.DeploymentKey, 0, len(filter.Deployments.Deployments)) - for _, deployment := range filter.Deployments.Deployments { + for _, filter := range query.Filters { + switch f := filter.Filter.(type) { + case *pbconsole.GetEventsRequest_Filter_Deployments: + deploymentKeys := make([]model.DeploymentKey, 0, len(f.Deployments.Deployments)) + for _, deployment := range f.Deployments.Deployments { deploymentKey, err := model.ParseDeploymentKey(deployment) if err != nil { return nil, connect.NewError(connect.CodeInvalidArgument, err) } deploymentKeys = append(deploymentKeys, deploymentKey) } - query = append(query, timeline.FilterDeployments(deploymentKeys...)) + result = append(result, timeline.FilterDeployments(deploymentKeys...)) - case *pbconsole.EventsQuery_Filter_Requests: - requestKeys := make([]model.RequestKey, 0, len(filter.Requests.Requests)) - for _, request := range filter.Requests.Requests { + case *pbconsole.GetEventsRequest_Filter_Requests: + requestKeys := make([]model.RequestKey, 0, len(f.Requests.Requests)) + for _, request := range f.Requests.Requests { requestKey, err := model.ParseRequestKey(request) if err != nil { return nil, connect.NewError(connect.CodeInvalidArgument, err) } requestKeys = append(requestKeys, requestKey) } - query = append(query, timeline.FilterRequests(requestKeys...)) - - case *pbconsole.EventsQuery_Filter_EventTypes: - eventTypes := make([]timeline.EventType, 0, len(filter.EventTypes.EventTypes)) - for _, eventType := range filter.EventTypes.EventTypes { - switch eventType { - case pbconsole.EventType_EVENT_TYPE_CALL: - eventTypes = append(eventTypes, timeline.EventTypeCall) - case pbconsole.EventType_EVENT_TYPE_LOG: - eventTypes = append(eventTypes, timeline.EventTypeLog) - case pbconsole.EventType_EVENT_TYPE_DEPLOYMENT_CREATED: - eventTypes = append(eventTypes, timeline.EventTypeDeploymentCreated) - case pbconsole.EventType_EVENT_TYPE_DEPLOYMENT_UPDATED: - eventTypes = append(eventTypes, timeline.EventTypeDeploymentUpdated) - case pbconsole.EventType_EVENT_TYPE_INGRESS: - eventTypes = append(eventTypes, timeline.EventTypeIngress) - case pbconsole.EventType_EVENT_TYPE_CRON_SCHEDULED: - eventTypes = append(eventTypes, timeline.EventTypeCronScheduled) - case pbconsole.EventType_EVENT_TYPE_ASYNC_EXECUTE: - eventTypes = append(eventTypes, timeline.EventTypeAsyncExecute) - case pbconsole.EventType_EVENT_TYPE_PUBSUB_PUBLISH: - eventTypes = append(eventTypes, timeline.EventTypePubSubPublish) - case pbconsole.EventType_EVENT_TYPE_PUBSUB_CONSUME: - eventTypes = append(eventTypes, timeline.EventTypePubSubConsume) - default: - return nil, connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("unknown event type %v", eventType)) - } + result = append(result, timeline.FilterRequests(requestKeys...)) + + case *pbconsole.GetEventsRequest_Filter_EventTypes: + var types []timeline.EventType + for _, t := range f.EventTypes.EventTypes { + types = append(types, timeline.EventType(t)) } - query = append(query, timeline.FilterTypes(eventTypes...)) + result = append(result, timeline.FilterTypes(types...)) - case *pbconsole.EventsQuery_Filter_LogLevel: - level := log.Level(filter.LogLevel.LogLevel) + case *pbconsole.GetEventsRequest_Filter_LogLevel: + level := log.Level(f.LogLevel.LogLevel) if level < log.Trace || level > log.Error { - return nil, connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("unknown log level %v", filter.LogLevel.LogLevel)) + return nil, connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("unknown log level %v", f.LogLevel.LogLevel)) } - query = append(query, timeline.FilterLogLevel(level)) + result = append(result, timeline.FilterLogLevel(level)) - case *pbconsole.EventsQuery_Filter_Time: - var newerThan, olderThan time.Time - if filter.Time.NewerThan != nil { - newerThan = filter.Time.NewerThan.AsTime() - } - if filter.Time.OlderThan != nil { - olderThan = filter.Time.OlderThan.AsTime() - } - query = append(query, timeline.FilterTimeRange(olderThan, newerThan)) + case *pbconsole.GetEventsRequest_Filter_Time: + newerThan := f.Time.GetNewerThan().AsTime() + olderThan := f.Time.GetOlderThan().AsTime() + result = append(result, timeline.FilterTimeRange(olderThan, newerThan)) - case *pbconsole.EventsQuery_Filter_Id: - var lowerThan, higherThan int64 - if filter.Id.LowerThan != nil { - lowerThan = *filter.Id.LowerThan - } - if filter.Id.HigherThan != nil { - higherThan = *filter.Id.HigherThan - } - query = append(query, timeline.FilterIDRange(lowerThan, higherThan)) - case *pbconsole.EventsQuery_Filter_Call: - var sourceModule optional.Option[string] - if filter.Call.SourceModule != nil { - sourceModule = optional.Some(*filter.Call.SourceModule) - } - var destVerb optional.Option[string] - if filter.Call.DestVerb != nil { - destVerb = optional.Some(*filter.Call.DestVerb) - } - query = append(query, timeline.FilterCall(sourceModule, filter.Call.DestModule, destVerb)) - case *pbconsole.EventsQuery_Filter_Module: - var verb optional.Option[string] - if filter.Module.Verb != nil { - verb = optional.Some(*filter.Module.Verb) - } - query = append(query, timeline.FilterModule(filter.Module.Module, verb)) + case *pbconsole.GetEventsRequest_Filter_Id: + lowerThan := f.Id.GetLowerThan() + higherThan := f.Id.GetHigherThan() + result = append(result, timeline.FilterIDRange(lowerThan, higherThan)) + + case *pbconsole.GetEventsRequest_Filter_Call: + sourceModule := optional.Zero(f.Call.GetSourceModule()) + destVerb := optional.Zero(f.Call.GetDestVerb()) + result = append(result, timeline.FilterCall(sourceModule, f.Call.DestModule, destVerb)) default: - return nil, connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("unknown filter %T", filter)) + return nil, fmt.Errorf("unknown filter type %T", f) } } - return query, nil + + return result, nil } func eventDALToProto(event timeline.Event) *pbconsole.Event { @@ -812,7 +771,7 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { var asyncEventType pbconsole.AsyncExecuteEventType switch event.EventType { case timeline.AsyncExecuteEventTypeUnkown: - asyncEventType = pbconsole.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN + asyncEventType = pbconsole.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED case timeline.AsyncExecuteEventTypeCron: asyncEventType = pbconsole.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_CRON case timeline.AsyncExecuteEventTypePubSub: @@ -897,7 +856,7 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { } func (c *ConsoleService) GetConfig(ctx context.Context, req *connect.Request[pbconsole.GetConfigRequest]) (*connect.Response[pbconsole.GetConfigResponse], error) { - resp, err := c.admin.ConfigGet(ctx, connect.NewRequest(&ftlv1.GetConfigRequest{ + resp, err := c.admin.ConfigGet(ctx, connect.NewRequest(&ftlv1.ConfigGetRequest{ Ref: &ftlv1.ConfigRef{ Module: req.Msg.Module, Name: req.Msg.Name, @@ -912,7 +871,7 @@ func (c *ConsoleService) GetConfig(ctx context.Context, req *connect.Request[pbc } func (c *ConsoleService) SetConfig(ctx context.Context, req *connect.Request[pbconsole.SetConfigRequest]) (*connect.Response[pbconsole.SetConfigResponse], error) { - _, err := c.admin.ConfigSet(ctx, connect.NewRequest(&ftlv1.SetConfigRequest{ + _, err := c.admin.ConfigSet(ctx, connect.NewRequest(&ftlv1.ConfigSetRequest{ Ref: &ftlv1.ConfigRef{ Module: req.Msg.Module, Name: req.Msg.Name, @@ -926,7 +885,7 @@ func (c *ConsoleService) SetConfig(ctx context.Context, req *connect.Request[pbc } func (c *ConsoleService) GetSecret(ctx context.Context, req *connect.Request[pbconsole.GetSecretRequest]) (*connect.Response[pbconsole.GetSecretResponse], error) { - resp, err := c.admin.SecretGet(ctx, connect.NewRequest(&ftlv1.GetSecretRequest{ + resp, err := c.admin.SecretGet(ctx, connect.NewRequest(&ftlv1.SecretGetRequest{ Ref: &ftlv1.ConfigRef{ Name: req.Msg.Name, Module: req.Msg.Module, @@ -941,7 +900,7 @@ func (c *ConsoleService) GetSecret(ctx context.Context, req *connect.Request[pbc } func (c *ConsoleService) SetSecret(ctx context.Context, req *connect.Request[pbconsole.SetSecretRequest]) (*connect.Response[pbconsole.SetSecretResponse], error) { - _, err := c.admin.SecretSet(ctx, connect.NewRequest(&ftlv1.SetSecretRequest{ + _, err := c.admin.SecretSet(ctx, connect.NewRequest(&ftlv1.SecretSetRequest{ Ref: &ftlv1.ConfigRef{ Name: req.Msg.Name, Module: req.Msg.Module, diff --git a/backend/controller/console/console_integration_test.go b/backend/controller/console/console_integration_test.go index 9e6a07d46e..3b79a6e17e 100644 --- a/backend/controller/console/console_integration_test.go +++ b/backend/controller/console/console_integration_test.go @@ -8,7 +8,7 @@ import ( "connectrpc.com/connect" "github.com/alecthomas/assert/v2" - pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console" + pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" in "github.com/TBD54566975/ftl/internal/integration" ) diff --git a/backend/controller/controller.go b/backend/controller/controller.go index 7428f1cdf6..0492b2396b 100644 --- a/backend/controller/controller.go +++ b/backend/controller/controller.go @@ -44,14 +44,13 @@ import ( "github.com/TBD54566975/ftl/backend/controller/leases/dbleaser" "github.com/TBD54566975/ftl/backend/controller/observability" "github.com/TBD54566975/ftl/backend/controller/pubsub" - "github.com/TBD54566975/ftl/backend/controller/scaling" "github.com/TBD54566975/ftl/backend/controller/scheduledtask" "github.com/TBD54566975/ftl/backend/controller/timeline" "github.com/TBD54566975/ftl/backend/libdal" + "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console/pbconsoleconnect" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" frontend "github.com/TBD54566975/ftl/frontend/console" "github.com/TBD54566975/ftl/internal/configuration" cf "github.com/TBD54566975/ftl/internal/configuration/manager" @@ -120,7 +119,6 @@ func (c *Config) OpenDBAndInstrument() (*sql.DB, error) { func Start( ctx context.Context, config Config, - runnerScaling scaling.RunnerScaling, cm *cf.Manager[configuration.Configuration], sm *cf.Manager[configuration.Secrets], conn *sql.DB, @@ -146,7 +144,7 @@ func Start( logger.Infof("Web console available at: %s", config.Bind) } - svc, err := New(ctx, conn, cm, sm, config, devel, runnerScaling) + svc, err := New(ctx, conn, cm, sm, config, devel) if err != nil { return err } @@ -170,9 +168,6 @@ func Start( rpc.PProf(), ) }) - g.Go(func() error { - return runnerScaling.Start(ctx, *config.Bind, svc.dbleaser) - }) go svc.dal.PollDeployments(ctx) @@ -220,7 +215,6 @@ type Service struct { increaseReplicaFailures map[string]int asyncCallsLock sync.Mutex - runnerScaling scaling.RunnerScaling clientLock sync.Mutex } @@ -232,7 +226,6 @@ func New( sm *cf.Manager[configuration.Secrets], config Config, devel bool, - runnerScaling scaling.RunnerScaling, ) (*Service, error) { key := config.Key if config.Key.IsZero() { @@ -264,7 +257,6 @@ func New( clients: ttlcache.New(ttlcache.WithTTL[string, clients](time.Minute)), config: config, increaseReplicaFailures: map[string]int{}, - runnerScaling: runnerScaling, } svc.schemaState.Store(schemaState{routes: map[string]Route{}, schema: &schema.Schema{}}) @@ -506,15 +498,27 @@ func (s *Service) UpdateDeploy(ctx context.Context, req *connect.Request[ftlv1.U logger := s.getDeploymentLogger(ctx, deploymentKey) logger.Debugf("Update deployment for: %s", deploymentKey) - - err = s.dal.SetDeploymentReplicas(ctx, deploymentKey, int(req.Msg.MinReplicas)) - if err != nil { - if errors.Is(err, libdal.ErrNotFound) { - logger.Errorf(err, "Deployment not found: %s", deploymentKey) - return nil, connect.NewError(connect.CodeNotFound, errors.New("deployment not found")) + if req.Msg.MinReplicas != nil { + err = s.dal.SetDeploymentReplicas(ctx, deploymentKey, int(*req.Msg.MinReplicas)) + if err != nil { + if errors.Is(err, libdal.ErrNotFound) { + logger.Errorf(err, "Deployment not found: %s", deploymentKey) + return nil, connect.NewError(connect.CodeNotFound, errors.New("deployment not found")) + } + logger.Errorf(err, "Could not set deployment replicas: %s", deploymentKey) + return nil, fmt.Errorf("could not set deployment replicas: %w", err) + } + } + if req.Msg.Endpoint != nil { + err = s.dal.SetDeploymentEndpoint(ctx, deploymentKey, *req.Msg.Endpoint) + if err != nil { + if errors.Is(err, libdal.ErrNotFound) { + logger.Errorf(err, "Deployment not found: %s", deploymentKey) + return nil, connect.NewError(connect.CodeNotFound, errors.New("deployment not found")) + } + logger.Errorf(err, "Could not set deployment endpoint: %s", deploymentKey) + return nil, fmt.Errorf("could not set deployment endpoint: %w", err) } - logger.Errorf(err, "Could not set deployment replicas: %s", deploymentKey) - return nil, fmt.Errorf("could not set deployment replicas: %w", err) } return connect.NewResponse(&ftlv1.UpdateDeployResponse{}), nil @@ -689,7 +693,7 @@ func (s *Service) Ping(ctx context.Context, req *connect.Request[ftlv1.PingReque } // GetModuleContext retrieves config, secrets and DSNs for a module. -func (s *Service) GetModuleContext(ctx context.Context, req *connect.Request[ftlv1.ModuleContextRequest], resp *connect.ServerStream[ftlv1.ModuleContextResponse]) error { +func (s *Service) GetModuleContext(ctx context.Context, req *connect.Request[ftlv1.GetModuleContextRequest], resp *connect.ServerStream[ftlv1.GetModuleContextResponse]) error { name := req.Msg.Module // Initialize checksum to -1; a zero checksum does occur when the context contains no settings @@ -1506,7 +1510,7 @@ func (s *Service) watchModuleChanges(ctx context.Context, sendChange func(respon builtinsResponse := &ftlv1.PullSchemaResponse{ ModuleName: builtins.Name, Schema: builtins, - ChangeType: ftlv1.DeploymentChangeType_DEPLOYMENT_ADDED, + ChangeType: ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_ADDED, More: initialCount > 0, } @@ -1534,7 +1538,7 @@ func (s *Service) watchModuleChanges(ctx context.Context, sendChange func(respon response = &ftlv1.PullSchemaResponse{ ModuleName: name, DeploymentKey: proto.String(deletion.String()), - ChangeType: ftlv1.DeploymentChangeType_DEPLOYMENT_REMOVED, + ChangeType: ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_REMOVED, ModuleRemoved: moduleRemoved, Schema: schema, } @@ -1566,11 +1570,11 @@ func (s *Service) watchModuleChanges(ctx context.Context, sendChange func(respon } if current, ok := moduleState[message.Schema.Name]; ok { if !bytes.Equal(current.hash, newState.hash) || current.minReplicas != newState.minReplicas { - changeType := ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGED + changeType := ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_CHANGED // A deployment is considered removed if its minReplicas is set to 0. moduleRemoved := false if current.minReplicas > 0 && message.MinReplicas == 0 { - changeType = ftlv1.DeploymentChangeType_DEPLOYMENT_REMOVED + changeType = ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_REMOVED moduleRemoved = mostRecentDeploymentByModule[message.Schema.Name] == message.Key.String() } response = &ftlv1.PullSchemaResponse{ @@ -1587,7 +1591,7 @@ func (s *Service) watchModuleChanges(ctx context.Context, sendChange func(respon ModuleName: moduleSchema.Name, DeploymentKey: proto.String(message.Key.String()), Schema: moduleSchema, - ChangeType: ftlv1.DeploymentChangeType_DEPLOYMENT_ADDED, + ChangeType: ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_ADDED, More: initialCount > 1, } if initialCount > 0 { @@ -1658,38 +1662,40 @@ func (s *Service) syncRoutesAndSchema(ctx context.Context) (ret time.Duration, e // And we set its replicas to zero // It may seem a bit odd to do this here but this is where we are actually updating the routing table // Which is what makes as a deployment 'live' from a clients POV - optURI, err := s.runnerScaling.GetEndpointForDeployment(ctx, v.Module, v.Key.String()) - if err != nil { + if v.Schema.Runtime == nil { + deploymentLogger.Debugf("Deployment %s has no runtime metadata", v.Key.String()) + continue + } + targetEndpoint, ok := v.Endpoint.Get() + if !ok { deploymentLogger.Debugf("Failed to get updated endpoint for deployment %s", v.Key.String()) continue - } else if uri, ok := optURI.Get(); ok { - // Check if this is a new route - targetEndpoint := uri.String() - if oldRoute, oldRouteExists := old[v.Module]; !oldRouteExists || oldRoute.Deployment.String() != v.Key.String() { - // If it is a new route we only add it if we can ping it - // Kube deployments can take a while to come up, so we don't want to add them to the routing table until they are ready. - _, err := s.clientsForEndpoint(targetEndpoint).verb.Ping(ctx, connect.NewRequest(&ftlv1.PingRequest{})) - if err != nil { - deploymentLogger.Tracef("Unable to ping %s, not adding to route table", v.Key.String()) - continue - } - deploymentLogger.Infof("Deployed %s", v.Key.String()) - status.UpdateModuleState(ctx, v.Module, status.BuildStateDeployed) + } + // Check if this is a new route + if oldRoute, oldRouteExists := old[v.Module]; !oldRouteExists || oldRoute.Deployment.String() != v.Key.String() { + // If it is a new route we only add it if we can ping it + // Kube deployments can take a while to come up, so we don't want to add them to the routing table until they are ready. + _, err := s.clientsForEndpoint(targetEndpoint).verb.Ping(ctx, connect.NewRequest(&ftlv1.PingRequest{})) + if err != nil { + deploymentLogger.Tracef("Unable to ping %s, not adding to route table", v.Key.String()) + continue } - if prev, ok := newRoutes[v.Module]; ok { - // We have already seen a route for this module, the existing route must be an old one - // as the deployments are in order - // We have a new route ready to go, so we can just set the old one to 0 replicas - // Do this in a TX so it doesn't happen until the route table is updated - deploymentLogger.Debugf("Setting %s to zero replicas", prev.Deployment) - err := tx.SetDeploymentReplicas(ctx, prev.Deployment, 0) - if err != nil { - deploymentLogger.Errorf(err, "Failed to set replicas to 0 for deployment %s", prev.Deployment.String()) - } + deploymentLogger.Infof("Deployed %s", v.Key.String()) + status.UpdateModuleState(ctx, v.Module, status.BuildStateDeployed) + } + if prev, ok := newRoutes[v.Module]; ok { + // We have already seen a route for this module, the existing route must be an old one + // as the deployments are in order + // We have a new route ready to go, so we can just set the old one to 0 replicas + // Do this in a TX so it doesn't happen until the route table is updated + deploymentLogger.Debugf("Setting %s to zero replicas", prev.Deployment) + err := tx.SetDeploymentReplicas(ctx, prev.Deployment, 0) + if err != nil { + deploymentLogger.Errorf(err, "Failed to set replicas to 0 for deployment %s", prev.Deployment.String()) } - newRoutes[v.Module] = Route{Module: v.Module, Deployment: v.Key, Endpoint: targetEndpoint} - modulesByName[v.Module] = v.Schema } + newRoutes[v.Module] = Route{Module: v.Module, Deployment: v.Key, Endpoint: targetEndpoint} + modulesByName[v.Module] = v.Schema } orderedModules := maps.Values(modulesByName) diff --git a/backend/controller/dal/dal.go b/backend/controller/dal/dal.go index 4e224886e1..7914f1637d 100644 --- a/backend/controller/dal/dal.go +++ b/backend/controller/dal/dal.go @@ -398,6 +398,22 @@ func (d *DAL) SetDeploymentReplicas(ctx context.Context, key model.DeploymentKey return nil } +// SetDeploymentEndpoint sets the deployment endpoint +func (d *DAL) SetDeploymentEndpoint(ctx context.Context, key model.DeploymentKey, endpoint string) (err error) { + // Start the transaction + tx, err := d.Begin(ctx) + if err != nil { + return libdal.TranslatePGError(err) + } + defer tx.CommitOrRollback(ctx, &err) + + err = tx.db.SetDeploymentEndpoint(ctx, key, optional.Some(endpoint)) + if err != nil { + return libdal.TranslatePGError(err) + } + return nil +} + var ErrReplaceDeploymentAlreadyActive = errors.New("deployment already active") // ReplaceDeployment replaces an old deployment of a module with a new deployment. @@ -520,6 +536,7 @@ func (d *DAL) GetActiveDeployments(ctx context.Context) ([]dalmodel.Deployment, Replicas: optional.Some(int(in.Replicas)), Schema: in.Deployment.Schema, CreatedAt: in.Deployment.CreatedAt, + Endpoint: in.Deployment.Endpoint, } }), nil } diff --git a/backend/controller/dal/internal/sql/models.go b/backend/controller/dal/internal/sql/models.go index 9fac923017..0af3ad14ee 100644 --- a/backend/controller/dal/internal/sql/models.go +++ b/backend/controller/dal/internal/sql/models.go @@ -227,6 +227,7 @@ type Deployment struct { Labels json.RawMessage MinReplicas int32 LastActivatedAt time.Time + Endpoint optional.Option[string] } type Module struct { diff --git a/backend/controller/dal/internal/sql/querier.go b/backend/controller/dal/internal/sql/querier.go index 055b410e5c..e36f8c43e4 100644 --- a/backend/controller/dal/internal/sql/querier.go +++ b/backend/controller/dal/internal/sql/querier.go @@ -69,6 +69,7 @@ type Querier interface { LoadAsyncCall(ctx context.Context, id int64) (AsyncCall, error) PublishEventForTopic(ctx context.Context, arg PublishEventForTopicParams) error SetDeploymentDesiredReplicas(ctx context.Context, key model.DeploymentKey, minReplicas int32) error + SetDeploymentEndpoint(ctx context.Context, key model.DeploymentKey, endpoint optional.Option[string]) error SetSubscriptionCursor(ctx context.Context, column1 model.SubscriptionKey, column2 model.TopicEventKey) error SucceedAsyncCall(ctx context.Context, response api.OptionalEncryptedAsyncColumn, iD int64) (bool, error) UpsertController(ctx context.Context, key model.ControllerKey, endpoint string) (int64, error) diff --git a/backend/controller/dal/internal/sql/queries.sql b/backend/controller/dal/internal/sql/queries.sql index 293df59a3a..f58aa8f1f9 100644 --- a/backend/controller/dal/internal/sql/queries.sql +++ b/backend/controller/dal/internal/sql/queries.sql @@ -99,7 +99,7 @@ FROM runners r ORDER BY r.key; -- name: GetActiveDeployments :many -SELECT sqlc.embed(d), m.name AS module_name, m.language, COUNT(r.id) AS replicas +SELECT sqlc.embed(d), m.name AS module_name, m.language, COUNT(r.id) AS replicas, d.endpoint FROM deployments d JOIN modules m ON d.module_id = m.id LEFT JOIN runners r ON d.id = r.deployment_id @@ -138,6 +138,12 @@ SET min_replicas = $2, last_activated_at = CASE WHEN min_replicas = 0 THEN (NOW( WHERE key = sqlc.arg('key')::deployment_key RETURNING 1; +-- name: SetDeploymentEndpoint :exec +UPDATE deployments +SET endpoint = $2 +WHERE key = sqlc.arg('key')::deployment_key +RETURNING 1; + -- name: GetExistingDeploymentForModule :one SELECT * FROM deployments d diff --git a/backend/controller/dal/internal/sql/queries.sql.go b/backend/controller/dal/internal/sql/queries.sql.go index d9dbae9d9d..032a095928 100644 --- a/backend/controller/dal/internal/sql/queries.sql.go +++ b/backend/controller/dal/internal/sql/queries.sql.go @@ -411,7 +411,7 @@ func (q *Queries) GetActiveDeploymentSchemas(ctx context.Context) ([]GetActiveDe } const getActiveDeployments = `-- name: GetActiveDeployments :many -SELECT d.id, d.created_at, d.module_id, d.key, d.schema, d.labels, d.min_replicas, d.last_activated_at, m.name AS module_name, m.language, COUNT(r.id) AS replicas +SELECT d.id, d.created_at, d.module_id, d.key, d.schema, d.labels, d.min_replicas, d.last_activated_at, d.endpoint, m.name AS module_name, m.language, COUNT(r.id) AS replicas FROM deployments d JOIN modules m ON d.module_id = m.id LEFT JOIN runners r ON d.id = r.deployment_id @@ -445,6 +445,7 @@ func (q *Queries) GetActiveDeployments(ctx context.Context) ([]GetActiveDeployme &i.Deployment.Labels, &i.Deployment.MinReplicas, &i.Deployment.LastActivatedAt, + &i.Deployment.Endpoint, &i.ModuleName, &i.Language, &i.Replicas, @@ -544,7 +545,7 @@ func (q *Queries) GetArtefactDigests(ctx context.Context, digests [][]byte) ([][ } const getDeployment = `-- name: GetDeployment :one -SELECT d.id, d.created_at, d.module_id, d.key, d.schema, d.labels, d.min_replicas, d.last_activated_at, m.language, m.name AS module_name, d.min_replicas +SELECT d.id, d.created_at, d.module_id, d.key, d.schema, d.labels, d.min_replicas, d.last_activated_at, d.endpoint, m.language, m.name AS module_name, d.min_replicas FROM deployments d INNER JOIN modules m ON m.id = d.module_id WHERE d.key = $1::deployment_key @@ -569,6 +570,7 @@ func (q *Queries) GetDeployment(ctx context.Context, key model.DeploymentKey) (G &i.Deployment.Labels, &i.Deployment.MinReplicas, &i.Deployment.LastActivatedAt, + &i.Deployment.Endpoint, &i.Language, &i.ModuleName, &i.MinReplicas, @@ -621,7 +623,7 @@ func (q *Queries) GetDeploymentArtefacts(ctx context.Context, deploymentID int64 } const getDeploymentsByID = `-- name: GetDeploymentsByID :many -SELECT id, created_at, module_id, key, schema, labels, min_replicas, last_activated_at +SELECT id, created_at, module_id, key, schema, labels, min_replicas, last_activated_at, endpoint FROM deployments WHERE id = ANY ($1::BIGINT[]) ` @@ -644,6 +646,7 @@ func (q *Queries) GetDeploymentsByID(ctx context.Context, ids []int64) ([]Deploy &i.Labels, &i.MinReplicas, &i.LastActivatedAt, + &i.Endpoint, ); err != nil { return nil, err } @@ -710,7 +713,7 @@ func (q *Queries) GetDeploymentsWithArtefacts(ctx context.Context, digests [][]b } const getDeploymentsWithMinReplicas = `-- name: GetDeploymentsWithMinReplicas :many -SELECT d.id, d.created_at, d.module_id, d.key, d.schema, d.labels, d.min_replicas, d.last_activated_at, m.name AS module_name, m.language +SELECT d.id, d.created_at, d.module_id, d.key, d.schema, d.labels, d.min_replicas, d.last_activated_at, d.endpoint, m.name AS module_name, m.language FROM deployments d INNER JOIN modules m on d.module_id = m.id WHERE min_replicas > 0 @@ -741,6 +744,7 @@ func (q *Queries) GetDeploymentsWithMinReplicas(ctx context.Context) ([]GetDeplo &i.Deployment.Labels, &i.Deployment.MinReplicas, &i.Deployment.LastActivatedAt, + &i.Deployment.Endpoint, &i.ModuleName, &i.Language, ); err != nil { @@ -758,7 +762,7 @@ func (q *Queries) GetDeploymentsWithMinReplicas(ctx context.Context) ([]GetDeplo } const getExistingDeploymentForModule = `-- name: GetExistingDeploymentForModule :one -SELECT d.id, created_at, module_id, key, schema, labels, min_replicas, last_activated_at, m.id, language, name +SELECT d.id, created_at, module_id, key, schema, labels, min_replicas, last_activated_at, endpoint, m.id, language, name FROM deployments d INNER JOIN modules m on d.module_id = m.id WHERE m.name = $1 @@ -775,6 +779,7 @@ type GetExistingDeploymentForModuleRow struct { Labels json.RawMessage MinReplicas int32 LastActivatedAt time.Time + Endpoint optional.Option[string] ID_2 int64 Language string Name string @@ -792,6 +797,7 @@ func (q *Queries) GetExistingDeploymentForModule(ctx context.Context, name strin &i.Labels, &i.MinReplicas, &i.LastActivatedAt, + &i.Endpoint, &i.ID_2, &i.Language, &i.Name, @@ -1003,7 +1009,7 @@ func (q *Queries) GetRunner(ctx context.Context, key model.RunnerKey) (GetRunner } const getRunnersForDeployment = `-- name: GetRunnersForDeployment :many -SELECT r.id, r.key, created, last_seen, endpoint, module_name, deployment_id, r.labels, d.id, created_at, module_id, d.key, schema, d.labels, min_replicas, last_activated_at +SELECT r.id, r.key, created, last_seen, r.endpoint, module_name, deployment_id, r.labels, d.id, created_at, module_id, d.key, schema, d.labels, min_replicas, last_activated_at, d.endpoint FROM runners r INNER JOIN deployments d on r.deployment_id = d.id WHERE d.key = $1::deployment_key @@ -1026,6 +1032,7 @@ type GetRunnersForDeploymentRow struct { Labels_2 json.RawMessage MinReplicas int32 LastActivatedAt time.Time + Endpoint_2 optional.Option[string] } func (q *Queries) GetRunnersForDeployment(ctx context.Context, key model.DeploymentKey) ([]GetRunnersForDeploymentRow, error) { @@ -1054,6 +1061,7 @@ func (q *Queries) GetRunnersForDeployment(ctx context.Context, key model.Deploym &i.Labels_2, &i.MinReplicas, &i.LastActivatedAt, + &i.Endpoint_2, ); err != nil { return nil, err } @@ -1451,6 +1459,18 @@ func (q *Queries) SetDeploymentDesiredReplicas(ctx context.Context, key model.De return err } +const setDeploymentEndpoint = `-- name: SetDeploymentEndpoint :exec +UPDATE deployments +SET endpoint = $2 +WHERE key = $1::deployment_key +RETURNING 1 +` + +func (q *Queries) SetDeploymentEndpoint(ctx context.Context, key model.DeploymentKey, endpoint optional.Option[string]) error { + _, err := q.db.ExecContext(ctx, setDeploymentEndpoint, key, endpoint) + return err +} + const setSubscriptionCursor = `-- name: SetSubscriptionCursor :exec WITH event AS ( SELECT id, created_at, key, topic_id, payload diff --git a/backend/controller/dal/model/model.go b/backend/controller/dal/model/model.go index b3fa0b693f..6d53f97357 100644 --- a/backend/controller/dal/model/model.go +++ b/backend/controller/dal/model/model.go @@ -80,6 +80,7 @@ type Deployment struct { Schema *schema.Module CreatedAt time.Time Labels model.Labels + Endpoint optional.Option[string] } func (d Deployment) String() string { return d.Key.String() } diff --git a/backend/controller/encryption/integration_test.go b/backend/controller/encryption/integration_test.go index 719ead7f84..248c4415ee 100644 --- a/backend/controller/encryption/integration_test.go +++ b/backend/controller/encryption/integration_test.go @@ -9,7 +9,7 @@ import ( "time" "github.com/TBD54566975/ftl/backend/controller/encryption/api" - pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console" + pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" in "github.com/TBD54566975/ftl/internal/integration" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/slices" @@ -39,7 +39,7 @@ func TestEncryptionForLogs(t *testing.T) { // confirm that we can read an event for that call func(t testing.TB, ic in.TestContext) { in.Infof("Read Logs") - resp, err := ic.Console.GetEvents(ic.Context, connect.NewRequest(&pbconsole.EventsQuery{ + resp, err := ic.Console.GetEvents(ic.Context, connect.NewRequest(&pbconsole.GetEventsRequest{ Limit: 10, })) assert.NoError(t, err, "could not get events") diff --git a/backend/controller/leases/lease_integration_test.go b/backend/controller/leases/lease_integration_test.go index bb7ddb23c2..8b0b9d9e50 100644 --- a/backend/controller/leases/lease_integration_test.go +++ b/backend/controller/leases/lease_integration_test.go @@ -12,8 +12,8 @@ import ( "github.com/alecthomas/assert/v2" "golang.org/x/sync/errgroup" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" in "github.com/TBD54566975/ftl/internal/integration" ) diff --git a/backend/controller/leases/testdata/go/leases/go.mod b/backend/controller/leases/testdata/go/leases/go.mod index f5208c3271..fa5a91b53d 100644 --- a/backend/controller/leases/testdata/go/leases/go.mod +++ b/backend/controller/leases/testdata/go/leases/go.mod @@ -101,6 +101,7 @@ require ( github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/puzpuzpuz/xsync/v3 v3.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/backend/controller/leases/testdata/go/leases/go.sum b/backend/controller/leases/testdata/go/leases/go.sum index 0e84b199d4..148037cdd3 100644 --- a/backend/controller/leases/testdata/go/leases/go.sum +++ b/backend/controller/leases/testdata/go/leases/go.sum @@ -245,8 +245,9 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= diff --git a/backend/controller/observability/calls.go b/backend/controller/observability/calls.go index cebaf46ca5..a0ca760f29 100644 --- a/backend/controller/observability/calls.go +++ b/backend/controller/observability/calls.go @@ -12,7 +12,7 @@ import ( "go.opentelemetry.io/otel/metric/noop" "go.opentelemetry.io/otel/trace" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" "github.com/TBD54566975/ftl/internal/observability" "github.com/TBD54566975/ftl/internal/schema" ) diff --git a/backend/controller/observability/ingress.go b/backend/controller/observability/ingress.go index 87b01ed75a..86a9650e90 100644 --- a/backend/controller/observability/ingress.go +++ b/backend/controller/observability/ingress.go @@ -11,7 +11,7 @@ import ( "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/metric/noop" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" "github.com/TBD54566975/ftl/internal/observability" "github.com/TBD54566975/ftl/internal/schema" ) diff --git a/backend/controller/scaling/k8sscaling/k8s_scaling.go b/backend/controller/scaling/k8sscaling/k8s_scaling.go deleted file mode 100644 index 5bcc6a0460..0000000000 --- a/backend/controller/scaling/k8sscaling/k8s_scaling.go +++ /dev/null @@ -1,150 +0,0 @@ -package k8sscaling - -import ( - "context" - "fmt" - "net/url" - "os" - - "github.com/alecthomas/types/optional" - "github.com/puzpuzpuz/xsync/v3" - istioclient "istio.io/client-go/pkg/clientset/versioned" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - - "github.com/TBD54566975/ftl/backend/controller/leases" - "github.com/TBD54566975/ftl/backend/controller/scaling" - "github.com/TBD54566975/ftl/internal/log" -) - -var _ scaling.RunnerScaling = &k8sScaling{} - -type k8sScaling struct { - disableIstio bool -} - -func (k k8sScaling) Start(ctx context.Context, controller url.URL, leaser leases.Leaser) error { - - logger := log.FromContext(ctx).Scope("K8sScaling") - ctx = log.ContextWithLogger(ctx, logger) - clientset, err := CreateClientSet() - if err != nil { - return fmt.Errorf("failed to create clientset: %w", err) - } - - namespace, err := GetCurrentNamespace() - if err != nil { - // Nothing we can do here, if we don't have a namespace we have no runners - return fmt.Errorf("failed to get current namespace: %w", err) - } - - var sec *istioclient.Clientset - if !k.disableIstio { - groups, err := clientset.Discovery().ServerGroups() - if err != nil { - return fmt.Errorf("failed to get server groups: %w", err) - } - // If istio is present and not explicitly disabled we create the client - for _, group := range groups.Groups { - if group.Name == "security.istio.io" { - sec, err = CreateIstioClientSet() - if err != nil { - return fmt.Errorf("failed to create istio clientset: %w", err) - } - break - } - } - } - - logger.Debugf("Using namespace %s", namespace) - deploymentReconciler := &DeploymentProvisioner{ - Client: clientset, - Namespace: namespace, - KnownDeployments: xsync.NewMapOf[string, bool](), - FTLEndpoint: controller.String(), - IstioSecurity: optional.Ptr(sec), - } - scaling.BeginGrpcScaling(ctx, controller, leaser, deploymentReconciler.HandleSchemaChange) - return nil -} - -func CreateClientSet() (*kubernetes.Clientset, error) { - config, err := getKubeConfig() - if err != nil { - return nil, err - } - // creates the clientset - clientset, err := kubernetes.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("failed to create client set: %w", err) - } - return clientset, nil -} - -func CreateIstioClientSet() (*istioclient.Clientset, error) { - config, err := getKubeConfig() - if err != nil { - return nil, err - } - // creates the clientset - clientset, err := istioclient.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("failed to create client set: %w", err) - } - return clientset, nil -} - -func getKubeConfig() (*rest.Config, error) { - // creates the in-cluster config - config, err := rest.InClusterConfig() - if err != nil { - // if we're not in a cluster, use the kubeconfig - config, err = clientcmd.BuildConfigFromFlags("", clientcmd.RecommendedHomeFile) - if err != nil { - return nil, fmt.Errorf("failed to get kubeconfig: %w", err) - } - } - return config, nil -} - -func (k k8sScaling) GetEndpointForDeployment(ctx context.Context, module string, deployment string) (optional.Option[url.URL], error) { - // TODO: hard coded port? It's hard to deal with as we might not have the lease - // I think requiring this port is fine for now - return optional.Some(url.URL{Scheme: "http", - Host: fmt.Sprintf("%s:8893", deployment), - }), nil -} - -func NewK8sScaling(disableIstio bool) scaling.RunnerScaling { - return &k8sScaling{disableIstio: disableIstio} -} - -func GetCurrentNamespace() (string, error) { - namespaceFile := "/var/run/secrets/kubernetes.io/serviceaccount/namespace" - namespace, err := os.ReadFile(namespaceFile) - if err != nil && !os.IsNotExist(err) { - return "", fmt.Errorf("failed to read namespace file: %w", err) - } else if err == nil { - return string(namespace), nil - } - - // If not running in a cluster, get the namespace from the kubeconfig - configAccess := clientcmd.NewDefaultPathOptions() - config, err := configAccess.GetStartingConfig() - if err != nil { - return "", fmt.Errorf("failed to get kubeconfig: %w", err) - } - - currentContext := config.CurrentContext - if currentContext == "" { - return "", fmt.Errorf("no current context found in kubeconfig") - } - - context, exists := config.Contexts[currentContext] - if !exists { - return "", fmt.Errorf("context %s not found in kubeconfig", currentContext) - } - - return context.Namespace, nil -} diff --git a/backend/controller/scaling/scaling.go b/backend/controller/scaling/scaling.go deleted file mode 100644 index 6243122252..0000000000 --- a/backend/controller/scaling/scaling.go +++ /dev/null @@ -1,74 +0,0 @@ -package scaling - -import ( - "context" - "errors" - "net/url" - "time" - - "github.com/alecthomas/types/optional" - "github.com/jpillora/backoff" - - "github.com/TBD54566975/ftl/backend/controller/leases" - ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - "github.com/TBD54566975/ftl/internal/log" - "github.com/TBD54566975/ftl/internal/rpc" -) - -type RunnerScaling interface { - Start(ctx context.Context, endpoint url.URL, leaser leases.Leaser) error - - GetEndpointForDeployment(ctx context.Context, module string, deployment string) (optional.Option[url.URL], error) -} - -func BeginGrpcScaling(ctx context.Context, url url.URL, leaser leases.Leaser, handler func(ctx context.Context, msg *ftlv1.PullSchemaResponse) error) { - leaseTimeout := time.Second * 20 - var leaseDone <-chan struct{} - - for { - // Grab a lease to take control of runner scaling - lease, leaseContext, err := leaser.AcquireLease(ctx, leases.SystemKey("ftl-scaling", "runner-creation"), leaseTimeout, optional.None[any]()) - if err == nil { - leaseDone = leaseContext.Done() - // If we get it then we take over runner scaling - runGrpcScaling(leaseContext, url, handler) - } else if !errors.Is(err, leases.ErrConflict) { - logger := log.FromContext(ctx) - logger.Errorf(err, "Failed to acquire lease") - leaseDone = nil - } - select { - case <-ctx.Done(): - if lease != nil { - err := lease.Release() - if err != nil { - logger := log.FromContext(ctx) - logger.Errorf(err, "Failed to release lease") - } - } - return - case <-time.After(leaseTimeout): - case <-leaseDone: - } - } -} - -func runGrpcScaling(ctx context.Context, url url.URL, handler func(ctx context.Context, msg *ftlv1.PullSchemaResponse) error) { - client := rpc.Dial(ftlv1connect.NewSchemaServiceClient, url.String(), log.Error) - ctx = rpc.ContextWithClient(ctx, client) - - logger := log.FromContext(ctx) - logger.Debugf("Starting Runner Scaling") - logger.Debugf("Using FTL endpoint: %s", url.String()) - - rpc.RetryStreamingServerStream(ctx, "local-scaling", backoff.Backoff{Max: time.Second}, &ftlv1.PullSchemaRequest{}, client.PullSchema, handler, rpc.AlwaysRetry()) - logger.Debugf("Stopped Runner Scaling") -} - -type DevModeEndpoints struct { - Module string - Endpoint url.URL - DebugPort int - Language string -} diff --git a/backend/controller/sql/schema/20241127021101_deployment_endpoint.sql b/backend/controller/sql/schema/20241127021101_deployment_endpoint.sql new file mode 100644 index 0000000000..d3495f35ec --- /dev/null +++ b/backend/controller/sql/schema/20241127021101_deployment_endpoint.sql @@ -0,0 +1,5 @@ +-- migrate:up +ALTER TABLE deployments ADD COLUMN endpoint VARCHAR; + +-- migrate:down + diff --git a/backend/controller/sql/sqltypes/sqltypes.go b/backend/controller/sql/sqltypes/sqltypes.go index 07b8fb5345..d607e641fe 100644 --- a/backend/controller/sql/sqltypes/sqltypes.go +++ b/backend/controller/sql/sqltypes/sqltypes.go @@ -9,7 +9,7 @@ import ( "github.com/alecthomas/types/optional" "google.golang.org/protobuf/proto" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" "github.com/TBD54566975/ftl/internal/schema" ) diff --git a/backend/controller/sql/testdata/go/database/go.mod b/backend/controller/sql/testdata/go/database/go.mod index cc6ff762ea..2962aebd1e 100644 --- a/backend/controller/sql/testdata/go/database/go.mod +++ b/backend/controller/sql/testdata/go/database/go.mod @@ -98,6 +98,7 @@ require ( github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/puzpuzpuz/xsync/v3 v3.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/backend/controller/sql/testdata/go/database/go.sum b/backend/controller/sql/testdata/go/database/go.sum index 0e84b199d4..148037cdd3 100644 --- a/backend/controller/sql/testdata/go/database/go.sum +++ b/backend/controller/sql/testdata/go/database/go.sum @@ -245,8 +245,9 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= diff --git a/backend/controller/sql/testdata/go/mysql/go.mod b/backend/controller/sql/testdata/go/mysql/go.mod index 9065e78108..030978e43e 100644 --- a/backend/controller/sql/testdata/go/mysql/go.mod +++ b/backend/controller/sql/testdata/go/mysql/go.mod @@ -98,6 +98,7 @@ require ( github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/puzpuzpuz/xsync/v3 v3.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/backend/controller/sql/testdata/go/mysql/go.sum b/backend/controller/sql/testdata/go/mysql/go.sum index 0e84b199d4..148037cdd3 100644 --- a/backend/controller/sql/testdata/go/mysql/go.sum +++ b/backend/controller/sql/testdata/go/mysql/go.sum @@ -245,8 +245,9 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= diff --git a/backend/controller/sql/testdata/java/database/src/main/db/testdb/20241103205514_postgres.sql b/backend/controller/sql/testdata/java/database/src/main/db/testdb/20241103205514_postgres.sql new file mode 100644 index 0000000000..663df7eb8a --- /dev/null +++ b/backend/controller/sql/testdata/java/database/src/main/db/testdb/20241103205514_postgres.sql @@ -0,0 +1,11 @@ +-- migrate:up +CREATE TABLE requests +( + id SERIAL PRIMARY KEY NOT NULL, + data TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +CREATE SEQUENCE requests_seq; +-- migrate:down +DROP TABLE requests; \ No newline at end of file diff --git a/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/InsertResponse.java b/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/InsertResponse.java index aa0f82476e..b17dc61b5f 100644 --- a/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/InsertResponse.java +++ b/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/InsertResponse.java @@ -1,4 +1,5 @@ package xyz.block.ftl.java.test.database; public class InsertResponse { + } diff --git a/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/Request.java b/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/Request.java index 64268ddd02..16660f5091 100644 --- a/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/Request.java +++ b/backend/controller/sql/testdata/java/database/src/main/java/xyz/block/ftl/java/test/database/Request.java @@ -7,6 +7,8 @@ import jakarta.persistence.Table; import io.quarkus.hibernate.orm.panache.PanacheEntity; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; @Entity @Table(name = "requests") @@ -14,9 +16,11 @@ public class Request extends PanacheEntity { public String data; @Column(name = "created_at") + @CreationTimestamp public Timestamp createdAt; @Column(name = "updated_at") + @UpdateTimestamp public Timestamp updatedAt; } diff --git a/backend/controller/sql/testdata/java/database/src/main/resources/application.properties b/backend/controller/sql/testdata/java/database/src/main/resources/application.properties index 890fc4bc37..a3257a4007 100644 --- a/backend/controller/sql/testdata/java/database/src/main/resources/application.properties +++ b/backend/controller/sql/testdata/java/database/src/main/resources/application.properties @@ -1,3 +1,2 @@ -quarkus.hibernate-orm.database.generation=drop-and-create quarkus.datasource.testdb.db-kind=postgresql quarkus.hibernate-orm.datasource=testdb \ No newline at end of file diff --git a/backend/controller/sql/testdata/java/mysql/src/main/db/testdb/20241103205514_mysql.sql b/backend/controller/sql/testdata/java/mysql/src/main/db/testdb/20241103205514_mysql.sql new file mode 100644 index 0000000000..9ae41d0783 --- /dev/null +++ b/backend/controller/sql/testdata/java/mysql/src/main/db/testdb/20241103205514_mysql.sql @@ -0,0 +1,17 @@ +-- migrate:up +CREATE TABLE requests ( + id bigint NOT NULL, + created_at datetime(6), + data VARCHAR(255), + updated_at datetime(6), + PRIMARY KEY (id) + ) engine=InnoDB; + +CREATE TABLE requests_SEQ ( + next_val bigint + ) engine=InnoDB; + +INSERT INTO requests_SEQ VALUES ( 1 ); + +-- migrate:down +DROP TABLE requests; \ No newline at end of file diff --git a/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Database.java b/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Database.java index d90c490549..fa3c2481a6 100644 --- a/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Database.java +++ b/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Database.java @@ -1,10 +1,11 @@ package xyz.block.ftl.java.test.database; +import java.util.List; +import java.util.Map; + import jakarta.transaction.Transactional; import xyz.block.ftl.Verb; -import java.util.Map; -import java.util.List; public class Database { diff --git a/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Request.java b/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Request.java index 64268ddd02..435cd23586 100644 --- a/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Request.java +++ b/backend/controller/sql/testdata/java/mysql/src/main/java/xyz/block/ftl/java/test/database/Request.java @@ -6,6 +6,9 @@ import jakarta.persistence.Entity; import jakarta.persistence.Table; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + import io.quarkus.hibernate.orm.panache.PanacheEntity; @Entity @@ -14,9 +17,11 @@ public class Request extends PanacheEntity { public String data; @Column(name = "created_at") + @CreationTimestamp public Timestamp createdAt; @Column(name = "updated_at") + @UpdateTimestamp public Timestamp updatedAt; } diff --git a/backend/controller/sql/testdata/java/mysql/src/main/resources/application.properties b/backend/controller/sql/testdata/java/mysql/src/main/resources/application.properties index b688cc1b02..9da27e11cc 100644 --- a/backend/controller/sql/testdata/java/mysql/src/main/resources/application.properties +++ b/backend/controller/sql/testdata/java/mysql/src/main/resources/application.properties @@ -1,3 +1,2 @@ -quarkus.hibernate-orm.database.generation=drop-and-create quarkus.datasource.testdb.db-kind=mysql quarkus.hibernate-orm.datasource=testdb \ No newline at end of file diff --git a/backend/cron/service.go b/backend/cron/service.go index e1fd9af1fd..f8dc02e0d7 100644 --- a/backend/cron/service.go +++ b/backend/cron/service.go @@ -10,8 +10,8 @@ import ( "connectrpc.com/connect" "github.com/TBD54566975/ftl/backend/cron/observability" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" "github.com/TBD54566975/ftl/internal/cron" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/model" diff --git a/backend/cron/service_test.go b/backend/cron/service_test.go index 6c46db1b03..87c6950813 100644 --- a/backend/cron/service_test.go +++ b/backend/cron/service_test.go @@ -13,8 +13,8 @@ import ( "github.com/alecthomas/assert/v2" "github.com/alecthomas/types/optional" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/model" "github.com/TBD54566975/ftl/internal/schema" diff --git a/backend/ingress/handler.go b/backend/ingress/handler.go index ad1069a45b..06d9b3cea9 100644 --- a/backend/ingress/handler.go +++ b/backend/ingress/handler.go @@ -14,8 +14,8 @@ import ( "github.com/TBD54566975/ftl/backend/controller/observability" "github.com/TBD54566975/ftl/backend/controller/timeline" "github.com/TBD54566975/ftl/backend/libdal" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/model" "github.com/TBD54566975/ftl/internal/schema" diff --git a/backend/ingress/service.go b/backend/ingress/service.go index 810117aee2..5ad93af2a7 100644 --- a/backend/ingress/service.go +++ b/backend/ingress/service.go @@ -14,8 +14,8 @@ import ( "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "github.com/TBD54566975/ftl/backend/controller/observability" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" "github.com/TBD54566975/ftl/internal/cors" ftlhttp "github.com/TBD54566975/ftl/internal/http" "github.com/TBD54566975/ftl/internal/log" diff --git a/backend/protos/buf.yaml b/backend/protos/buf.yaml index 89f2a4624c..d55ff3390a 100644 --- a/backend/protos/buf.yaml +++ b/backend/protos/buf.yaml @@ -7,5 +7,6 @@ breaking: - FILE lint: use: - - BASIC - - SERVICE_SUFFIX + - STANDARD + except: + - RPC_REQUEST_RESPONSE_UNIQUE \ No newline at end of file diff --git a/backend/protos/xyz/block/ftl/v1/console/console.pb.go b/backend/protos/xyz/block/ftl/console/v1/console.pb.go similarity index 58% rename from backend/protos/xyz/block/ftl/v1/console/console.pb.go rename to backend/protos/xyz/block/ftl/console/v1/console.pb.go index d87f491cc8..54e248196c 100644 --- a/backend/protos/xyz/block/ftl/v1/console/console.pb.go +++ b/backend/protos/xyz/block/ftl/console/v1/console.pb.go @@ -2,13 +2,13 @@ // versions: // protoc-gen-go v1.35.2 // protoc (unknown) -// source: xyz/block/ftl/v1/console/console.proto +// source: xyz/block/ftl/console/v1/console.proto package pbconsole import ( - v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schema "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" + v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" @@ -27,7 +27,7 @@ const ( type EventType int32 const ( - EventType_EVENT_TYPE_UNKNOWN EventType = 0 + EventType_EVENT_TYPE_UNSPECIFIED EventType = 0 EventType_EVENT_TYPE_LOG EventType = 1 EventType_EVENT_TYPE_CALL EventType = 2 EventType_EVENT_TYPE_DEPLOYMENT_CREATED EventType = 3 @@ -42,7 +42,7 @@ const ( // Enum value maps for EventType. var ( EventType_name = map[int32]string{ - 0: "EVENT_TYPE_UNKNOWN", + 0: "EVENT_TYPE_UNSPECIFIED", 1: "EVENT_TYPE_LOG", 2: "EVENT_TYPE_CALL", 3: "EVENT_TYPE_DEPLOYMENT_CREATED", @@ -54,7 +54,7 @@ var ( 9: "EVENT_TYPE_PUBSUB_CONSUME", } EventType_value = map[string]int32{ - "EVENT_TYPE_UNKNOWN": 0, + "EVENT_TYPE_UNSPECIFIED": 0, "EVENT_TYPE_LOG": 1, "EVENT_TYPE_CALL": 2, "EVENT_TYPE_DEPLOYMENT_CREATED": 3, @@ -78,11 +78,11 @@ func (x EventType) String() string { } func (EventType) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_console_console_proto_enumTypes[0].Descriptor() + return file_xyz_block_ftl_console_v1_console_proto_enumTypes[0].Descriptor() } func (EventType) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_console_console_proto_enumTypes[0] + return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[0] } func (x EventType) Number() protoreflect.EnumNumber { @@ -91,28 +91,28 @@ func (x EventType) Number() protoreflect.EnumNumber { // Deprecated: Use EventType.Descriptor instead. func (EventType) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{0} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{0} } type AsyncExecuteEventType int32 const ( - AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN AsyncExecuteEventType = 0 - AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_CRON AsyncExecuteEventType = 1 - AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_PUBSUB AsyncExecuteEventType = 2 + AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED AsyncExecuteEventType = 0 + AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_CRON AsyncExecuteEventType = 1 + AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_PUBSUB AsyncExecuteEventType = 2 ) // Enum value maps for AsyncExecuteEventType. var ( AsyncExecuteEventType_name = map[int32]string{ - 0: "ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN", + 0: "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED", 1: "ASYNC_EXECUTE_EVENT_TYPE_CRON", 2: "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB", } AsyncExecuteEventType_value = map[string]int32{ - "ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN": 0, - "ASYNC_EXECUTE_EVENT_TYPE_CRON": 1, - "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB": 2, + "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED": 0, + "ASYNC_EXECUTE_EVENT_TYPE_CRON": 1, + "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB": 2, } ) @@ -127,11 +127,11 @@ func (x AsyncExecuteEventType) String() string { } func (AsyncExecuteEventType) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_console_console_proto_enumTypes[1].Descriptor() + return file_xyz_block_ftl_console_v1_console_proto_enumTypes[1].Descriptor() } func (AsyncExecuteEventType) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_console_console_proto_enumTypes[1] + return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[1] } func (x AsyncExecuteEventType) Number() protoreflect.EnumNumber { @@ -140,24 +140,24 @@ func (x AsyncExecuteEventType) Number() protoreflect.EnumNumber { // Deprecated: Use AsyncExecuteEventType.Descriptor instead. func (AsyncExecuteEventType) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{1} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{1} } type LogLevel int32 const ( - LogLevel_LOG_LEVEL_UNKNOWN LogLevel = 0 - LogLevel_LOG_LEVEL_TRACE LogLevel = 1 - LogLevel_LOG_LEVEL_DEBUG LogLevel = 5 - LogLevel_LOG_LEVEL_INFO LogLevel = 9 - LogLevel_LOG_LEVEL_WARN LogLevel = 13 - LogLevel_LOG_LEVEL_ERROR LogLevel = 17 + LogLevel_LOG_LEVEL_UNSPECIFIED LogLevel = 0 + LogLevel_LOG_LEVEL_TRACE LogLevel = 1 + LogLevel_LOG_LEVEL_DEBUG LogLevel = 5 + LogLevel_LOG_LEVEL_INFO LogLevel = 9 + LogLevel_LOG_LEVEL_WARN LogLevel = 13 + LogLevel_LOG_LEVEL_ERROR LogLevel = 17 ) // Enum value maps for LogLevel. var ( LogLevel_name = map[int32]string{ - 0: "LOG_LEVEL_UNKNOWN", + 0: "LOG_LEVEL_UNSPECIFIED", 1: "LOG_LEVEL_TRACE", 5: "LOG_LEVEL_DEBUG", 9: "LOG_LEVEL_INFO", @@ -165,12 +165,12 @@ var ( 17: "LOG_LEVEL_ERROR", } LogLevel_value = map[string]int32{ - "LOG_LEVEL_UNKNOWN": 0, - "LOG_LEVEL_TRACE": 1, - "LOG_LEVEL_DEBUG": 5, - "LOG_LEVEL_INFO": 9, - "LOG_LEVEL_WARN": 13, - "LOG_LEVEL_ERROR": 17, + "LOG_LEVEL_UNSPECIFIED": 0, + "LOG_LEVEL_TRACE": 1, + "LOG_LEVEL_DEBUG": 5, + "LOG_LEVEL_INFO": 9, + "LOG_LEVEL_WARN": 13, + "LOG_LEVEL_ERROR": 17, } ) @@ -185,11 +185,11 @@ func (x LogLevel) String() string { } func (LogLevel) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_console_console_proto_enumTypes[2].Descriptor() + return file_xyz_block_ftl_console_v1_console_proto_enumTypes[2].Descriptor() } func (LogLevel) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_console_console_proto_enumTypes[2] + return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[2] } func (x LogLevel) Number() protoreflect.EnumNumber { @@ -198,53 +198,56 @@ func (x LogLevel) Number() protoreflect.EnumNumber { // Deprecated: Use LogLevel.Descriptor instead. func (LogLevel) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{2} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{2} } -type EventsQuery_Order int32 +type GetEventsRequest_Order int32 const ( - EventsQuery_ASC EventsQuery_Order = 0 - EventsQuery_DESC EventsQuery_Order = 1 + GetEventsRequest_ORDER_UNSPECIFIED GetEventsRequest_Order = 0 + GetEventsRequest_ORDER_ASC GetEventsRequest_Order = 1 + GetEventsRequest_ORDER_DESC GetEventsRequest_Order = 2 ) -// Enum value maps for EventsQuery_Order. +// Enum value maps for GetEventsRequest_Order. var ( - EventsQuery_Order_name = map[int32]string{ - 0: "ASC", - 1: "DESC", + GetEventsRequest_Order_name = map[int32]string{ + 0: "ORDER_UNSPECIFIED", + 1: "ORDER_ASC", + 2: "ORDER_DESC", } - EventsQuery_Order_value = map[string]int32{ - "ASC": 0, - "DESC": 1, + GetEventsRequest_Order_value = map[string]int32{ + "ORDER_UNSPECIFIED": 0, + "ORDER_ASC": 1, + "ORDER_DESC": 2, } ) -func (x EventsQuery_Order) Enum() *EventsQuery_Order { - p := new(EventsQuery_Order) +func (x GetEventsRequest_Order) Enum() *GetEventsRequest_Order { + p := new(GetEventsRequest_Order) *p = x return p } -func (x EventsQuery_Order) String() string { +func (x GetEventsRequest_Order) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (EventsQuery_Order) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_console_console_proto_enumTypes[3].Descriptor() +func (GetEventsRequest_Order) Descriptor() protoreflect.EnumDescriptor { + return file_xyz_block_ftl_console_v1_console_proto_enumTypes[3].Descriptor() } -func (EventsQuery_Order) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_console_console_proto_enumTypes[3] +func (GetEventsRequest_Order) Type() protoreflect.EnumType { + return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[3] } -func (x EventsQuery_Order) Number() protoreflect.EnumNumber { +func (x GetEventsRequest_Order) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use EventsQuery_Order.Descriptor instead. -func (EventsQuery_Order) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 0} +// Deprecated: Use GetEventsRequest_Order.Descriptor instead. +func (GetEventsRequest_Order) EnumDescriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 0} } type LogEvent struct { @@ -264,7 +267,7 @@ type LogEvent struct { func (x *LogEvent) Reset() { *x = LogEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[0] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -276,7 +279,7 @@ func (x *LogEvent) String() string { func (*LogEvent) ProtoMessage() {} func (x *LogEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[0] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -289,7 +292,7 @@ func (x *LogEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LogEvent.ProtoReflect.Descriptor instead. func (*LogEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{0} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{0} } func (x *LogEvent) GetDeploymentKey() string { @@ -356,8 +359,8 @@ type CallEvent struct { RequestKey *string `protobuf:"bytes,1,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` DeploymentKey string `protobuf:"bytes,2,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - SourceVerbRef *schema.Ref `protobuf:"bytes,11,opt,name=source_verb_ref,json=sourceVerbRef,proto3,oneof" json:"source_verb_ref,omitempty"` - DestinationVerbRef *schema.Ref `protobuf:"bytes,12,opt,name=destination_verb_ref,json=destinationVerbRef,proto3" json:"destination_verb_ref,omitempty"` + SourceVerbRef *v1.Ref `protobuf:"bytes,11,opt,name=source_verb_ref,json=sourceVerbRef,proto3,oneof" json:"source_verb_ref,omitempty"` + DestinationVerbRef *v1.Ref `protobuf:"bytes,12,opt,name=destination_verb_ref,json=destinationVerbRef,proto3" json:"destination_verb_ref,omitempty"` Duration *durationpb.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"` Request string `protobuf:"bytes,7,opt,name=request,proto3" json:"request,omitempty"` Response string `protobuf:"bytes,8,opt,name=response,proto3" json:"response,omitempty"` @@ -367,7 +370,7 @@ type CallEvent struct { func (x *CallEvent) Reset() { *x = CallEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[1] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -379,7 +382,7 @@ func (x *CallEvent) String() string { func (*CallEvent) ProtoMessage() {} func (x *CallEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[1] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -392,7 +395,7 @@ func (x *CallEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CallEvent.ProtoReflect.Descriptor instead. func (*CallEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{1} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{1} } func (x *CallEvent) GetRequestKey() string { @@ -416,14 +419,14 @@ func (x *CallEvent) GetTimeStamp() *timestamppb.Timestamp { return nil } -func (x *CallEvent) GetSourceVerbRef() *schema.Ref { +func (x *CallEvent) GetSourceVerbRef() *v1.Ref { if x != nil { return x.SourceVerbRef } return nil } -func (x *CallEvent) GetDestinationVerbRef() *schema.Ref { +func (x *CallEvent) GetDestinationVerbRef() *v1.Ref { if x != nil { return x.DestinationVerbRef } @@ -479,7 +482,7 @@ type DeploymentCreatedEvent struct { func (x *DeploymentCreatedEvent) Reset() { *x = DeploymentCreatedEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[2] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -491,7 +494,7 @@ func (x *DeploymentCreatedEvent) String() string { func (*DeploymentCreatedEvent) ProtoMessage() {} func (x *DeploymentCreatedEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[2] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -504,7 +507,7 @@ func (x *DeploymentCreatedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use DeploymentCreatedEvent.ProtoReflect.Descriptor instead. func (*DeploymentCreatedEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{2} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{2} } func (x *DeploymentCreatedEvent) GetKey() string { @@ -554,7 +557,7 @@ type DeploymentUpdatedEvent struct { func (x *DeploymentUpdatedEvent) Reset() { *x = DeploymentUpdatedEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[3] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -566,7 +569,7 @@ func (x *DeploymentUpdatedEvent) String() string { func (*DeploymentUpdatedEvent) ProtoMessage() {} func (x *DeploymentUpdatedEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[3] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -579,7 +582,7 @@ func (x *DeploymentUpdatedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use DeploymentUpdatedEvent.ProtoReflect.Descriptor instead. func (*DeploymentUpdatedEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{3} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{3} } func (x *DeploymentUpdatedEvent) GetKey() string { @@ -610,7 +613,7 @@ type IngressEvent struct { DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - VerbRef *schema.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` Method string `protobuf:"bytes,4,opt,name=method,proto3" json:"method,omitempty"` Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"` StatusCode int32 `protobuf:"varint,7,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"` @@ -625,7 +628,7 @@ type IngressEvent struct { func (x *IngressEvent) Reset() { *x = IngressEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[4] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -637,7 +640,7 @@ func (x *IngressEvent) String() string { func (*IngressEvent) ProtoMessage() {} func (x *IngressEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[4] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -650,7 +653,7 @@ func (x *IngressEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use IngressEvent.ProtoReflect.Descriptor instead. func (*IngressEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{4} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{4} } func (x *IngressEvent) GetDeploymentKey() string { @@ -667,7 +670,7 @@ func (x *IngressEvent) GetRequestKey() string { return "" } -func (x *IngressEvent) GetVerbRef() *schema.Ref { +func (x *IngressEvent) GetVerbRef() *v1.Ref { if x != nil { return x.VerbRef } @@ -750,7 +753,7 @@ type CronScheduledEvent struct { unknownFields protoimpl.UnknownFields DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - VerbRef *schema.Ref `protobuf:"bytes,2,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,2,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` Duration *durationpb.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"` ScheduledAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at,omitempty"` @@ -760,7 +763,7 @@ type CronScheduledEvent struct { func (x *CronScheduledEvent) Reset() { *x = CronScheduledEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[5] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -772,7 +775,7 @@ func (x *CronScheduledEvent) String() string { func (*CronScheduledEvent) ProtoMessage() {} func (x *CronScheduledEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[5] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -785,7 +788,7 @@ func (x *CronScheduledEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CronScheduledEvent.ProtoReflect.Descriptor instead. func (*CronScheduledEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{5} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{5} } func (x *CronScheduledEvent) GetDeploymentKey() string { @@ -795,7 +798,7 @@ func (x *CronScheduledEvent) GetDeploymentKey() string { return "" } -func (x *CronScheduledEvent) GetVerbRef() *schema.Ref { +func (x *CronScheduledEvent) GetVerbRef() *v1.Ref { if x != nil { return x.VerbRef } @@ -844,16 +847,16 @@ type AsyncExecuteEvent struct { DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - VerbRef *schema.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` TimeStamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` Duration *durationpb.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` - AsyncEventType AsyncExecuteEventType `protobuf:"varint,6,opt,name=async_event_type,json=asyncEventType,proto3,enum=xyz.block.ftl.v1.console.AsyncExecuteEventType" json:"async_event_type,omitempty"` + AsyncEventType AsyncExecuteEventType `protobuf:"varint,6,opt,name=async_event_type,json=asyncEventType,proto3,enum=xyz.block.ftl.console.v1.AsyncExecuteEventType" json:"async_event_type,omitempty"` Error *string `protobuf:"bytes,7,opt,name=error,proto3,oneof" json:"error,omitempty"` } func (x *AsyncExecuteEvent) Reset() { *x = AsyncExecuteEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[6] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -865,7 +868,7 @@ func (x *AsyncExecuteEvent) String() string { func (*AsyncExecuteEvent) ProtoMessage() {} func (x *AsyncExecuteEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[6] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -878,7 +881,7 @@ func (x *AsyncExecuteEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AsyncExecuteEvent.ProtoReflect.Descriptor instead. func (*AsyncExecuteEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{6} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{6} } func (x *AsyncExecuteEvent) GetDeploymentKey() string { @@ -895,7 +898,7 @@ func (x *AsyncExecuteEvent) GetRequestKey() string { return "" } -func (x *AsyncExecuteEvent) GetVerbRef() *schema.Ref { +func (x *AsyncExecuteEvent) GetVerbRef() *v1.Ref { if x != nil { return x.VerbRef } @@ -920,7 +923,7 @@ func (x *AsyncExecuteEvent) GetAsyncEventType() AsyncExecuteEventType { if x != nil { return x.AsyncEventType } - return AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN + return AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED } func (x *AsyncExecuteEvent) GetError() string { @@ -937,7 +940,7 @@ type PubSubPublishEvent struct { DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - VerbRef *schema.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` TimeStamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` Duration *durationpb.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` Topic string `protobuf:"bytes,6,opt,name=topic,proto3" json:"topic,omitempty"` @@ -947,7 +950,7 @@ type PubSubPublishEvent struct { func (x *PubSubPublishEvent) Reset() { *x = PubSubPublishEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[7] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -959,7 +962,7 @@ func (x *PubSubPublishEvent) String() string { func (*PubSubPublishEvent) ProtoMessage() {} func (x *PubSubPublishEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[7] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -972,7 +975,7 @@ func (x *PubSubPublishEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use PubSubPublishEvent.ProtoReflect.Descriptor instead. func (*PubSubPublishEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{7} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{7} } func (x *PubSubPublishEvent) GetDeploymentKey() string { @@ -989,7 +992,7 @@ func (x *PubSubPublishEvent) GetRequestKey() string { return "" } -func (x *PubSubPublishEvent) GetVerbRef() *schema.Ref { +func (x *PubSubPublishEvent) GetVerbRef() *v1.Ref { if x != nil { return x.VerbRef } @@ -1048,7 +1051,7 @@ type PubSubConsumeEvent struct { func (x *PubSubConsumeEvent) Reset() { *x = PubSubConsumeEvent{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[8] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1060,7 +1063,7 @@ func (x *PubSubConsumeEvent) String() string { func (*PubSubConsumeEvent) ProtoMessage() {} func (x *PubSubConsumeEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[8] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1073,7 +1076,7 @@ func (x *PubSubConsumeEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use PubSubConsumeEvent.ProtoReflect.Descriptor instead. func (*PubSubConsumeEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{8} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{8} } func (x *PubSubConsumeEvent) GetDeploymentKey() string { @@ -1137,13 +1140,13 @@ type Config struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Config *schema.Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` - References []*schema.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` + Config *v1.Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + References []*v1.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` } func (x *Config) Reset() { *x = Config{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[9] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1155,7 +1158,7 @@ func (x *Config) String() string { func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[9] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1168,17 +1171,17 @@ func (x *Config) ProtoReflect() protoreflect.Message { // Deprecated: Use Config.ProtoReflect.Descriptor instead. func (*Config) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{9} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{9} } -func (x *Config) GetConfig() *schema.Config { +func (x *Config) GetConfig() *v1.Config { if x != nil { return x.Config } return nil } -func (x *Config) GetReferences() []*schema.Ref { +func (x *Config) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1190,14 +1193,14 @@ type Data struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *schema.Data `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` - Schema string `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` - References []*schema.Ref `protobuf:"bytes,3,rep,name=references,proto3" json:"references,omitempty"` + Data *v1.Data `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Schema string `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` + References []*v1.Ref `protobuf:"bytes,3,rep,name=references,proto3" json:"references,omitempty"` } func (x *Data) Reset() { *x = Data{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[10] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1209,7 +1212,7 @@ func (x *Data) String() string { func (*Data) ProtoMessage() {} func (x *Data) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[10] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1222,10 +1225,10 @@ func (x *Data) ProtoReflect() protoreflect.Message { // Deprecated: Use Data.ProtoReflect.Descriptor instead. func (*Data) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{10} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{10} } -func (x *Data) GetData() *schema.Data { +func (x *Data) GetData() *v1.Data { if x != nil { return x.Data } @@ -1239,7 +1242,7 @@ func (x *Data) GetSchema() string { return "" } -func (x *Data) GetReferences() []*schema.Ref { +func (x *Data) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1251,13 +1254,13 @@ type Database struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Database *schema.Database `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` - References []*schema.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` + Database *v1.Database `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + References []*v1.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` } func (x *Database) Reset() { *x = Database{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[11] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1269,7 +1272,7 @@ func (x *Database) String() string { func (*Database) ProtoMessage() {} func (x *Database) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[11] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1282,17 +1285,17 @@ func (x *Database) ProtoReflect() protoreflect.Message { // Deprecated: Use Database.ProtoReflect.Descriptor instead. func (*Database) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{11} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{11} } -func (x *Database) GetDatabase() *schema.Database { +func (x *Database) GetDatabase() *v1.Database { if x != nil { return x.Database } return nil } -func (x *Database) GetReferences() []*schema.Ref { +func (x *Database) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1304,13 +1307,13 @@ type Enum struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Enum *schema.Enum `protobuf:"bytes,1,opt,name=enum,proto3" json:"enum,omitempty"` - References []*schema.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` + Enum *v1.Enum `protobuf:"bytes,1,opt,name=enum,proto3" json:"enum,omitempty"` + References []*v1.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` } func (x *Enum) Reset() { *x = Enum{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[12] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1322,7 +1325,7 @@ func (x *Enum) String() string { func (*Enum) ProtoMessage() {} func (x *Enum) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[12] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1335,17 +1338,17 @@ func (x *Enum) ProtoReflect() protoreflect.Message { // Deprecated: Use Enum.ProtoReflect.Descriptor instead. func (*Enum) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{12} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{12} } -func (x *Enum) GetEnum() *schema.Enum { +func (x *Enum) GetEnum() *v1.Enum { if x != nil { return x.Enum } return nil } -func (x *Enum) GetReferences() []*schema.Ref { +func (x *Enum) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1357,13 +1360,13 @@ type Topic struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Topic *schema.Topic `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` - References []*schema.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` + Topic *v1.Topic `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` + References []*v1.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` } func (x *Topic) Reset() { *x = Topic{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[13] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1375,7 +1378,7 @@ func (x *Topic) String() string { func (*Topic) ProtoMessage() {} func (x *Topic) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[13] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1388,17 +1391,17 @@ func (x *Topic) ProtoReflect() protoreflect.Message { // Deprecated: Use Topic.ProtoReflect.Descriptor instead. func (*Topic) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{13} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{13} } -func (x *Topic) GetTopic() *schema.Topic { +func (x *Topic) GetTopic() *v1.Topic { if x != nil { return x.Topic } return nil } -func (x *Topic) GetReferences() []*schema.Ref { +func (x *Topic) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1410,13 +1413,13 @@ type TypeAlias struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Typealias *schema.TypeAlias `protobuf:"bytes,1,opt,name=typealias,proto3" json:"typealias,omitempty"` - References []*schema.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` + Typealias *v1.TypeAlias `protobuf:"bytes,1,opt,name=typealias,proto3" json:"typealias,omitempty"` + References []*v1.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` } func (x *TypeAlias) Reset() { *x = TypeAlias{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[14] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1428,7 +1431,7 @@ func (x *TypeAlias) String() string { func (*TypeAlias) ProtoMessage() {} func (x *TypeAlias) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[14] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1441,17 +1444,17 @@ func (x *TypeAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeAlias.ProtoReflect.Descriptor instead. func (*TypeAlias) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{14} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{14} } -func (x *TypeAlias) GetTypealias() *schema.TypeAlias { +func (x *TypeAlias) GetTypealias() *v1.TypeAlias { if x != nil { return x.Typealias } return nil } -func (x *TypeAlias) GetReferences() []*schema.Ref { +func (x *TypeAlias) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1463,13 +1466,13 @@ type Secret struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Secret *schema.Secret `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"` - References []*schema.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` + Secret *v1.Secret `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"` + References []*v1.Ref `protobuf:"bytes,2,rep,name=references,proto3" json:"references,omitempty"` } func (x *Secret) Reset() { *x = Secret{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[15] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1481,7 +1484,7 @@ func (x *Secret) String() string { func (*Secret) ProtoMessage() {} func (x *Secret) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[15] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1494,17 +1497,17 @@ func (x *Secret) ProtoReflect() protoreflect.Message { // Deprecated: Use Secret.ProtoReflect.Descriptor instead. func (*Secret) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{15} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15} } -func (x *Secret) GetSecret() *schema.Secret { +func (x *Secret) GetSecret() *v1.Secret { if x != nil { return x.Secret } return nil } -func (x *Secret) GetReferences() []*schema.Ref { +func (x *Secret) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1516,15 +1519,15 @@ type Verb struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Verb *schema.Verb `protobuf:"bytes,1,opt,name=verb,proto3" json:"verb,omitempty"` - Schema string `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` - JsonRequestSchema string `protobuf:"bytes,3,opt,name=json_request_schema,json=jsonRequestSchema,proto3" json:"json_request_schema,omitempty"` - References []*schema.Ref `protobuf:"bytes,4,rep,name=references,proto3" json:"references,omitempty"` + Verb *v1.Verb `protobuf:"bytes,1,opt,name=verb,proto3" json:"verb,omitempty"` + Schema string `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` + JsonRequestSchema string `protobuf:"bytes,3,opt,name=json_request_schema,json=jsonRequestSchema,proto3" json:"json_request_schema,omitempty"` + References []*v1.Ref `protobuf:"bytes,4,rep,name=references,proto3" json:"references,omitempty"` } func (x *Verb) Reset() { *x = Verb{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[16] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1536,7 +1539,7 @@ func (x *Verb) String() string { func (*Verb) ProtoMessage() {} func (x *Verb) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[16] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1549,10 +1552,10 @@ func (x *Verb) ProtoReflect() protoreflect.Message { // Deprecated: Use Verb.ProtoReflect.Descriptor instead. func (*Verb) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{16} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{16} } -func (x *Verb) GetVerb() *schema.Verb { +func (x *Verb) GetVerb() *v1.Verb { if x != nil { return x.Verb } @@ -1573,7 +1576,7 @@ func (x *Verb) GetJsonRequestSchema() string { return "" } -func (x *Verb) GetReferences() []*schema.Ref { +func (x *Verb) GetReferences() []*v1.Ref { if x != nil { return x.References } @@ -1601,7 +1604,7 @@ type Module struct { func (x *Module) Reset() { *x = Module{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[17] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1613,7 +1616,7 @@ func (x *Module) String() string { func (*Module) ProtoMessage() {} func (x *Module) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[17] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1626,7 +1629,7 @@ func (x *Module) ProtoReflect() protoreflect.Message { // Deprecated: Use Module.ProtoReflect.Descriptor instead. func (*Module) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{17} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{17} } func (x *Module) GetName() string { @@ -1723,7 +1726,7 @@ type TopologyGroup struct { func (x *TopologyGroup) Reset() { *x = TopologyGroup{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[18] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1735,7 +1738,7 @@ func (x *TopologyGroup) String() string { func (*TopologyGroup) ProtoMessage() {} func (x *TopologyGroup) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[18] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1748,7 +1751,7 @@ func (x *TopologyGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use TopologyGroup.ProtoReflect.Descriptor instead. func (*TopologyGroup) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{18} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{18} } func (x *TopologyGroup) GetModules() []string { @@ -1768,7 +1771,7 @@ type Topology struct { func (x *Topology) Reset() { *x = Topology{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[19] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1780,7 +1783,7 @@ func (x *Topology) String() string { func (*Topology) ProtoMessage() {} func (x *Topology) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[19] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1793,7 +1796,7 @@ func (x *Topology) ProtoReflect() protoreflect.Message { // Deprecated: Use Topology.ProtoReflect.Descriptor instead. func (*Topology) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{19} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{19} } func (x *Topology) GetLevels() []*TopologyGroup { @@ -1811,7 +1814,7 @@ type GetModulesRequest struct { func (x *GetModulesRequest) Reset() { *x = GetModulesRequest{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[20] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1823,7 +1826,7 @@ func (x *GetModulesRequest) String() string { func (*GetModulesRequest) ProtoMessage() {} func (x *GetModulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[20] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1836,7 +1839,7 @@ func (x *GetModulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetModulesRequest.ProtoReflect.Descriptor instead. func (*GetModulesRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{20} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{20} } type GetModulesResponse struct { @@ -1850,7 +1853,7 @@ type GetModulesResponse struct { func (x *GetModulesResponse) Reset() { *x = GetModulesResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[21] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1862,7 +1865,7 @@ func (x *GetModulesResponse) String() string { func (*GetModulesResponse) ProtoMessage() {} func (x *GetModulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[21] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1875,7 +1878,7 @@ func (x *GetModulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetModulesResponse.ProtoReflect.Descriptor instead. func (*GetModulesResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{21} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{21} } func (x *GetModulesResponse) GetModules() []*Module { @@ -1900,7 +1903,7 @@ type StreamModulesRequest struct { func (x *StreamModulesRequest) Reset() { *x = StreamModulesRequest{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[22] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1912,7 +1915,7 @@ func (x *StreamModulesRequest) String() string { func (*StreamModulesRequest) ProtoMessage() {} func (x *StreamModulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[22] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1925,7 +1928,7 @@ func (x *StreamModulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamModulesRequest.ProtoReflect.Descriptor instead. func (*StreamModulesRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{22} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{22} } type StreamModulesResponse struct { @@ -1939,7 +1942,7 @@ type StreamModulesResponse struct { func (x *StreamModulesResponse) Reset() { *x = StreamModulesResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[23] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1951,7 +1954,7 @@ func (x *StreamModulesResponse) String() string { func (*StreamModulesResponse) ProtoMessage() {} func (x *StreamModulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[23] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1964,7 +1967,7 @@ func (x *StreamModulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamModulesResponse.ProtoReflect.Descriptor instead. func (*StreamModulesResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{23} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{23} } func (x *StreamModulesResponse) GetModules() []*Module { @@ -1982,31 +1985,31 @@ func (x *StreamModulesResponse) GetTopology() *Topology { } // Query for events. -type EventsQuery struct { +type GetEventsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Filters []*EventsQuery_Filter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"` - Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Order EventsQuery_Order `protobuf:"varint,3,opt,name=order,proto3,enum=xyz.block.ftl.v1.console.EventsQuery_Order" json:"order,omitempty"` + Filters []*GetEventsRequest_Filter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"` + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Order GetEventsRequest_Order `protobuf:"varint,3,opt,name=order,proto3,enum=xyz.block.ftl.console.v1.GetEventsRequest_Order" json:"order,omitempty"` } -func (x *EventsQuery) Reset() { - *x = EventsQuery{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[24] +func (x *GetEventsRequest) Reset() { + *x = GetEventsRequest{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery) String() string { +func (x *GetEventsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery) ProtoMessage() {} +func (*GetEventsRequest) ProtoMessage() {} -func (x *EventsQuery) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[24] +func (x *GetEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2017,56 +2020,57 @@ func (x *EventsQuery) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery.ProtoReflect.Descriptor instead. -func (*EventsQuery) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24} +// Deprecated: Use GetEventsRequest.ProtoReflect.Descriptor instead. +func (*GetEventsRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24} } -func (x *EventsQuery) GetFilters() []*EventsQuery_Filter { +func (x *GetEventsRequest) GetFilters() []*GetEventsRequest_Filter { if x != nil { return x.Filters } return nil } -func (x *EventsQuery) GetLimit() int32 { +func (x *GetEventsRequest) GetLimit() int32 { if x != nil { return x.Limit } return 0 } -func (x *EventsQuery) GetOrder() EventsQuery_Order { +func (x *GetEventsRequest) GetOrder() GetEventsRequest_Order { if x != nil { return x.Order } - return EventsQuery_ASC + return GetEventsRequest_ORDER_UNSPECIFIED } -type StreamEventsRequest struct { +type GetEventsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UpdateInterval *durationpb.Duration `protobuf:"bytes,1,opt,name=update_interval,json=updateInterval,proto3,oneof" json:"update_interval,omitempty"` - Query *EventsQuery `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` + Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + // For pagination, this cursor is where we should start our next query + Cursor *int64 `protobuf:"varint,2,opt,name=cursor,proto3,oneof" json:"cursor,omitempty"` } -func (x *StreamEventsRequest) Reset() { - *x = StreamEventsRequest{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[25] +func (x *GetEventsResponse) Reset() { + *x = GetEventsResponse{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *StreamEventsRequest) String() string { +func (x *GetEventsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StreamEventsRequest) ProtoMessage() {} +func (*GetEventsResponse) ProtoMessage() {} -func (x *StreamEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[25] +func (x *GetEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2077,48 +2081,49 @@ func (x *StreamEventsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StreamEventsRequest.ProtoReflect.Descriptor instead. -func (*StreamEventsRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{25} +// Deprecated: Use GetEventsResponse.ProtoReflect.Descriptor instead. +func (*GetEventsResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{25} } -func (x *StreamEventsRequest) GetUpdateInterval() *durationpb.Duration { +func (x *GetEventsResponse) GetEvents() []*Event { if x != nil { - return x.UpdateInterval + return x.Events } return nil } -func (x *StreamEventsRequest) GetQuery() *EventsQuery { - if x != nil { - return x.Query +func (x *GetEventsResponse) GetCursor() int64 { + if x != nil && x.Cursor != nil { + return *x.Cursor } - return nil + return 0 } -type StreamEventsResponse struct { +type GetConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Module *string `protobuf:"bytes,2,opt,name=module,proto3,oneof" json:"module,omitempty"` } -func (x *StreamEventsResponse) Reset() { - *x = StreamEventsResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[26] +func (x *GetConfigRequest) Reset() { + *x = GetConfigRequest{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *StreamEventsResponse) String() string { +func (x *GetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StreamEventsResponse) ProtoMessage() {} +func (*GetConfigRequest) ProtoMessage() {} -func (x *StreamEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[26] +func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2129,55 +2134,48 @@ func (x *StreamEventsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StreamEventsResponse.ProtoReflect.Descriptor instead. -func (*StreamEventsResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{26} +// Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead. +func (*GetConfigRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{26} } -func (x *StreamEventsResponse) GetEvents() []*Event { +func (x *GetConfigRequest) GetName() string { if x != nil { - return x.Events + return x.Name } - return nil + return "" } -type Event struct { +func (x *GetConfigRequest) GetModule() string { + if x != nil && x.Module != nil { + return *x.Module + } + return "" +} + +type GetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - // Unique ID for event. - Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` - // Types that are assignable to Entry: - // - // *Event_Log - // *Event_Call - // *Event_DeploymentCreated - // *Event_DeploymentUpdated - // *Event_Ingress - // *Event_CronScheduled - // *Event_AsyncExecute - // *Event_PubsubPublish - // *Event_PubsubConsume - Entry isEvent_Entry `protobuf_oneof:"entry"` + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *Event) Reset() { - *x = Event{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[27] +func (x *GetConfigResponse) Reset() { + *x = GetConfigResponse{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *Event) String() string { +func (x *GetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Event) ProtoMessage() {} +func (*GetConfigResponse) ProtoMessage() {} -func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[27] +func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2188,178 +2186,102 @@ func (x *Event) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Event.ProtoReflect.Descriptor instead. -func (*Event) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{27} +// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. +func (*GetConfigResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{27} } -func (x *Event) GetTimeStamp() *timestamppb.Timestamp { +func (x *GetConfigResponse) GetValue() []byte { if x != nil { - return x.TimeStamp + return x.Value } return nil } -func (x *Event) GetId() int64 { - if x != nil { - return x.Id - } - return 0 -} - -func (m *Event) GetEntry() isEvent_Entry { - if m != nil { - return m.Entry - } - return nil -} +type SetConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *Event) GetLog() *LogEvent { - if x, ok := x.GetEntry().(*Event_Log); ok { - return x.Log - } - return nil + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Module *string `protobuf:"bytes,2,opt,name=module,proto3,oneof" json:"module,omitempty"` + Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (x *Event) GetCall() *CallEvent { - if x, ok := x.GetEntry().(*Event_Call); ok { - return x.Call - } - return nil +func (x *SetConfigRequest) Reset() { + *x = SetConfigRequest{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (x *Event) GetDeploymentCreated() *DeploymentCreatedEvent { - if x, ok := x.GetEntry().(*Event_DeploymentCreated); ok { - return x.DeploymentCreated - } - return nil +func (x *SetConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Event) GetDeploymentUpdated() *DeploymentUpdatedEvent { - if x, ok := x.GetEntry().(*Event_DeploymentUpdated); ok { - return x.DeploymentUpdated - } - return nil -} +func (*SetConfigRequest) ProtoMessage() {} -func (x *Event) GetIngress() *IngressEvent { - if x, ok := x.GetEntry().(*Event_Ingress); ok { - return x.Ingress +func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *Event) GetCronScheduled() *CronScheduledEvent { - if x, ok := x.GetEntry().(*Event_CronScheduled); ok { - return x.CronScheduled - } - return nil +// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. +func (*SetConfigRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{28} } -func (x *Event) GetAsyncExecute() *AsyncExecuteEvent { - if x, ok := x.GetEntry().(*Event_AsyncExecute); ok { - return x.AsyncExecute +func (x *SetConfigRequest) GetName() string { + if x != nil { + return x.Name } - return nil + return "" } -func (x *Event) GetPubsubPublish() *PubSubPublishEvent { - if x, ok := x.GetEntry().(*Event_PubsubPublish); ok { - return x.PubsubPublish +func (x *SetConfigRequest) GetModule() string { + if x != nil && x.Module != nil { + return *x.Module } - return nil + return "" } -func (x *Event) GetPubsubConsume() *PubSubConsumeEvent { - if x, ok := x.GetEntry().(*Event_PubsubConsume); ok { - return x.PubsubConsume +func (x *SetConfigRequest) GetValue() []byte { + if x != nil { + return x.Value } return nil } -type isEvent_Entry interface { - isEvent_Entry() -} - -type Event_Log struct { - Log *LogEvent `protobuf:"bytes,3,opt,name=log,proto3,oneof"` -} - -type Event_Call struct { - Call *CallEvent `protobuf:"bytes,4,opt,name=call,proto3,oneof"` -} - -type Event_DeploymentCreated struct { - DeploymentCreated *DeploymentCreatedEvent `protobuf:"bytes,5,opt,name=deployment_created,json=deploymentCreated,proto3,oneof"` -} - -type Event_DeploymentUpdated struct { - DeploymentUpdated *DeploymentUpdatedEvent `protobuf:"bytes,6,opt,name=deployment_updated,json=deploymentUpdated,proto3,oneof"` -} - -type Event_Ingress struct { - Ingress *IngressEvent `protobuf:"bytes,7,opt,name=ingress,proto3,oneof"` -} - -type Event_CronScheduled struct { - CronScheduled *CronScheduledEvent `protobuf:"bytes,8,opt,name=cron_scheduled,json=cronScheduled,proto3,oneof"` -} - -type Event_AsyncExecute struct { - AsyncExecute *AsyncExecuteEvent `protobuf:"bytes,9,opt,name=async_execute,json=asyncExecute,proto3,oneof"` -} - -type Event_PubsubPublish struct { - PubsubPublish *PubSubPublishEvent `protobuf:"bytes,10,opt,name=pubsub_publish,json=pubsubPublish,proto3,oneof"` -} - -type Event_PubsubConsume struct { - PubsubConsume *PubSubConsumeEvent `protobuf:"bytes,11,opt,name=pubsub_consume,json=pubsubConsume,proto3,oneof"` -} - -func (*Event_Log) isEvent_Entry() {} - -func (*Event_Call) isEvent_Entry() {} - -func (*Event_DeploymentCreated) isEvent_Entry() {} - -func (*Event_DeploymentUpdated) isEvent_Entry() {} - -func (*Event_Ingress) isEvent_Entry() {} - -func (*Event_CronScheduled) isEvent_Entry() {} - -func (*Event_AsyncExecute) isEvent_Entry() {} - -func (*Event_PubsubPublish) isEvent_Entry() {} - -func (*Event_PubsubConsume) isEvent_Entry() {} - -type GetEventsResponse struct { +type SetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` - // For pagination, this cursor is where we should start our next query - Cursor *int64 `protobuf:"varint,2,opt,name=cursor,proto3,oneof" json:"cursor,omitempty"` + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GetEventsResponse) Reset() { - *x = GetEventsResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[28] +func (x *SetConfigResponse) Reset() { + *x = SetConfigResponse{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetEventsResponse) String() string { +func (x *SetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetEventsResponse) ProtoMessage() {} +func (*SetConfigResponse) ProtoMessage() {} -func (x *GetEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[28] +func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2370,26 +2292,19 @@ func (x *GetEventsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetEventsResponse.ProtoReflect.Descriptor instead. -func (*GetEventsResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{28} +// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. +func (*SetConfigResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{29} } -func (x *GetEventsResponse) GetEvents() []*Event { +func (x *SetConfigResponse) GetValue() []byte { if x != nil { - return x.Events + return x.Value } return nil } -func (x *GetEventsResponse) GetCursor() int64 { - if x != nil && x.Cursor != nil { - return *x.Cursor - } - return 0 -} - -type GetConfigRequest struct { +type GetSecretRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2398,21 +2313,21 @@ type GetConfigRequest struct { Module *string `protobuf:"bytes,2,opt,name=module,proto3,oneof" json:"module,omitempty"` } -func (x *GetConfigRequest) Reset() { - *x = GetConfigRequest{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[29] +func (x *GetSecretRequest) Reset() { + *x = GetSecretRequest{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetConfigRequest) String() string { +func (x *GetSecretRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigRequest) ProtoMessage() {} +func (*GetSecretRequest) ProtoMessage() {} -func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[29] +func (x *GetSecretRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2423,26 +2338,26 @@ func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead. -func (*GetConfigRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{29} +// Deprecated: Use GetSecretRequest.ProtoReflect.Descriptor instead. +func (*GetSecretRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{30} } -func (x *GetConfigRequest) GetName() string { +func (x *GetSecretRequest) GetName() string { if x != nil { return x.Name } return "" } -func (x *GetConfigRequest) GetModule() string { +func (x *GetSecretRequest) GetModule() string { if x != nil && x.Module != nil { return *x.Module } return "" } -type GetConfigResponse struct { +type GetSecretResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2450,21 +2365,21 @@ type GetConfigResponse struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GetConfigResponse) Reset() { - *x = GetConfigResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[30] +func (x *GetSecretResponse) Reset() { + *x = GetSecretResponse{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetConfigResponse) String() string { +func (x *GetSecretResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigResponse) ProtoMessage() {} +func (*GetSecretResponse) ProtoMessage() {} -func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[30] +func (x *GetSecretResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2475,19 +2390,19 @@ func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. -func (*GetConfigResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{30} +// Deprecated: Use GetSecretResponse.ProtoReflect.Descriptor instead. +func (*GetSecretResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{31} } -func (x *GetConfigResponse) GetValue() []byte { +func (x *GetSecretResponse) GetValue() []byte { if x != nil { return x.Value } return nil } -type SetConfigRequest struct { +type SetSecretRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2497,21 +2412,21 @@ type SetConfigRequest struct { Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SetConfigRequest) Reset() { - *x = SetConfigRequest{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[31] +func (x *SetSecretRequest) Reset() { + *x = SetSecretRequest{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetConfigRequest) String() string { +func (x *SetSecretRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigRequest) ProtoMessage() {} +func (*SetSecretRequest) ProtoMessage() {} -func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[31] +func (x *SetSecretRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2522,33 +2437,33 @@ func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. -func (*SetConfigRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{31} +// Deprecated: Use SetSecretRequest.ProtoReflect.Descriptor instead. +func (*SetSecretRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{32} } -func (x *SetConfigRequest) GetName() string { +func (x *SetSecretRequest) GetName() string { if x != nil { return x.Name } return "" } -func (x *SetConfigRequest) GetModule() string { +func (x *SetSecretRequest) GetModule() string { if x != nil && x.Module != nil { return *x.Module } return "" } -func (x *SetConfigRequest) GetValue() []byte { +func (x *SetSecretRequest) GetValue() []byte { if x != nil { return x.Value } return nil } -type SetConfigResponse struct { +type SetSecretResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2556,21 +2471,21 @@ type SetConfigResponse struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SetConfigResponse) Reset() { - *x = SetConfigResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[32] +func (x *SetSecretResponse) Reset() { + *x = SetSecretResponse{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetConfigResponse) String() string { +func (x *SetSecretResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigResponse) ProtoMessage() {} +func (*SetSecretResponse) ProtoMessage() {} -func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[32] +func (x *SetSecretResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2581,42 +2496,42 @@ func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. -func (*SetConfigResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{32} +// Deprecated: Use SetSecretResponse.ProtoReflect.Descriptor instead. +func (*SetSecretResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{33} } -func (x *SetConfigResponse) GetValue() []byte { +func (x *SetSecretResponse) GetValue() []byte { if x != nil { return x.Value } return nil } -type GetSecretRequest struct { +type StreamEventsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Module *string `protobuf:"bytes,2,opt,name=module,proto3,oneof" json:"module,omitempty"` + UpdateInterval *durationpb.Duration `protobuf:"bytes,1,opt,name=update_interval,json=updateInterval,proto3,oneof" json:"update_interval,omitempty"` + Query *GetEventsRequest `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` } -func (x *GetSecretRequest) Reset() { - *x = GetSecretRequest{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[33] +func (x *StreamEventsRequest) Reset() { + *x = StreamEventsRequest{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetSecretRequest) String() string { +func (x *StreamEventsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSecretRequest) ProtoMessage() {} +func (*StreamEventsRequest) ProtoMessage() {} -func (x *GetSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[33] +func (x *StreamEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2627,48 +2542,48 @@ func (x *GetSecretRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSecretRequest.ProtoReflect.Descriptor instead. -func (*GetSecretRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{33} +// Deprecated: Use StreamEventsRequest.ProtoReflect.Descriptor instead. +func (*StreamEventsRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{34} } -func (x *GetSecretRequest) GetName() string { +func (x *StreamEventsRequest) GetUpdateInterval() *durationpb.Duration { if x != nil { - return x.Name + return x.UpdateInterval } - return "" + return nil } -func (x *GetSecretRequest) GetModule() string { - if x != nil && x.Module != nil { - return *x.Module +func (x *StreamEventsRequest) GetQuery() *GetEventsRequest { + if x != nil { + return x.Query } - return "" + return nil } -type GetSecretResponse struct { +type StreamEventsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` } -func (x *GetSecretResponse) Reset() { - *x = GetSecretResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[34] +func (x *StreamEventsResponse) Reset() { + *x = StreamEventsResponse{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetSecretResponse) String() string { +func (x *StreamEventsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSecretResponse) ProtoMessage() {} +func (*StreamEventsResponse) ProtoMessage() {} -func (x *GetSecretResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[34] +func (x *StreamEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2679,43 +2594,55 @@ func (x *GetSecretResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSecretResponse.ProtoReflect.Descriptor instead. -func (*GetSecretResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{34} +// Deprecated: Use StreamEventsResponse.ProtoReflect.Descriptor instead. +func (*StreamEventsResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{35} } -func (x *GetSecretResponse) GetValue() []byte { +func (x *StreamEventsResponse) GetEvents() []*Event { if x != nil { - return x.Value + return x.Events } return nil } -type SetSecretRequest struct { +type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Module *string `protobuf:"bytes,2,opt,name=module,proto3,oneof" json:"module,omitempty"` - Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + // Unique ID for event. + Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + // Types that are assignable to Entry: + // + // *Event_Log + // *Event_Call + // *Event_DeploymentCreated + // *Event_DeploymentUpdated + // *Event_Ingress + // *Event_CronScheduled + // *Event_AsyncExecute + // *Event_PubsubPublish + // *Event_PubsubConsume + Entry isEvent_Entry `protobuf_oneof:"entry"` } -func (x *SetSecretRequest) Reset() { - *x = SetSecretRequest{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[35] +func (x *Event) Reset() { + *x = Event{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetSecretRequest) String() string { +func (x *Event) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetSecretRequest) ProtoMessage() {} +func (*Event) ProtoMessage() {} -func (x *SetSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[35] +func (x *Event) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2726,79 +2653,155 @@ func (x *SetSecretRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetSecretRequest.ProtoReflect.Descriptor instead. -func (*SetSecretRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{35} +// Deprecated: Use Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{36} } -func (x *SetSecretRequest) GetName() string { +func (x *Event) GetTimeStamp() *timestamppb.Timestamp { if x != nil { - return x.Name + return x.TimeStamp } - return "" + return nil } -func (x *SetSecretRequest) GetModule() string { - if x != nil && x.Module != nil { - return *x.Module +func (x *Event) GetId() int64 { + if x != nil { + return x.Id } - return "" + return 0 } -func (x *SetSecretRequest) GetValue() []byte { - if x != nil { - return x.Value +func (m *Event) GetEntry() isEvent_Entry { + if m != nil { + return m.Entry } return nil } -type SetSecretResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *Event) GetLog() *LogEvent { + if x, ok := x.GetEntry().(*Event_Log); ok { + return x.Log + } + return nil +} - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +func (x *Event) GetCall() *CallEvent { + if x, ok := x.GetEntry().(*Event_Call); ok { + return x.Call + } + return nil } -func (x *SetSecretResponse) Reset() { - *x = SetSecretResponse{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Event) GetDeploymentCreated() *DeploymentCreatedEvent { + if x, ok := x.GetEntry().(*Event_DeploymentCreated); ok { + return x.DeploymentCreated + } + return nil } -func (x *SetSecretResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Event) GetDeploymentUpdated() *DeploymentUpdatedEvent { + if x, ok := x.GetEntry().(*Event_DeploymentUpdated); ok { + return x.DeploymentUpdated + } + return nil } -func (*SetSecretResponse) ProtoMessage() {} +func (x *Event) GetIngress() *IngressEvent { + if x, ok := x.GetEntry().(*Event_Ingress); ok { + return x.Ingress + } + return nil +} -func (x *SetSecretResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[36] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Event) GetCronScheduled() *CronScheduledEvent { + if x, ok := x.GetEntry().(*Event_CronScheduled); ok { + return x.CronScheduled } - return mi.MessageOf(x) + return nil } -// Deprecated: Use SetSecretResponse.ProtoReflect.Descriptor instead. -func (*SetSecretResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{36} +func (x *Event) GetAsyncExecute() *AsyncExecuteEvent { + if x, ok := x.GetEntry().(*Event_AsyncExecute); ok { + return x.AsyncExecute + } + return nil } -func (x *SetSecretResponse) GetValue() []byte { - if x != nil { - return x.Value +func (x *Event) GetPubsubPublish() *PubSubPublishEvent { + if x, ok := x.GetEntry().(*Event_PubsubPublish); ok { + return x.PubsubPublish + } + return nil +} + +func (x *Event) GetPubsubConsume() *PubSubConsumeEvent { + if x, ok := x.GetEntry().(*Event_PubsubConsume); ok { + return x.PubsubConsume } return nil } +type isEvent_Entry interface { + isEvent_Entry() +} + +type Event_Log struct { + Log *LogEvent `protobuf:"bytes,3,opt,name=log,proto3,oneof"` +} + +type Event_Call struct { + Call *CallEvent `protobuf:"bytes,4,opt,name=call,proto3,oneof"` +} + +type Event_DeploymentCreated struct { + DeploymentCreated *DeploymentCreatedEvent `protobuf:"bytes,5,opt,name=deployment_created,json=deploymentCreated,proto3,oneof"` +} + +type Event_DeploymentUpdated struct { + DeploymentUpdated *DeploymentUpdatedEvent `protobuf:"bytes,6,opt,name=deployment_updated,json=deploymentUpdated,proto3,oneof"` +} + +type Event_Ingress struct { + Ingress *IngressEvent `protobuf:"bytes,7,opt,name=ingress,proto3,oneof"` +} + +type Event_CronScheduled struct { + CronScheduled *CronScheduledEvent `protobuf:"bytes,8,opt,name=cron_scheduled,json=cronScheduled,proto3,oneof"` +} + +type Event_AsyncExecute struct { + AsyncExecute *AsyncExecuteEvent `protobuf:"bytes,9,opt,name=async_execute,json=asyncExecute,proto3,oneof"` +} + +type Event_PubsubPublish struct { + PubsubPublish *PubSubPublishEvent `protobuf:"bytes,10,opt,name=pubsub_publish,json=pubsubPublish,proto3,oneof"` +} + +type Event_PubsubConsume struct { + PubsubConsume *PubSubConsumeEvent `protobuf:"bytes,11,opt,name=pubsub_consume,json=pubsubConsume,proto3,oneof"` +} + +func (*Event_Log) isEvent_Entry() {} + +func (*Event_Call) isEvent_Entry() {} + +func (*Event_DeploymentCreated) isEvent_Entry() {} + +func (*Event_DeploymentUpdated) isEvent_Entry() {} + +func (*Event_Ingress) isEvent_Entry() {} + +func (*Event_CronScheduled) isEvent_Entry() {} + +func (*Event_AsyncExecute) isEvent_Entry() {} + +func (*Event_PubsubPublish) isEvent_Entry() {} + +func (*Event_PubsubConsume) isEvent_Entry() {} + // Limit the number of events returned. -type EventsQuery_LimitFilter struct { +type GetEventsRequest_LimitFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2806,21 +2809,21 @@ type EventsQuery_LimitFilter struct { Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` } -func (x *EventsQuery_LimitFilter) Reset() { - *x = EventsQuery_LimitFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[38] +func (x *GetEventsRequest_LimitFilter) Reset() { + *x = GetEventsRequest_LimitFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_LimitFilter) String() string { +func (x *GetEventsRequest_LimitFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_LimitFilter) ProtoMessage() {} +func (*GetEventsRequest_LimitFilter) ProtoMessage() {} -func (x *EventsQuery_LimitFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[38] +func (x *GetEventsRequest_LimitFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2831,12 +2834,12 @@ func (x *EventsQuery_LimitFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_LimitFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_LimitFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 0} +// Deprecated: Use GetEventsRequest_LimitFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_LimitFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 0} } -func (x *EventsQuery_LimitFilter) GetLimit() int32 { +func (x *GetEventsRequest_LimitFilter) GetLimit() int32 { if x != nil { return x.Limit } @@ -2844,29 +2847,29 @@ func (x *EventsQuery_LimitFilter) GetLimit() int32 { } // Filters events by log level. -type EventsQuery_LogLevelFilter struct { +type GetEventsRequest_LogLevelFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LogLevel LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=xyz.block.ftl.v1.console.LogLevel" json:"log_level,omitempty"` + LogLevel LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=xyz.block.ftl.console.v1.LogLevel" json:"log_level,omitempty"` } -func (x *EventsQuery_LogLevelFilter) Reset() { - *x = EventsQuery_LogLevelFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[39] +func (x *GetEventsRequest_LogLevelFilter) Reset() { + *x = GetEventsRequest_LogLevelFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_LogLevelFilter) String() string { +func (x *GetEventsRequest_LogLevelFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_LogLevelFilter) ProtoMessage() {} +func (*GetEventsRequest_LogLevelFilter) ProtoMessage() {} -func (x *EventsQuery_LogLevelFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[39] +func (x *GetEventsRequest_LogLevelFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2877,20 +2880,20 @@ func (x *EventsQuery_LogLevelFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_LogLevelFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_LogLevelFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 1} +// Deprecated: Use GetEventsRequest_LogLevelFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_LogLevelFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 1} } -func (x *EventsQuery_LogLevelFilter) GetLogLevel() LogLevel { +func (x *GetEventsRequest_LogLevelFilter) GetLogLevel() LogLevel { if x != nil { return x.LogLevel } - return LogLevel_LOG_LEVEL_UNKNOWN + return LogLevel_LOG_LEVEL_UNSPECIFIED } // Filters events by deployment key. -type EventsQuery_DeploymentFilter struct { +type GetEventsRequest_DeploymentFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2898,21 +2901,21 @@ type EventsQuery_DeploymentFilter struct { Deployments []string `protobuf:"bytes,1,rep,name=deployments,proto3" json:"deployments,omitempty"` } -func (x *EventsQuery_DeploymentFilter) Reset() { - *x = EventsQuery_DeploymentFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[40] +func (x *GetEventsRequest_DeploymentFilter) Reset() { + *x = GetEventsRequest_DeploymentFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_DeploymentFilter) String() string { +func (x *GetEventsRequest_DeploymentFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_DeploymentFilter) ProtoMessage() {} +func (*GetEventsRequest_DeploymentFilter) ProtoMessage() {} -func (x *EventsQuery_DeploymentFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[40] +func (x *GetEventsRequest_DeploymentFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2923,12 +2926,12 @@ func (x *EventsQuery_DeploymentFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_DeploymentFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_DeploymentFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 2} +// Deprecated: Use GetEventsRequest_DeploymentFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_DeploymentFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 2} } -func (x *EventsQuery_DeploymentFilter) GetDeployments() []string { +func (x *GetEventsRequest_DeploymentFilter) GetDeployments() []string { if x != nil { return x.Deployments } @@ -2936,7 +2939,7 @@ func (x *EventsQuery_DeploymentFilter) GetDeployments() []string { } // Filters events by request key. -type EventsQuery_RequestFilter struct { +type GetEventsRequest_RequestFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2944,21 +2947,21 @@ type EventsQuery_RequestFilter struct { Requests []string `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` } -func (x *EventsQuery_RequestFilter) Reset() { - *x = EventsQuery_RequestFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[41] +func (x *GetEventsRequest_RequestFilter) Reset() { + *x = GetEventsRequest_RequestFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_RequestFilter) String() string { +func (x *GetEventsRequest_RequestFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_RequestFilter) ProtoMessage() {} +func (*GetEventsRequest_RequestFilter) ProtoMessage() {} -func (x *EventsQuery_RequestFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[41] +func (x *GetEventsRequest_RequestFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2969,12 +2972,12 @@ func (x *EventsQuery_RequestFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_RequestFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_RequestFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 3} +// Deprecated: Use GetEventsRequest_RequestFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_RequestFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 3} } -func (x *EventsQuery_RequestFilter) GetRequests() []string { +func (x *GetEventsRequest_RequestFilter) GetRequests() []string { if x != nil { return x.Requests } @@ -2982,29 +2985,29 @@ func (x *EventsQuery_RequestFilter) GetRequests() []string { } // Filters events by event type. -type EventsQuery_EventTypeFilter struct { +type GetEventsRequest_EventTypeFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EventTypes []EventType `protobuf:"varint,1,rep,packed,name=event_types,json=eventTypes,proto3,enum=xyz.block.ftl.v1.console.EventType" json:"event_types,omitempty"` + EventTypes []EventType `protobuf:"varint,1,rep,packed,name=event_types,json=eventTypes,proto3,enum=xyz.block.ftl.console.v1.EventType" json:"event_types,omitempty"` } -func (x *EventsQuery_EventTypeFilter) Reset() { - *x = EventsQuery_EventTypeFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[42] +func (x *GetEventsRequest_EventTypeFilter) Reset() { + *x = GetEventsRequest_EventTypeFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_EventTypeFilter) String() string { +func (x *GetEventsRequest_EventTypeFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_EventTypeFilter) ProtoMessage() {} +func (*GetEventsRequest_EventTypeFilter) ProtoMessage() {} -func (x *EventsQuery_EventTypeFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[42] +func (x *GetEventsRequest_EventTypeFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3015,12 +3018,12 @@ func (x *EventsQuery_EventTypeFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_EventTypeFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_EventTypeFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 4} +// Deprecated: Use GetEventsRequest_EventTypeFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_EventTypeFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 4} } -func (x *EventsQuery_EventTypeFilter) GetEventTypes() []EventType { +func (x *GetEventsRequest_EventTypeFilter) GetEventTypes() []EventType { if x != nil { return x.EventTypes } @@ -3030,7 +3033,7 @@ func (x *EventsQuery_EventTypeFilter) GetEventTypes() []EventType { // Filters events by time. // // Either end of the time range can be omitted to indicate no bound. -type EventsQuery_TimeFilter struct { +type GetEventsRequest_TimeFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -3039,21 +3042,21 @@ type EventsQuery_TimeFilter struct { NewerThan *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=newer_than,json=newerThan,proto3,oneof" json:"newer_than,omitempty"` } -func (x *EventsQuery_TimeFilter) Reset() { - *x = EventsQuery_TimeFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[43] +func (x *GetEventsRequest_TimeFilter) Reset() { + *x = GetEventsRequest_TimeFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_TimeFilter) String() string { +func (x *GetEventsRequest_TimeFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_TimeFilter) ProtoMessage() {} +func (*GetEventsRequest_TimeFilter) ProtoMessage() {} -func (x *EventsQuery_TimeFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[43] +func (x *GetEventsRequest_TimeFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3064,19 +3067,19 @@ func (x *EventsQuery_TimeFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_TimeFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_TimeFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 5} +// Deprecated: Use GetEventsRequest_TimeFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_TimeFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 5} } -func (x *EventsQuery_TimeFilter) GetOlderThan() *timestamppb.Timestamp { +func (x *GetEventsRequest_TimeFilter) GetOlderThan() *timestamppb.Timestamp { if x != nil { return x.OlderThan } return nil } -func (x *EventsQuery_TimeFilter) GetNewerThan() *timestamppb.Timestamp { +func (x *GetEventsRequest_TimeFilter) GetNewerThan() *timestamppb.Timestamp { if x != nil { return x.NewerThan } @@ -3086,7 +3089,7 @@ func (x *EventsQuery_TimeFilter) GetNewerThan() *timestamppb.Timestamp { // Filters events by ID. // // Either end of the ID range can be omitted to indicate no bound. -type EventsQuery_IDFilter struct { +type GetEventsRequest_IDFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -3095,21 +3098,21 @@ type EventsQuery_IDFilter struct { HigherThan *int64 `protobuf:"varint,2,opt,name=higher_than,json=higherThan,proto3,oneof" json:"higher_than,omitempty"` } -func (x *EventsQuery_IDFilter) Reset() { - *x = EventsQuery_IDFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[44] +func (x *GetEventsRequest_IDFilter) Reset() { + *x = GetEventsRequest_IDFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_IDFilter) String() string { +func (x *GetEventsRequest_IDFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_IDFilter) ProtoMessage() {} +func (*GetEventsRequest_IDFilter) ProtoMessage() {} -func (x *EventsQuery_IDFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[44] +func (x *GetEventsRequest_IDFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3120,19 +3123,19 @@ func (x *EventsQuery_IDFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_IDFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_IDFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 6} +// Deprecated: Use GetEventsRequest_IDFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_IDFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 6} } -func (x *EventsQuery_IDFilter) GetLowerThan() int64 { +func (x *GetEventsRequest_IDFilter) GetLowerThan() int64 { if x != nil && x.LowerThan != nil { return *x.LowerThan } return 0 } -func (x *EventsQuery_IDFilter) GetHigherThan() int64 { +func (x *GetEventsRequest_IDFilter) GetHigherThan() int64 { if x != nil && x.HigherThan != nil { return *x.HigherThan } @@ -3140,7 +3143,7 @@ func (x *EventsQuery_IDFilter) GetHigherThan() int64 { } // Filters events by call. -type EventsQuery_CallFilter struct { +type GetEventsRequest_CallFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -3150,21 +3153,21 @@ type EventsQuery_CallFilter struct { SourceModule *string `protobuf:"bytes,3,opt,name=source_module,json=sourceModule,proto3,oneof" json:"source_module,omitempty"` } -func (x *EventsQuery_CallFilter) Reset() { - *x = EventsQuery_CallFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[45] +func (x *GetEventsRequest_CallFilter) Reset() { + *x = GetEventsRequest_CallFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_CallFilter) String() string { +func (x *GetEventsRequest_CallFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_CallFilter) ProtoMessage() {} +func (*GetEventsRequest_CallFilter) ProtoMessage() {} -func (x *EventsQuery_CallFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[45] +func (x *GetEventsRequest_CallFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3175,33 +3178,33 @@ func (x *EventsQuery_CallFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_CallFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_CallFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 7} +// Deprecated: Use GetEventsRequest_CallFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_CallFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 7} } -func (x *EventsQuery_CallFilter) GetDestModule() string { +func (x *GetEventsRequest_CallFilter) GetDestModule() string { if x != nil { return x.DestModule } return "" } -func (x *EventsQuery_CallFilter) GetDestVerb() string { +func (x *GetEventsRequest_CallFilter) GetDestVerb() string { if x != nil && x.DestVerb != nil { return *x.DestVerb } return "" } -func (x *EventsQuery_CallFilter) GetSourceModule() string { +func (x *GetEventsRequest_CallFilter) GetSourceModule() string { if x != nil && x.SourceModule != nil { return *x.SourceModule } return "" } -type EventsQuery_ModuleFilter struct { +type GetEventsRequest_ModuleFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -3210,21 +3213,21 @@ type EventsQuery_ModuleFilter struct { Verb *string `protobuf:"bytes,2,opt,name=verb,proto3,oneof" json:"verb,omitempty"` } -func (x *EventsQuery_ModuleFilter) Reset() { - *x = EventsQuery_ModuleFilter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[46] +func (x *GetEventsRequest_ModuleFilter) Reset() { + *x = GetEventsRequest_ModuleFilter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_ModuleFilter) String() string { +func (x *GetEventsRequest_ModuleFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_ModuleFilter) ProtoMessage() {} +func (*GetEventsRequest_ModuleFilter) ProtoMessage() {} -func (x *EventsQuery_ModuleFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[46] +func (x *GetEventsRequest_ModuleFilter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3235,26 +3238,26 @@ func (x *EventsQuery_ModuleFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_ModuleFilter.ProtoReflect.Descriptor instead. -func (*EventsQuery_ModuleFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 8} +// Deprecated: Use GetEventsRequest_ModuleFilter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_ModuleFilter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 8} } -func (x *EventsQuery_ModuleFilter) GetModule() string { +func (x *GetEventsRequest_ModuleFilter) GetModule() string { if x != nil { return x.Module } return "" } -func (x *EventsQuery_ModuleFilter) GetVerb() string { +func (x *GetEventsRequest_ModuleFilter) GetVerb() string { if x != nil && x.Verb != nil { return *x.Verb } return "" } -type EventsQuery_Filter struct { +type GetEventsRequest_Filter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -3263,33 +3266,33 @@ type EventsQuery_Filter struct { // // Types that are assignable to Filter: // - // *EventsQuery_Filter_Limit - // *EventsQuery_Filter_LogLevel - // *EventsQuery_Filter_Deployments - // *EventsQuery_Filter_Requests - // *EventsQuery_Filter_EventTypes - // *EventsQuery_Filter_Time - // *EventsQuery_Filter_Id - // *EventsQuery_Filter_Call - // *EventsQuery_Filter_Module - Filter isEventsQuery_Filter_Filter `protobuf_oneof:"filter"` -} - -func (x *EventsQuery_Filter) Reset() { - *x = EventsQuery_Filter{} - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[47] + // *GetEventsRequest_Filter_Limit + // *GetEventsRequest_Filter_LogLevel + // *GetEventsRequest_Filter_Deployments + // *GetEventsRequest_Filter_Requests + // *GetEventsRequest_Filter_EventTypes + // *GetEventsRequest_Filter_Time + // *GetEventsRequest_Filter_Id + // *GetEventsRequest_Filter_Call + // *GetEventsRequest_Filter_Module + Filter isGetEventsRequest_Filter_Filter `protobuf_oneof:"filter"` +} + +func (x *GetEventsRequest_Filter) Reset() { + *x = GetEventsRequest_Filter{} + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EventsQuery_Filter) String() string { +func (x *GetEventsRequest_Filter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsQuery_Filter) ProtoMessage() {} +func (*GetEventsRequest_Filter) ProtoMessage() {} -func (x *EventsQuery_Filter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_console_console_proto_msgTypes[47] +func (x *GetEventsRequest_Filter) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3300,154 +3303,154 @@ func (x *EventsQuery_Filter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsQuery_Filter.ProtoReflect.Descriptor instead. -func (*EventsQuery_Filter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP(), []int{24, 9} +// Deprecated: Use GetEventsRequest_Filter.ProtoReflect.Descriptor instead. +func (*GetEventsRequest_Filter) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 9} } -func (m *EventsQuery_Filter) GetFilter() isEventsQuery_Filter_Filter { +func (m *GetEventsRequest_Filter) GetFilter() isGetEventsRequest_Filter_Filter { if m != nil { return m.Filter } return nil } -func (x *EventsQuery_Filter) GetLimit() *EventsQuery_LimitFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_Limit); ok { +func (x *GetEventsRequest_Filter) GetLimit() *GetEventsRequest_LimitFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_Limit); ok { return x.Limit } return nil } -func (x *EventsQuery_Filter) GetLogLevel() *EventsQuery_LogLevelFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_LogLevel); ok { +func (x *GetEventsRequest_Filter) GetLogLevel() *GetEventsRequest_LogLevelFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_LogLevel); ok { return x.LogLevel } return nil } -func (x *EventsQuery_Filter) GetDeployments() *EventsQuery_DeploymentFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_Deployments); ok { +func (x *GetEventsRequest_Filter) GetDeployments() *GetEventsRequest_DeploymentFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_Deployments); ok { return x.Deployments } return nil } -func (x *EventsQuery_Filter) GetRequests() *EventsQuery_RequestFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_Requests); ok { +func (x *GetEventsRequest_Filter) GetRequests() *GetEventsRequest_RequestFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_Requests); ok { return x.Requests } return nil } -func (x *EventsQuery_Filter) GetEventTypes() *EventsQuery_EventTypeFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_EventTypes); ok { +func (x *GetEventsRequest_Filter) GetEventTypes() *GetEventsRequest_EventTypeFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_EventTypes); ok { return x.EventTypes } return nil } -func (x *EventsQuery_Filter) GetTime() *EventsQuery_TimeFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_Time); ok { +func (x *GetEventsRequest_Filter) GetTime() *GetEventsRequest_TimeFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_Time); ok { return x.Time } return nil } -func (x *EventsQuery_Filter) GetId() *EventsQuery_IDFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_Id); ok { +func (x *GetEventsRequest_Filter) GetId() *GetEventsRequest_IDFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_Id); ok { return x.Id } return nil } -func (x *EventsQuery_Filter) GetCall() *EventsQuery_CallFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_Call); ok { +func (x *GetEventsRequest_Filter) GetCall() *GetEventsRequest_CallFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_Call); ok { return x.Call } return nil } -func (x *EventsQuery_Filter) GetModule() *EventsQuery_ModuleFilter { - if x, ok := x.GetFilter().(*EventsQuery_Filter_Module); ok { +func (x *GetEventsRequest_Filter) GetModule() *GetEventsRequest_ModuleFilter { + if x, ok := x.GetFilter().(*GetEventsRequest_Filter_Module); ok { return x.Module } return nil } -type isEventsQuery_Filter_Filter interface { - isEventsQuery_Filter_Filter() +type isGetEventsRequest_Filter_Filter interface { + isGetEventsRequest_Filter_Filter() } -type EventsQuery_Filter_Limit struct { - Limit *EventsQuery_LimitFilter `protobuf:"bytes,1,opt,name=limit,proto3,oneof"` +type GetEventsRequest_Filter_Limit struct { + Limit *GetEventsRequest_LimitFilter `protobuf:"bytes,1,opt,name=limit,proto3,oneof"` } -type EventsQuery_Filter_LogLevel struct { - LogLevel *EventsQuery_LogLevelFilter `protobuf:"bytes,2,opt,name=log_level,json=logLevel,proto3,oneof"` +type GetEventsRequest_Filter_LogLevel struct { + LogLevel *GetEventsRequest_LogLevelFilter `protobuf:"bytes,2,opt,name=log_level,json=logLevel,proto3,oneof"` } -type EventsQuery_Filter_Deployments struct { - Deployments *EventsQuery_DeploymentFilter `protobuf:"bytes,3,opt,name=deployments,proto3,oneof"` +type GetEventsRequest_Filter_Deployments struct { + Deployments *GetEventsRequest_DeploymentFilter `protobuf:"bytes,3,opt,name=deployments,proto3,oneof"` } -type EventsQuery_Filter_Requests struct { - Requests *EventsQuery_RequestFilter `protobuf:"bytes,4,opt,name=requests,proto3,oneof"` +type GetEventsRequest_Filter_Requests struct { + Requests *GetEventsRequest_RequestFilter `protobuf:"bytes,4,opt,name=requests,proto3,oneof"` } -type EventsQuery_Filter_EventTypes struct { - EventTypes *EventsQuery_EventTypeFilter `protobuf:"bytes,5,opt,name=event_types,json=eventTypes,proto3,oneof"` +type GetEventsRequest_Filter_EventTypes struct { + EventTypes *GetEventsRequest_EventTypeFilter `protobuf:"bytes,5,opt,name=event_types,json=eventTypes,proto3,oneof"` } -type EventsQuery_Filter_Time struct { - Time *EventsQuery_TimeFilter `protobuf:"bytes,6,opt,name=time,proto3,oneof"` +type GetEventsRequest_Filter_Time struct { + Time *GetEventsRequest_TimeFilter `protobuf:"bytes,6,opt,name=time,proto3,oneof"` } -type EventsQuery_Filter_Id struct { - Id *EventsQuery_IDFilter `protobuf:"bytes,7,opt,name=id,proto3,oneof"` +type GetEventsRequest_Filter_Id struct { + Id *GetEventsRequest_IDFilter `protobuf:"bytes,7,opt,name=id,proto3,oneof"` } -type EventsQuery_Filter_Call struct { - Call *EventsQuery_CallFilter `protobuf:"bytes,8,opt,name=call,proto3,oneof"` +type GetEventsRequest_Filter_Call struct { + Call *GetEventsRequest_CallFilter `protobuf:"bytes,8,opt,name=call,proto3,oneof"` } -type EventsQuery_Filter_Module struct { - Module *EventsQuery_ModuleFilter `protobuf:"bytes,9,opt,name=module,proto3,oneof"` +type GetEventsRequest_Filter_Module struct { + Module *GetEventsRequest_ModuleFilter `protobuf:"bytes,9,opt,name=module,proto3,oneof"` } -func (*EventsQuery_Filter_Limit) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_Limit) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_LogLevel) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_LogLevel) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_Deployments) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_Deployments) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_Requests) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_Requests) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_EventTypes) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_EventTypes) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_Time) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_Time) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_Id) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_Id) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_Call) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_Call) isGetEventsRequest_Filter_Filter() {} -func (*EventsQuery_Filter_Module) isEventsQuery_Filter_Filter() {} +func (*GetEventsRequest_Filter_Module) isGetEventsRequest_Filter_Filter() {} -var File_xyz_block_ftl_v1_console_console_proto protoreflect.FileDescriptor +var File_xyz_block_ftl_console_v1_console_proto protoreflect.FileDescriptor -var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ +var file_xyz_block_ftl_console_v1_console_proto_rawDesc = []byte{ 0x0a, 0x26, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, - 0x6c, 0x65, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, + 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, - 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, + 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x03, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, @@ -3461,8 +3464,8 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x52, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, @@ -3487,13 +3490,13 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x49, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x01, 0x52, 0x0d, 0x73, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x01, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x12, 0x64, 0x65, 0x73, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, @@ -3536,8 +3539,8 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, @@ -3567,8 +3570,8 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, @@ -3592,8 +3595,8 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, @@ -3603,8 +3606,8 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x10, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, @@ -3618,8 +3621,8 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, @@ -3662,65 +3665,65 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x7f, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x77, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x31, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x7b, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x31, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x56, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, @@ -3728,7 +3731,7 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x6a, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xd1, 0x04, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, @@ -3739,318 +3742,325 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x12, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x65, 0x6e, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x54, + 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x54, 0x79, 0x70, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x29, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x47, 0x72, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, - 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x54, + 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, - 0x79, 0x22, 0xe4, 0x0d, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x12, 0x46, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x41, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x1a, 0x23, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x51, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x34, 0x0a, 0x10, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x1a, 0x2b, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x57, 0x0a, - 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x44, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, - 0x68, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x68, - 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x74, - 0x68, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x54, 0x68, - 0x61, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, - 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x74, - 0x68, 0x61, 0x6e, 0x1a, 0x73, 0x0a, 0x08, 0x49, 0x44, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x22, 0x0a, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x68, - 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x6f, - 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x1a, 0x99, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x6c, - 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x5f, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, - 0x5f, 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x64, - 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, - 0x72, 0x62, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x1a, 0x48, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x04, - 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x76, 0x65, - 0x72, 0x62, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x1a, 0xdb, - 0x05, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x53, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, - 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x5a, 0x0a, 0x0b, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, - 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, - 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x49, 0x44, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x04, - 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, - 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x4c, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x1a, 0x0a, 0x05, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x53, 0x43, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x47, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb1, 0x06, 0x0a, 0x05, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x36, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, - 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x63, - 0x61, 0x6c, 0x6c, 0x12, 0x61, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x61, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, - 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x0d, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x73, 0x79, 0x6e, - 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x73, - 0x75, 0x62, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x50, 0x75, 0x62, 0x53, - 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x0d, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, - 0x55, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, - 0x6c, 0x65, 0x2e, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, - 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x79, 0x22, 0xc3, 0x0e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x46, 0x0a, 0x05, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x1a, 0x23, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x51, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x34, 0x0a, 0x10, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, + 0x2b, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x57, 0x0a, 0x0f, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x44, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x68, + 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x68, 0x61, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, + 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, + 0x68, 0x61, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, + 0x61, 0x6e, 0x1a, 0x73, 0x0a, 0x08, 0x49, 0x44, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x54, 0x68, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x6f, 0x77, + 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x1a, 0x99, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x6c, 0x6c, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x73, + 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x64, 0x65, + 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x62, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x1a, 0x48, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x76, + 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x76, 0x65, 0x72, + 0x62, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x1a, 0x88, 0x06, + 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x58, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x5f, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x5d, 0x0a, 0x0b, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x49, 0x44, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4b, + 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x51, 0x0a, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x52, 0x44, 0x45, + 0x52, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x52, 0x44, 0x45, 0x52, + 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x22, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x4e, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, + 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x53, 0x65, + 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, + 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x4f, 0x0a, 0x14, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, - 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x64, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x22, 0x29, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x10, - 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0xa5, 0x02, - 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, - 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, - 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, - 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, - 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x4e, 0x5f, 0x53, 0x43, - 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x45, 0x10, 0x07, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x55, 0x42, - 0x4c, 0x49, 0x53, 0x48, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x53, 0x55, 0x42, 0x5f, 0x43, 0x4f, 0x4e, 0x53, - 0x55, 0x4d, 0x45, 0x10, 0x09, 0x2a, 0x85, 0x01, 0x0a, 0x15, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x24, 0x0a, 0x20, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, - 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x53, 0x59, 0x4e, - 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x53, 0x55, 0x42, 0x10, 0x02, 0x2a, 0x88, 0x01, - 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x4f, - 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb1, 0x06, + 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x36, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x63, 0x61, + 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x61, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x61, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x55, 0x0a, 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x0d, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x73, + 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x70, 0x75, + 0x62, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, + 0x62, 0x53, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x12, 0x55, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x73, 0x75, + 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x2a, 0xa9, 0x02, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x01, 0x12, + 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, + 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, + 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, + 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x52, 0x4f, 0x4e, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, + 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x10, 0x07, 0x12, + 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, + 0x42, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x10, 0x08, 0x12, 0x1d, + 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, + 0x53, 0x55, 0x42, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x10, 0x09, 0x2a, 0x89, 0x01, + 0x0a, 0x15, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x53, 0x59, 0x4e, 0x43, + 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, + 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x50, 0x55, 0x42, 0x53, 0x55, 0x42, 0x10, 0x02, 0x2a, 0x8c, 0x01, 0x0a, 0x08, 0x4c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x11, 0x32, 0xa3, 0x07, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x11, 0x32, 0xa8, 0x07, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, @@ -4058,245 +4068,245 @@ var file_xyz_block_ftl_v1_console_console_proto_rawDesc = []byte{ 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x67, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x72, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x72, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6f, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x53, + 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5f, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x50, - 0x50, 0x01, 0x5a, 0x4c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, - 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, - 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3b, 0x70, 0x62, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x64, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, + 0x09, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x50, 0x50, 0x01, 0x5a, 0x4c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, + 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, + 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x70, 0x62, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_xyz_block_ftl_v1_console_console_proto_rawDescOnce sync.Once - file_xyz_block_ftl_v1_console_console_proto_rawDescData = file_xyz_block_ftl_v1_console_console_proto_rawDesc + file_xyz_block_ftl_console_v1_console_proto_rawDescOnce sync.Once + file_xyz_block_ftl_console_v1_console_proto_rawDescData = file_xyz_block_ftl_console_v1_console_proto_rawDesc ) -func file_xyz_block_ftl_v1_console_console_proto_rawDescGZIP() []byte { - file_xyz_block_ftl_v1_console_console_proto_rawDescOnce.Do(func() { - file_xyz_block_ftl_v1_console_console_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_v1_console_console_proto_rawDescData) +func file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP() []byte { + file_xyz_block_ftl_console_v1_console_proto_rawDescOnce.Do(func() { + file_xyz_block_ftl_console_v1_console_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_console_v1_console_proto_rawDescData) }) - return file_xyz_block_ftl_v1_console_console_proto_rawDescData -} - -var file_xyz_block_ftl_v1_console_console_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_xyz_block_ftl_v1_console_console_proto_msgTypes = make([]protoimpl.MessageInfo, 48) -var file_xyz_block_ftl_v1_console_console_proto_goTypes = []any{ - (EventType)(0), // 0: xyz.block.ftl.v1.console.EventType - (AsyncExecuteEventType)(0), // 1: xyz.block.ftl.v1.console.AsyncExecuteEventType - (LogLevel)(0), // 2: xyz.block.ftl.v1.console.LogLevel - (EventsQuery_Order)(0), // 3: xyz.block.ftl.v1.console.EventsQuery.Order - (*LogEvent)(nil), // 4: xyz.block.ftl.v1.console.LogEvent - (*CallEvent)(nil), // 5: xyz.block.ftl.v1.console.CallEvent - (*DeploymentCreatedEvent)(nil), // 6: xyz.block.ftl.v1.console.DeploymentCreatedEvent - (*DeploymentUpdatedEvent)(nil), // 7: xyz.block.ftl.v1.console.DeploymentUpdatedEvent - (*IngressEvent)(nil), // 8: xyz.block.ftl.v1.console.IngressEvent - (*CronScheduledEvent)(nil), // 9: xyz.block.ftl.v1.console.CronScheduledEvent - (*AsyncExecuteEvent)(nil), // 10: xyz.block.ftl.v1.console.AsyncExecuteEvent - (*PubSubPublishEvent)(nil), // 11: xyz.block.ftl.v1.console.PubSubPublishEvent - (*PubSubConsumeEvent)(nil), // 12: xyz.block.ftl.v1.console.PubSubConsumeEvent - (*Config)(nil), // 13: xyz.block.ftl.v1.console.Config - (*Data)(nil), // 14: xyz.block.ftl.v1.console.Data - (*Database)(nil), // 15: xyz.block.ftl.v1.console.Database - (*Enum)(nil), // 16: xyz.block.ftl.v1.console.Enum - (*Topic)(nil), // 17: xyz.block.ftl.v1.console.Topic - (*TypeAlias)(nil), // 18: xyz.block.ftl.v1.console.TypeAlias - (*Secret)(nil), // 19: xyz.block.ftl.v1.console.Secret - (*Verb)(nil), // 20: xyz.block.ftl.v1.console.Verb - (*Module)(nil), // 21: xyz.block.ftl.v1.console.Module - (*TopologyGroup)(nil), // 22: xyz.block.ftl.v1.console.TopologyGroup - (*Topology)(nil), // 23: xyz.block.ftl.v1.console.Topology - (*GetModulesRequest)(nil), // 24: xyz.block.ftl.v1.console.GetModulesRequest - (*GetModulesResponse)(nil), // 25: xyz.block.ftl.v1.console.GetModulesResponse - (*StreamModulesRequest)(nil), // 26: xyz.block.ftl.v1.console.StreamModulesRequest - (*StreamModulesResponse)(nil), // 27: xyz.block.ftl.v1.console.StreamModulesResponse - (*EventsQuery)(nil), // 28: xyz.block.ftl.v1.console.EventsQuery - (*StreamEventsRequest)(nil), // 29: xyz.block.ftl.v1.console.StreamEventsRequest - (*StreamEventsResponse)(nil), // 30: xyz.block.ftl.v1.console.StreamEventsResponse - (*Event)(nil), // 31: xyz.block.ftl.v1.console.Event - (*GetEventsResponse)(nil), // 32: xyz.block.ftl.v1.console.GetEventsResponse - (*GetConfigRequest)(nil), // 33: xyz.block.ftl.v1.console.GetConfigRequest - (*GetConfigResponse)(nil), // 34: xyz.block.ftl.v1.console.GetConfigResponse - (*SetConfigRequest)(nil), // 35: xyz.block.ftl.v1.console.SetConfigRequest - (*SetConfigResponse)(nil), // 36: xyz.block.ftl.v1.console.SetConfigResponse - (*GetSecretRequest)(nil), // 37: xyz.block.ftl.v1.console.GetSecretRequest - (*GetSecretResponse)(nil), // 38: xyz.block.ftl.v1.console.GetSecretResponse - (*SetSecretRequest)(nil), // 39: xyz.block.ftl.v1.console.SetSecretRequest - (*SetSecretResponse)(nil), // 40: xyz.block.ftl.v1.console.SetSecretResponse - nil, // 41: xyz.block.ftl.v1.console.LogEvent.AttributesEntry - (*EventsQuery_LimitFilter)(nil), // 42: xyz.block.ftl.v1.console.EventsQuery.LimitFilter - (*EventsQuery_LogLevelFilter)(nil), // 43: xyz.block.ftl.v1.console.EventsQuery.LogLevelFilter - (*EventsQuery_DeploymentFilter)(nil), // 44: xyz.block.ftl.v1.console.EventsQuery.DeploymentFilter - (*EventsQuery_RequestFilter)(nil), // 45: xyz.block.ftl.v1.console.EventsQuery.RequestFilter - (*EventsQuery_EventTypeFilter)(nil), // 46: xyz.block.ftl.v1.console.EventsQuery.EventTypeFilter - (*EventsQuery_TimeFilter)(nil), // 47: xyz.block.ftl.v1.console.EventsQuery.TimeFilter - (*EventsQuery_IDFilter)(nil), // 48: xyz.block.ftl.v1.console.EventsQuery.IDFilter - (*EventsQuery_CallFilter)(nil), // 49: xyz.block.ftl.v1.console.EventsQuery.CallFilter - (*EventsQuery_ModuleFilter)(nil), // 50: xyz.block.ftl.v1.console.EventsQuery.ModuleFilter - (*EventsQuery_Filter)(nil), // 51: xyz.block.ftl.v1.console.EventsQuery.Filter - (*timestamppb.Timestamp)(nil), // 52: google.protobuf.Timestamp - (*schema.Ref)(nil), // 53: xyz.block.ftl.v1.schema.Ref - (*durationpb.Duration)(nil), // 54: google.protobuf.Duration - (*schema.Config)(nil), // 55: xyz.block.ftl.v1.schema.Config - (*schema.Data)(nil), // 56: xyz.block.ftl.v1.schema.Data - (*schema.Database)(nil), // 57: xyz.block.ftl.v1.schema.Database - (*schema.Enum)(nil), // 58: xyz.block.ftl.v1.schema.Enum - (*schema.Topic)(nil), // 59: xyz.block.ftl.v1.schema.Topic - (*schema.TypeAlias)(nil), // 60: xyz.block.ftl.v1.schema.TypeAlias - (*schema.Secret)(nil), // 61: xyz.block.ftl.v1.schema.Secret - (*schema.Verb)(nil), // 62: xyz.block.ftl.v1.schema.Verb - (*v1.PingRequest)(nil), // 63: xyz.block.ftl.v1.PingRequest - (*v1.PingResponse)(nil), // 64: xyz.block.ftl.v1.PingResponse -} -var file_xyz_block_ftl_v1_console_console_proto_depIdxs = []int32{ - 52, // 0: xyz.block.ftl.v1.console.LogEvent.time_stamp:type_name -> google.protobuf.Timestamp - 41, // 1: xyz.block.ftl.v1.console.LogEvent.attributes:type_name -> xyz.block.ftl.v1.console.LogEvent.AttributesEntry - 52, // 2: xyz.block.ftl.v1.console.CallEvent.time_stamp:type_name -> google.protobuf.Timestamp - 53, // 3: xyz.block.ftl.v1.console.CallEvent.source_verb_ref:type_name -> xyz.block.ftl.v1.schema.Ref - 53, // 4: xyz.block.ftl.v1.console.CallEvent.destination_verb_ref:type_name -> xyz.block.ftl.v1.schema.Ref - 54, // 5: xyz.block.ftl.v1.console.CallEvent.duration:type_name -> google.protobuf.Duration - 53, // 6: xyz.block.ftl.v1.console.IngressEvent.verb_ref:type_name -> xyz.block.ftl.v1.schema.Ref - 52, // 7: xyz.block.ftl.v1.console.IngressEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 8: xyz.block.ftl.v1.console.IngressEvent.duration:type_name -> google.protobuf.Duration - 53, // 9: xyz.block.ftl.v1.console.CronScheduledEvent.verb_ref:type_name -> xyz.block.ftl.v1.schema.Ref - 52, // 10: xyz.block.ftl.v1.console.CronScheduledEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 11: xyz.block.ftl.v1.console.CronScheduledEvent.duration:type_name -> google.protobuf.Duration - 52, // 12: xyz.block.ftl.v1.console.CronScheduledEvent.scheduled_at:type_name -> google.protobuf.Timestamp - 53, // 13: xyz.block.ftl.v1.console.AsyncExecuteEvent.verb_ref:type_name -> xyz.block.ftl.v1.schema.Ref - 52, // 14: xyz.block.ftl.v1.console.AsyncExecuteEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 15: xyz.block.ftl.v1.console.AsyncExecuteEvent.duration:type_name -> google.protobuf.Duration - 1, // 16: xyz.block.ftl.v1.console.AsyncExecuteEvent.async_event_type:type_name -> xyz.block.ftl.v1.console.AsyncExecuteEventType - 53, // 17: xyz.block.ftl.v1.console.PubSubPublishEvent.verb_ref:type_name -> xyz.block.ftl.v1.schema.Ref - 52, // 18: xyz.block.ftl.v1.console.PubSubPublishEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 19: xyz.block.ftl.v1.console.PubSubPublishEvent.duration:type_name -> google.protobuf.Duration - 52, // 20: xyz.block.ftl.v1.console.PubSubConsumeEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 21: xyz.block.ftl.v1.console.PubSubConsumeEvent.duration:type_name -> google.protobuf.Duration - 55, // 22: xyz.block.ftl.v1.console.Config.config:type_name -> xyz.block.ftl.v1.schema.Config - 53, // 23: xyz.block.ftl.v1.console.Config.references:type_name -> xyz.block.ftl.v1.schema.Ref - 56, // 24: xyz.block.ftl.v1.console.Data.data:type_name -> xyz.block.ftl.v1.schema.Data - 53, // 25: xyz.block.ftl.v1.console.Data.references:type_name -> xyz.block.ftl.v1.schema.Ref - 57, // 26: xyz.block.ftl.v1.console.Database.database:type_name -> xyz.block.ftl.v1.schema.Database - 53, // 27: xyz.block.ftl.v1.console.Database.references:type_name -> xyz.block.ftl.v1.schema.Ref - 58, // 28: xyz.block.ftl.v1.console.Enum.enum:type_name -> xyz.block.ftl.v1.schema.Enum - 53, // 29: xyz.block.ftl.v1.console.Enum.references:type_name -> xyz.block.ftl.v1.schema.Ref - 59, // 30: xyz.block.ftl.v1.console.Topic.topic:type_name -> xyz.block.ftl.v1.schema.Topic - 53, // 31: xyz.block.ftl.v1.console.Topic.references:type_name -> xyz.block.ftl.v1.schema.Ref - 60, // 32: xyz.block.ftl.v1.console.TypeAlias.typealias:type_name -> xyz.block.ftl.v1.schema.TypeAlias - 53, // 33: xyz.block.ftl.v1.console.TypeAlias.references:type_name -> xyz.block.ftl.v1.schema.Ref - 61, // 34: xyz.block.ftl.v1.console.Secret.secret:type_name -> xyz.block.ftl.v1.schema.Secret - 53, // 35: xyz.block.ftl.v1.console.Secret.references:type_name -> xyz.block.ftl.v1.schema.Ref - 62, // 36: xyz.block.ftl.v1.console.Verb.verb:type_name -> xyz.block.ftl.v1.schema.Verb - 53, // 37: xyz.block.ftl.v1.console.Verb.references:type_name -> xyz.block.ftl.v1.schema.Ref - 20, // 38: xyz.block.ftl.v1.console.Module.verbs:type_name -> xyz.block.ftl.v1.console.Verb - 14, // 39: xyz.block.ftl.v1.console.Module.data:type_name -> xyz.block.ftl.v1.console.Data - 19, // 40: xyz.block.ftl.v1.console.Module.secrets:type_name -> xyz.block.ftl.v1.console.Secret - 13, // 41: xyz.block.ftl.v1.console.Module.configs:type_name -> xyz.block.ftl.v1.console.Config - 15, // 42: xyz.block.ftl.v1.console.Module.databases:type_name -> xyz.block.ftl.v1.console.Database - 16, // 43: xyz.block.ftl.v1.console.Module.enums:type_name -> xyz.block.ftl.v1.console.Enum - 17, // 44: xyz.block.ftl.v1.console.Module.topics:type_name -> xyz.block.ftl.v1.console.Topic - 18, // 45: xyz.block.ftl.v1.console.Module.typealiases:type_name -> xyz.block.ftl.v1.console.TypeAlias - 22, // 46: xyz.block.ftl.v1.console.Topology.levels:type_name -> xyz.block.ftl.v1.console.TopologyGroup - 21, // 47: xyz.block.ftl.v1.console.GetModulesResponse.modules:type_name -> xyz.block.ftl.v1.console.Module - 23, // 48: xyz.block.ftl.v1.console.GetModulesResponse.topology:type_name -> xyz.block.ftl.v1.console.Topology - 21, // 49: xyz.block.ftl.v1.console.StreamModulesResponse.modules:type_name -> xyz.block.ftl.v1.console.Module - 23, // 50: xyz.block.ftl.v1.console.StreamModulesResponse.topology:type_name -> xyz.block.ftl.v1.console.Topology - 51, // 51: xyz.block.ftl.v1.console.EventsQuery.filters:type_name -> xyz.block.ftl.v1.console.EventsQuery.Filter - 3, // 52: xyz.block.ftl.v1.console.EventsQuery.order:type_name -> xyz.block.ftl.v1.console.EventsQuery.Order - 54, // 53: xyz.block.ftl.v1.console.StreamEventsRequest.update_interval:type_name -> google.protobuf.Duration - 28, // 54: xyz.block.ftl.v1.console.StreamEventsRequest.query:type_name -> xyz.block.ftl.v1.console.EventsQuery - 31, // 55: xyz.block.ftl.v1.console.StreamEventsResponse.events:type_name -> xyz.block.ftl.v1.console.Event - 52, // 56: xyz.block.ftl.v1.console.Event.time_stamp:type_name -> google.protobuf.Timestamp - 4, // 57: xyz.block.ftl.v1.console.Event.log:type_name -> xyz.block.ftl.v1.console.LogEvent - 5, // 58: xyz.block.ftl.v1.console.Event.call:type_name -> xyz.block.ftl.v1.console.CallEvent - 6, // 59: xyz.block.ftl.v1.console.Event.deployment_created:type_name -> xyz.block.ftl.v1.console.DeploymentCreatedEvent - 7, // 60: xyz.block.ftl.v1.console.Event.deployment_updated:type_name -> xyz.block.ftl.v1.console.DeploymentUpdatedEvent - 8, // 61: xyz.block.ftl.v1.console.Event.ingress:type_name -> xyz.block.ftl.v1.console.IngressEvent - 9, // 62: xyz.block.ftl.v1.console.Event.cron_scheduled:type_name -> xyz.block.ftl.v1.console.CronScheduledEvent - 10, // 63: xyz.block.ftl.v1.console.Event.async_execute:type_name -> xyz.block.ftl.v1.console.AsyncExecuteEvent - 11, // 64: xyz.block.ftl.v1.console.Event.pubsub_publish:type_name -> xyz.block.ftl.v1.console.PubSubPublishEvent - 12, // 65: xyz.block.ftl.v1.console.Event.pubsub_consume:type_name -> xyz.block.ftl.v1.console.PubSubConsumeEvent - 31, // 66: xyz.block.ftl.v1.console.GetEventsResponse.events:type_name -> xyz.block.ftl.v1.console.Event - 2, // 67: xyz.block.ftl.v1.console.EventsQuery.LogLevelFilter.log_level:type_name -> xyz.block.ftl.v1.console.LogLevel - 0, // 68: xyz.block.ftl.v1.console.EventsQuery.EventTypeFilter.event_types:type_name -> xyz.block.ftl.v1.console.EventType - 52, // 69: xyz.block.ftl.v1.console.EventsQuery.TimeFilter.older_than:type_name -> google.protobuf.Timestamp - 52, // 70: xyz.block.ftl.v1.console.EventsQuery.TimeFilter.newer_than:type_name -> google.protobuf.Timestamp - 42, // 71: xyz.block.ftl.v1.console.EventsQuery.Filter.limit:type_name -> xyz.block.ftl.v1.console.EventsQuery.LimitFilter - 43, // 72: xyz.block.ftl.v1.console.EventsQuery.Filter.log_level:type_name -> xyz.block.ftl.v1.console.EventsQuery.LogLevelFilter - 44, // 73: xyz.block.ftl.v1.console.EventsQuery.Filter.deployments:type_name -> xyz.block.ftl.v1.console.EventsQuery.DeploymentFilter - 45, // 74: xyz.block.ftl.v1.console.EventsQuery.Filter.requests:type_name -> xyz.block.ftl.v1.console.EventsQuery.RequestFilter - 46, // 75: xyz.block.ftl.v1.console.EventsQuery.Filter.event_types:type_name -> xyz.block.ftl.v1.console.EventsQuery.EventTypeFilter - 47, // 76: xyz.block.ftl.v1.console.EventsQuery.Filter.time:type_name -> xyz.block.ftl.v1.console.EventsQuery.TimeFilter - 48, // 77: xyz.block.ftl.v1.console.EventsQuery.Filter.id:type_name -> xyz.block.ftl.v1.console.EventsQuery.IDFilter - 49, // 78: xyz.block.ftl.v1.console.EventsQuery.Filter.call:type_name -> xyz.block.ftl.v1.console.EventsQuery.CallFilter - 50, // 79: xyz.block.ftl.v1.console.EventsQuery.Filter.module:type_name -> xyz.block.ftl.v1.console.EventsQuery.ModuleFilter - 63, // 80: xyz.block.ftl.v1.console.ConsoleService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 24, // 81: xyz.block.ftl.v1.console.ConsoleService.GetModules:input_type -> xyz.block.ftl.v1.console.GetModulesRequest - 26, // 82: xyz.block.ftl.v1.console.ConsoleService.StreamModules:input_type -> xyz.block.ftl.v1.console.StreamModulesRequest - 29, // 83: xyz.block.ftl.v1.console.ConsoleService.StreamEvents:input_type -> xyz.block.ftl.v1.console.StreamEventsRequest - 28, // 84: xyz.block.ftl.v1.console.ConsoleService.GetEvents:input_type -> xyz.block.ftl.v1.console.EventsQuery - 33, // 85: xyz.block.ftl.v1.console.ConsoleService.GetConfig:input_type -> xyz.block.ftl.v1.console.GetConfigRequest - 35, // 86: xyz.block.ftl.v1.console.ConsoleService.SetConfig:input_type -> xyz.block.ftl.v1.console.SetConfigRequest - 37, // 87: xyz.block.ftl.v1.console.ConsoleService.GetSecret:input_type -> xyz.block.ftl.v1.console.GetSecretRequest - 39, // 88: xyz.block.ftl.v1.console.ConsoleService.SetSecret:input_type -> xyz.block.ftl.v1.console.SetSecretRequest - 64, // 89: xyz.block.ftl.v1.console.ConsoleService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 25, // 90: xyz.block.ftl.v1.console.ConsoleService.GetModules:output_type -> xyz.block.ftl.v1.console.GetModulesResponse - 27, // 91: xyz.block.ftl.v1.console.ConsoleService.StreamModules:output_type -> xyz.block.ftl.v1.console.StreamModulesResponse - 30, // 92: xyz.block.ftl.v1.console.ConsoleService.StreamEvents:output_type -> xyz.block.ftl.v1.console.StreamEventsResponse - 32, // 93: xyz.block.ftl.v1.console.ConsoleService.GetEvents:output_type -> xyz.block.ftl.v1.console.GetEventsResponse - 34, // 94: xyz.block.ftl.v1.console.ConsoleService.GetConfig:output_type -> xyz.block.ftl.v1.console.GetConfigResponse - 36, // 95: xyz.block.ftl.v1.console.ConsoleService.SetConfig:output_type -> xyz.block.ftl.v1.console.SetConfigResponse - 38, // 96: xyz.block.ftl.v1.console.ConsoleService.GetSecret:output_type -> xyz.block.ftl.v1.console.GetSecretResponse - 40, // 97: xyz.block.ftl.v1.console.ConsoleService.SetSecret:output_type -> xyz.block.ftl.v1.console.SetSecretResponse + return file_xyz_block_ftl_console_v1_console_proto_rawDescData +} + +var file_xyz_block_ftl_console_v1_console_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_xyz_block_ftl_console_v1_console_proto_msgTypes = make([]protoimpl.MessageInfo, 48) +var file_xyz_block_ftl_console_v1_console_proto_goTypes = []any{ + (EventType)(0), // 0: xyz.block.ftl.console.v1.EventType + (AsyncExecuteEventType)(0), // 1: xyz.block.ftl.console.v1.AsyncExecuteEventType + (LogLevel)(0), // 2: xyz.block.ftl.console.v1.LogLevel + (GetEventsRequest_Order)(0), // 3: xyz.block.ftl.console.v1.GetEventsRequest.Order + (*LogEvent)(nil), // 4: xyz.block.ftl.console.v1.LogEvent + (*CallEvent)(nil), // 5: xyz.block.ftl.console.v1.CallEvent + (*DeploymentCreatedEvent)(nil), // 6: xyz.block.ftl.console.v1.DeploymentCreatedEvent + (*DeploymentUpdatedEvent)(nil), // 7: xyz.block.ftl.console.v1.DeploymentUpdatedEvent + (*IngressEvent)(nil), // 8: xyz.block.ftl.console.v1.IngressEvent + (*CronScheduledEvent)(nil), // 9: xyz.block.ftl.console.v1.CronScheduledEvent + (*AsyncExecuteEvent)(nil), // 10: xyz.block.ftl.console.v1.AsyncExecuteEvent + (*PubSubPublishEvent)(nil), // 11: xyz.block.ftl.console.v1.PubSubPublishEvent + (*PubSubConsumeEvent)(nil), // 12: xyz.block.ftl.console.v1.PubSubConsumeEvent + (*Config)(nil), // 13: xyz.block.ftl.console.v1.Config + (*Data)(nil), // 14: xyz.block.ftl.console.v1.Data + (*Database)(nil), // 15: xyz.block.ftl.console.v1.Database + (*Enum)(nil), // 16: xyz.block.ftl.console.v1.Enum + (*Topic)(nil), // 17: xyz.block.ftl.console.v1.Topic + (*TypeAlias)(nil), // 18: xyz.block.ftl.console.v1.TypeAlias + (*Secret)(nil), // 19: xyz.block.ftl.console.v1.Secret + (*Verb)(nil), // 20: xyz.block.ftl.console.v1.Verb + (*Module)(nil), // 21: xyz.block.ftl.console.v1.Module + (*TopologyGroup)(nil), // 22: xyz.block.ftl.console.v1.TopologyGroup + (*Topology)(nil), // 23: xyz.block.ftl.console.v1.Topology + (*GetModulesRequest)(nil), // 24: xyz.block.ftl.console.v1.GetModulesRequest + (*GetModulesResponse)(nil), // 25: xyz.block.ftl.console.v1.GetModulesResponse + (*StreamModulesRequest)(nil), // 26: xyz.block.ftl.console.v1.StreamModulesRequest + (*StreamModulesResponse)(nil), // 27: xyz.block.ftl.console.v1.StreamModulesResponse + (*GetEventsRequest)(nil), // 28: xyz.block.ftl.console.v1.GetEventsRequest + (*GetEventsResponse)(nil), // 29: xyz.block.ftl.console.v1.GetEventsResponse + (*GetConfigRequest)(nil), // 30: xyz.block.ftl.console.v1.GetConfigRequest + (*GetConfigResponse)(nil), // 31: xyz.block.ftl.console.v1.GetConfigResponse + (*SetConfigRequest)(nil), // 32: xyz.block.ftl.console.v1.SetConfigRequest + (*SetConfigResponse)(nil), // 33: xyz.block.ftl.console.v1.SetConfigResponse + (*GetSecretRequest)(nil), // 34: xyz.block.ftl.console.v1.GetSecretRequest + (*GetSecretResponse)(nil), // 35: xyz.block.ftl.console.v1.GetSecretResponse + (*SetSecretRequest)(nil), // 36: xyz.block.ftl.console.v1.SetSecretRequest + (*SetSecretResponse)(nil), // 37: xyz.block.ftl.console.v1.SetSecretResponse + (*StreamEventsRequest)(nil), // 38: xyz.block.ftl.console.v1.StreamEventsRequest + (*StreamEventsResponse)(nil), // 39: xyz.block.ftl.console.v1.StreamEventsResponse + (*Event)(nil), // 40: xyz.block.ftl.console.v1.Event + nil, // 41: xyz.block.ftl.console.v1.LogEvent.AttributesEntry + (*GetEventsRequest_LimitFilter)(nil), // 42: xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter + (*GetEventsRequest_LogLevelFilter)(nil), // 43: xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter + (*GetEventsRequest_DeploymentFilter)(nil), // 44: xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter + (*GetEventsRequest_RequestFilter)(nil), // 45: xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter + (*GetEventsRequest_EventTypeFilter)(nil), // 46: xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter + (*GetEventsRequest_TimeFilter)(nil), // 47: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter + (*GetEventsRequest_IDFilter)(nil), // 48: xyz.block.ftl.console.v1.GetEventsRequest.IDFilter + (*GetEventsRequest_CallFilter)(nil), // 49: xyz.block.ftl.console.v1.GetEventsRequest.CallFilter + (*GetEventsRequest_ModuleFilter)(nil), // 50: xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter + (*GetEventsRequest_Filter)(nil), // 51: xyz.block.ftl.console.v1.GetEventsRequest.Filter + (*timestamppb.Timestamp)(nil), // 52: google.protobuf.Timestamp + (*v1.Ref)(nil), // 53: xyz.block.ftl.schema.v1.Ref + (*durationpb.Duration)(nil), // 54: google.protobuf.Duration + (*v1.Config)(nil), // 55: xyz.block.ftl.schema.v1.Config + (*v1.Data)(nil), // 56: xyz.block.ftl.schema.v1.Data + (*v1.Database)(nil), // 57: xyz.block.ftl.schema.v1.Database + (*v1.Enum)(nil), // 58: xyz.block.ftl.schema.v1.Enum + (*v1.Topic)(nil), // 59: xyz.block.ftl.schema.v1.Topic + (*v1.TypeAlias)(nil), // 60: xyz.block.ftl.schema.v1.TypeAlias + (*v1.Secret)(nil), // 61: xyz.block.ftl.schema.v1.Secret + (*v1.Verb)(nil), // 62: xyz.block.ftl.schema.v1.Verb + (*v11.PingRequest)(nil), // 63: xyz.block.ftl.v1.PingRequest + (*v11.PingResponse)(nil), // 64: xyz.block.ftl.v1.PingResponse +} +var file_xyz_block_ftl_console_v1_console_proto_depIdxs = []int32{ + 52, // 0: xyz.block.ftl.console.v1.LogEvent.time_stamp:type_name -> google.protobuf.Timestamp + 41, // 1: xyz.block.ftl.console.v1.LogEvent.attributes:type_name -> xyz.block.ftl.console.v1.LogEvent.AttributesEntry + 52, // 2: xyz.block.ftl.console.v1.CallEvent.time_stamp:type_name -> google.protobuf.Timestamp + 53, // 3: xyz.block.ftl.console.v1.CallEvent.source_verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 53, // 4: xyz.block.ftl.console.v1.CallEvent.destination_verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 54, // 5: xyz.block.ftl.console.v1.CallEvent.duration:type_name -> google.protobuf.Duration + 53, // 6: xyz.block.ftl.console.v1.IngressEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 52, // 7: xyz.block.ftl.console.v1.IngressEvent.time_stamp:type_name -> google.protobuf.Timestamp + 54, // 8: xyz.block.ftl.console.v1.IngressEvent.duration:type_name -> google.protobuf.Duration + 53, // 9: xyz.block.ftl.console.v1.CronScheduledEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 52, // 10: xyz.block.ftl.console.v1.CronScheduledEvent.time_stamp:type_name -> google.protobuf.Timestamp + 54, // 11: xyz.block.ftl.console.v1.CronScheduledEvent.duration:type_name -> google.protobuf.Duration + 52, // 12: xyz.block.ftl.console.v1.CronScheduledEvent.scheduled_at:type_name -> google.protobuf.Timestamp + 53, // 13: xyz.block.ftl.console.v1.AsyncExecuteEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 52, // 14: xyz.block.ftl.console.v1.AsyncExecuteEvent.time_stamp:type_name -> google.protobuf.Timestamp + 54, // 15: xyz.block.ftl.console.v1.AsyncExecuteEvent.duration:type_name -> google.protobuf.Duration + 1, // 16: xyz.block.ftl.console.v1.AsyncExecuteEvent.async_event_type:type_name -> xyz.block.ftl.console.v1.AsyncExecuteEventType + 53, // 17: xyz.block.ftl.console.v1.PubSubPublishEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 52, // 18: xyz.block.ftl.console.v1.PubSubPublishEvent.time_stamp:type_name -> google.protobuf.Timestamp + 54, // 19: xyz.block.ftl.console.v1.PubSubPublishEvent.duration:type_name -> google.protobuf.Duration + 52, // 20: xyz.block.ftl.console.v1.PubSubConsumeEvent.time_stamp:type_name -> google.protobuf.Timestamp + 54, // 21: xyz.block.ftl.console.v1.PubSubConsumeEvent.duration:type_name -> google.protobuf.Duration + 55, // 22: xyz.block.ftl.console.v1.Config.config:type_name -> xyz.block.ftl.schema.v1.Config + 53, // 23: xyz.block.ftl.console.v1.Config.references:type_name -> xyz.block.ftl.schema.v1.Ref + 56, // 24: xyz.block.ftl.console.v1.Data.data:type_name -> xyz.block.ftl.schema.v1.Data + 53, // 25: xyz.block.ftl.console.v1.Data.references:type_name -> xyz.block.ftl.schema.v1.Ref + 57, // 26: xyz.block.ftl.console.v1.Database.database:type_name -> xyz.block.ftl.schema.v1.Database + 53, // 27: xyz.block.ftl.console.v1.Database.references:type_name -> xyz.block.ftl.schema.v1.Ref + 58, // 28: xyz.block.ftl.console.v1.Enum.enum:type_name -> xyz.block.ftl.schema.v1.Enum + 53, // 29: xyz.block.ftl.console.v1.Enum.references:type_name -> xyz.block.ftl.schema.v1.Ref + 59, // 30: xyz.block.ftl.console.v1.Topic.topic:type_name -> xyz.block.ftl.schema.v1.Topic + 53, // 31: xyz.block.ftl.console.v1.Topic.references:type_name -> xyz.block.ftl.schema.v1.Ref + 60, // 32: xyz.block.ftl.console.v1.TypeAlias.typealias:type_name -> xyz.block.ftl.schema.v1.TypeAlias + 53, // 33: xyz.block.ftl.console.v1.TypeAlias.references:type_name -> xyz.block.ftl.schema.v1.Ref + 61, // 34: xyz.block.ftl.console.v1.Secret.secret:type_name -> xyz.block.ftl.schema.v1.Secret + 53, // 35: xyz.block.ftl.console.v1.Secret.references:type_name -> xyz.block.ftl.schema.v1.Ref + 62, // 36: xyz.block.ftl.console.v1.Verb.verb:type_name -> xyz.block.ftl.schema.v1.Verb + 53, // 37: xyz.block.ftl.console.v1.Verb.references:type_name -> xyz.block.ftl.schema.v1.Ref + 20, // 38: xyz.block.ftl.console.v1.Module.verbs:type_name -> xyz.block.ftl.console.v1.Verb + 14, // 39: xyz.block.ftl.console.v1.Module.data:type_name -> xyz.block.ftl.console.v1.Data + 19, // 40: xyz.block.ftl.console.v1.Module.secrets:type_name -> xyz.block.ftl.console.v1.Secret + 13, // 41: xyz.block.ftl.console.v1.Module.configs:type_name -> xyz.block.ftl.console.v1.Config + 15, // 42: xyz.block.ftl.console.v1.Module.databases:type_name -> xyz.block.ftl.console.v1.Database + 16, // 43: xyz.block.ftl.console.v1.Module.enums:type_name -> xyz.block.ftl.console.v1.Enum + 17, // 44: xyz.block.ftl.console.v1.Module.topics:type_name -> xyz.block.ftl.console.v1.Topic + 18, // 45: xyz.block.ftl.console.v1.Module.typealiases:type_name -> xyz.block.ftl.console.v1.TypeAlias + 22, // 46: xyz.block.ftl.console.v1.Topology.levels:type_name -> xyz.block.ftl.console.v1.TopologyGroup + 21, // 47: xyz.block.ftl.console.v1.GetModulesResponse.modules:type_name -> xyz.block.ftl.console.v1.Module + 23, // 48: xyz.block.ftl.console.v1.GetModulesResponse.topology:type_name -> xyz.block.ftl.console.v1.Topology + 21, // 49: xyz.block.ftl.console.v1.StreamModulesResponse.modules:type_name -> xyz.block.ftl.console.v1.Module + 23, // 50: xyz.block.ftl.console.v1.StreamModulesResponse.topology:type_name -> xyz.block.ftl.console.v1.Topology + 51, // 51: xyz.block.ftl.console.v1.GetEventsRequest.filters:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.Filter + 3, // 52: xyz.block.ftl.console.v1.GetEventsRequest.order:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.Order + 40, // 53: xyz.block.ftl.console.v1.GetEventsResponse.events:type_name -> xyz.block.ftl.console.v1.Event + 54, // 54: xyz.block.ftl.console.v1.StreamEventsRequest.update_interval:type_name -> google.protobuf.Duration + 28, // 55: xyz.block.ftl.console.v1.StreamEventsRequest.query:type_name -> xyz.block.ftl.console.v1.GetEventsRequest + 40, // 56: xyz.block.ftl.console.v1.StreamEventsResponse.events:type_name -> xyz.block.ftl.console.v1.Event + 52, // 57: xyz.block.ftl.console.v1.Event.time_stamp:type_name -> google.protobuf.Timestamp + 4, // 58: xyz.block.ftl.console.v1.Event.log:type_name -> xyz.block.ftl.console.v1.LogEvent + 5, // 59: xyz.block.ftl.console.v1.Event.call:type_name -> xyz.block.ftl.console.v1.CallEvent + 6, // 60: xyz.block.ftl.console.v1.Event.deployment_created:type_name -> xyz.block.ftl.console.v1.DeploymentCreatedEvent + 7, // 61: xyz.block.ftl.console.v1.Event.deployment_updated:type_name -> xyz.block.ftl.console.v1.DeploymentUpdatedEvent + 8, // 62: xyz.block.ftl.console.v1.Event.ingress:type_name -> xyz.block.ftl.console.v1.IngressEvent + 9, // 63: xyz.block.ftl.console.v1.Event.cron_scheduled:type_name -> xyz.block.ftl.console.v1.CronScheduledEvent + 10, // 64: xyz.block.ftl.console.v1.Event.async_execute:type_name -> xyz.block.ftl.console.v1.AsyncExecuteEvent + 11, // 65: xyz.block.ftl.console.v1.Event.pubsub_publish:type_name -> xyz.block.ftl.console.v1.PubSubPublishEvent + 12, // 66: xyz.block.ftl.console.v1.Event.pubsub_consume:type_name -> xyz.block.ftl.console.v1.PubSubConsumeEvent + 2, // 67: xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter.log_level:type_name -> xyz.block.ftl.console.v1.LogLevel + 0, // 68: xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter.event_types:type_name -> xyz.block.ftl.console.v1.EventType + 52, // 69: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter.older_than:type_name -> google.protobuf.Timestamp + 52, // 70: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter.newer_than:type_name -> google.protobuf.Timestamp + 42, // 71: xyz.block.ftl.console.v1.GetEventsRequest.Filter.limit:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter + 43, // 72: xyz.block.ftl.console.v1.GetEventsRequest.Filter.log_level:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter + 44, // 73: xyz.block.ftl.console.v1.GetEventsRequest.Filter.deployments:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter + 45, // 74: xyz.block.ftl.console.v1.GetEventsRequest.Filter.requests:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter + 46, // 75: xyz.block.ftl.console.v1.GetEventsRequest.Filter.event_types:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter + 47, // 76: xyz.block.ftl.console.v1.GetEventsRequest.Filter.time:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter + 48, // 77: xyz.block.ftl.console.v1.GetEventsRequest.Filter.id:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.IDFilter + 49, // 78: xyz.block.ftl.console.v1.GetEventsRequest.Filter.call:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.CallFilter + 50, // 79: xyz.block.ftl.console.v1.GetEventsRequest.Filter.module:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter + 63, // 80: xyz.block.ftl.console.v1.ConsoleService.Ping:input_type -> xyz.block.ftl.v1.PingRequest + 24, // 81: xyz.block.ftl.console.v1.ConsoleService.GetModules:input_type -> xyz.block.ftl.console.v1.GetModulesRequest + 26, // 82: xyz.block.ftl.console.v1.ConsoleService.StreamModules:input_type -> xyz.block.ftl.console.v1.StreamModulesRequest + 38, // 83: xyz.block.ftl.console.v1.ConsoleService.StreamEvents:input_type -> xyz.block.ftl.console.v1.StreamEventsRequest + 28, // 84: xyz.block.ftl.console.v1.ConsoleService.GetEvents:input_type -> xyz.block.ftl.console.v1.GetEventsRequest + 30, // 85: xyz.block.ftl.console.v1.ConsoleService.GetConfig:input_type -> xyz.block.ftl.console.v1.GetConfigRequest + 32, // 86: xyz.block.ftl.console.v1.ConsoleService.SetConfig:input_type -> xyz.block.ftl.console.v1.SetConfigRequest + 34, // 87: xyz.block.ftl.console.v1.ConsoleService.GetSecret:input_type -> xyz.block.ftl.console.v1.GetSecretRequest + 36, // 88: xyz.block.ftl.console.v1.ConsoleService.SetSecret:input_type -> xyz.block.ftl.console.v1.SetSecretRequest + 64, // 89: xyz.block.ftl.console.v1.ConsoleService.Ping:output_type -> xyz.block.ftl.v1.PingResponse + 25, // 90: xyz.block.ftl.console.v1.ConsoleService.GetModules:output_type -> xyz.block.ftl.console.v1.GetModulesResponse + 27, // 91: xyz.block.ftl.console.v1.ConsoleService.StreamModules:output_type -> xyz.block.ftl.console.v1.StreamModulesResponse + 39, // 92: xyz.block.ftl.console.v1.ConsoleService.StreamEvents:output_type -> xyz.block.ftl.console.v1.StreamEventsResponse + 29, // 93: xyz.block.ftl.console.v1.ConsoleService.GetEvents:output_type -> xyz.block.ftl.console.v1.GetEventsResponse + 31, // 94: xyz.block.ftl.console.v1.ConsoleService.GetConfig:output_type -> xyz.block.ftl.console.v1.GetConfigResponse + 33, // 95: xyz.block.ftl.console.v1.ConsoleService.SetConfig:output_type -> xyz.block.ftl.console.v1.SetConfigResponse + 35, // 96: xyz.block.ftl.console.v1.ConsoleService.GetSecret:output_type -> xyz.block.ftl.console.v1.GetSecretResponse + 37, // 97: xyz.block.ftl.console.v1.ConsoleService.SetSecret:output_type -> xyz.block.ftl.console.v1.SetSecretResponse 89, // [89:98] is the sub-list for method output_type 80, // [80:89] is the sub-list for method input_type 80, // [80:80] is the sub-list for extension type_name @@ -4304,21 +4314,26 @@ var file_xyz_block_ftl_v1_console_console_proto_depIdxs = []int32{ 0, // [0:80] is the sub-list for field type_name } -func init() { file_xyz_block_ftl_v1_console_console_proto_init() } -func file_xyz_block_ftl_v1_console_console_proto_init() { - if File_xyz_block_ftl_v1_console_console_proto != nil { +func init() { file_xyz_block_ftl_console_v1_console_proto_init() } +func file_xyz_block_ftl_console_v1_console_proto_init() { + if File_xyz_block_ftl_console_v1_console_proto != nil { return } - file_xyz_block_ftl_v1_console_console_proto_msgTypes[0].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[1].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[2].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[4].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[5].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[6].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[7].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[8].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[25].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[27].OneofWrappers = []any{ + file_xyz_block_ftl_console_v1_console_proto_msgTypes[0].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[1].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[2].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[4].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[5].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[6].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[7].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[8].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[25].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[26].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[28].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[30].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[32].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[34].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[36].OneofWrappers = []any{ (*Event_Log)(nil), (*Event_Call)(nil), (*Event_DeploymentCreated)(nil), @@ -4329,43 +4344,38 @@ func file_xyz_block_ftl_v1_console_console_proto_init() { (*Event_PubsubPublish)(nil), (*Event_PubsubConsume)(nil), } - file_xyz_block_ftl_v1_console_console_proto_msgTypes[28].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[29].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[31].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[33].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[35].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[43].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[44].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[45].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[46].OneofWrappers = []any{} - file_xyz_block_ftl_v1_console_console_proto_msgTypes[47].OneofWrappers = []any{ - (*EventsQuery_Filter_Limit)(nil), - (*EventsQuery_Filter_LogLevel)(nil), - (*EventsQuery_Filter_Deployments)(nil), - (*EventsQuery_Filter_Requests)(nil), - (*EventsQuery_Filter_EventTypes)(nil), - (*EventsQuery_Filter_Time)(nil), - (*EventsQuery_Filter_Id)(nil), - (*EventsQuery_Filter_Call)(nil), - (*EventsQuery_Filter_Module)(nil), + file_xyz_block_ftl_console_v1_console_proto_msgTypes[43].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[44].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[45].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[46].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[47].OneofWrappers = []any{ + (*GetEventsRequest_Filter_Limit)(nil), + (*GetEventsRequest_Filter_LogLevel)(nil), + (*GetEventsRequest_Filter_Deployments)(nil), + (*GetEventsRequest_Filter_Requests)(nil), + (*GetEventsRequest_Filter_EventTypes)(nil), + (*GetEventsRequest_Filter_Time)(nil), + (*GetEventsRequest_Filter_Id)(nil), + (*GetEventsRequest_Filter_Call)(nil), + (*GetEventsRequest_Filter_Module)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_xyz_block_ftl_v1_console_console_proto_rawDesc, + RawDescriptor: file_xyz_block_ftl_console_v1_console_proto_rawDesc, NumEnums: 4, NumMessages: 48, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_xyz_block_ftl_v1_console_console_proto_goTypes, - DependencyIndexes: file_xyz_block_ftl_v1_console_console_proto_depIdxs, - EnumInfos: file_xyz_block_ftl_v1_console_console_proto_enumTypes, - MessageInfos: file_xyz_block_ftl_v1_console_console_proto_msgTypes, + GoTypes: file_xyz_block_ftl_console_v1_console_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_console_v1_console_proto_depIdxs, + EnumInfos: file_xyz_block_ftl_console_v1_console_proto_enumTypes, + MessageInfos: file_xyz_block_ftl_console_v1_console_proto_msgTypes, }.Build() - File_xyz_block_ftl_v1_console_console_proto = out.File - file_xyz_block_ftl_v1_console_console_proto_rawDesc = nil - file_xyz_block_ftl_v1_console_console_proto_goTypes = nil - file_xyz_block_ftl_v1_console_console_proto_depIdxs = nil + File_xyz_block_ftl_console_v1_console_proto = out.File + file_xyz_block_ftl_console_v1_console_proto_rawDesc = nil + file_xyz_block_ftl_console_v1_console_proto_goTypes = nil + file_xyz_block_ftl_console_v1_console_proto_depIdxs = nil } diff --git a/backend/protos/xyz/block/ftl/v1/console/console.proto b/backend/protos/xyz/block/ftl/console/v1/console.proto similarity index 85% rename from backend/protos/xyz/block/ftl/v1/console/console.proto rename to backend/protos/xyz/block/ftl/console/v1/console.proto index f8bc97dc89..55e85b1d34 100644 --- a/backend/protos/xyz/block/ftl/v1/console/console.proto +++ b/backend/protos/xyz/block/ftl/console/v1/console.proto @@ -1,17 +1,17 @@ syntax = "proto3"; -package xyz.block.ftl.v1.console; +package xyz.block.ftl.console.v1; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; +import "xyz/block/ftl/schema/v1/schema.proto"; import "xyz/block/ftl/v1/ftl.proto"; -import "xyz/block/ftl/v1/schema/schema.proto"; -option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console;pbconsole"; +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1;pbconsole"; option java_multiple_files = true; enum EventType { - EVENT_TYPE_UNKNOWN = 0; + EVENT_TYPE_UNSPECIFIED = 0; EVENT_TYPE_LOG = 1; EVENT_TYPE_CALL = 2; EVENT_TYPE_DEPLOYMENT_CREATED = 3; @@ -24,13 +24,13 @@ enum EventType { } enum AsyncExecuteEventType { - ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN = 0; + ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED = 0; ASYNC_EXECUTE_EVENT_TYPE_CRON = 1; ASYNC_EXECUTE_EVENT_TYPE_PUBSUB = 2; } enum LogLevel { - LOG_LEVEL_UNKNOWN = 0; + LOG_LEVEL_UNSPECIFIED = 0; LOG_LEVEL_TRACE = 1; LOG_LEVEL_DEBUG = 5; LOG_LEVEL_INFO = 9; @@ -53,8 +53,8 @@ message CallEvent { optional string request_key = 1; string deployment_key = 2; google.protobuf.Timestamp time_stamp = 3; - optional schema.Ref source_verb_ref = 11; - schema.Ref destination_verb_ref = 12; + optional ftl.schema.v1.Ref source_verb_ref = 11; + ftl.schema.v1.Ref destination_verb_ref = 12; google.protobuf.Duration duration = 6; string request = 7; string response = 8; @@ -81,7 +81,7 @@ message DeploymentUpdatedEvent { message IngressEvent { string deployment_key = 1; optional string request_key = 2; - schema.Ref verb_ref = 3; + ftl.schema.v1.Ref verb_ref = 3; string method = 4; string path = 5; int32 status_code = 7; @@ -96,7 +96,7 @@ message IngressEvent { message CronScheduledEvent { string deployment_key = 1; - schema.Ref verb_ref = 2; + ftl.schema.v1.Ref verb_ref = 2; google.protobuf.Timestamp time_stamp = 3; google.protobuf.Duration duration = 4; google.protobuf.Timestamp scheduled_at = 5; @@ -107,7 +107,7 @@ message CronScheduledEvent { message AsyncExecuteEvent { string deployment_key = 1; optional string request_key = 2; - schema.Ref verb_ref = 3; + ftl.schema.v1.Ref verb_ref = 3; google.protobuf.Timestamp time_stamp = 4; google.protobuf.Duration duration = 5; AsyncExecuteEventType async_event_type = 6; @@ -117,7 +117,7 @@ message AsyncExecuteEvent { message PubSubPublishEvent { string deployment_key = 1; optional string request_key = 2; - schema.Ref verb_ref = 3; + ftl.schema.v1.Ref verb_ref = 3; google.protobuf.Timestamp time_stamp = 4; google.protobuf.Duration duration = 5; string topic = 6; @@ -137,46 +137,46 @@ message PubSubConsumeEvent { } message Config { - schema.Config config = 1; - repeated schema.Ref references = 2; + ftl.schema.v1.Config config = 1; + repeated ftl.schema.v1.Ref references = 2; } message Data { - schema.Data data = 1; + ftl.schema.v1.Data data = 1; string schema = 2; - repeated schema.Ref references = 3; + repeated ftl.schema.v1.Ref references = 3; } message Database { - schema.Database database = 1; - repeated schema.Ref references = 2; + ftl.schema.v1.Database database = 1; + repeated ftl.schema.v1.Ref references = 2; } message Enum { - schema.Enum enum = 1; - repeated schema.Ref references = 2; + ftl.schema.v1.Enum enum = 1; + repeated ftl.schema.v1.Ref references = 2; } message Topic { - schema.Topic topic = 1; - repeated schema.Ref references = 2; + ftl.schema.v1.Topic topic = 1; + repeated ftl.schema.v1.Ref references = 2; } message TypeAlias { - schema.TypeAlias typealias = 1; - repeated schema.Ref references = 2; + ftl.schema.v1.TypeAlias typealias = 1; + repeated ftl.schema.v1.Ref references = 2; } message Secret { - schema.Secret secret = 1; - repeated schema.Ref references = 2; + ftl.schema.v1.Secret secret = 1; + repeated ftl.schema.v1.Ref references = 2; } message Verb { - schema.Verb verb = 1; + ftl.schema.v1.Verb verb = 1; string schema = 2; string json_request_schema = 3; - repeated schema.Ref references = 4; + repeated ftl.schema.v1.Ref references = 4; } message Module { @@ -215,7 +215,7 @@ message StreamModulesResponse { } // Query for events. -message EventsQuery { +message GetEventsRequest { // Limit the number of events returned. message LimitFilter { int32 limit = 1; @@ -262,8 +262,9 @@ message EventsQuery { } enum Order { - ASC = 0; - DESC = 1; + ORDER_UNSPECIFIED = 0; + ORDER_ASC = 1; + ORDER_DESC = 2; } message Filter { @@ -286,32 +287,6 @@ message EventsQuery { Order order = 3; } -message StreamEventsRequest { - optional google.protobuf.Duration update_interval = 1; - EventsQuery query = 2; -} - -message StreamEventsResponse { - repeated Event events = 1; -} - -message Event { - google.protobuf.Timestamp time_stamp = 1; - // Unique ID for event. - int64 id = 2; - oneof entry { - LogEvent log = 3; - CallEvent call = 4; - DeploymentCreatedEvent deployment_created = 5; - DeploymentUpdatedEvent deployment_updated = 6; - IngressEvent ingress = 7; - CronScheduledEvent cron_scheduled = 8; - AsyncExecuteEvent async_execute = 9; - PubSubPublishEvent pubsub_publish = 10; - PubSubConsumeEvent pubsub_consume = 11; - } -} - message GetEventsResponse { repeated Event events = 1; @@ -357,16 +332,42 @@ message SetSecretResponse { bytes value = 1; } +message StreamEventsRequest { + optional google.protobuf.Duration update_interval = 1; + GetEventsRequest query = 2; +} + +message StreamEventsResponse { + repeated Event events = 1; +} + +message Event { + google.protobuf.Timestamp time_stamp = 1; + // Unique ID for event. + int64 id = 2; + oneof entry { + LogEvent log = 3; + CallEvent call = 4; + DeploymentCreatedEvent deployment_created = 5; + DeploymentUpdatedEvent deployment_updated = 6; + IngressEvent ingress = 7; + CronScheduledEvent cron_scheduled = 8; + AsyncExecuteEvent async_execute = 9; + PubSubPublishEvent pubsub_publish = 10; + PubSubConsumeEvent pubsub_consume = 11; + } +} + service ConsoleService { // Ping service for readiness. - rpc Ping(PingRequest) returns (PingResponse) { + rpc Ping(ftl.v1.PingRequest) returns (ftl.v1.PingResponse) { option idempotency_level = NO_SIDE_EFFECTS; } rpc GetModules(GetModulesRequest) returns (GetModulesResponse); rpc StreamModules(StreamModulesRequest) returns (stream StreamModulesResponse); rpc StreamEvents(StreamEventsRequest) returns (stream StreamEventsResponse); - rpc GetEvents(EventsQuery) returns (GetEventsResponse); + rpc GetEvents(GetEventsRequest) returns (GetEventsResponse); rpc GetConfig(GetConfigRequest) returns (GetConfigResponse); rpc SetConfig(SetConfigRequest) returns (SetConfigResponse); diff --git a/backend/protos/xyz/block/ftl/v1/console/pbconsoleconnect/console.connect.go b/backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect/console.connect.go similarity index 57% rename from backend/protos/xyz/block/ftl/v1/console/pbconsoleconnect/console.connect.go rename to backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect/console.connect.go index 94fc69fc9f..61b571e3f2 100644 --- a/backend/protos/xyz/block/ftl/v1/console/pbconsoleconnect/console.connect.go +++ b/backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect/console.connect.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-connect-go. DO NOT EDIT. // -// Source: xyz/block/ftl/v1/console/console.proto +// Source: xyz/block/ftl/console/v1/console.proto package pbconsoleconnect @@ -8,8 +8,8 @@ import ( connect "connectrpc.com/connect" context "context" errors "errors" + v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - console "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console" http "net/http" strings "strings" ) @@ -23,7 +23,7 @@ const _ = connect.IsAtLeastVersion1_7_0 const ( // ConsoleServiceName is the fully-qualified name of the ConsoleService service. - ConsoleServiceName = "xyz.block.ftl.v1.console.ConsoleService" + ConsoleServiceName = "xyz.block.ftl.console.v1.ConsoleService" ) // These constants are the fully-qualified names of the RPCs defined in this package. They're @@ -35,48 +35,48 @@ const ( // period. const ( // ConsoleServicePingProcedure is the fully-qualified name of the ConsoleService's Ping RPC. - ConsoleServicePingProcedure = "/xyz.block.ftl.v1.console.ConsoleService/Ping" + ConsoleServicePingProcedure = "/xyz.block.ftl.console.v1.ConsoleService/Ping" // ConsoleServiceGetModulesProcedure is the fully-qualified name of the ConsoleService's GetModules // RPC. - ConsoleServiceGetModulesProcedure = "/xyz.block.ftl.v1.console.ConsoleService/GetModules" + ConsoleServiceGetModulesProcedure = "/xyz.block.ftl.console.v1.ConsoleService/GetModules" // ConsoleServiceStreamModulesProcedure is the fully-qualified name of the ConsoleService's // StreamModules RPC. - ConsoleServiceStreamModulesProcedure = "/xyz.block.ftl.v1.console.ConsoleService/StreamModules" + ConsoleServiceStreamModulesProcedure = "/xyz.block.ftl.console.v1.ConsoleService/StreamModules" // ConsoleServiceStreamEventsProcedure is the fully-qualified name of the ConsoleService's // StreamEvents RPC. - ConsoleServiceStreamEventsProcedure = "/xyz.block.ftl.v1.console.ConsoleService/StreamEvents" + ConsoleServiceStreamEventsProcedure = "/xyz.block.ftl.console.v1.ConsoleService/StreamEvents" // ConsoleServiceGetEventsProcedure is the fully-qualified name of the ConsoleService's GetEvents // RPC. - ConsoleServiceGetEventsProcedure = "/xyz.block.ftl.v1.console.ConsoleService/GetEvents" + ConsoleServiceGetEventsProcedure = "/xyz.block.ftl.console.v1.ConsoleService/GetEvents" // ConsoleServiceGetConfigProcedure is the fully-qualified name of the ConsoleService's GetConfig // RPC. - ConsoleServiceGetConfigProcedure = "/xyz.block.ftl.v1.console.ConsoleService/GetConfig" + ConsoleServiceGetConfigProcedure = "/xyz.block.ftl.console.v1.ConsoleService/GetConfig" // ConsoleServiceSetConfigProcedure is the fully-qualified name of the ConsoleService's SetConfig // RPC. - ConsoleServiceSetConfigProcedure = "/xyz.block.ftl.v1.console.ConsoleService/SetConfig" + ConsoleServiceSetConfigProcedure = "/xyz.block.ftl.console.v1.ConsoleService/SetConfig" // ConsoleServiceGetSecretProcedure is the fully-qualified name of the ConsoleService's GetSecret // RPC. - ConsoleServiceGetSecretProcedure = "/xyz.block.ftl.v1.console.ConsoleService/GetSecret" + ConsoleServiceGetSecretProcedure = "/xyz.block.ftl.console.v1.ConsoleService/GetSecret" // ConsoleServiceSetSecretProcedure is the fully-qualified name of the ConsoleService's SetSecret // RPC. - ConsoleServiceSetSecretProcedure = "/xyz.block.ftl.v1.console.ConsoleService/SetSecret" + ConsoleServiceSetSecretProcedure = "/xyz.block.ftl.console.v1.ConsoleService/SetSecret" ) -// ConsoleServiceClient is a client for the xyz.block.ftl.v1.console.ConsoleService service. +// ConsoleServiceClient is a client for the xyz.block.ftl.console.v1.ConsoleService service. type ConsoleServiceClient interface { // Ping service for readiness. Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) - GetModules(context.Context, *connect.Request[console.GetModulesRequest]) (*connect.Response[console.GetModulesResponse], error) - StreamModules(context.Context, *connect.Request[console.StreamModulesRequest]) (*connect.ServerStreamForClient[console.StreamModulesResponse], error) - StreamEvents(context.Context, *connect.Request[console.StreamEventsRequest]) (*connect.ServerStreamForClient[console.StreamEventsResponse], error) - GetEvents(context.Context, *connect.Request[console.EventsQuery]) (*connect.Response[console.GetEventsResponse], error) - GetConfig(context.Context, *connect.Request[console.GetConfigRequest]) (*connect.Response[console.GetConfigResponse], error) - SetConfig(context.Context, *connect.Request[console.SetConfigRequest]) (*connect.Response[console.SetConfigResponse], error) - GetSecret(context.Context, *connect.Request[console.GetSecretRequest]) (*connect.Response[console.GetSecretResponse], error) - SetSecret(context.Context, *connect.Request[console.SetSecretRequest]) (*connect.Response[console.SetSecretResponse], error) + GetModules(context.Context, *connect.Request[v11.GetModulesRequest]) (*connect.Response[v11.GetModulesResponse], error) + StreamModules(context.Context, *connect.Request[v11.StreamModulesRequest]) (*connect.ServerStreamForClient[v11.StreamModulesResponse], error) + StreamEvents(context.Context, *connect.Request[v11.StreamEventsRequest]) (*connect.ServerStreamForClient[v11.StreamEventsResponse], error) + GetEvents(context.Context, *connect.Request[v11.GetEventsRequest]) (*connect.Response[v11.GetEventsResponse], error) + GetConfig(context.Context, *connect.Request[v11.GetConfigRequest]) (*connect.Response[v11.GetConfigResponse], error) + SetConfig(context.Context, *connect.Request[v11.SetConfigRequest]) (*connect.Response[v11.SetConfigResponse], error) + GetSecret(context.Context, *connect.Request[v11.GetSecretRequest]) (*connect.Response[v11.GetSecretResponse], error) + SetSecret(context.Context, *connect.Request[v11.SetSecretRequest]) (*connect.Response[v11.SetSecretResponse], error) } -// NewConsoleServiceClient constructs a client for the xyz.block.ftl.v1.console.ConsoleService +// NewConsoleServiceClient constructs a client for the xyz.block.ftl.console.v1.ConsoleService // service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for // gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply // the connect.WithGRPC() or connect.WithGRPCWeb() options. @@ -92,42 +92,42 @@ func NewConsoleServiceClient(httpClient connect.HTTPClient, baseURL string, opts connect.WithIdempotency(connect.IdempotencyNoSideEffects), connect.WithClientOptions(opts...), ), - getModules: connect.NewClient[console.GetModulesRequest, console.GetModulesResponse]( + getModules: connect.NewClient[v11.GetModulesRequest, v11.GetModulesResponse]( httpClient, baseURL+ConsoleServiceGetModulesProcedure, opts..., ), - streamModules: connect.NewClient[console.StreamModulesRequest, console.StreamModulesResponse]( + streamModules: connect.NewClient[v11.StreamModulesRequest, v11.StreamModulesResponse]( httpClient, baseURL+ConsoleServiceStreamModulesProcedure, opts..., ), - streamEvents: connect.NewClient[console.StreamEventsRequest, console.StreamEventsResponse]( + streamEvents: connect.NewClient[v11.StreamEventsRequest, v11.StreamEventsResponse]( httpClient, baseURL+ConsoleServiceStreamEventsProcedure, opts..., ), - getEvents: connect.NewClient[console.EventsQuery, console.GetEventsResponse]( + getEvents: connect.NewClient[v11.GetEventsRequest, v11.GetEventsResponse]( httpClient, baseURL+ConsoleServiceGetEventsProcedure, opts..., ), - getConfig: connect.NewClient[console.GetConfigRequest, console.GetConfigResponse]( + getConfig: connect.NewClient[v11.GetConfigRequest, v11.GetConfigResponse]( httpClient, baseURL+ConsoleServiceGetConfigProcedure, opts..., ), - setConfig: connect.NewClient[console.SetConfigRequest, console.SetConfigResponse]( + setConfig: connect.NewClient[v11.SetConfigRequest, v11.SetConfigResponse]( httpClient, baseURL+ConsoleServiceSetConfigProcedure, opts..., ), - getSecret: connect.NewClient[console.GetSecretRequest, console.GetSecretResponse]( + getSecret: connect.NewClient[v11.GetSecretRequest, v11.GetSecretResponse]( httpClient, baseURL+ConsoleServiceGetSecretProcedure, opts..., ), - setSecret: connect.NewClient[console.SetSecretRequest, console.SetSecretResponse]( + setSecret: connect.NewClient[v11.SetSecretRequest, v11.SetSecretResponse]( httpClient, baseURL+ConsoleServiceSetSecretProcedure, opts..., @@ -138,74 +138,74 @@ func NewConsoleServiceClient(httpClient connect.HTTPClient, baseURL string, opts // consoleServiceClient implements ConsoleServiceClient. type consoleServiceClient struct { ping *connect.Client[v1.PingRequest, v1.PingResponse] - getModules *connect.Client[console.GetModulesRequest, console.GetModulesResponse] - streamModules *connect.Client[console.StreamModulesRequest, console.StreamModulesResponse] - streamEvents *connect.Client[console.StreamEventsRequest, console.StreamEventsResponse] - getEvents *connect.Client[console.EventsQuery, console.GetEventsResponse] - getConfig *connect.Client[console.GetConfigRequest, console.GetConfigResponse] - setConfig *connect.Client[console.SetConfigRequest, console.SetConfigResponse] - getSecret *connect.Client[console.GetSecretRequest, console.GetSecretResponse] - setSecret *connect.Client[console.SetSecretRequest, console.SetSecretResponse] + getModules *connect.Client[v11.GetModulesRequest, v11.GetModulesResponse] + streamModules *connect.Client[v11.StreamModulesRequest, v11.StreamModulesResponse] + streamEvents *connect.Client[v11.StreamEventsRequest, v11.StreamEventsResponse] + getEvents *connect.Client[v11.GetEventsRequest, v11.GetEventsResponse] + getConfig *connect.Client[v11.GetConfigRequest, v11.GetConfigResponse] + setConfig *connect.Client[v11.SetConfigRequest, v11.SetConfigResponse] + getSecret *connect.Client[v11.GetSecretRequest, v11.GetSecretResponse] + setSecret *connect.Client[v11.SetSecretRequest, v11.SetSecretResponse] } -// Ping calls xyz.block.ftl.v1.console.ConsoleService.Ping. +// Ping calls xyz.block.ftl.console.v1.ConsoleService.Ping. func (c *consoleServiceClient) Ping(ctx context.Context, req *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { return c.ping.CallUnary(ctx, req) } -// GetModules calls xyz.block.ftl.v1.console.ConsoleService.GetModules. -func (c *consoleServiceClient) GetModules(ctx context.Context, req *connect.Request[console.GetModulesRequest]) (*connect.Response[console.GetModulesResponse], error) { +// GetModules calls xyz.block.ftl.console.v1.ConsoleService.GetModules. +func (c *consoleServiceClient) GetModules(ctx context.Context, req *connect.Request[v11.GetModulesRequest]) (*connect.Response[v11.GetModulesResponse], error) { return c.getModules.CallUnary(ctx, req) } -// StreamModules calls xyz.block.ftl.v1.console.ConsoleService.StreamModules. -func (c *consoleServiceClient) StreamModules(ctx context.Context, req *connect.Request[console.StreamModulesRequest]) (*connect.ServerStreamForClient[console.StreamModulesResponse], error) { +// StreamModules calls xyz.block.ftl.console.v1.ConsoleService.StreamModules. +func (c *consoleServiceClient) StreamModules(ctx context.Context, req *connect.Request[v11.StreamModulesRequest]) (*connect.ServerStreamForClient[v11.StreamModulesResponse], error) { return c.streamModules.CallServerStream(ctx, req) } -// StreamEvents calls xyz.block.ftl.v1.console.ConsoleService.StreamEvents. -func (c *consoleServiceClient) StreamEvents(ctx context.Context, req *connect.Request[console.StreamEventsRequest]) (*connect.ServerStreamForClient[console.StreamEventsResponse], error) { +// StreamEvents calls xyz.block.ftl.console.v1.ConsoleService.StreamEvents. +func (c *consoleServiceClient) StreamEvents(ctx context.Context, req *connect.Request[v11.StreamEventsRequest]) (*connect.ServerStreamForClient[v11.StreamEventsResponse], error) { return c.streamEvents.CallServerStream(ctx, req) } -// GetEvents calls xyz.block.ftl.v1.console.ConsoleService.GetEvents. -func (c *consoleServiceClient) GetEvents(ctx context.Context, req *connect.Request[console.EventsQuery]) (*connect.Response[console.GetEventsResponse], error) { +// GetEvents calls xyz.block.ftl.console.v1.ConsoleService.GetEvents. +func (c *consoleServiceClient) GetEvents(ctx context.Context, req *connect.Request[v11.GetEventsRequest]) (*connect.Response[v11.GetEventsResponse], error) { return c.getEvents.CallUnary(ctx, req) } -// GetConfig calls xyz.block.ftl.v1.console.ConsoleService.GetConfig. -func (c *consoleServiceClient) GetConfig(ctx context.Context, req *connect.Request[console.GetConfigRequest]) (*connect.Response[console.GetConfigResponse], error) { +// GetConfig calls xyz.block.ftl.console.v1.ConsoleService.GetConfig. +func (c *consoleServiceClient) GetConfig(ctx context.Context, req *connect.Request[v11.GetConfigRequest]) (*connect.Response[v11.GetConfigResponse], error) { return c.getConfig.CallUnary(ctx, req) } -// SetConfig calls xyz.block.ftl.v1.console.ConsoleService.SetConfig. -func (c *consoleServiceClient) SetConfig(ctx context.Context, req *connect.Request[console.SetConfigRequest]) (*connect.Response[console.SetConfigResponse], error) { +// SetConfig calls xyz.block.ftl.console.v1.ConsoleService.SetConfig. +func (c *consoleServiceClient) SetConfig(ctx context.Context, req *connect.Request[v11.SetConfigRequest]) (*connect.Response[v11.SetConfigResponse], error) { return c.setConfig.CallUnary(ctx, req) } -// GetSecret calls xyz.block.ftl.v1.console.ConsoleService.GetSecret. -func (c *consoleServiceClient) GetSecret(ctx context.Context, req *connect.Request[console.GetSecretRequest]) (*connect.Response[console.GetSecretResponse], error) { +// GetSecret calls xyz.block.ftl.console.v1.ConsoleService.GetSecret. +func (c *consoleServiceClient) GetSecret(ctx context.Context, req *connect.Request[v11.GetSecretRequest]) (*connect.Response[v11.GetSecretResponse], error) { return c.getSecret.CallUnary(ctx, req) } -// SetSecret calls xyz.block.ftl.v1.console.ConsoleService.SetSecret. -func (c *consoleServiceClient) SetSecret(ctx context.Context, req *connect.Request[console.SetSecretRequest]) (*connect.Response[console.SetSecretResponse], error) { +// SetSecret calls xyz.block.ftl.console.v1.ConsoleService.SetSecret. +func (c *consoleServiceClient) SetSecret(ctx context.Context, req *connect.Request[v11.SetSecretRequest]) (*connect.Response[v11.SetSecretResponse], error) { return c.setSecret.CallUnary(ctx, req) } -// ConsoleServiceHandler is an implementation of the xyz.block.ftl.v1.console.ConsoleService +// ConsoleServiceHandler is an implementation of the xyz.block.ftl.console.v1.ConsoleService // service. type ConsoleServiceHandler interface { // Ping service for readiness. Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) - GetModules(context.Context, *connect.Request[console.GetModulesRequest]) (*connect.Response[console.GetModulesResponse], error) - StreamModules(context.Context, *connect.Request[console.StreamModulesRequest], *connect.ServerStream[console.StreamModulesResponse]) error - StreamEvents(context.Context, *connect.Request[console.StreamEventsRequest], *connect.ServerStream[console.StreamEventsResponse]) error - GetEvents(context.Context, *connect.Request[console.EventsQuery]) (*connect.Response[console.GetEventsResponse], error) - GetConfig(context.Context, *connect.Request[console.GetConfigRequest]) (*connect.Response[console.GetConfigResponse], error) - SetConfig(context.Context, *connect.Request[console.SetConfigRequest]) (*connect.Response[console.SetConfigResponse], error) - GetSecret(context.Context, *connect.Request[console.GetSecretRequest]) (*connect.Response[console.GetSecretResponse], error) - SetSecret(context.Context, *connect.Request[console.SetSecretRequest]) (*connect.Response[console.SetSecretResponse], error) + GetModules(context.Context, *connect.Request[v11.GetModulesRequest]) (*connect.Response[v11.GetModulesResponse], error) + StreamModules(context.Context, *connect.Request[v11.StreamModulesRequest], *connect.ServerStream[v11.StreamModulesResponse]) error + StreamEvents(context.Context, *connect.Request[v11.StreamEventsRequest], *connect.ServerStream[v11.StreamEventsResponse]) error + GetEvents(context.Context, *connect.Request[v11.GetEventsRequest]) (*connect.Response[v11.GetEventsResponse], error) + GetConfig(context.Context, *connect.Request[v11.GetConfigRequest]) (*connect.Response[v11.GetConfigResponse], error) + SetConfig(context.Context, *connect.Request[v11.SetConfigRequest]) (*connect.Response[v11.SetConfigResponse], error) + GetSecret(context.Context, *connect.Request[v11.GetSecretRequest]) (*connect.Response[v11.GetSecretResponse], error) + SetSecret(context.Context, *connect.Request[v11.SetSecretRequest]) (*connect.Response[v11.SetSecretResponse], error) } // NewConsoleServiceHandler builds an HTTP handler from the service implementation. It returns the @@ -260,7 +260,7 @@ func NewConsoleServiceHandler(svc ConsoleServiceHandler, opts ...connect.Handler svc.SetSecret, opts..., ) - return "/xyz.block.ftl.v1.console.ConsoleService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + return "/xyz.block.ftl.console.v1.ConsoleService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case ConsoleServicePingProcedure: consoleServicePingHandler.ServeHTTP(w, r) @@ -290,37 +290,37 @@ func NewConsoleServiceHandler(svc ConsoleServiceHandler, opts ...connect.Handler type UnimplementedConsoleServiceHandler struct{} func (UnimplementedConsoleServiceHandler) Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.Ping is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.Ping is not implemented")) } -func (UnimplementedConsoleServiceHandler) GetModules(context.Context, *connect.Request[console.GetModulesRequest]) (*connect.Response[console.GetModulesResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.GetModules is not implemented")) +func (UnimplementedConsoleServiceHandler) GetModules(context.Context, *connect.Request[v11.GetModulesRequest]) (*connect.Response[v11.GetModulesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.GetModules is not implemented")) } -func (UnimplementedConsoleServiceHandler) StreamModules(context.Context, *connect.Request[console.StreamModulesRequest], *connect.ServerStream[console.StreamModulesResponse]) error { - return connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.StreamModules is not implemented")) +func (UnimplementedConsoleServiceHandler) StreamModules(context.Context, *connect.Request[v11.StreamModulesRequest], *connect.ServerStream[v11.StreamModulesResponse]) error { + return connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.StreamModules is not implemented")) } -func (UnimplementedConsoleServiceHandler) StreamEvents(context.Context, *connect.Request[console.StreamEventsRequest], *connect.ServerStream[console.StreamEventsResponse]) error { - return connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.StreamEvents is not implemented")) +func (UnimplementedConsoleServiceHandler) StreamEvents(context.Context, *connect.Request[v11.StreamEventsRequest], *connect.ServerStream[v11.StreamEventsResponse]) error { + return connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.StreamEvents is not implemented")) } -func (UnimplementedConsoleServiceHandler) GetEvents(context.Context, *connect.Request[console.EventsQuery]) (*connect.Response[console.GetEventsResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.GetEvents is not implemented")) +func (UnimplementedConsoleServiceHandler) GetEvents(context.Context, *connect.Request[v11.GetEventsRequest]) (*connect.Response[v11.GetEventsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.GetEvents is not implemented")) } -func (UnimplementedConsoleServiceHandler) GetConfig(context.Context, *connect.Request[console.GetConfigRequest]) (*connect.Response[console.GetConfigResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.GetConfig is not implemented")) +func (UnimplementedConsoleServiceHandler) GetConfig(context.Context, *connect.Request[v11.GetConfigRequest]) (*connect.Response[v11.GetConfigResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.GetConfig is not implemented")) } -func (UnimplementedConsoleServiceHandler) SetConfig(context.Context, *connect.Request[console.SetConfigRequest]) (*connect.Response[console.SetConfigResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.SetConfig is not implemented")) +func (UnimplementedConsoleServiceHandler) SetConfig(context.Context, *connect.Request[v11.SetConfigRequest]) (*connect.Response[v11.SetConfigResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.SetConfig is not implemented")) } -func (UnimplementedConsoleServiceHandler) GetSecret(context.Context, *connect.Request[console.GetSecretRequest]) (*connect.Response[console.GetSecretResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.GetSecret is not implemented")) +func (UnimplementedConsoleServiceHandler) GetSecret(context.Context, *connect.Request[v11.GetSecretRequest]) (*connect.Response[v11.GetSecretResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.GetSecret is not implemented")) } -func (UnimplementedConsoleServiceHandler) SetSecret(context.Context, *connect.Request[console.SetSecretRequest]) (*connect.Response[console.SetSecretResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.console.ConsoleService.SetSecret is not implemented")) +func (UnimplementedConsoleServiceHandler) SetSecret(context.Context, *connect.Request[v11.SetSecretRequest]) (*connect.Response[v11.SetSecretResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.console.v1.ConsoleService.SetSecret is not implemented")) } diff --git a/backend/protos/xyz/block/ftl/v1/language/language.pb.go b/backend/protos/xyz/block/ftl/language/v1/language.pb.go similarity index 60% rename from backend/protos/xyz/block/ftl/v1/language/language.pb.go rename to backend/protos/xyz/block/ftl/language/v1/language.pb.go index c68514a28c..5a39060771 100644 --- a/backend/protos/xyz/block/ftl/v1/language/language.pb.go +++ b/backend/protos/xyz/block/ftl/language/v1/language.pb.go @@ -2,13 +2,13 @@ // versions: // protoc-gen-go v1.35.2 // protoc (unknown) -// source: xyz/block/ftl/v1/language/language.proto +// source: xyz/block/ftl/language/v1/language.proto package languagepb import ( - v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schema "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" + v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" @@ -26,22 +26,25 @@ const ( type Error_ErrorLevel int32 const ( - Error_INFO Error_ErrorLevel = 0 - Error_WARN Error_ErrorLevel = 1 - Error_ERROR Error_ErrorLevel = 2 + Error_ERROR_LEVEL_UNSPECIFIED Error_ErrorLevel = 0 + Error_ERROR_LEVEL_INFO Error_ErrorLevel = 1 + Error_ERROR_LEVEL_WARN Error_ErrorLevel = 2 + Error_ERROR_LEVEL_ERROR Error_ErrorLevel = 3 ) // Enum value maps for Error_ErrorLevel. var ( Error_ErrorLevel_name = map[int32]string{ - 0: "INFO", - 1: "WARN", - 2: "ERROR", + 0: "ERROR_LEVEL_UNSPECIFIED", + 1: "ERROR_LEVEL_INFO", + 2: "ERROR_LEVEL_WARN", + 3: "ERROR_LEVEL_ERROR", } Error_ErrorLevel_value = map[string]int32{ - "INFO": 0, - "WARN": 1, - "ERROR": 2, + "ERROR_LEVEL_UNSPECIFIED": 0, + "ERROR_LEVEL_INFO": 1, + "ERROR_LEVEL_WARN": 2, + "ERROR_LEVEL_ERROR": 3, } ) @@ -56,11 +59,11 @@ func (x Error_ErrorLevel) String() string { } func (Error_ErrorLevel) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_language_language_proto_enumTypes[0].Descriptor() + return file_xyz_block_ftl_language_v1_language_proto_enumTypes[0].Descriptor() } func (Error_ErrorLevel) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_language_language_proto_enumTypes[0] + return &file_xyz_block_ftl_language_v1_language_proto_enumTypes[0] } func (x Error_ErrorLevel) Number() protoreflect.EnumNumber { @@ -69,28 +72,31 @@ func (x Error_ErrorLevel) Number() protoreflect.EnumNumber { // Deprecated: Use Error_ErrorLevel.Descriptor instead. func (Error_ErrorLevel) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{13, 0} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{13, 0} } type Error_ErrorType int32 const ( - Error_FTL Error_ErrorType = 0 + Error_ERROR_TYPE_UNSPECIFIED Error_ErrorType = 0 + Error_ERROR_TYPE_FTL Error_ErrorType = 1 // Compiler errors are errors that are from the compiler. This is useful to avoid duplicate errors // being shown to the user when combining errors from multiple sources (eg: an IDE showing compiler // errors and FTL errors via LSP). - Error_COMPILER Error_ErrorType = 1 + Error_ERROR_TYPE_COMPILER Error_ErrorType = 2 ) // Enum value maps for Error_ErrorType. var ( Error_ErrorType_name = map[int32]string{ - 0: "FTL", - 1: "COMPILER", + 0: "ERROR_TYPE_UNSPECIFIED", + 1: "ERROR_TYPE_FTL", + 2: "ERROR_TYPE_COMPILER", } Error_ErrorType_value = map[string]int32{ - "FTL": 0, - "COMPILER": 1, + "ERROR_TYPE_UNSPECIFIED": 0, + "ERROR_TYPE_FTL": 1, + "ERROR_TYPE_COMPILER": 2, } ) @@ -105,11 +111,11 @@ func (x Error_ErrorType) String() string { } func (Error_ErrorType) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_language_language_proto_enumTypes[1].Descriptor() + return file_xyz_block_ftl_language_v1_language_proto_enumTypes[1].Descriptor() } func (Error_ErrorType) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_language_language_proto_enumTypes[1] + return &file_xyz_block_ftl_language_v1_language_proto_enumTypes[1] } func (x Error_ErrorType) Number() protoreflect.EnumNumber { @@ -118,7 +124,7 @@ func (x Error_ErrorType) Number() protoreflect.EnumNumber { // Deprecated: Use Error_ErrorType.Descriptor instead. func (Error_ErrorType) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{13, 1} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{13, 1} } // ModuleConfig contains the configuration for a module, found in the module's ftl.toml file. @@ -154,7 +160,7 @@ type ModuleConfig struct { func (x *ModuleConfig) Reset() { *x = ModuleConfig{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[0] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -166,7 +172,7 @@ func (x *ModuleConfig) String() string { func (*ModuleConfig) ProtoMessage() {} func (x *ModuleConfig) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[0] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -179,7 +185,7 @@ func (x *ModuleConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleConfig.ProtoReflect.Descriptor instead. func (*ModuleConfig) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{0} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{0} } func (x *ModuleConfig) GetName() string { @@ -273,7 +279,7 @@ type ProjectConfig struct { func (x *ProjectConfig) Reset() { *x = ProjectConfig{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[1] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -285,7 +291,7 @@ func (x *ProjectConfig) String() string { func (*ProjectConfig) ProtoMessage() {} func (x *ProjectConfig) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[1] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -298,7 +304,7 @@ func (x *ProjectConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectConfig.ProtoReflect.Descriptor instead. func (*ProjectConfig) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{1} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{1} } func (x *ProjectConfig) GetDir() string { @@ -339,7 +345,7 @@ type GetCreateModuleFlagsRequest struct { func (x *GetCreateModuleFlagsRequest) Reset() { *x = GetCreateModuleFlagsRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[2] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -351,7 +357,7 @@ func (x *GetCreateModuleFlagsRequest) String() string { func (*GetCreateModuleFlagsRequest) ProtoMessage() {} func (x *GetCreateModuleFlagsRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[2] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -364,7 +370,7 @@ func (x *GetCreateModuleFlagsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCreateModuleFlagsRequest.ProtoReflect.Descriptor instead. func (*GetCreateModuleFlagsRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{2} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{2} } func (x *GetCreateModuleFlagsRequest) GetLanguage() string { @@ -384,7 +390,7 @@ type GetCreateModuleFlagsResponse struct { func (x *GetCreateModuleFlagsResponse) Reset() { *x = GetCreateModuleFlagsResponse{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[3] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -396,7 +402,7 @@ func (x *GetCreateModuleFlagsResponse) String() string { func (*GetCreateModuleFlagsResponse) ProtoMessage() {} func (x *GetCreateModuleFlagsResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[3] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -409,7 +415,7 @@ func (x *GetCreateModuleFlagsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCreateModuleFlagsResponse.ProtoReflect.Descriptor instead. func (*GetCreateModuleFlagsResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{3} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{3} } func (x *GetCreateModuleFlagsResponse) GetFlags() []*GetCreateModuleFlagsResponse_Flag { @@ -437,7 +443,7 @@ type CreateModuleRequest struct { func (x *CreateModuleRequest) Reset() { *x = CreateModuleRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[4] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -449,7 +455,7 @@ func (x *CreateModuleRequest) String() string { func (*CreateModuleRequest) ProtoMessage() {} func (x *CreateModuleRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[4] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -462,7 +468,7 @@ func (x *CreateModuleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateModuleRequest.ProtoReflect.Descriptor instead. func (*CreateModuleRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{4} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{4} } func (x *CreateModuleRequest) GetName() string { @@ -502,7 +508,7 @@ type CreateModuleResponse struct { func (x *CreateModuleResponse) Reset() { *x = CreateModuleResponse{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[5] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -514,7 +520,7 @@ func (x *CreateModuleResponse) String() string { func (*CreateModuleResponse) ProtoMessage() {} func (x *CreateModuleResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[5] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -527,7 +533,7 @@ func (x *CreateModuleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateModuleResponse.ProtoReflect.Descriptor instead. func (*CreateModuleResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{5} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{5} } type ModuleConfigDefaultsRequest struct { @@ -540,7 +546,7 @@ type ModuleConfigDefaultsRequest struct { func (x *ModuleConfigDefaultsRequest) Reset() { *x = ModuleConfigDefaultsRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[6] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -552,7 +558,7 @@ func (x *ModuleConfigDefaultsRequest) String() string { func (*ModuleConfigDefaultsRequest) ProtoMessage() {} func (x *ModuleConfigDefaultsRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[6] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -565,7 +571,7 @@ func (x *ModuleConfigDefaultsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleConfigDefaultsRequest.ProtoReflect.Descriptor instead. func (*ModuleConfigDefaultsRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{6} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{6} } func (x *ModuleConfigDefaultsRequest) GetDir() string { @@ -608,7 +614,7 @@ type ModuleConfigDefaultsResponse struct { func (x *ModuleConfigDefaultsResponse) Reset() { *x = ModuleConfigDefaultsResponse{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[7] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -620,7 +626,7 @@ func (x *ModuleConfigDefaultsResponse) String() string { func (*ModuleConfigDefaultsResponse) ProtoMessage() {} func (x *ModuleConfigDefaultsResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[7] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -633,7 +639,7 @@ func (x *ModuleConfigDefaultsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleConfigDefaultsResponse.ProtoReflect.Descriptor instead. func (*ModuleConfigDefaultsResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{7} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{7} } func (x *ModuleConfigDefaultsResponse) GetDeployDir() string { @@ -692,7 +698,7 @@ func (x *ModuleConfigDefaultsResponse) GetSqlMigrationDir() string { return "" } -type DependenciesRequest struct { +type GetDependenciesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -700,21 +706,21 @@ type DependenciesRequest struct { ModuleConfig *ModuleConfig `protobuf:"bytes,1,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"` } -func (x *DependenciesRequest) Reset() { - *x = DependenciesRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[8] +func (x *GetDependenciesRequest) Reset() { + *x = GetDependenciesRequest{} + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *DependenciesRequest) String() string { +func (x *GetDependenciesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DependenciesRequest) ProtoMessage() {} +func (*GetDependenciesRequest) ProtoMessage() {} -func (x *DependenciesRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[8] +func (x *GetDependenciesRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -725,19 +731,19 @@ func (x *DependenciesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DependenciesRequest.ProtoReflect.Descriptor instead. -func (*DependenciesRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{8} +// Deprecated: Use GetDependenciesRequest.ProtoReflect.Descriptor instead. +func (*GetDependenciesRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{8} } -func (x *DependenciesRequest) GetModuleConfig() *ModuleConfig { +func (x *GetDependenciesRequest) GetModuleConfig() *ModuleConfig { if x != nil { return x.ModuleConfig } return nil } -type DependenciesResponse struct { +type GetDependenciesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -745,21 +751,21 @@ type DependenciesResponse struct { Modules []string `protobuf:"bytes,1,rep,name=modules,proto3" json:"modules,omitempty"` } -func (x *DependenciesResponse) Reset() { - *x = DependenciesResponse{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[9] +func (x *GetDependenciesResponse) Reset() { + *x = GetDependenciesResponse{} + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *DependenciesResponse) String() string { +func (x *GetDependenciesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DependenciesResponse) ProtoMessage() {} +func (*GetDependenciesResponse) ProtoMessage() {} -func (x *DependenciesResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[9] +func (x *GetDependenciesResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -770,12 +776,12 @@ func (x *DependenciesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DependenciesResponse.ProtoReflect.Descriptor instead. -func (*DependenciesResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{9} +// Deprecated: Use GetDependenciesResponse.ProtoReflect.Descriptor instead. +func (*GetDependenciesResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{9} } -func (x *DependenciesResponse) GetModules() []string { +func (x *GetDependenciesResponse) GetModules() []string { if x != nil { return x.Modules } @@ -795,7 +801,7 @@ type BuildContext struct { // The configuration for the module ModuleConfig *ModuleConfig `protobuf:"bytes,2,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"` // The FTL schema including all dependencies - Schema *schema.Schema `protobuf:"bytes,3,opt,name=schema,proto3" json:"schema,omitempty"` + Schema *v1.Schema `protobuf:"bytes,3,opt,name=schema,proto3" json:"schema,omitempty"` // The dependencies for the module Dependencies []string `protobuf:"bytes,4,rep,name=dependencies,proto3" json:"dependencies,omitempty"` // Build environment provides environment variables to be set for the build command @@ -804,7 +810,7 @@ type BuildContext struct { func (x *BuildContext) Reset() { *x = BuildContext{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[10] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -816,7 +822,7 @@ func (x *BuildContext) String() string { func (*BuildContext) ProtoMessage() {} func (x *BuildContext) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[10] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -829,7 +835,7 @@ func (x *BuildContext) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildContext.ProtoReflect.Descriptor instead. func (*BuildContext) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{10} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{10} } func (x *BuildContext) GetId() string { @@ -846,7 +852,7 @@ func (x *BuildContext) GetModuleConfig() *ModuleConfig { return nil } -func (x *BuildContext) GetSchema() *schema.Schema { +func (x *BuildContext) GetSchema() *v1.Schema { if x != nil { return x.Schema } @@ -877,7 +883,7 @@ type BuildContextUpdatedRequest struct { func (x *BuildContextUpdatedRequest) Reset() { *x = BuildContextUpdatedRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[11] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -889,7 +895,7 @@ func (x *BuildContextUpdatedRequest) String() string { func (*BuildContextUpdatedRequest) ProtoMessage() {} func (x *BuildContextUpdatedRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[11] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -902,7 +908,7 @@ func (x *BuildContextUpdatedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildContextUpdatedRequest.ProtoReflect.Descriptor instead. func (*BuildContextUpdatedRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{11} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{11} } func (x *BuildContextUpdatedRequest) GetBuildContext() *BuildContext { @@ -920,7 +926,7 @@ type BuildContextUpdatedResponse struct { func (x *BuildContextUpdatedResponse) Reset() { *x = BuildContextUpdatedResponse{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[12] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -932,7 +938,7 @@ func (x *BuildContextUpdatedResponse) String() string { func (*BuildContextUpdatedResponse) ProtoMessage() {} func (x *BuildContextUpdatedResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[12] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -945,7 +951,7 @@ func (x *BuildContextUpdatedResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildContextUpdatedResponse.ProtoReflect.Descriptor instead. func (*BuildContextUpdatedResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{12} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{12} } // Error contains information about an error that occurred during a build. @@ -956,14 +962,14 @@ type Error struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Level Error_ErrorLevel `protobuf:"varint,4,opt,name=level,proto3,enum=xyz.block.ftl.v1.language.Error_ErrorLevel" json:"level,omitempty"` + Level Error_ErrorLevel `protobuf:"varint,4,opt,name=level,proto3,enum=xyz.block.ftl.language.v1.Error_ErrorLevel" json:"level,omitempty"` Pos *Position `protobuf:"bytes,5,opt,name=pos,proto3,oneof" json:"pos,omitempty"` - Type Error_ErrorType `protobuf:"varint,6,opt,name=type,proto3,enum=xyz.block.ftl.v1.language.Error_ErrorType" json:"type,omitempty"` + Type Error_ErrorType `protobuf:"varint,6,opt,name=type,proto3,enum=xyz.block.ftl.language.v1.Error_ErrorType" json:"type,omitempty"` } func (x *Error) Reset() { *x = Error{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[13] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -975,7 +981,7 @@ func (x *Error) String() string { func (*Error) ProtoMessage() {} func (x *Error) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[13] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -988,7 +994,7 @@ func (x *Error) ProtoReflect() protoreflect.Message { // Deprecated: Use Error.ProtoReflect.Descriptor instead. func (*Error) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{13} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{13} } func (x *Error) GetMsg() string { @@ -1002,7 +1008,7 @@ func (x *Error) GetLevel() Error_ErrorLevel { if x != nil { return x.Level } - return Error_INFO + return Error_ERROR_LEVEL_UNSPECIFIED } func (x *Error) GetPos() *Position { @@ -1016,7 +1022,7 @@ func (x *Error) GetType() Error_ErrorType { if x != nil { return x.Type } - return Error_FTL + return Error_ERROR_TYPE_UNSPECIFIED } type Position struct { @@ -1032,7 +1038,7 @@ type Position struct { func (x *Position) Reset() { *x = Position{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[14] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1044,7 +1050,7 @@ func (x *Position) String() string { func (*Position) ProtoMessage() {} func (x *Position) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[14] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1057,7 +1063,7 @@ func (x *Position) ProtoReflect() protoreflect.Message { // Deprecated: Use Position.ProtoReflect.Descriptor instead. func (*Position) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{14} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{14} } func (x *Position) GetFilename() string { @@ -1098,7 +1104,7 @@ type ErrorList struct { func (x *ErrorList) Reset() { *x = ErrorList{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[15] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1110,7 +1116,7 @@ func (x *ErrorList) String() string { func (*ErrorList) ProtoMessage() {} func (x *ErrorList) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[15] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1123,7 +1129,7 @@ func (x *ErrorList) ProtoReflect() protoreflect.Message { // Deprecated: Use ErrorList.ProtoReflect.Descriptor instead. func (*ErrorList) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{15} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{15} } func (x *ErrorList) GetErrors() []*Error { @@ -1150,7 +1156,7 @@ type BuildRequest struct { func (x *BuildRequest) Reset() { *x = BuildRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[16] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1162,7 +1168,7 @@ func (x *BuildRequest) String() string { func (*BuildRequest) ProtoMessage() {} func (x *BuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[16] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1175,7 +1181,7 @@ func (x *BuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildRequest.ProtoReflect.Descriptor instead. func (*BuildRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{16} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{16} } func (x *BuildRequest) GetProjectRoot() string { @@ -1222,7 +1228,7 @@ type AutoRebuildStarted struct { func (x *AutoRebuildStarted) Reset() { *x = AutoRebuildStarted{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[17] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1234,7 +1240,7 @@ func (x *AutoRebuildStarted) String() string { func (*AutoRebuildStarted) ProtoMessage() {} func (x *AutoRebuildStarted) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[17] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1247,7 +1253,7 @@ func (x *AutoRebuildStarted) ProtoReflect() protoreflect.Message { // Deprecated: Use AutoRebuildStarted.ProtoReflect.Descriptor instead. func (*AutoRebuildStarted) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{17} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{17} } func (x *AutoRebuildStarted) GetContextId() string { @@ -1270,7 +1276,7 @@ type BuildSuccess struct { // Indicates whether the build was automatically started by the plugin, rather than due to a Build rpc call. IsAutomaticRebuild bool `protobuf:"varint,2,opt,name=is_automatic_rebuild,json=isAutomaticRebuild,proto3" json:"is_automatic_rebuild,omitempty"` // Module schema for the built module - Module *schema.Module `protobuf:"bytes,3,opt,name=module,proto3" json:"module,omitempty"` + Module *v1.Module `protobuf:"bytes,3,opt,name=module,proto3" json:"module,omitempty"` // Paths for files/directories to be deployed Deploy []string `protobuf:"bytes,4,rep,name=deploy,proto3" json:"deploy,omitempty"` // Name of the docker image to use for the runner @@ -1288,7 +1294,7 @@ type BuildSuccess struct { func (x *BuildSuccess) Reset() { *x = BuildSuccess{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[18] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1300,7 +1306,7 @@ func (x *BuildSuccess) String() string { func (*BuildSuccess) ProtoMessage() {} func (x *BuildSuccess) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[18] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1313,7 +1319,7 @@ func (x *BuildSuccess) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildSuccess.ProtoReflect.Descriptor instead. func (*BuildSuccess) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{18} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{18} } func (x *BuildSuccess) GetContextId() string { @@ -1330,7 +1336,7 @@ func (x *BuildSuccess) GetIsAutomaticRebuild() bool { return false } -func (x *BuildSuccess) GetModule() *schema.Module { +func (x *BuildSuccess) GetModule() *v1.Module { if x != nil { return x.Module } @@ -1394,7 +1400,7 @@ type BuildFailure struct { func (x *BuildFailure) Reset() { *x = BuildFailure{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[19] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1406,7 +1412,7 @@ func (x *BuildFailure) String() string { func (*BuildFailure) ProtoMessage() {} func (x *BuildFailure) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[19] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1419,7 +1425,7 @@ func (x *BuildFailure) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildFailure.ProtoReflect.Descriptor instead. func (*BuildFailure) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{19} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{19} } func (x *BuildFailure) GetContextId() string { @@ -1451,34 +1457,34 @@ func (x *BuildFailure) GetInvalidateDependencies() bool { } // Every type of message that can be streamed from the language plugin for a build. -type BuildEvent struct { +type BuildResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Event: // - // *BuildEvent_AutoRebuildStarted - // *BuildEvent_BuildSuccess - // *BuildEvent_BuildFailure - Event isBuildEvent_Event `protobuf_oneof:"event"` + // *BuildResponse_AutoRebuildStarted + // *BuildResponse_BuildSuccess + // *BuildResponse_BuildFailure + Event isBuildResponse_Event `protobuf_oneof:"event"` } -func (x *BuildEvent) Reset() { - *x = BuildEvent{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[20] +func (x *BuildResponse) Reset() { + *x = BuildResponse{} + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *BuildEvent) String() string { +func (x *BuildResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BuildEvent) ProtoMessage() {} +func (*BuildResponse) ProtoMessage() {} -func (x *BuildEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[20] +func (x *BuildResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1489,60 +1495,60 @@ func (x *BuildEvent) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BuildEvent.ProtoReflect.Descriptor instead. -func (*BuildEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{20} +// Deprecated: Use BuildResponse.ProtoReflect.Descriptor instead. +func (*BuildResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{20} } -func (m *BuildEvent) GetEvent() isBuildEvent_Event { +func (m *BuildResponse) GetEvent() isBuildResponse_Event { if m != nil { return m.Event } return nil } -func (x *BuildEvent) GetAutoRebuildStarted() *AutoRebuildStarted { - if x, ok := x.GetEvent().(*BuildEvent_AutoRebuildStarted); ok { +func (x *BuildResponse) GetAutoRebuildStarted() *AutoRebuildStarted { + if x, ok := x.GetEvent().(*BuildResponse_AutoRebuildStarted); ok { return x.AutoRebuildStarted } return nil } -func (x *BuildEvent) GetBuildSuccess() *BuildSuccess { - if x, ok := x.GetEvent().(*BuildEvent_BuildSuccess); ok { +func (x *BuildResponse) GetBuildSuccess() *BuildSuccess { + if x, ok := x.GetEvent().(*BuildResponse_BuildSuccess); ok { return x.BuildSuccess } return nil } -func (x *BuildEvent) GetBuildFailure() *BuildFailure { - if x, ok := x.GetEvent().(*BuildEvent_BuildFailure); ok { +func (x *BuildResponse) GetBuildFailure() *BuildFailure { + if x, ok := x.GetEvent().(*BuildResponse_BuildFailure); ok { return x.BuildFailure } return nil } -type isBuildEvent_Event interface { - isBuildEvent_Event() +type isBuildResponse_Event interface { + isBuildResponse_Event() } -type BuildEvent_AutoRebuildStarted struct { +type BuildResponse_AutoRebuildStarted struct { AutoRebuildStarted *AutoRebuildStarted `protobuf:"bytes,2,opt,name=auto_rebuild_started,json=autoRebuildStarted,proto3,oneof"` } -type BuildEvent_BuildSuccess struct { +type BuildResponse_BuildSuccess struct { BuildSuccess *BuildSuccess `protobuf:"bytes,3,opt,name=build_success,json=buildSuccess,proto3,oneof"` } -type BuildEvent_BuildFailure struct { +type BuildResponse_BuildFailure struct { BuildFailure *BuildFailure `protobuf:"bytes,4,opt,name=build_failure,json=buildFailure,proto3,oneof"` } -func (*BuildEvent_AutoRebuildStarted) isBuildEvent_Event() {} +func (*BuildResponse_AutoRebuildStarted) isBuildResponse_Event() {} -func (*BuildEvent_BuildSuccess) isBuildEvent_Event() {} +func (*BuildResponse_BuildSuccess) isBuildResponse_Event() {} -func (*BuildEvent_BuildFailure) isBuildEvent_Event() {} +func (*BuildResponse_BuildFailure) isBuildResponse_Event() {} type GenerateStubsRequest struct { state protoimpl.MessageState @@ -1552,7 +1558,7 @@ type GenerateStubsRequest struct { // The directory path to generate stubs into Dir string `protobuf:"bytes,1,opt,name=dir,proto3" json:"dir,omitempty"` // The schema of the module to generate stubs for - Module *schema.Module `protobuf:"bytes,2,opt,name=module,proto3" json:"module,omitempty"` + Module *v1.Module `protobuf:"bytes,2,opt,name=module,proto3" json:"module,omitempty"` // The module's configuration to generate stubs for ModuleConfig *ModuleConfig `protobuf:"bytes,3,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"` // Native module configuration is the configuration for a module that uses the plugin's language, if @@ -1563,7 +1569,7 @@ type GenerateStubsRequest struct { func (x *GenerateStubsRequest) Reset() { *x = GenerateStubsRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[21] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1575,7 +1581,7 @@ func (x *GenerateStubsRequest) String() string { func (*GenerateStubsRequest) ProtoMessage() {} func (x *GenerateStubsRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[21] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1588,7 +1594,7 @@ func (x *GenerateStubsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateStubsRequest.ProtoReflect.Descriptor instead. func (*GenerateStubsRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{21} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{21} } func (x *GenerateStubsRequest) GetDir() string { @@ -1598,7 +1604,7 @@ func (x *GenerateStubsRequest) GetDir() string { return "" } -func (x *GenerateStubsRequest) GetModule() *schema.Module { +func (x *GenerateStubsRequest) GetModule() *v1.Module { if x != nil { return x.Module } @@ -1627,7 +1633,7 @@ type GenerateStubsResponse struct { func (x *GenerateStubsResponse) Reset() { *x = GenerateStubsResponse{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[22] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1639,7 +1645,7 @@ func (x *GenerateStubsResponse) String() string { func (*GenerateStubsResponse) ProtoMessage() {} func (x *GenerateStubsResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[22] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1652,7 +1658,7 @@ func (x *GenerateStubsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateStubsResponse.ProtoReflect.Descriptor instead. func (*GenerateStubsResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{22} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{22} } type SyncStubReferencesRequest struct { @@ -1669,7 +1675,7 @@ type SyncStubReferencesRequest struct { func (x *SyncStubReferencesRequest) Reset() { *x = SyncStubReferencesRequest{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[23] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1681,7 +1687,7 @@ func (x *SyncStubReferencesRequest) String() string { func (*SyncStubReferencesRequest) ProtoMessage() {} func (x *SyncStubReferencesRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[23] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1694,7 +1700,7 @@ func (x *SyncStubReferencesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncStubReferencesRequest.ProtoReflect.Descriptor instead. func (*SyncStubReferencesRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{23} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{23} } func (x *SyncStubReferencesRequest) GetModuleConfig() *ModuleConfig { @@ -1726,7 +1732,7 @@ type SyncStubReferencesResponse struct { func (x *SyncStubReferencesResponse) Reset() { *x = SyncStubReferencesResponse{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[24] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1738,7 +1744,7 @@ func (x *SyncStubReferencesResponse) String() string { func (*SyncStubReferencesResponse) ProtoMessage() {} func (x *SyncStubReferencesResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[24] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1751,7 +1757,7 @@ func (x *SyncStubReferencesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncStubReferencesResponse.ProtoReflect.Descriptor instead. func (*SyncStubReferencesResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{24} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{24} } type GetCreateModuleFlagsResponse_Flag struct { @@ -1770,7 +1776,7 @@ type GetCreateModuleFlagsResponse_Flag struct { func (x *GetCreateModuleFlagsResponse_Flag) Reset() { *x = GetCreateModuleFlagsResponse_Flag{} - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[25] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1782,7 +1788,7 @@ func (x *GetCreateModuleFlagsResponse_Flag) String() string { func (*GetCreateModuleFlagsResponse_Flag) ProtoMessage() {} func (x *GetCreateModuleFlagsResponse_Flag) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_language_language_proto_msgTypes[25] + mi := &file_xyz_block_ftl_language_v1_language_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1795,7 +1801,7 @@ func (x *GetCreateModuleFlagsResponse_Flag) ProtoReflect() protoreflect.Message // Deprecated: Use GetCreateModuleFlagsResponse_Flag.ProtoReflect.Descriptor instead. func (*GetCreateModuleFlagsResponse_Flag) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP(), []int{3, 0} + return file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP(), []int{3, 0} } func (x *GetCreateModuleFlagsResponse_Flag) GetName() string { @@ -1840,19 +1846,19 @@ func (x *GetCreateModuleFlagsResponse_Flag) GetDefault() string { return "" } -var File_xyz_block_ftl_v1_language_language_proto protoreflect.FileDescriptor +var File_xyz_block_ftl_language_v1_language_proto protoreflect.FileDescriptor -var file_xyz_block_ftl_v1_language_language_proto_rawDesc = []byte{ +var file_xyz_block_ftl_language_v1_language_proto_rawDesc = []byte{ 0x0a, 0x28, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x6c, 0x61, 0x6e, 0x67, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, - 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, + 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc5, 0x03, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, @@ -1895,8 +1901,8 @@ var file_xyz_block_ftl_v1_language_language_proto_rawDesc = []byte{ 0x02, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x1a, 0xda, 0x01, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, @@ -1919,8 +1925,8 @@ var file_xyz_block_ftl_v1_language_language_proto_rawDesc = []byte{ 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x4f, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, @@ -1956,342 +1962,350 @@ var file_xyz_block_ftl_v1_language_language_proto_rawDesc = []byte{ 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x64, 0x69, - 0x72, 0x22, 0x63, 0x0a, 0x13, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x30, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x69, - 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, - 0x63, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x65, 0x6e, - 0x76, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, - 0x76, 0x22, 0x6a, 0x0a, 0x1a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x4c, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, - 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x1d, 0x0a, - 0x1b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x02, 0x0a, - 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3a, 0x0a, 0x03, 0x70, - 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x0a, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x10, 0x02, 0x22, 0x22, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x54, 0x4c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, - 0x4d, 0x50, 0x49, 0x4c, 0x45, 0x52, 0x10, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, - 0x22, 0x7c, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, - 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x45, - 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, - 0x62, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x74, 0x75, 0x62, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x15, 0x72, 0x65, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x4c, 0x0a, - 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x33, 0x0a, 0x12, 0x41, - 0x75, 0x74, 0x6f, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x64, - 0x22, 0xfd, 0x02, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x64, - 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x5f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, - 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x63, 0x6b, 0x65, - 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x06, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, - 0x76, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x64, - 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x5f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, - 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x12, 0x37, 0x0a, 0x17, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x98, 0x02, 0x0a, 0x0a, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0d, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x72, 0x22, 0x66, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x22, 0xa8, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x75, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x64, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, - 0x37, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x14, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, - 0x12, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, - 0x17, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x75, 0x62, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x19, 0x53, 0x79, 0x6e, - 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x73, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x73, 0x52, - 0x6f, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x1c, 0x0a, - 0x1a, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb0, 0x08, 0x0a, 0x0f, - 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x12, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, - 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, - 0x69, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, - 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, + 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x33, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x27, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, - 0x84, 0x01, 0x0a, 0x13, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x35, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xe6, + 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x4c, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, + 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x76, 0x22, 0x6a, 0x0a, 0x1a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x75, 0x62, 0x73, 0x12, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x75, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x75, - 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x53, - 0x79, 0x6e, 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x79, - 0x6e, 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x52, - 0x50, 0x01, 0x5a, 0x4e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, - 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, - 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3b, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xa4, 0x03, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x41, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x3a, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6c, 0x0a, + 0x0a, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x17, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, + 0x52, 0x4e, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x22, 0x54, 0x0a, 0x09, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x46, 0x54, 0x4c, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x49, 0x4c, 0x45, 0x52, 0x10, + 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x7c, 0x0a, 0x08, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, + 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x45, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xd3, + 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, + 0x6f, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x73, 0x52, 0x6f, 0x6f, + 0x74, 0x12, 0x33, 0x0a, 0x15, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x14, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x22, 0x33, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0xfd, 0x02, 0x0a, 0x0c, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x21, 0x0a, 0x0c, + 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, + 0x3c, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x0a, + 0x0c, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x09, 0x64, 0x65, 0x62, + 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x65, + 0x76, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, + 0x65, 0x62, 0x75, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x17, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, + 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x75, 0x74, 0x6f, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x22, 0xa8, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x75, + 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x37, 0x0a, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x14, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, + 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x75, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x19, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x75, + 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x79, 0x6e, + 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb9, 0x08, 0x0a, 0x0f, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, + 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x12, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, + 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x84, 0x01, 0x0a, 0x13, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x35, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x75, 0x62, 0x73, 0x12, 0x2f, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x75, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x75, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x81, 0x01, 0x0a, 0x12, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x75, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x75, + 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x52, 0x50, 0x01, 0x5a, 0x4e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, + 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, + 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_xyz_block_ftl_v1_language_language_proto_rawDescOnce sync.Once - file_xyz_block_ftl_v1_language_language_proto_rawDescData = file_xyz_block_ftl_v1_language_language_proto_rawDesc + file_xyz_block_ftl_language_v1_language_proto_rawDescOnce sync.Once + file_xyz_block_ftl_language_v1_language_proto_rawDescData = file_xyz_block_ftl_language_v1_language_proto_rawDesc ) -func file_xyz_block_ftl_v1_language_language_proto_rawDescGZIP() []byte { - file_xyz_block_ftl_v1_language_language_proto_rawDescOnce.Do(func() { - file_xyz_block_ftl_v1_language_language_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_v1_language_language_proto_rawDescData) +func file_xyz_block_ftl_language_v1_language_proto_rawDescGZIP() []byte { + file_xyz_block_ftl_language_v1_language_proto_rawDescOnce.Do(func() { + file_xyz_block_ftl_language_v1_language_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_language_v1_language_proto_rawDescData) }) - return file_xyz_block_ftl_v1_language_language_proto_rawDescData -} - -var file_xyz_block_ftl_v1_language_language_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_xyz_block_ftl_v1_language_language_proto_msgTypes = make([]protoimpl.MessageInfo, 26) -var file_xyz_block_ftl_v1_language_language_proto_goTypes = []any{ - (Error_ErrorLevel)(0), // 0: xyz.block.ftl.v1.language.Error.ErrorLevel - (Error_ErrorType)(0), // 1: xyz.block.ftl.v1.language.Error.ErrorType - (*ModuleConfig)(nil), // 2: xyz.block.ftl.v1.language.ModuleConfig - (*ProjectConfig)(nil), // 3: xyz.block.ftl.v1.language.ProjectConfig - (*GetCreateModuleFlagsRequest)(nil), // 4: xyz.block.ftl.v1.language.GetCreateModuleFlagsRequest - (*GetCreateModuleFlagsResponse)(nil), // 5: xyz.block.ftl.v1.language.GetCreateModuleFlagsResponse - (*CreateModuleRequest)(nil), // 6: xyz.block.ftl.v1.language.CreateModuleRequest - (*CreateModuleResponse)(nil), // 7: xyz.block.ftl.v1.language.CreateModuleResponse - (*ModuleConfigDefaultsRequest)(nil), // 8: xyz.block.ftl.v1.language.ModuleConfigDefaultsRequest - (*ModuleConfigDefaultsResponse)(nil), // 9: xyz.block.ftl.v1.language.ModuleConfigDefaultsResponse - (*DependenciesRequest)(nil), // 10: xyz.block.ftl.v1.language.DependenciesRequest - (*DependenciesResponse)(nil), // 11: xyz.block.ftl.v1.language.DependenciesResponse - (*BuildContext)(nil), // 12: xyz.block.ftl.v1.language.BuildContext - (*BuildContextUpdatedRequest)(nil), // 13: xyz.block.ftl.v1.language.BuildContextUpdatedRequest - (*BuildContextUpdatedResponse)(nil), // 14: xyz.block.ftl.v1.language.BuildContextUpdatedResponse - (*Error)(nil), // 15: xyz.block.ftl.v1.language.Error - (*Position)(nil), // 16: xyz.block.ftl.v1.language.Position - (*ErrorList)(nil), // 17: xyz.block.ftl.v1.language.ErrorList - (*BuildRequest)(nil), // 18: xyz.block.ftl.v1.language.BuildRequest - (*AutoRebuildStarted)(nil), // 19: xyz.block.ftl.v1.language.AutoRebuildStarted - (*BuildSuccess)(nil), // 20: xyz.block.ftl.v1.language.BuildSuccess - (*BuildFailure)(nil), // 21: xyz.block.ftl.v1.language.BuildFailure - (*BuildEvent)(nil), // 22: xyz.block.ftl.v1.language.BuildEvent - (*GenerateStubsRequest)(nil), // 23: xyz.block.ftl.v1.language.GenerateStubsRequest - (*GenerateStubsResponse)(nil), // 24: xyz.block.ftl.v1.language.GenerateStubsResponse - (*SyncStubReferencesRequest)(nil), // 25: xyz.block.ftl.v1.language.SyncStubReferencesRequest - (*SyncStubReferencesResponse)(nil), // 26: xyz.block.ftl.v1.language.SyncStubReferencesResponse - (*GetCreateModuleFlagsResponse_Flag)(nil), // 27: xyz.block.ftl.v1.language.GetCreateModuleFlagsResponse.Flag + return file_xyz_block_ftl_language_v1_language_proto_rawDescData +} + +var file_xyz_block_ftl_language_v1_language_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_xyz_block_ftl_language_v1_language_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_xyz_block_ftl_language_v1_language_proto_goTypes = []any{ + (Error_ErrorLevel)(0), // 0: xyz.block.ftl.language.v1.Error.ErrorLevel + (Error_ErrorType)(0), // 1: xyz.block.ftl.language.v1.Error.ErrorType + (*ModuleConfig)(nil), // 2: xyz.block.ftl.language.v1.ModuleConfig + (*ProjectConfig)(nil), // 3: xyz.block.ftl.language.v1.ProjectConfig + (*GetCreateModuleFlagsRequest)(nil), // 4: xyz.block.ftl.language.v1.GetCreateModuleFlagsRequest + (*GetCreateModuleFlagsResponse)(nil), // 5: xyz.block.ftl.language.v1.GetCreateModuleFlagsResponse + (*CreateModuleRequest)(nil), // 6: xyz.block.ftl.language.v1.CreateModuleRequest + (*CreateModuleResponse)(nil), // 7: xyz.block.ftl.language.v1.CreateModuleResponse + (*ModuleConfigDefaultsRequest)(nil), // 8: xyz.block.ftl.language.v1.ModuleConfigDefaultsRequest + (*ModuleConfigDefaultsResponse)(nil), // 9: xyz.block.ftl.language.v1.ModuleConfigDefaultsResponse + (*GetDependenciesRequest)(nil), // 10: xyz.block.ftl.language.v1.GetDependenciesRequest + (*GetDependenciesResponse)(nil), // 11: xyz.block.ftl.language.v1.GetDependenciesResponse + (*BuildContext)(nil), // 12: xyz.block.ftl.language.v1.BuildContext + (*BuildContextUpdatedRequest)(nil), // 13: xyz.block.ftl.language.v1.BuildContextUpdatedRequest + (*BuildContextUpdatedResponse)(nil), // 14: xyz.block.ftl.language.v1.BuildContextUpdatedResponse + (*Error)(nil), // 15: xyz.block.ftl.language.v1.Error + (*Position)(nil), // 16: xyz.block.ftl.language.v1.Position + (*ErrorList)(nil), // 17: xyz.block.ftl.language.v1.ErrorList + (*BuildRequest)(nil), // 18: xyz.block.ftl.language.v1.BuildRequest + (*AutoRebuildStarted)(nil), // 19: xyz.block.ftl.language.v1.AutoRebuildStarted + (*BuildSuccess)(nil), // 20: xyz.block.ftl.language.v1.BuildSuccess + (*BuildFailure)(nil), // 21: xyz.block.ftl.language.v1.BuildFailure + (*BuildResponse)(nil), // 22: xyz.block.ftl.language.v1.BuildResponse + (*GenerateStubsRequest)(nil), // 23: xyz.block.ftl.language.v1.GenerateStubsRequest + (*GenerateStubsResponse)(nil), // 24: xyz.block.ftl.language.v1.GenerateStubsResponse + (*SyncStubReferencesRequest)(nil), // 25: xyz.block.ftl.language.v1.SyncStubReferencesRequest + (*SyncStubReferencesResponse)(nil), // 26: xyz.block.ftl.language.v1.SyncStubReferencesResponse + (*GetCreateModuleFlagsResponse_Flag)(nil), // 27: xyz.block.ftl.language.v1.GetCreateModuleFlagsResponse.Flag (*structpb.Struct)(nil), // 28: google.protobuf.Struct - (*schema.Schema)(nil), // 29: xyz.block.ftl.v1.schema.Schema - (*schema.Module)(nil), // 30: xyz.block.ftl.v1.schema.Module - (*v1.PingRequest)(nil), // 31: xyz.block.ftl.v1.PingRequest - (*v1.PingResponse)(nil), // 32: xyz.block.ftl.v1.PingResponse -} -var file_xyz_block_ftl_v1_language_language_proto_depIdxs = []int32{ - 28, // 0: xyz.block.ftl.v1.language.ModuleConfig.language_config:type_name -> google.protobuf.Struct - 27, // 1: xyz.block.ftl.v1.language.GetCreateModuleFlagsResponse.flags:type_name -> xyz.block.ftl.v1.language.GetCreateModuleFlagsResponse.Flag - 3, // 2: xyz.block.ftl.v1.language.CreateModuleRequest.project_config:type_name -> xyz.block.ftl.v1.language.ProjectConfig - 28, // 3: xyz.block.ftl.v1.language.CreateModuleRequest.flags:type_name -> google.protobuf.Struct - 28, // 4: xyz.block.ftl.v1.language.ModuleConfigDefaultsResponse.language_config:type_name -> google.protobuf.Struct - 2, // 5: xyz.block.ftl.v1.language.DependenciesRequest.module_config:type_name -> xyz.block.ftl.v1.language.ModuleConfig - 2, // 6: xyz.block.ftl.v1.language.BuildContext.module_config:type_name -> xyz.block.ftl.v1.language.ModuleConfig - 29, // 7: xyz.block.ftl.v1.language.BuildContext.schema:type_name -> xyz.block.ftl.v1.schema.Schema - 12, // 8: xyz.block.ftl.v1.language.BuildContextUpdatedRequest.build_context:type_name -> xyz.block.ftl.v1.language.BuildContext - 0, // 9: xyz.block.ftl.v1.language.Error.level:type_name -> xyz.block.ftl.v1.language.Error.ErrorLevel - 16, // 10: xyz.block.ftl.v1.language.Error.pos:type_name -> xyz.block.ftl.v1.language.Position - 1, // 11: xyz.block.ftl.v1.language.Error.type:type_name -> xyz.block.ftl.v1.language.Error.ErrorType - 15, // 12: xyz.block.ftl.v1.language.ErrorList.errors:type_name -> xyz.block.ftl.v1.language.Error - 12, // 13: xyz.block.ftl.v1.language.BuildRequest.build_context:type_name -> xyz.block.ftl.v1.language.BuildContext - 30, // 14: xyz.block.ftl.v1.language.BuildSuccess.module:type_name -> xyz.block.ftl.v1.schema.Module - 17, // 15: xyz.block.ftl.v1.language.BuildSuccess.errors:type_name -> xyz.block.ftl.v1.language.ErrorList - 17, // 16: xyz.block.ftl.v1.language.BuildFailure.errors:type_name -> xyz.block.ftl.v1.language.ErrorList - 19, // 17: xyz.block.ftl.v1.language.BuildEvent.auto_rebuild_started:type_name -> xyz.block.ftl.v1.language.AutoRebuildStarted - 20, // 18: xyz.block.ftl.v1.language.BuildEvent.build_success:type_name -> xyz.block.ftl.v1.language.BuildSuccess - 21, // 19: xyz.block.ftl.v1.language.BuildEvent.build_failure:type_name -> xyz.block.ftl.v1.language.BuildFailure - 30, // 20: xyz.block.ftl.v1.language.GenerateStubsRequest.module:type_name -> xyz.block.ftl.v1.schema.Module - 2, // 21: xyz.block.ftl.v1.language.GenerateStubsRequest.module_config:type_name -> xyz.block.ftl.v1.language.ModuleConfig - 2, // 22: xyz.block.ftl.v1.language.GenerateStubsRequest.native_module_config:type_name -> xyz.block.ftl.v1.language.ModuleConfig - 2, // 23: xyz.block.ftl.v1.language.SyncStubReferencesRequest.module_config:type_name -> xyz.block.ftl.v1.language.ModuleConfig - 31, // 24: xyz.block.ftl.v1.language.LanguageService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 4, // 25: xyz.block.ftl.v1.language.LanguageService.GetCreateModuleFlags:input_type -> xyz.block.ftl.v1.language.GetCreateModuleFlagsRequest - 6, // 26: xyz.block.ftl.v1.language.LanguageService.CreateModule:input_type -> xyz.block.ftl.v1.language.CreateModuleRequest - 8, // 27: xyz.block.ftl.v1.language.LanguageService.ModuleConfigDefaults:input_type -> xyz.block.ftl.v1.language.ModuleConfigDefaultsRequest - 10, // 28: xyz.block.ftl.v1.language.LanguageService.GetDependencies:input_type -> xyz.block.ftl.v1.language.DependenciesRequest - 18, // 29: xyz.block.ftl.v1.language.LanguageService.Build:input_type -> xyz.block.ftl.v1.language.BuildRequest - 13, // 30: xyz.block.ftl.v1.language.LanguageService.BuildContextUpdated:input_type -> xyz.block.ftl.v1.language.BuildContextUpdatedRequest - 23, // 31: xyz.block.ftl.v1.language.LanguageService.GenerateStubs:input_type -> xyz.block.ftl.v1.language.GenerateStubsRequest - 25, // 32: xyz.block.ftl.v1.language.LanguageService.SyncStubReferences:input_type -> xyz.block.ftl.v1.language.SyncStubReferencesRequest - 32, // 33: xyz.block.ftl.v1.language.LanguageService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 5, // 34: xyz.block.ftl.v1.language.LanguageService.GetCreateModuleFlags:output_type -> xyz.block.ftl.v1.language.GetCreateModuleFlagsResponse - 7, // 35: xyz.block.ftl.v1.language.LanguageService.CreateModule:output_type -> xyz.block.ftl.v1.language.CreateModuleResponse - 9, // 36: xyz.block.ftl.v1.language.LanguageService.ModuleConfigDefaults:output_type -> xyz.block.ftl.v1.language.ModuleConfigDefaultsResponse - 11, // 37: xyz.block.ftl.v1.language.LanguageService.GetDependencies:output_type -> xyz.block.ftl.v1.language.DependenciesResponse - 22, // 38: xyz.block.ftl.v1.language.LanguageService.Build:output_type -> xyz.block.ftl.v1.language.BuildEvent - 14, // 39: xyz.block.ftl.v1.language.LanguageService.BuildContextUpdated:output_type -> xyz.block.ftl.v1.language.BuildContextUpdatedResponse - 24, // 40: xyz.block.ftl.v1.language.LanguageService.GenerateStubs:output_type -> xyz.block.ftl.v1.language.GenerateStubsResponse - 26, // 41: xyz.block.ftl.v1.language.LanguageService.SyncStubReferences:output_type -> xyz.block.ftl.v1.language.SyncStubReferencesResponse + (*v1.Schema)(nil), // 29: xyz.block.ftl.schema.v1.Schema + (*v1.Module)(nil), // 30: xyz.block.ftl.schema.v1.Module + (*v11.PingRequest)(nil), // 31: xyz.block.ftl.v1.PingRequest + (*v11.PingResponse)(nil), // 32: xyz.block.ftl.v1.PingResponse +} +var file_xyz_block_ftl_language_v1_language_proto_depIdxs = []int32{ + 28, // 0: xyz.block.ftl.language.v1.ModuleConfig.language_config:type_name -> google.protobuf.Struct + 27, // 1: xyz.block.ftl.language.v1.GetCreateModuleFlagsResponse.flags:type_name -> xyz.block.ftl.language.v1.GetCreateModuleFlagsResponse.Flag + 3, // 2: xyz.block.ftl.language.v1.CreateModuleRequest.project_config:type_name -> xyz.block.ftl.language.v1.ProjectConfig + 28, // 3: xyz.block.ftl.language.v1.CreateModuleRequest.flags:type_name -> google.protobuf.Struct + 28, // 4: xyz.block.ftl.language.v1.ModuleConfigDefaultsResponse.language_config:type_name -> google.protobuf.Struct + 2, // 5: xyz.block.ftl.language.v1.GetDependenciesRequest.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig + 2, // 6: xyz.block.ftl.language.v1.BuildContext.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig + 29, // 7: xyz.block.ftl.language.v1.BuildContext.schema:type_name -> xyz.block.ftl.schema.v1.Schema + 12, // 8: xyz.block.ftl.language.v1.BuildContextUpdatedRequest.build_context:type_name -> xyz.block.ftl.language.v1.BuildContext + 0, // 9: xyz.block.ftl.language.v1.Error.level:type_name -> xyz.block.ftl.language.v1.Error.ErrorLevel + 16, // 10: xyz.block.ftl.language.v1.Error.pos:type_name -> xyz.block.ftl.language.v1.Position + 1, // 11: xyz.block.ftl.language.v1.Error.type:type_name -> xyz.block.ftl.language.v1.Error.ErrorType + 15, // 12: xyz.block.ftl.language.v1.ErrorList.errors:type_name -> xyz.block.ftl.language.v1.Error + 12, // 13: xyz.block.ftl.language.v1.BuildRequest.build_context:type_name -> xyz.block.ftl.language.v1.BuildContext + 30, // 14: xyz.block.ftl.language.v1.BuildSuccess.module:type_name -> xyz.block.ftl.schema.v1.Module + 17, // 15: xyz.block.ftl.language.v1.BuildSuccess.errors:type_name -> xyz.block.ftl.language.v1.ErrorList + 17, // 16: xyz.block.ftl.language.v1.BuildFailure.errors:type_name -> xyz.block.ftl.language.v1.ErrorList + 19, // 17: xyz.block.ftl.language.v1.BuildResponse.auto_rebuild_started:type_name -> xyz.block.ftl.language.v1.AutoRebuildStarted + 20, // 18: xyz.block.ftl.language.v1.BuildResponse.build_success:type_name -> xyz.block.ftl.language.v1.BuildSuccess + 21, // 19: xyz.block.ftl.language.v1.BuildResponse.build_failure:type_name -> xyz.block.ftl.language.v1.BuildFailure + 30, // 20: xyz.block.ftl.language.v1.GenerateStubsRequest.module:type_name -> xyz.block.ftl.schema.v1.Module + 2, // 21: xyz.block.ftl.language.v1.GenerateStubsRequest.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig + 2, // 22: xyz.block.ftl.language.v1.GenerateStubsRequest.native_module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig + 2, // 23: xyz.block.ftl.language.v1.SyncStubReferencesRequest.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig + 31, // 24: xyz.block.ftl.language.v1.LanguageService.Ping:input_type -> xyz.block.ftl.v1.PingRequest + 4, // 25: xyz.block.ftl.language.v1.LanguageService.GetCreateModuleFlags:input_type -> xyz.block.ftl.language.v1.GetCreateModuleFlagsRequest + 6, // 26: xyz.block.ftl.language.v1.LanguageService.CreateModule:input_type -> xyz.block.ftl.language.v1.CreateModuleRequest + 8, // 27: xyz.block.ftl.language.v1.LanguageService.ModuleConfigDefaults:input_type -> xyz.block.ftl.language.v1.ModuleConfigDefaultsRequest + 10, // 28: xyz.block.ftl.language.v1.LanguageService.GetDependencies:input_type -> xyz.block.ftl.language.v1.GetDependenciesRequest + 18, // 29: xyz.block.ftl.language.v1.LanguageService.Build:input_type -> xyz.block.ftl.language.v1.BuildRequest + 13, // 30: xyz.block.ftl.language.v1.LanguageService.BuildContextUpdated:input_type -> xyz.block.ftl.language.v1.BuildContextUpdatedRequest + 23, // 31: xyz.block.ftl.language.v1.LanguageService.GenerateStubs:input_type -> xyz.block.ftl.language.v1.GenerateStubsRequest + 25, // 32: xyz.block.ftl.language.v1.LanguageService.SyncStubReferences:input_type -> xyz.block.ftl.language.v1.SyncStubReferencesRequest + 32, // 33: xyz.block.ftl.language.v1.LanguageService.Ping:output_type -> xyz.block.ftl.v1.PingResponse + 5, // 34: xyz.block.ftl.language.v1.LanguageService.GetCreateModuleFlags:output_type -> xyz.block.ftl.language.v1.GetCreateModuleFlagsResponse + 7, // 35: xyz.block.ftl.language.v1.LanguageService.CreateModule:output_type -> xyz.block.ftl.language.v1.CreateModuleResponse + 9, // 36: xyz.block.ftl.language.v1.LanguageService.ModuleConfigDefaults:output_type -> xyz.block.ftl.language.v1.ModuleConfigDefaultsResponse + 11, // 37: xyz.block.ftl.language.v1.LanguageService.GetDependencies:output_type -> xyz.block.ftl.language.v1.GetDependenciesResponse + 22, // 38: xyz.block.ftl.language.v1.LanguageService.Build:output_type -> xyz.block.ftl.language.v1.BuildResponse + 14, // 39: xyz.block.ftl.language.v1.LanguageService.BuildContextUpdated:output_type -> xyz.block.ftl.language.v1.BuildContextUpdatedResponse + 24, // 40: xyz.block.ftl.language.v1.LanguageService.GenerateStubs:output_type -> xyz.block.ftl.language.v1.GenerateStubsResponse + 26, // 41: xyz.block.ftl.language.v1.LanguageService.SyncStubReferences:output_type -> xyz.block.ftl.language.v1.SyncStubReferencesResponse 33, // [33:42] is the sub-list for method output_type 24, // [24:33] is the sub-list for method input_type 24, // [24:24] is the sub-list for extension type_name @@ -2299,39 +2313,39 @@ var file_xyz_block_ftl_v1_language_language_proto_depIdxs = []int32{ 0, // [0:24] is the sub-list for field type_name } -func init() { file_xyz_block_ftl_v1_language_language_proto_init() } -func file_xyz_block_ftl_v1_language_language_proto_init() { - if File_xyz_block_ftl_v1_language_language_proto != nil { +func init() { file_xyz_block_ftl_language_v1_language_proto_init() } +func file_xyz_block_ftl_language_v1_language_proto_init() { + if File_xyz_block_ftl_language_v1_language_proto != nil { return } - file_xyz_block_ftl_v1_language_language_proto_msgTypes[0].OneofWrappers = []any{} - file_xyz_block_ftl_v1_language_language_proto_msgTypes[7].OneofWrappers = []any{} - file_xyz_block_ftl_v1_language_language_proto_msgTypes[13].OneofWrappers = []any{} - file_xyz_block_ftl_v1_language_language_proto_msgTypes[18].OneofWrappers = []any{} - file_xyz_block_ftl_v1_language_language_proto_msgTypes[20].OneofWrappers = []any{ - (*BuildEvent_AutoRebuildStarted)(nil), - (*BuildEvent_BuildSuccess)(nil), - (*BuildEvent_BuildFailure)(nil), - } - file_xyz_block_ftl_v1_language_language_proto_msgTypes[21].OneofWrappers = []any{} - file_xyz_block_ftl_v1_language_language_proto_msgTypes[25].OneofWrappers = []any{} + file_xyz_block_ftl_language_v1_language_proto_msgTypes[0].OneofWrappers = []any{} + file_xyz_block_ftl_language_v1_language_proto_msgTypes[7].OneofWrappers = []any{} + file_xyz_block_ftl_language_v1_language_proto_msgTypes[13].OneofWrappers = []any{} + file_xyz_block_ftl_language_v1_language_proto_msgTypes[18].OneofWrappers = []any{} + file_xyz_block_ftl_language_v1_language_proto_msgTypes[20].OneofWrappers = []any{ + (*BuildResponse_AutoRebuildStarted)(nil), + (*BuildResponse_BuildSuccess)(nil), + (*BuildResponse_BuildFailure)(nil), + } + file_xyz_block_ftl_language_v1_language_proto_msgTypes[21].OneofWrappers = []any{} + file_xyz_block_ftl_language_v1_language_proto_msgTypes[25].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_xyz_block_ftl_v1_language_language_proto_rawDesc, + RawDescriptor: file_xyz_block_ftl_language_v1_language_proto_rawDesc, NumEnums: 2, NumMessages: 26, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_xyz_block_ftl_v1_language_language_proto_goTypes, - DependencyIndexes: file_xyz_block_ftl_v1_language_language_proto_depIdxs, - EnumInfos: file_xyz_block_ftl_v1_language_language_proto_enumTypes, - MessageInfos: file_xyz_block_ftl_v1_language_language_proto_msgTypes, + GoTypes: file_xyz_block_ftl_language_v1_language_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_language_v1_language_proto_depIdxs, + EnumInfos: file_xyz_block_ftl_language_v1_language_proto_enumTypes, + MessageInfos: file_xyz_block_ftl_language_v1_language_proto_msgTypes, }.Build() - File_xyz_block_ftl_v1_language_language_proto = out.File - file_xyz_block_ftl_v1_language_language_proto_rawDesc = nil - file_xyz_block_ftl_v1_language_language_proto_goTypes = nil - file_xyz_block_ftl_v1_language_language_proto_depIdxs = nil + File_xyz_block_ftl_language_v1_language_proto = out.File + file_xyz_block_ftl_language_v1_language_proto_rawDesc = nil + file_xyz_block_ftl_language_v1_language_proto_goTypes = nil + file_xyz_block_ftl_language_v1_language_proto_depIdxs = nil } diff --git a/backend/protos/xyz/block/ftl/v1/language/language.proto b/backend/protos/xyz/block/ftl/language/v1/language.proto similarity index 94% rename from backend/protos/xyz/block/ftl/v1/language/language.proto rename to backend/protos/xyz/block/ftl/language/v1/language.proto index 7efd5bcbdc..0ff5e620dc 100644 --- a/backend/protos/xyz/block/ftl/v1/language/language.proto +++ b/backend/protos/xyz/block/ftl/language/v1/language.proto @@ -1,12 +1,12 @@ syntax = "proto3"; -package xyz.block.ftl.v1.language; +package xyz.block.ftl.language.v1; import "google/protobuf/struct.proto"; +import "xyz/block/ftl/schema/v1/schema.proto"; import "xyz/block/ftl/v1/ftl.proto"; -import "xyz/block/ftl/v1/schema/schema.proto"; -option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/language;languagepb"; +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/language/v1;languagepb"; option java_multiple_files = true; // ModuleConfig contains the configuration for a module, found in the module's ftl.toml file. @@ -119,11 +119,11 @@ message ModuleConfigDefaultsResponse { string sql_migration_dir = 8; } -message DependenciesRequest { +message GetDependenciesRequest { ModuleConfig module_config = 1; } -message DependenciesResponse { +message GetDependenciesResponse { repeated string modules = 1; } @@ -136,7 +136,7 @@ message BuildContext { // The configuration for the module ModuleConfig module_config = 2; // The FTL schema including all dependencies - schema.Schema schema = 3; + ftl.schema.v1.Schema schema = 3; // The dependencies for the module repeated string dependencies = 4; // Build environment provides environment variables to be set for the build command @@ -153,17 +153,19 @@ message BuildContextUpdatedResponse {} // Errors do not always cause a build failure. Use lesser levels to help guide the user. message Error { enum ErrorLevel { - INFO = 0; - WARN = 1; - ERROR = 2; + ERROR_LEVEL_UNSPECIFIED = 0; + ERROR_LEVEL_INFO = 1; + ERROR_LEVEL_WARN = 2; + ERROR_LEVEL_ERROR = 3; } enum ErrorType { - FTL = 0; + ERROR_TYPE_UNSPECIFIED = 0; + ERROR_TYPE_FTL = 1; // Compiler errors are errors that are from the compiler. This is useful to avoid duplicate errors // being shown to the user when combining errors from multiple sources (eg: an IDE showing compiler // errors and FTL errors via LSP). - COMPILER = 1; + ERROR_TYPE_COMPILER = 2; } string msg = 1; @@ -216,7 +218,7 @@ message BuildSuccess { // Indicates whether the build was automatically started by the plugin, rather than due to a Build rpc call. bool is_automatic_rebuild = 2; // Module schema for the built module - schema.Module module = 3; + ftl.schema.v1.Module module = 3; // Paths for files/directories to be deployed repeated string deploy = 4; // Name of the docker image to use for the runner @@ -254,7 +256,7 @@ message BuildFailure { } // Every type of message that can be streamed from the language plugin for a build. -message BuildEvent { +message BuildResponse { oneof event { AutoRebuildStarted auto_rebuild_started = 2; BuildSuccess build_success = 3; @@ -266,7 +268,7 @@ message GenerateStubsRequest { // The directory path to generate stubs into string dir = 1; // The schema of the module to generate stubs for - schema.Module module = 2; + ftl.schema.v1.Module module = 2; // The module's configuration to generate stubs for ModuleConfig module_config = 3; @@ -308,7 +310,7 @@ service LanguageService { // Extract dependencies for a module // FTL will ensure that these dependencies are built before requesting a build for this module. - rpc GetDependencies(DependenciesRequest) returns (DependenciesResponse); + rpc GetDependencies(GetDependenciesRequest) returns (GetDependenciesResponse); // Build the module and stream back build events. // @@ -319,7 +321,7 @@ service LanguageService { // file changes and automatically rebuild as needed as long as this build request is alive. Each automactic // rebuild must include the latest build context id provided by the request or subsequent BuildContextUpdated // calls. - rpc Build(BuildRequest) returns (stream BuildEvent); + rpc Build(BuildRequest) returns (stream BuildResponse); // While a Build call with "rebuild_automatically" set is active, BuildContextUpdated is called whenever the // build context is updated. diff --git a/backend/protos/xyz/block/ftl/v1/language/languagepbconnect/language.connect.go b/backend/protos/xyz/block/ftl/language/v1/languagepbconnect/language.connect.go similarity index 63% rename from backend/protos/xyz/block/ftl/v1/language/languagepbconnect/language.connect.go rename to backend/protos/xyz/block/ftl/language/v1/languagepbconnect/language.connect.go index 8c43b030c3..7335b0d409 100644 --- a/backend/protos/xyz/block/ftl/v1/language/languagepbconnect/language.connect.go +++ b/backend/protos/xyz/block/ftl/language/v1/languagepbconnect/language.connect.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-connect-go. DO NOT EDIT. // -// Source: xyz/block/ftl/v1/language/language.proto +// Source: xyz/block/ftl/language/v1/language.proto package languagepbconnect @@ -8,8 +8,8 @@ import ( connect "connectrpc.com/connect" context "context" errors "errors" + v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/language/v1" v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - language "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/language" http "net/http" strings "strings" ) @@ -23,7 +23,7 @@ const _ = connect.IsAtLeastVersion1_7_0 const ( // LanguageServiceName is the fully-qualified name of the LanguageService service. - LanguageServiceName = "xyz.block.ftl.v1.language.LanguageService" + LanguageServiceName = "xyz.block.ftl.language.v1.LanguageService" ) // These constants are the fully-qualified names of the RPCs defined in this package. They're @@ -35,45 +35,45 @@ const ( // period. const ( // LanguageServicePingProcedure is the fully-qualified name of the LanguageService's Ping RPC. - LanguageServicePingProcedure = "/xyz.block.ftl.v1.language.LanguageService/Ping" + LanguageServicePingProcedure = "/xyz.block.ftl.language.v1.LanguageService/Ping" // LanguageServiceGetCreateModuleFlagsProcedure is the fully-qualified name of the LanguageService's // GetCreateModuleFlags RPC. - LanguageServiceGetCreateModuleFlagsProcedure = "/xyz.block.ftl.v1.language.LanguageService/GetCreateModuleFlags" + LanguageServiceGetCreateModuleFlagsProcedure = "/xyz.block.ftl.language.v1.LanguageService/GetCreateModuleFlags" // LanguageServiceCreateModuleProcedure is the fully-qualified name of the LanguageService's // CreateModule RPC. - LanguageServiceCreateModuleProcedure = "/xyz.block.ftl.v1.language.LanguageService/CreateModule" + LanguageServiceCreateModuleProcedure = "/xyz.block.ftl.language.v1.LanguageService/CreateModule" // LanguageServiceModuleConfigDefaultsProcedure is the fully-qualified name of the LanguageService's // ModuleConfigDefaults RPC. - LanguageServiceModuleConfigDefaultsProcedure = "/xyz.block.ftl.v1.language.LanguageService/ModuleConfigDefaults" + LanguageServiceModuleConfigDefaultsProcedure = "/xyz.block.ftl.language.v1.LanguageService/ModuleConfigDefaults" // LanguageServiceGetDependenciesProcedure is the fully-qualified name of the LanguageService's // GetDependencies RPC. - LanguageServiceGetDependenciesProcedure = "/xyz.block.ftl.v1.language.LanguageService/GetDependencies" + LanguageServiceGetDependenciesProcedure = "/xyz.block.ftl.language.v1.LanguageService/GetDependencies" // LanguageServiceBuildProcedure is the fully-qualified name of the LanguageService's Build RPC. - LanguageServiceBuildProcedure = "/xyz.block.ftl.v1.language.LanguageService/Build" + LanguageServiceBuildProcedure = "/xyz.block.ftl.language.v1.LanguageService/Build" // LanguageServiceBuildContextUpdatedProcedure is the fully-qualified name of the LanguageService's // BuildContextUpdated RPC. - LanguageServiceBuildContextUpdatedProcedure = "/xyz.block.ftl.v1.language.LanguageService/BuildContextUpdated" + LanguageServiceBuildContextUpdatedProcedure = "/xyz.block.ftl.language.v1.LanguageService/BuildContextUpdated" // LanguageServiceGenerateStubsProcedure is the fully-qualified name of the LanguageService's // GenerateStubs RPC. - LanguageServiceGenerateStubsProcedure = "/xyz.block.ftl.v1.language.LanguageService/GenerateStubs" + LanguageServiceGenerateStubsProcedure = "/xyz.block.ftl.language.v1.LanguageService/GenerateStubs" // LanguageServiceSyncStubReferencesProcedure is the fully-qualified name of the LanguageService's // SyncStubReferences RPC. - LanguageServiceSyncStubReferencesProcedure = "/xyz.block.ftl.v1.language.LanguageService/SyncStubReferences" + LanguageServiceSyncStubReferencesProcedure = "/xyz.block.ftl.language.v1.LanguageService/SyncStubReferences" ) -// LanguageServiceClient is a client for the xyz.block.ftl.v1.language.LanguageService service. +// LanguageServiceClient is a client for the xyz.block.ftl.language.v1.LanguageService service. type LanguageServiceClient interface { // Ping service for readiness. Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) // Get language specific flags that can be used to create a new module. - GetCreateModuleFlags(context.Context, *connect.Request[language.GetCreateModuleFlagsRequest]) (*connect.Response[language.GetCreateModuleFlagsResponse], error) + GetCreateModuleFlags(context.Context, *connect.Request[v11.GetCreateModuleFlagsRequest]) (*connect.Response[v11.GetCreateModuleFlagsResponse], error) // Generates files for a new module with the requested name - CreateModule(context.Context, *connect.Request[language.CreateModuleRequest]) (*connect.Response[language.CreateModuleResponse], error) + CreateModule(context.Context, *connect.Request[v11.CreateModuleRequest]) (*connect.Response[v11.CreateModuleResponse], error) // Provide default values for ModuleConfig for values that are not configured in the ftl.toml file. - ModuleConfigDefaults(context.Context, *connect.Request[language.ModuleConfigDefaultsRequest]) (*connect.Response[language.ModuleConfigDefaultsResponse], error) + ModuleConfigDefaults(context.Context, *connect.Request[v11.ModuleConfigDefaultsRequest]) (*connect.Response[v11.ModuleConfigDefaultsResponse], error) // Extract dependencies for a module // FTL will ensure that these dependencies are built before requesting a build for this module. - GetDependencies(context.Context, *connect.Request[language.DependenciesRequest]) (*connect.Response[language.DependenciesResponse], error) + GetDependencies(context.Context, *connect.Request[v11.GetDependenciesRequest]) (*connect.Response[v11.GetDependenciesResponse], error) // Build the module and stream back build events. // // A BuildSuccess or BuildFailure event must be streamed back with the request's context id to indicate the @@ -83,7 +83,7 @@ type LanguageServiceClient interface { // file changes and automatically rebuild as needed as long as this build request is alive. Each automactic // rebuild must include the latest build context id provided by the request or subsequent BuildContextUpdated // calls. - Build(context.Context, *connect.Request[language.BuildRequest]) (*connect.ServerStreamForClient[language.BuildEvent], error) + Build(context.Context, *connect.Request[v11.BuildRequest]) (*connect.ServerStreamForClient[v11.BuildResponse], error) // While a Build call with "rebuild_automatically" set is active, BuildContextUpdated is called whenever the // build context is updated. // @@ -92,7 +92,7 @@ type LanguageServiceClient interface { // // If the plugin will not be able to return a BuildSuccess or BuildFailure, such as when there is no active // build stream, it must fail the BuildContextUpdated call. - BuildContextUpdated(context.Context, *connect.Request[language.BuildContextUpdatedRequest]) (*connect.Response[language.BuildContextUpdatedResponse], error) + BuildContextUpdated(context.Context, *connect.Request[v11.BuildContextUpdatedRequest]) (*connect.Response[v11.BuildContextUpdatedResponse], error) // Generate stubs for a module. // // Stubs allow modules to import other module's exported interface. If a language does not need this step, @@ -100,7 +100,7 @@ type LanguageServiceClient interface { // // This call is not tied to the module that this plugin is responsible for. A plugin of each language will // be chosen to generate stubs for each module. - GenerateStubs(context.Context, *connect.Request[language.GenerateStubsRequest]) (*connect.Response[language.GenerateStubsResponse], error) + GenerateStubs(context.Context, *connect.Request[v11.GenerateStubsRequest]) (*connect.Response[v11.GenerateStubsResponse], error) // SyncStubReferences is called when module stubs have been updated. This allows the plugin to update // references to external modules, regardless of whether they are dependencies. // @@ -108,10 +108,10 @@ type LanguageServiceClient interface { // import the modules when users start reference them. // // It is optional to do anything with this call. - SyncStubReferences(context.Context, *connect.Request[language.SyncStubReferencesRequest]) (*connect.Response[language.SyncStubReferencesResponse], error) + SyncStubReferences(context.Context, *connect.Request[v11.SyncStubReferencesRequest]) (*connect.Response[v11.SyncStubReferencesResponse], error) } -// NewLanguageServiceClient constructs a client for the xyz.block.ftl.v1.language.LanguageService +// NewLanguageServiceClient constructs a client for the xyz.block.ftl.language.v1.LanguageService // service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for // gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply // the connect.WithGRPC() or connect.WithGRPCWeb() options. @@ -127,42 +127,42 @@ func NewLanguageServiceClient(httpClient connect.HTTPClient, baseURL string, opt connect.WithIdempotency(connect.IdempotencyNoSideEffects), connect.WithClientOptions(opts...), ), - getCreateModuleFlags: connect.NewClient[language.GetCreateModuleFlagsRequest, language.GetCreateModuleFlagsResponse]( + getCreateModuleFlags: connect.NewClient[v11.GetCreateModuleFlagsRequest, v11.GetCreateModuleFlagsResponse]( httpClient, baseURL+LanguageServiceGetCreateModuleFlagsProcedure, opts..., ), - createModule: connect.NewClient[language.CreateModuleRequest, language.CreateModuleResponse]( + createModule: connect.NewClient[v11.CreateModuleRequest, v11.CreateModuleResponse]( httpClient, baseURL+LanguageServiceCreateModuleProcedure, opts..., ), - moduleConfigDefaults: connect.NewClient[language.ModuleConfigDefaultsRequest, language.ModuleConfigDefaultsResponse]( + moduleConfigDefaults: connect.NewClient[v11.ModuleConfigDefaultsRequest, v11.ModuleConfigDefaultsResponse]( httpClient, baseURL+LanguageServiceModuleConfigDefaultsProcedure, opts..., ), - getDependencies: connect.NewClient[language.DependenciesRequest, language.DependenciesResponse]( + getDependencies: connect.NewClient[v11.GetDependenciesRequest, v11.GetDependenciesResponse]( httpClient, baseURL+LanguageServiceGetDependenciesProcedure, opts..., ), - build: connect.NewClient[language.BuildRequest, language.BuildEvent]( + build: connect.NewClient[v11.BuildRequest, v11.BuildResponse]( httpClient, baseURL+LanguageServiceBuildProcedure, opts..., ), - buildContextUpdated: connect.NewClient[language.BuildContextUpdatedRequest, language.BuildContextUpdatedResponse]( + buildContextUpdated: connect.NewClient[v11.BuildContextUpdatedRequest, v11.BuildContextUpdatedResponse]( httpClient, baseURL+LanguageServiceBuildContextUpdatedProcedure, opts..., ), - generateStubs: connect.NewClient[language.GenerateStubsRequest, language.GenerateStubsResponse]( + generateStubs: connect.NewClient[v11.GenerateStubsRequest, v11.GenerateStubsResponse]( httpClient, baseURL+LanguageServiceGenerateStubsProcedure, opts..., ), - syncStubReferences: connect.NewClient[language.SyncStubReferencesRequest, language.SyncStubReferencesResponse]( + syncStubReferences: connect.NewClient[v11.SyncStubReferencesRequest, v11.SyncStubReferencesResponse]( httpClient, baseURL+LanguageServiceSyncStubReferencesProcedure, opts..., @@ -173,75 +173,75 @@ func NewLanguageServiceClient(httpClient connect.HTTPClient, baseURL string, opt // languageServiceClient implements LanguageServiceClient. type languageServiceClient struct { ping *connect.Client[v1.PingRequest, v1.PingResponse] - getCreateModuleFlags *connect.Client[language.GetCreateModuleFlagsRequest, language.GetCreateModuleFlagsResponse] - createModule *connect.Client[language.CreateModuleRequest, language.CreateModuleResponse] - moduleConfigDefaults *connect.Client[language.ModuleConfigDefaultsRequest, language.ModuleConfigDefaultsResponse] - getDependencies *connect.Client[language.DependenciesRequest, language.DependenciesResponse] - build *connect.Client[language.BuildRequest, language.BuildEvent] - buildContextUpdated *connect.Client[language.BuildContextUpdatedRequest, language.BuildContextUpdatedResponse] - generateStubs *connect.Client[language.GenerateStubsRequest, language.GenerateStubsResponse] - syncStubReferences *connect.Client[language.SyncStubReferencesRequest, language.SyncStubReferencesResponse] + getCreateModuleFlags *connect.Client[v11.GetCreateModuleFlagsRequest, v11.GetCreateModuleFlagsResponse] + createModule *connect.Client[v11.CreateModuleRequest, v11.CreateModuleResponse] + moduleConfigDefaults *connect.Client[v11.ModuleConfigDefaultsRequest, v11.ModuleConfigDefaultsResponse] + getDependencies *connect.Client[v11.GetDependenciesRequest, v11.GetDependenciesResponse] + build *connect.Client[v11.BuildRequest, v11.BuildResponse] + buildContextUpdated *connect.Client[v11.BuildContextUpdatedRequest, v11.BuildContextUpdatedResponse] + generateStubs *connect.Client[v11.GenerateStubsRequest, v11.GenerateStubsResponse] + syncStubReferences *connect.Client[v11.SyncStubReferencesRequest, v11.SyncStubReferencesResponse] } -// Ping calls xyz.block.ftl.v1.language.LanguageService.Ping. +// Ping calls xyz.block.ftl.language.v1.LanguageService.Ping. func (c *languageServiceClient) Ping(ctx context.Context, req *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { return c.ping.CallUnary(ctx, req) } -// GetCreateModuleFlags calls xyz.block.ftl.v1.language.LanguageService.GetCreateModuleFlags. -func (c *languageServiceClient) GetCreateModuleFlags(ctx context.Context, req *connect.Request[language.GetCreateModuleFlagsRequest]) (*connect.Response[language.GetCreateModuleFlagsResponse], error) { +// GetCreateModuleFlags calls xyz.block.ftl.language.v1.LanguageService.GetCreateModuleFlags. +func (c *languageServiceClient) GetCreateModuleFlags(ctx context.Context, req *connect.Request[v11.GetCreateModuleFlagsRequest]) (*connect.Response[v11.GetCreateModuleFlagsResponse], error) { return c.getCreateModuleFlags.CallUnary(ctx, req) } -// CreateModule calls xyz.block.ftl.v1.language.LanguageService.CreateModule. -func (c *languageServiceClient) CreateModule(ctx context.Context, req *connect.Request[language.CreateModuleRequest]) (*connect.Response[language.CreateModuleResponse], error) { +// CreateModule calls xyz.block.ftl.language.v1.LanguageService.CreateModule. +func (c *languageServiceClient) CreateModule(ctx context.Context, req *connect.Request[v11.CreateModuleRequest]) (*connect.Response[v11.CreateModuleResponse], error) { return c.createModule.CallUnary(ctx, req) } -// ModuleConfigDefaults calls xyz.block.ftl.v1.language.LanguageService.ModuleConfigDefaults. -func (c *languageServiceClient) ModuleConfigDefaults(ctx context.Context, req *connect.Request[language.ModuleConfigDefaultsRequest]) (*connect.Response[language.ModuleConfigDefaultsResponse], error) { +// ModuleConfigDefaults calls xyz.block.ftl.language.v1.LanguageService.ModuleConfigDefaults. +func (c *languageServiceClient) ModuleConfigDefaults(ctx context.Context, req *connect.Request[v11.ModuleConfigDefaultsRequest]) (*connect.Response[v11.ModuleConfigDefaultsResponse], error) { return c.moduleConfigDefaults.CallUnary(ctx, req) } -// GetDependencies calls xyz.block.ftl.v1.language.LanguageService.GetDependencies. -func (c *languageServiceClient) GetDependencies(ctx context.Context, req *connect.Request[language.DependenciesRequest]) (*connect.Response[language.DependenciesResponse], error) { +// GetDependencies calls xyz.block.ftl.language.v1.LanguageService.GetDependencies. +func (c *languageServiceClient) GetDependencies(ctx context.Context, req *connect.Request[v11.GetDependenciesRequest]) (*connect.Response[v11.GetDependenciesResponse], error) { return c.getDependencies.CallUnary(ctx, req) } -// Build calls xyz.block.ftl.v1.language.LanguageService.Build. -func (c *languageServiceClient) Build(ctx context.Context, req *connect.Request[language.BuildRequest]) (*connect.ServerStreamForClient[language.BuildEvent], error) { +// Build calls xyz.block.ftl.language.v1.LanguageService.Build. +func (c *languageServiceClient) Build(ctx context.Context, req *connect.Request[v11.BuildRequest]) (*connect.ServerStreamForClient[v11.BuildResponse], error) { return c.build.CallServerStream(ctx, req) } -// BuildContextUpdated calls xyz.block.ftl.v1.language.LanguageService.BuildContextUpdated. -func (c *languageServiceClient) BuildContextUpdated(ctx context.Context, req *connect.Request[language.BuildContextUpdatedRequest]) (*connect.Response[language.BuildContextUpdatedResponse], error) { +// BuildContextUpdated calls xyz.block.ftl.language.v1.LanguageService.BuildContextUpdated. +func (c *languageServiceClient) BuildContextUpdated(ctx context.Context, req *connect.Request[v11.BuildContextUpdatedRequest]) (*connect.Response[v11.BuildContextUpdatedResponse], error) { return c.buildContextUpdated.CallUnary(ctx, req) } -// GenerateStubs calls xyz.block.ftl.v1.language.LanguageService.GenerateStubs. -func (c *languageServiceClient) GenerateStubs(ctx context.Context, req *connect.Request[language.GenerateStubsRequest]) (*connect.Response[language.GenerateStubsResponse], error) { +// GenerateStubs calls xyz.block.ftl.language.v1.LanguageService.GenerateStubs. +func (c *languageServiceClient) GenerateStubs(ctx context.Context, req *connect.Request[v11.GenerateStubsRequest]) (*connect.Response[v11.GenerateStubsResponse], error) { return c.generateStubs.CallUnary(ctx, req) } -// SyncStubReferences calls xyz.block.ftl.v1.language.LanguageService.SyncStubReferences. -func (c *languageServiceClient) SyncStubReferences(ctx context.Context, req *connect.Request[language.SyncStubReferencesRequest]) (*connect.Response[language.SyncStubReferencesResponse], error) { +// SyncStubReferences calls xyz.block.ftl.language.v1.LanguageService.SyncStubReferences. +func (c *languageServiceClient) SyncStubReferences(ctx context.Context, req *connect.Request[v11.SyncStubReferencesRequest]) (*connect.Response[v11.SyncStubReferencesResponse], error) { return c.syncStubReferences.CallUnary(ctx, req) } -// LanguageServiceHandler is an implementation of the xyz.block.ftl.v1.language.LanguageService +// LanguageServiceHandler is an implementation of the xyz.block.ftl.language.v1.LanguageService // service. type LanguageServiceHandler interface { // Ping service for readiness. Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) // Get language specific flags that can be used to create a new module. - GetCreateModuleFlags(context.Context, *connect.Request[language.GetCreateModuleFlagsRequest]) (*connect.Response[language.GetCreateModuleFlagsResponse], error) + GetCreateModuleFlags(context.Context, *connect.Request[v11.GetCreateModuleFlagsRequest]) (*connect.Response[v11.GetCreateModuleFlagsResponse], error) // Generates files for a new module with the requested name - CreateModule(context.Context, *connect.Request[language.CreateModuleRequest]) (*connect.Response[language.CreateModuleResponse], error) + CreateModule(context.Context, *connect.Request[v11.CreateModuleRequest]) (*connect.Response[v11.CreateModuleResponse], error) // Provide default values for ModuleConfig for values that are not configured in the ftl.toml file. - ModuleConfigDefaults(context.Context, *connect.Request[language.ModuleConfigDefaultsRequest]) (*connect.Response[language.ModuleConfigDefaultsResponse], error) + ModuleConfigDefaults(context.Context, *connect.Request[v11.ModuleConfigDefaultsRequest]) (*connect.Response[v11.ModuleConfigDefaultsResponse], error) // Extract dependencies for a module // FTL will ensure that these dependencies are built before requesting a build for this module. - GetDependencies(context.Context, *connect.Request[language.DependenciesRequest]) (*connect.Response[language.DependenciesResponse], error) + GetDependencies(context.Context, *connect.Request[v11.GetDependenciesRequest]) (*connect.Response[v11.GetDependenciesResponse], error) // Build the module and stream back build events. // // A BuildSuccess or BuildFailure event must be streamed back with the request's context id to indicate the @@ -251,7 +251,7 @@ type LanguageServiceHandler interface { // file changes and automatically rebuild as needed as long as this build request is alive. Each automactic // rebuild must include the latest build context id provided by the request or subsequent BuildContextUpdated // calls. - Build(context.Context, *connect.Request[language.BuildRequest], *connect.ServerStream[language.BuildEvent]) error + Build(context.Context, *connect.Request[v11.BuildRequest], *connect.ServerStream[v11.BuildResponse]) error // While a Build call with "rebuild_automatically" set is active, BuildContextUpdated is called whenever the // build context is updated. // @@ -260,7 +260,7 @@ type LanguageServiceHandler interface { // // If the plugin will not be able to return a BuildSuccess or BuildFailure, such as when there is no active // build stream, it must fail the BuildContextUpdated call. - BuildContextUpdated(context.Context, *connect.Request[language.BuildContextUpdatedRequest]) (*connect.Response[language.BuildContextUpdatedResponse], error) + BuildContextUpdated(context.Context, *connect.Request[v11.BuildContextUpdatedRequest]) (*connect.Response[v11.BuildContextUpdatedResponse], error) // Generate stubs for a module. // // Stubs allow modules to import other module's exported interface. If a language does not need this step, @@ -268,7 +268,7 @@ type LanguageServiceHandler interface { // // This call is not tied to the module that this plugin is responsible for. A plugin of each language will // be chosen to generate stubs for each module. - GenerateStubs(context.Context, *connect.Request[language.GenerateStubsRequest]) (*connect.Response[language.GenerateStubsResponse], error) + GenerateStubs(context.Context, *connect.Request[v11.GenerateStubsRequest]) (*connect.Response[v11.GenerateStubsResponse], error) // SyncStubReferences is called when module stubs have been updated. This allows the plugin to update // references to external modules, regardless of whether they are dependencies. // @@ -276,7 +276,7 @@ type LanguageServiceHandler interface { // import the modules when users start reference them. // // It is optional to do anything with this call. - SyncStubReferences(context.Context, *connect.Request[language.SyncStubReferencesRequest]) (*connect.Response[language.SyncStubReferencesResponse], error) + SyncStubReferences(context.Context, *connect.Request[v11.SyncStubReferencesRequest]) (*connect.Response[v11.SyncStubReferencesResponse], error) } // NewLanguageServiceHandler builds an HTTP handler from the service implementation. It returns the @@ -331,7 +331,7 @@ func NewLanguageServiceHandler(svc LanguageServiceHandler, opts ...connect.Handl svc.SyncStubReferences, opts..., ) - return "/xyz.block.ftl.v1.language.LanguageService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + return "/xyz.block.ftl.language.v1.LanguageService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case LanguageServicePingProcedure: languageServicePingHandler.ServeHTTP(w, r) @@ -361,37 +361,37 @@ func NewLanguageServiceHandler(svc LanguageServiceHandler, opts ...connect.Handl type UnimplementedLanguageServiceHandler struct{} func (UnimplementedLanguageServiceHandler) Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.Ping is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.Ping is not implemented")) } -func (UnimplementedLanguageServiceHandler) GetCreateModuleFlags(context.Context, *connect.Request[language.GetCreateModuleFlagsRequest]) (*connect.Response[language.GetCreateModuleFlagsResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.GetCreateModuleFlags is not implemented")) +func (UnimplementedLanguageServiceHandler) GetCreateModuleFlags(context.Context, *connect.Request[v11.GetCreateModuleFlagsRequest]) (*connect.Response[v11.GetCreateModuleFlagsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.GetCreateModuleFlags is not implemented")) } -func (UnimplementedLanguageServiceHandler) CreateModule(context.Context, *connect.Request[language.CreateModuleRequest]) (*connect.Response[language.CreateModuleResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.CreateModule is not implemented")) +func (UnimplementedLanguageServiceHandler) CreateModule(context.Context, *connect.Request[v11.CreateModuleRequest]) (*connect.Response[v11.CreateModuleResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.CreateModule is not implemented")) } -func (UnimplementedLanguageServiceHandler) ModuleConfigDefaults(context.Context, *connect.Request[language.ModuleConfigDefaultsRequest]) (*connect.Response[language.ModuleConfigDefaultsResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.ModuleConfigDefaults is not implemented")) +func (UnimplementedLanguageServiceHandler) ModuleConfigDefaults(context.Context, *connect.Request[v11.ModuleConfigDefaultsRequest]) (*connect.Response[v11.ModuleConfigDefaultsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.ModuleConfigDefaults is not implemented")) } -func (UnimplementedLanguageServiceHandler) GetDependencies(context.Context, *connect.Request[language.DependenciesRequest]) (*connect.Response[language.DependenciesResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.GetDependencies is not implemented")) +func (UnimplementedLanguageServiceHandler) GetDependencies(context.Context, *connect.Request[v11.GetDependenciesRequest]) (*connect.Response[v11.GetDependenciesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.GetDependencies is not implemented")) } -func (UnimplementedLanguageServiceHandler) Build(context.Context, *connect.Request[language.BuildRequest], *connect.ServerStream[language.BuildEvent]) error { - return connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.Build is not implemented")) +func (UnimplementedLanguageServiceHandler) Build(context.Context, *connect.Request[v11.BuildRequest], *connect.ServerStream[v11.BuildResponse]) error { + return connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.Build is not implemented")) } -func (UnimplementedLanguageServiceHandler) BuildContextUpdated(context.Context, *connect.Request[language.BuildContextUpdatedRequest]) (*connect.Response[language.BuildContextUpdatedResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.BuildContextUpdated is not implemented")) +func (UnimplementedLanguageServiceHandler) BuildContextUpdated(context.Context, *connect.Request[v11.BuildContextUpdatedRequest]) (*connect.Response[v11.BuildContextUpdatedResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.BuildContextUpdated is not implemented")) } -func (UnimplementedLanguageServiceHandler) GenerateStubs(context.Context, *connect.Request[language.GenerateStubsRequest]) (*connect.Response[language.GenerateStubsResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.GenerateStubs is not implemented")) +func (UnimplementedLanguageServiceHandler) GenerateStubs(context.Context, *connect.Request[v11.GenerateStubsRequest]) (*connect.Response[v11.GenerateStubsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.GenerateStubs is not implemented")) } -func (UnimplementedLanguageServiceHandler) SyncStubReferences(context.Context, *connect.Request[language.SyncStubReferencesRequest]) (*connect.Response[language.SyncStubReferencesResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.language.LanguageService.SyncStubReferences is not implemented")) +func (UnimplementedLanguageServiceHandler) SyncStubReferences(context.Context, *connect.Request[v11.SyncStubReferencesRequest]) (*connect.Response[v11.SyncStubReferencesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.language.v1.LanguageService.SyncStubReferences is not implemented")) } diff --git a/backend/protos/xyz/block/ftl/v1/language/mixins.go b/backend/protos/xyz/block/ftl/language/v1/mixins.go similarity index 95% rename from backend/protos/xyz/block/ftl/v1/language/mixins.go rename to backend/protos/xyz/block/ftl/language/v1/mixins.go index de07c6ce8a..df3d68a8ea 100644 --- a/backend/protos/xyz/block/ftl/v1/language/mixins.go +++ b/backend/protos/xyz/block/ftl/language/v1/mixins.go @@ -26,11 +26,11 @@ func ErrorsToProto(errs []builderrors.Error) *ErrorList { func levelFromProto(level Error_ErrorLevel) builderrors.ErrorLevel { switch level { - case Error_INFO: + case Error_ERROR_LEVEL_INFO: return builderrors.INFO - case Error_WARN: + case Error_ERROR_LEVEL_WARN: return builderrors.WARN - case Error_ERROR: + case Error_ERROR_LEVEL_ERROR: return builderrors.ERROR } panic(fmt.Sprintf("unhandled ErrorLevel %v", level)) @@ -39,11 +39,11 @@ func levelFromProto(level Error_ErrorLevel) builderrors.ErrorLevel { func levelToProto(level builderrors.ErrorLevel) Error_ErrorLevel { switch level { case builderrors.INFO: - return Error_INFO + return Error_ERROR_LEVEL_INFO case builderrors.WARN: - return Error_WARN + return Error_ERROR_LEVEL_WARN case builderrors.ERROR: - return Error_ERROR + return Error_ERROR_LEVEL_ERROR } panic(fmt.Sprintf("unhandled ErrorLevel %v", level)) } diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/plugin.pb.go b/backend/protos/xyz/block/ftl/provisioner/v1beta1/plugin.pb.go similarity index 57% rename from backend/protos/xyz/block/ftl/v1beta1/provisioner/plugin.pb.go rename to backend/protos/xyz/block/ftl/provisioner/v1beta1/plugin.pb.go index c5c4d0fc36..1e15c0eaa9 100644 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/plugin.pb.go +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/plugin.pb.go @@ -2,9 +2,9 @@ // versions: // protoc-gen-go v1.35.2 // protoc (unknown) -// source: xyz/block/ftl/v1beta1/provisioner/plugin.proto +// source: xyz/block/ftl/provisioner/v1beta1/plugin.proto -package provisioner +package provisionerpb import ( v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" @@ -24,19 +24,19 @@ const ( type ProvisionResponse_ProvisionResponseStatus int32 const ( - ProvisionResponse_UNKNOWN ProvisionResponse_ProvisionResponseStatus = 0 - ProvisionResponse_SUBMITTED ProvisionResponse_ProvisionResponseStatus = 1 + ProvisionResponse_PROVISION_RESPONSE_STATUS_UNSPECIFIED ProvisionResponse_ProvisionResponseStatus = 0 + ProvisionResponse_PROVISION_RESPONSE_STATUS_SUBMITTED ProvisionResponse_ProvisionResponseStatus = 1 ) // Enum value maps for ProvisionResponse_ProvisionResponseStatus. var ( ProvisionResponse_ProvisionResponseStatus_name = map[int32]string{ - 0: "UNKNOWN", - 1: "SUBMITTED", + 0: "PROVISION_RESPONSE_STATUS_UNSPECIFIED", + 1: "PROVISION_RESPONSE_STATUS_SUBMITTED", } ProvisionResponse_ProvisionResponseStatus_value = map[string]int32{ - "UNKNOWN": 0, - "SUBMITTED": 1, + "PROVISION_RESPONSE_STATUS_UNSPECIFIED": 0, + "PROVISION_RESPONSE_STATUS_SUBMITTED": 1, } ) @@ -51,11 +51,11 @@ func (x ProvisionResponse_ProvisionResponseStatus) String() string { } func (ProvisionResponse_ProvisionResponseStatus) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_enumTypes[0].Descriptor() + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_enumTypes[0].Descriptor() } func (ProvisionResponse_ProvisionResponseStatus) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_enumTypes[0] + return &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_enumTypes[0] } func (x ProvisionResponse_ProvisionResponseStatus) Number() protoreflect.EnumNumber { @@ -64,7 +64,7 @@ func (x ProvisionResponse_ProvisionResponseStatus) Number() protoreflect.EnumNum // Deprecated: Use ProvisionResponse_ProvisionResponseStatus.Descriptor instead. func (ProvisionResponse_ProvisionResponseStatus) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{2, 0} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{2, 0} } // ResourceContext is the context used to create a new resource @@ -81,7 +81,7 @@ type ResourceContext struct { func (x *ResourceContext) Reset() { *x = ResourceContext{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[0] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -93,7 +93,7 @@ func (x *ResourceContext) String() string { func (*ResourceContext) ProtoMessage() {} func (x *ResourceContext) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[0] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106,7 +106,7 @@ func (x *ResourceContext) ProtoReflect() protoreflect.Message { // Deprecated: Use ResourceContext.ProtoReflect.Descriptor instead. func (*ResourceContext) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{0} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{0} } func (x *ResourceContext) GetResource() *Resource { @@ -139,7 +139,7 @@ type ProvisionRequest struct { func (x *ProvisionRequest) Reset() { *x = ProvisionRequest{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[1] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -151,7 +151,7 @@ func (x *ProvisionRequest) String() string { func (*ProvisionRequest) ProtoMessage() {} func (x *ProvisionRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[1] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -164,7 +164,7 @@ func (x *ProvisionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ProvisionRequest.ProtoReflect.Descriptor instead. func (*ProvisionRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{1} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{1} } func (x *ProvisionRequest) GetFtlClusterId() string { @@ -201,12 +201,12 @@ type ProvisionResponse struct { unknownFields protoimpl.UnknownFields ProvisioningToken string `protobuf:"bytes,1,opt,name=provisioning_token,json=provisioningToken,proto3" json:"provisioning_token,omitempty"` - Status ProvisionResponse_ProvisionResponseStatus `protobuf:"varint,2,opt,name=status,proto3,enum=xyz.block.ftl.v1beta1.provisioner.ProvisionResponse_ProvisionResponseStatus" json:"status,omitempty"` + Status ProvisionResponse_ProvisionResponseStatus `protobuf:"varint,2,opt,name=status,proto3,enum=xyz.block.ftl.provisioner.v1beta1.ProvisionResponse_ProvisionResponseStatus" json:"status,omitempty"` } func (x *ProvisionResponse) Reset() { *x = ProvisionResponse{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[2] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -218,7 +218,7 @@ func (x *ProvisionResponse) String() string { func (*ProvisionResponse) ProtoMessage() {} func (x *ProvisionResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[2] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -231,7 +231,7 @@ func (x *ProvisionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ProvisionResponse.ProtoReflect.Descriptor instead. func (*ProvisionResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{2} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{2} } func (x *ProvisionResponse) GetProvisioningToken() string { @@ -245,7 +245,7 @@ func (x *ProvisionResponse) GetStatus() ProvisionResponse_ProvisionResponseStatu if x != nil { return x.Status } - return ProvisionResponse_UNKNOWN + return ProvisionResponse_PROVISION_RESPONSE_STATUS_UNSPECIFIED } type StatusRequest struct { @@ -262,7 +262,7 @@ type StatusRequest struct { func (x *StatusRequest) Reset() { *x = StatusRequest{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[3] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -274,7 +274,7 @@ func (x *StatusRequest) String() string { func (*StatusRequest) ProtoMessage() {} func (x *StatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[3] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -287,7 +287,7 @@ func (x *StatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. func (*StatusRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{3} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{3} } func (x *StatusRequest) GetProvisioningToken() string { @@ -318,7 +318,7 @@ type StatusResponse struct { func (x *StatusResponse) Reset() { *x = StatusResponse{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[4] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -330,7 +330,7 @@ func (x *StatusResponse) String() string { func (*StatusResponse) ProtoMessage() {} func (x *StatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[4] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -343,7 +343,7 @@ func (x *StatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. func (*StatusResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{4} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{4} } func (m *StatusResponse) GetStatus() isStatusResponse_Status { @@ -393,7 +393,7 @@ type PlanRequest struct { func (x *PlanRequest) Reset() { *x = PlanRequest{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[5] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -405,7 +405,7 @@ func (x *PlanRequest) String() string { func (*PlanRequest) ProtoMessage() {} func (x *PlanRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[5] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -418,7 +418,7 @@ func (x *PlanRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanRequest.ProtoReflect.Descriptor instead. func (*PlanRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{5} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{5} } func (x *PlanRequest) GetProvisioning() *ProvisionRequest { @@ -439,7 +439,7 @@ type PlanResponse struct { func (x *PlanResponse) Reset() { *x = PlanResponse{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[6] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -451,7 +451,7 @@ func (x *PlanResponse) String() string { func (*PlanResponse) ProtoMessage() {} func (x *PlanResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[6] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -464,7 +464,7 @@ func (x *PlanResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanResponse.ProtoReflect.Descriptor instead. func (*PlanResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{6} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{6} } func (x *PlanResponse) GetPlan() string { @@ -482,7 +482,7 @@ type StatusResponse_ProvisioningRunning struct { func (x *StatusResponse_ProvisioningRunning) Reset() { *x = StatusResponse_ProvisioningRunning{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[7] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -494,7 +494,7 @@ func (x *StatusResponse_ProvisioningRunning) String() string { func (*StatusResponse_ProvisioningRunning) ProtoMessage() {} func (x *StatusResponse_ProvisioningRunning) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[7] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -507,7 +507,7 @@ func (x *StatusResponse_ProvisioningRunning) ProtoReflect() protoreflect.Message // Deprecated: Use StatusResponse_ProvisioningRunning.ProtoReflect.Descriptor instead. func (*StatusResponse_ProvisioningRunning) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{4, 0} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{4, 0} } type StatusResponse_ProvisioningFailed struct { @@ -520,7 +520,7 @@ type StatusResponse_ProvisioningFailed struct { func (x *StatusResponse_ProvisioningFailed) Reset() { *x = StatusResponse_ProvisioningFailed{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[8] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -532,7 +532,7 @@ func (x *StatusResponse_ProvisioningFailed) String() string { func (*StatusResponse_ProvisioningFailed) ProtoMessage() {} func (x *StatusResponse_ProvisioningFailed) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[8] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -545,7 +545,7 @@ func (x *StatusResponse_ProvisioningFailed) ProtoReflect() protoreflect.Message // Deprecated: Use StatusResponse_ProvisioningFailed.ProtoReflect.Descriptor instead. func (*StatusResponse_ProvisioningFailed) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{4, 1} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{4, 1} } func (x *StatusResponse_ProvisioningFailed) GetErrorMessage() string { @@ -567,7 +567,7 @@ type StatusResponse_ProvisioningSuccess struct { func (x *StatusResponse_ProvisioningSuccess) Reset() { *x = StatusResponse_ProvisioningSuccess{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[9] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -579,7 +579,7 @@ func (x *StatusResponse_ProvisioningSuccess) String() string { func (*StatusResponse_ProvisioningSuccess) ProtoMessage() {} func (x *StatusResponse_ProvisioningSuccess) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[9] + mi := &file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -592,7 +592,7 @@ func (x *StatusResponse_ProvisioningSuccess) ProtoReflect() protoreflect.Message // Deprecated: Use StatusResponse_ProvisioningSuccess.ProtoReflect.Descriptor instead. func (*StatusResponse_ProvisioningSuccess) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP(), []int{4, 2} + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP(), []int{4, 2} } func (x *StatusResponse_ProvisioningSuccess) GetUpdatedResources() []*Resource { @@ -602,29 +602,29 @@ func (x *StatusResponse_ProvisioningSuccess) GetUpdatedResources() []*Resource { return nil } -var File_xyz_block_ftl_v1beta1_provisioner_plugin_proto protoreflect.FileDescriptor +var File_xyz_block_ftl_provisioner_v1beta1_plugin_proto protoreflect.FileDescriptor -var file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDesc = []byte{ +var file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, - 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x30, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x1a, 0x30, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, + 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x47, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x74, 0x6c, 0x5f, 0x63, 0x6c, 0x75, 0x73, @@ -633,160 +633,164 @@ var file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDesc = []byte{ 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x5a, 0x0a, 0x12, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x65, 0x78, 0x69, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x52, 0x65, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, - 0xdf, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x97, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x64, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x35, 0x0a, 0x17, 0x50, 0x72, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6d, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, - 0x01, 0x22, 0x98, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x58, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xa3, 0x03, 0x0a, - 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x61, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x45, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, - 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x12, 0x61, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x15, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x12, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x6f, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x58, - 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x66, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x57, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x22, 0x0a, 0x0c, 0x50, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6c, - 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x32, 0xb1, - 0x03, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x50, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x50, - 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x27, 0x0a, 0x23, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, + 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, + 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01, 0x22, 0x98, 0x01, 0x0a, 0x0d, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x58, 0x0a, 0x11, 0x64, 0x65, + 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x10, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x22, 0xa3, 0x03, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x48, + 0x00, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x61, 0x0a, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x15, 0x0a, + 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, + 0x6f, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x58, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x42, 0x08, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x66, 0x0a, 0x0b, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x0c, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x04, 0x50, 0x6c, - 0x61, 0x6e, 0x12, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x5b, 0x50, 0x01, 0x5a, 0x57, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, - 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x3b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, + 0x6e, 0x67, 0x22, 0x22, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x32, 0xb1, 0x03, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x67, 0x0a, 0x04, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x2e, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x5d, 0x50, 0x01, 0x5a, 0x59, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, + 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, + 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescOnce sync.Once - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescData = file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDesc + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescOnce sync.Once + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescData = file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDesc ) -func file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescGZIP() []byte { - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescOnce.Do(func() { - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescData) +func file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescGZIP() []byte { + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescOnce.Do(func() { + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescData) }) - return file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDescData -} - -var file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_goTypes = []any{ - (ProvisionResponse_ProvisionResponseStatus)(0), // 0: xyz.block.ftl.v1beta1.provisioner.ProvisionResponse.ProvisionResponseStatus - (*ResourceContext)(nil), // 1: xyz.block.ftl.v1beta1.provisioner.ResourceContext - (*ProvisionRequest)(nil), // 2: xyz.block.ftl.v1beta1.provisioner.ProvisionRequest - (*ProvisionResponse)(nil), // 3: xyz.block.ftl.v1beta1.provisioner.ProvisionResponse - (*StatusRequest)(nil), // 4: xyz.block.ftl.v1beta1.provisioner.StatusRequest - (*StatusResponse)(nil), // 5: xyz.block.ftl.v1beta1.provisioner.StatusResponse - (*PlanRequest)(nil), // 6: xyz.block.ftl.v1beta1.provisioner.PlanRequest - (*PlanResponse)(nil), // 7: xyz.block.ftl.v1beta1.provisioner.PlanResponse - (*StatusResponse_ProvisioningRunning)(nil), // 8: xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningRunning - (*StatusResponse_ProvisioningFailed)(nil), // 9: xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningFailed - (*StatusResponse_ProvisioningSuccess)(nil), // 10: xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningSuccess - (*Resource)(nil), // 11: xyz.block.ftl.v1beta1.provisioner.Resource + return file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDescData +} + +var file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_goTypes = []any{ + (ProvisionResponse_ProvisionResponseStatus)(0), // 0: xyz.block.ftl.provisioner.v1beta1.ProvisionResponse.ProvisionResponseStatus + (*ResourceContext)(nil), // 1: xyz.block.ftl.provisioner.v1beta1.ResourceContext + (*ProvisionRequest)(nil), // 2: xyz.block.ftl.provisioner.v1beta1.ProvisionRequest + (*ProvisionResponse)(nil), // 3: xyz.block.ftl.provisioner.v1beta1.ProvisionResponse + (*StatusRequest)(nil), // 4: xyz.block.ftl.provisioner.v1beta1.StatusRequest + (*StatusResponse)(nil), // 5: xyz.block.ftl.provisioner.v1beta1.StatusResponse + (*PlanRequest)(nil), // 6: xyz.block.ftl.provisioner.v1beta1.PlanRequest + (*PlanResponse)(nil), // 7: xyz.block.ftl.provisioner.v1beta1.PlanResponse + (*StatusResponse_ProvisioningRunning)(nil), // 8: xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningRunning + (*StatusResponse_ProvisioningFailed)(nil), // 9: xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningFailed + (*StatusResponse_ProvisioningSuccess)(nil), // 10: xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningSuccess + (*Resource)(nil), // 11: xyz.block.ftl.provisioner.v1beta1.Resource (*v1.PingRequest)(nil), // 12: xyz.block.ftl.v1.PingRequest (*v1.PingResponse)(nil), // 13: xyz.block.ftl.v1.PingResponse } -var file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_depIdxs = []int32{ - 11, // 0: xyz.block.ftl.v1beta1.provisioner.ResourceContext.resource:type_name -> xyz.block.ftl.v1beta1.provisioner.Resource - 11, // 1: xyz.block.ftl.v1beta1.provisioner.ResourceContext.dependencies:type_name -> xyz.block.ftl.v1beta1.provisioner.Resource - 11, // 2: xyz.block.ftl.v1beta1.provisioner.ProvisionRequest.existing_resources:type_name -> xyz.block.ftl.v1beta1.provisioner.Resource - 1, // 3: xyz.block.ftl.v1beta1.provisioner.ProvisionRequest.desired_resources:type_name -> xyz.block.ftl.v1beta1.provisioner.ResourceContext - 0, // 4: xyz.block.ftl.v1beta1.provisioner.ProvisionResponse.status:type_name -> xyz.block.ftl.v1beta1.provisioner.ProvisionResponse.ProvisionResponseStatus - 11, // 5: xyz.block.ftl.v1beta1.provisioner.StatusRequest.desired_resources:type_name -> xyz.block.ftl.v1beta1.provisioner.Resource - 8, // 6: xyz.block.ftl.v1beta1.provisioner.StatusResponse.running:type_name -> xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningRunning - 10, // 7: xyz.block.ftl.v1beta1.provisioner.StatusResponse.success:type_name -> xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningSuccess - 2, // 8: xyz.block.ftl.v1beta1.provisioner.PlanRequest.provisioning:type_name -> xyz.block.ftl.v1beta1.provisioner.ProvisionRequest - 11, // 9: xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningSuccess.updated_resources:type_name -> xyz.block.ftl.v1beta1.provisioner.Resource - 12, // 10: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 2, // 11: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Provision:input_type -> xyz.block.ftl.v1beta1.provisioner.ProvisionRequest - 6, // 12: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Plan:input_type -> xyz.block.ftl.v1beta1.provisioner.PlanRequest - 4, // 13: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Status:input_type -> xyz.block.ftl.v1beta1.provisioner.StatusRequest - 13, // 14: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 3, // 15: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Provision:output_type -> xyz.block.ftl.v1beta1.provisioner.ProvisionResponse - 7, // 16: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Plan:output_type -> xyz.block.ftl.v1beta1.provisioner.PlanResponse - 5, // 17: xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Status:output_type -> xyz.block.ftl.v1beta1.provisioner.StatusResponse +var file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_depIdxs = []int32{ + 11, // 0: xyz.block.ftl.provisioner.v1beta1.ResourceContext.resource:type_name -> xyz.block.ftl.provisioner.v1beta1.Resource + 11, // 1: xyz.block.ftl.provisioner.v1beta1.ResourceContext.dependencies:type_name -> xyz.block.ftl.provisioner.v1beta1.Resource + 11, // 2: xyz.block.ftl.provisioner.v1beta1.ProvisionRequest.existing_resources:type_name -> xyz.block.ftl.provisioner.v1beta1.Resource + 1, // 3: xyz.block.ftl.provisioner.v1beta1.ProvisionRequest.desired_resources:type_name -> xyz.block.ftl.provisioner.v1beta1.ResourceContext + 0, // 4: xyz.block.ftl.provisioner.v1beta1.ProvisionResponse.status:type_name -> xyz.block.ftl.provisioner.v1beta1.ProvisionResponse.ProvisionResponseStatus + 11, // 5: xyz.block.ftl.provisioner.v1beta1.StatusRequest.desired_resources:type_name -> xyz.block.ftl.provisioner.v1beta1.Resource + 8, // 6: xyz.block.ftl.provisioner.v1beta1.StatusResponse.running:type_name -> xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningRunning + 10, // 7: xyz.block.ftl.provisioner.v1beta1.StatusResponse.success:type_name -> xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningSuccess + 2, // 8: xyz.block.ftl.provisioner.v1beta1.PlanRequest.provisioning:type_name -> xyz.block.ftl.provisioner.v1beta1.ProvisionRequest + 11, // 9: xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningSuccess.updated_resources:type_name -> xyz.block.ftl.provisioner.v1beta1.Resource + 12, // 10: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Ping:input_type -> xyz.block.ftl.v1.PingRequest + 2, // 11: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Provision:input_type -> xyz.block.ftl.provisioner.v1beta1.ProvisionRequest + 6, // 12: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Plan:input_type -> xyz.block.ftl.provisioner.v1beta1.PlanRequest + 4, // 13: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Status:input_type -> xyz.block.ftl.provisioner.v1beta1.StatusRequest + 13, // 14: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Ping:output_type -> xyz.block.ftl.v1.PingResponse + 3, // 15: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Provision:output_type -> xyz.block.ftl.provisioner.v1beta1.ProvisionResponse + 7, // 16: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Plan:output_type -> xyz.block.ftl.provisioner.v1beta1.PlanResponse + 5, // 17: xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Status:output_type -> xyz.block.ftl.provisioner.v1beta1.StatusResponse 14, // [14:18] is the sub-list for method output_type 10, // [10:14] is the sub-list for method input_type 10, // [10:10] is the sub-list for extension type_name @@ -794,13 +798,13 @@ var file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_depIdxs = []int32{ 0, // [0:10] is the sub-list for field type_name } -func init() { file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_init() } -func file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_init() { - if File_xyz_block_ftl_v1beta1_provisioner_plugin_proto != nil { +func init() { file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_init() } +func file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_init() { + if File_xyz_block_ftl_provisioner_v1beta1_plugin_proto != nil { return } - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_init() - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes[4].OneofWrappers = []any{ + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_init() + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes[4].OneofWrappers = []any{ (*StatusResponse_Running)(nil), (*StatusResponse_Success)(nil), } @@ -808,19 +812,19 @@ func file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDesc, + RawDescriptor: file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDesc, NumEnums: 1, NumMessages: 10, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_goTypes, - DependencyIndexes: file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_depIdxs, - EnumInfos: file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_enumTypes, - MessageInfos: file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_msgTypes, + GoTypes: file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_depIdxs, + EnumInfos: file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_enumTypes, + MessageInfos: file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_msgTypes, }.Build() - File_xyz_block_ftl_v1beta1_provisioner_plugin_proto = out.File - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_rawDesc = nil - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_goTypes = nil - file_xyz_block_ftl_v1beta1_provisioner_plugin_proto_depIdxs = nil + File_xyz_block_ftl_provisioner_v1beta1_plugin_proto = out.File + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_rawDesc = nil + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_goTypes = nil + file_xyz_block_ftl_provisioner_v1beta1_plugin_proto_depIdxs = nil } diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/plugin.proto b/backend/protos/xyz/block/ftl/provisioner/v1beta1/plugin.proto similarity index 89% rename from backend/protos/xyz/block/ftl/v1beta1/provisioner/plugin.proto rename to backend/protos/xyz/block/ftl/provisioner/v1beta1/plugin.proto index f3653dc1cb..27855a39cb 100644 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/plugin.proto +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/plugin.proto @@ -1,11 +1,11 @@ syntax = "proto3"; -package xyz.block.ftl.v1beta1.provisioner; +package xyz.block.ftl.provisioner.v1beta1; +import "xyz/block/ftl/provisioner/v1beta1/resource.proto"; import "xyz/block/ftl/v1/ftl.proto"; -import "xyz/block/ftl/v1beta1/provisioner/resource.proto"; -option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner;provisioner"; +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1;provisionerpb"; option java_multiple_files = true; // ResourceContext is the context used to create a new resource @@ -30,8 +30,8 @@ message ProvisionRequest { message ProvisionResponse { enum ProvisionResponseStatus { - UNKNOWN = 0; - SUBMITTED = 1; + PROVISION_RESPONSE_STATUS_UNSPECIFIED = 0; + PROVISION_RESPONSE_STATUS_SUBMITTED = 1; } string provisioning_token = 1; diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect/plugin.connect.go b/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect/plugin.connect.go similarity index 65% rename from backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect/plugin.connect.go rename to backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect/plugin.connect.go index 0ec4d18e1a..522bb7b69a 100644 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect/plugin.connect.go +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect/plugin.connect.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-connect-go. DO NOT EDIT. // -// Source: xyz/block/ftl/v1beta1/provisioner/plugin.proto +// Source: xyz/block/ftl/provisioner/v1beta1/plugin.proto -package provisionerconnect +package provisionerpbconnect import ( connect "connectrpc.com/connect" context "context" errors "errors" + v1beta1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" http "net/http" strings "strings" ) @@ -23,7 +23,7 @@ const _ = connect.IsAtLeastVersion0_1_0 const ( // ProvisionerPluginServiceName is the fully-qualified name of the ProvisionerPluginService service. - ProvisionerPluginServiceName = "xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService" + ProvisionerPluginServiceName = "xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService" ) // These constants are the fully-qualified names of the RPCs defined in this package. They're @@ -36,29 +36,29 @@ const ( const ( // ProvisionerPluginServicePingProcedure is the fully-qualified name of the // ProvisionerPluginService's Ping RPC. - ProvisionerPluginServicePingProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService/Ping" + ProvisionerPluginServicePingProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService/Ping" // ProvisionerPluginServiceProvisionProcedure is the fully-qualified name of the // ProvisionerPluginService's Provision RPC. - ProvisionerPluginServiceProvisionProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService/Provision" + ProvisionerPluginServiceProvisionProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService/Provision" // ProvisionerPluginServicePlanProcedure is the fully-qualified name of the // ProvisionerPluginService's Plan RPC. - ProvisionerPluginServicePlanProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService/Plan" + ProvisionerPluginServicePlanProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService/Plan" // ProvisionerPluginServiceStatusProcedure is the fully-qualified name of the // ProvisionerPluginService's Status RPC. - ProvisionerPluginServiceStatusProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService/Status" + ProvisionerPluginServiceStatusProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService/Status" ) // ProvisionerPluginServiceClient is a client for the -// xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService service. +// xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService service. type ProvisionerPluginServiceClient interface { Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) - Provision(context.Context, *connect.Request[provisioner.ProvisionRequest]) (*connect.Response[provisioner.ProvisionResponse], error) - Plan(context.Context, *connect.Request[provisioner.PlanRequest]) (*connect.Response[provisioner.PlanResponse], error) - Status(context.Context, *connect.Request[provisioner.StatusRequest]) (*connect.Response[provisioner.StatusResponse], error) + Provision(context.Context, *connect.Request[v1beta1.ProvisionRequest]) (*connect.Response[v1beta1.ProvisionResponse], error) + Plan(context.Context, *connect.Request[v1beta1.PlanRequest]) (*connect.Response[v1beta1.PlanResponse], error) + Status(context.Context, *connect.Request[v1beta1.StatusRequest]) (*connect.Response[v1beta1.StatusResponse], error) } // NewProvisionerPluginServiceClient constructs a client for the -// xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService service. By default, it uses the +// xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService service. By default, it uses the // Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and sends // uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or // connect.WithGRPCWeb() options. @@ -73,17 +73,17 @@ func NewProvisionerPluginServiceClient(httpClient connect.HTTPClient, baseURL st baseURL+ProvisionerPluginServicePingProcedure, opts..., ), - provision: connect.NewClient[provisioner.ProvisionRequest, provisioner.ProvisionResponse]( + provision: connect.NewClient[v1beta1.ProvisionRequest, v1beta1.ProvisionResponse]( httpClient, baseURL+ProvisionerPluginServiceProvisionProcedure, opts..., ), - plan: connect.NewClient[provisioner.PlanRequest, provisioner.PlanResponse]( + plan: connect.NewClient[v1beta1.PlanRequest, v1beta1.PlanResponse]( httpClient, baseURL+ProvisionerPluginServicePlanProcedure, opts..., ), - status: connect.NewClient[provisioner.StatusRequest, provisioner.StatusResponse]( + status: connect.NewClient[v1beta1.StatusRequest, v1beta1.StatusResponse]( httpClient, baseURL+ProvisionerPluginServiceStatusProcedure, opts..., @@ -94,38 +94,38 @@ func NewProvisionerPluginServiceClient(httpClient connect.HTTPClient, baseURL st // provisionerPluginServiceClient implements ProvisionerPluginServiceClient. type provisionerPluginServiceClient struct { ping *connect.Client[v1.PingRequest, v1.PingResponse] - provision *connect.Client[provisioner.ProvisionRequest, provisioner.ProvisionResponse] - plan *connect.Client[provisioner.PlanRequest, provisioner.PlanResponse] - status *connect.Client[provisioner.StatusRequest, provisioner.StatusResponse] + provision *connect.Client[v1beta1.ProvisionRequest, v1beta1.ProvisionResponse] + plan *connect.Client[v1beta1.PlanRequest, v1beta1.PlanResponse] + status *connect.Client[v1beta1.StatusRequest, v1beta1.StatusResponse] } -// Ping calls xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Ping. +// Ping calls xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Ping. func (c *provisionerPluginServiceClient) Ping(ctx context.Context, req *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { return c.ping.CallUnary(ctx, req) } -// Provision calls xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Provision. -func (c *provisionerPluginServiceClient) Provision(ctx context.Context, req *connect.Request[provisioner.ProvisionRequest]) (*connect.Response[provisioner.ProvisionResponse], error) { +// Provision calls xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Provision. +func (c *provisionerPluginServiceClient) Provision(ctx context.Context, req *connect.Request[v1beta1.ProvisionRequest]) (*connect.Response[v1beta1.ProvisionResponse], error) { return c.provision.CallUnary(ctx, req) } -// Plan calls xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Plan. -func (c *provisionerPluginServiceClient) Plan(ctx context.Context, req *connect.Request[provisioner.PlanRequest]) (*connect.Response[provisioner.PlanResponse], error) { +// Plan calls xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Plan. +func (c *provisionerPluginServiceClient) Plan(ctx context.Context, req *connect.Request[v1beta1.PlanRequest]) (*connect.Response[v1beta1.PlanResponse], error) { return c.plan.CallUnary(ctx, req) } -// Status calls xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Status. -func (c *provisionerPluginServiceClient) Status(ctx context.Context, req *connect.Request[provisioner.StatusRequest]) (*connect.Response[provisioner.StatusResponse], error) { +// Status calls xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Status. +func (c *provisionerPluginServiceClient) Status(ctx context.Context, req *connect.Request[v1beta1.StatusRequest]) (*connect.Response[v1beta1.StatusResponse], error) { return c.status.CallUnary(ctx, req) } // ProvisionerPluginServiceHandler is an implementation of the -// xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService service. +// xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService service. type ProvisionerPluginServiceHandler interface { Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) - Provision(context.Context, *connect.Request[provisioner.ProvisionRequest]) (*connect.Response[provisioner.ProvisionResponse], error) - Plan(context.Context, *connect.Request[provisioner.PlanRequest]) (*connect.Response[provisioner.PlanResponse], error) - Status(context.Context, *connect.Request[provisioner.StatusRequest]) (*connect.Response[provisioner.StatusResponse], error) + Provision(context.Context, *connect.Request[v1beta1.ProvisionRequest]) (*connect.Response[v1beta1.ProvisionResponse], error) + Plan(context.Context, *connect.Request[v1beta1.PlanRequest]) (*connect.Response[v1beta1.PlanResponse], error) + Status(context.Context, *connect.Request[v1beta1.StatusRequest]) (*connect.Response[v1beta1.StatusResponse], error) } // NewProvisionerPluginServiceHandler builds an HTTP handler from the service implementation. It @@ -154,7 +154,7 @@ func NewProvisionerPluginServiceHandler(svc ProvisionerPluginServiceHandler, opt svc.Status, opts..., ) - return "/xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + return "/xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case ProvisionerPluginServicePingProcedure: provisionerPluginServicePingHandler.ServeHTTP(w, r) @@ -174,17 +174,17 @@ func NewProvisionerPluginServiceHandler(svc ProvisionerPluginServiceHandler, opt type UnimplementedProvisionerPluginServiceHandler struct{} func (UnimplementedProvisionerPluginServiceHandler) Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Ping is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Ping is not implemented")) } -func (UnimplementedProvisionerPluginServiceHandler) Provision(context.Context, *connect.Request[provisioner.ProvisionRequest]) (*connect.Response[provisioner.ProvisionResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Provision is not implemented")) +func (UnimplementedProvisionerPluginServiceHandler) Provision(context.Context, *connect.Request[v1beta1.ProvisionRequest]) (*connect.Response[v1beta1.ProvisionResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Provision is not implemented")) } -func (UnimplementedProvisionerPluginServiceHandler) Plan(context.Context, *connect.Request[provisioner.PlanRequest]) (*connect.Response[provisioner.PlanResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Plan is not implemented")) +func (UnimplementedProvisionerPluginServiceHandler) Plan(context.Context, *connect.Request[v1beta1.PlanRequest]) (*connect.Response[v1beta1.PlanResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Plan is not implemented")) } -func (UnimplementedProvisionerPluginServiceHandler) Status(context.Context, *connect.Request[provisioner.StatusRequest]) (*connect.Response[provisioner.StatusResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Status is not implemented")) +func (UnimplementedProvisionerPluginServiceHandler) Status(context.Context, *connect.Request[v1beta1.StatusRequest]) (*connect.Response[v1beta1.StatusResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Status is not implemented")) } diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect/service.connect.go b/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect/service.connect.go similarity index 85% rename from backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect/service.connect.go rename to backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect/service.connect.go index f08b3e6898..810cd8edc4 100644 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect/service.connect.go +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect/service.connect.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-connect-go. DO NOT EDIT. // -// Source: xyz/block/ftl/v1beta1/provisioner/service.proto +// Source: xyz/block/ftl/provisioner/v1beta1/service.proto -package provisionerconnect +package provisionerpbconnect import ( connect "connectrpc.com/connect" context "context" errors "errors" + _ "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - _ "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" http "net/http" strings "strings" ) @@ -23,7 +23,7 @@ const _ = connect.IsAtLeastVersion1_7_0 const ( // ProvisionerServiceName is the fully-qualified name of the ProvisionerService service. - ProvisionerServiceName = "xyz.block.ftl.v1beta1.provisioner.ProvisionerService" + ProvisionerServiceName = "xyz.block.ftl.provisioner.v1beta1.ProvisionerService" ) // These constants are the fully-qualified names of the RPCs defined in this package. They're @@ -35,28 +35,28 @@ const ( // period. const ( // ProvisionerServicePingProcedure is the fully-qualified name of the ProvisionerService's Ping RPC. - ProvisionerServicePingProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/Ping" + ProvisionerServicePingProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/Ping" // ProvisionerServiceStatusProcedure is the fully-qualified name of the ProvisionerService's Status // RPC. - ProvisionerServiceStatusProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/Status" + ProvisionerServiceStatusProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/Status" // ProvisionerServiceGetArtefactDiffsProcedure is the fully-qualified name of the // ProvisionerService's GetArtefactDiffs RPC. - ProvisionerServiceGetArtefactDiffsProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/GetArtefactDiffs" + ProvisionerServiceGetArtefactDiffsProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/GetArtefactDiffs" // ProvisionerServiceUploadArtefactProcedure is the fully-qualified name of the ProvisionerService's // UploadArtefact RPC. - ProvisionerServiceUploadArtefactProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/UploadArtefact" + ProvisionerServiceUploadArtefactProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/UploadArtefact" // ProvisionerServiceCreateDeploymentProcedure is the fully-qualified name of the // ProvisionerService's CreateDeployment RPC. - ProvisionerServiceCreateDeploymentProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/CreateDeployment" + ProvisionerServiceCreateDeploymentProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/CreateDeployment" // ProvisionerServiceUpdateDeployProcedure is the fully-qualified name of the ProvisionerService's // UpdateDeploy RPC. - ProvisionerServiceUpdateDeployProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/UpdateDeploy" + ProvisionerServiceUpdateDeployProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/UpdateDeploy" // ProvisionerServiceReplaceDeployProcedure is the fully-qualified name of the ProvisionerService's // ReplaceDeploy RPC. - ProvisionerServiceReplaceDeployProcedure = "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/ReplaceDeploy" + ProvisionerServiceReplaceDeployProcedure = "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/ReplaceDeploy" ) -// ProvisionerServiceClient is a client for the xyz.block.ftl.v1beta1.provisioner.ProvisionerService +// ProvisionerServiceClient is a client for the xyz.block.ftl.provisioner.v1beta1.ProvisionerService // service. type ProvisionerServiceClient interface { Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) @@ -69,7 +69,7 @@ type ProvisionerServiceClient interface { } // NewProvisionerServiceClient constructs a client for the -// xyz.block.ftl.v1beta1.provisioner.ProvisionerService service. By default, it uses the Connect +// xyz.block.ftl.provisioner.v1beta1.ProvisionerService service. By default, it uses the Connect // protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed // requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or // connect.WithGRPCWeb() options. @@ -129,43 +129,43 @@ type provisionerServiceClient struct { replaceDeploy *connect.Client[v1.ReplaceDeployRequest, v1.ReplaceDeployResponse] } -// Ping calls xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Ping. +// Ping calls xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Ping. func (c *provisionerServiceClient) Ping(ctx context.Context, req *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { return c.ping.CallUnary(ctx, req) } -// Status calls xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Status. +// Status calls xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Status. func (c *provisionerServiceClient) Status(ctx context.Context, req *connect.Request[v1.StatusRequest]) (*connect.Response[v1.StatusResponse], error) { return c.status.CallUnary(ctx, req) } -// GetArtefactDiffs calls xyz.block.ftl.v1beta1.provisioner.ProvisionerService.GetArtefactDiffs. +// GetArtefactDiffs calls xyz.block.ftl.provisioner.v1beta1.ProvisionerService.GetArtefactDiffs. func (c *provisionerServiceClient) GetArtefactDiffs(ctx context.Context, req *connect.Request[v1.GetArtefactDiffsRequest]) (*connect.Response[v1.GetArtefactDiffsResponse], error) { return c.getArtefactDiffs.CallUnary(ctx, req) } -// UploadArtefact calls xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UploadArtefact. +// UploadArtefact calls xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UploadArtefact. func (c *provisionerServiceClient) UploadArtefact(ctx context.Context, req *connect.Request[v1.UploadArtefactRequest]) (*connect.Response[v1.UploadArtefactResponse], error) { return c.uploadArtefact.CallUnary(ctx, req) } -// CreateDeployment calls xyz.block.ftl.v1beta1.provisioner.ProvisionerService.CreateDeployment. +// CreateDeployment calls xyz.block.ftl.provisioner.v1beta1.ProvisionerService.CreateDeployment. func (c *provisionerServiceClient) CreateDeployment(ctx context.Context, req *connect.Request[v1.CreateDeploymentRequest]) (*connect.Response[v1.CreateDeploymentResponse], error) { return c.createDeployment.CallUnary(ctx, req) } -// UpdateDeploy calls xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UpdateDeploy. +// UpdateDeploy calls xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UpdateDeploy. func (c *provisionerServiceClient) UpdateDeploy(ctx context.Context, req *connect.Request[v1.UpdateDeployRequest]) (*connect.Response[v1.UpdateDeployResponse], error) { return c.updateDeploy.CallUnary(ctx, req) } -// ReplaceDeploy calls xyz.block.ftl.v1beta1.provisioner.ProvisionerService.ReplaceDeploy. +// ReplaceDeploy calls xyz.block.ftl.provisioner.v1beta1.ProvisionerService.ReplaceDeploy. func (c *provisionerServiceClient) ReplaceDeploy(ctx context.Context, req *connect.Request[v1.ReplaceDeployRequest]) (*connect.Response[v1.ReplaceDeployResponse], error) { return c.replaceDeploy.CallUnary(ctx, req) } // ProvisionerServiceHandler is an implementation of the -// xyz.block.ftl.v1beta1.provisioner.ProvisionerService service. +// xyz.block.ftl.provisioner.v1beta1.ProvisionerService service. type ProvisionerServiceHandler interface { Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) Status(context.Context, *connect.Request[v1.StatusRequest]) (*connect.Response[v1.StatusResponse], error) @@ -218,7 +218,7 @@ func NewProvisionerServiceHandler(svc ProvisionerServiceHandler, opts ...connect svc.ReplaceDeploy, opts..., ) - return "/xyz.block.ftl.v1beta1.provisioner.ProvisionerService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + return "/xyz.block.ftl.provisioner.v1beta1.ProvisionerService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case ProvisionerServicePingProcedure: provisionerServicePingHandler.ServeHTTP(w, r) @@ -244,29 +244,29 @@ func NewProvisionerServiceHandler(svc ProvisionerServiceHandler, opts ...connect type UnimplementedProvisionerServiceHandler struct{} func (UnimplementedProvisionerServiceHandler) Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Ping is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Ping is not implemented")) } func (UnimplementedProvisionerServiceHandler) Status(context.Context, *connect.Request[v1.StatusRequest]) (*connect.Response[v1.StatusResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Status is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Status is not implemented")) } func (UnimplementedProvisionerServiceHandler) GetArtefactDiffs(context.Context, *connect.Request[v1.GetArtefactDiffsRequest]) (*connect.Response[v1.GetArtefactDiffsResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerService.GetArtefactDiffs is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerService.GetArtefactDiffs is not implemented")) } func (UnimplementedProvisionerServiceHandler) UploadArtefact(context.Context, *connect.Request[v1.UploadArtefactRequest]) (*connect.Response[v1.UploadArtefactResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UploadArtefact is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UploadArtefact is not implemented")) } func (UnimplementedProvisionerServiceHandler) CreateDeployment(context.Context, *connect.Request[v1.CreateDeploymentRequest]) (*connect.Response[v1.CreateDeploymentResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerService.CreateDeployment is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerService.CreateDeployment is not implemented")) } func (UnimplementedProvisionerServiceHandler) UpdateDeploy(context.Context, *connect.Request[v1.UpdateDeployRequest]) (*connect.Response[v1.UpdateDeployResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UpdateDeploy is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UpdateDeploy is not implemented")) } func (UnimplementedProvisionerServiceHandler) ReplaceDeploy(context.Context, *connect.Request[v1.ReplaceDeployRequest]) (*connect.Response[v1.ReplaceDeployResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1beta1.provisioner.ProvisionerService.ReplaceDeploy is not implemented")) + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.provisioner.v1beta1.ProvisionerService.ReplaceDeploy is not implemented")) } diff --git a/backend/protos/xyz/block/ftl/provisioner/v1beta1/resource.pb.go b/backend/protos/xyz/block/ftl/provisioner/v1beta1/resource.pb.go new file mode 100644 index 0000000000..8973cb609b --- /dev/null +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/resource.pb.go @@ -0,0 +1,1016 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc (unknown) +// source: xyz/block/ftl/provisioner/v1beta1/resource.proto + +package provisionerpb + +import ( + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" + v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Resource is an abstract resource extracted from FTL Schema. +type Resource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // id unique within the module + ResourceId string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"` + // Types that are assignable to Resource: + // + // *Resource_Postgres + // *Resource_Mysql + // *Resource_Module + // *Resource_SqlMigration + // *Resource_Topic + // *Resource_Subscription + // *Resource_Runner + Resource isResource_Resource `protobuf_oneof:"resource"` +} + +func (x *Resource) Reset() { + *x = Resource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Resource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Resource) ProtoMessage() {} + +func (x *Resource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Resource.ProtoReflect.Descriptor instead. +func (*Resource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{0} +} + +func (x *Resource) GetResourceId() string { + if x != nil { + return x.ResourceId + } + return "" +} + +func (m *Resource) GetResource() isResource_Resource { + if m != nil { + return m.Resource + } + return nil +} + +func (x *Resource) GetPostgres() *PostgresResource { + if x, ok := x.GetResource().(*Resource_Postgres); ok { + return x.Postgres + } + return nil +} + +func (x *Resource) GetMysql() *MysqlResource { + if x, ok := x.GetResource().(*Resource_Mysql); ok { + return x.Mysql + } + return nil +} + +func (x *Resource) GetModule() *ModuleResource { + if x, ok := x.GetResource().(*Resource_Module); ok { + return x.Module + } + return nil +} + +func (x *Resource) GetSqlMigration() *SqlMigrationResource { + if x, ok := x.GetResource().(*Resource_SqlMigration); ok { + return x.SqlMigration + } + return nil +} + +func (x *Resource) GetTopic() *TopicResource { + if x, ok := x.GetResource().(*Resource_Topic); ok { + return x.Topic + } + return nil +} + +func (x *Resource) GetSubscription() *SubscriptionResource { + if x, ok := x.GetResource().(*Resource_Subscription); ok { + return x.Subscription + } + return nil +} + +func (x *Resource) GetRunner() *RunnerResource { + if x, ok := x.GetResource().(*Resource_Runner); ok { + return x.Runner + } + return nil +} + +type isResource_Resource interface { + isResource_Resource() +} + +type Resource_Postgres struct { + Postgres *PostgresResource `protobuf:"bytes,102,opt,name=postgres,proto3,oneof"` +} + +type Resource_Mysql struct { + Mysql *MysqlResource `protobuf:"bytes,103,opt,name=mysql,proto3,oneof"` +} + +type Resource_Module struct { + Module *ModuleResource `protobuf:"bytes,104,opt,name=module,proto3,oneof"` +} + +type Resource_SqlMigration struct { + SqlMigration *SqlMigrationResource `protobuf:"bytes,105,opt,name=sql_migration,json=sqlMigration,proto3,oneof"` +} + +type Resource_Topic struct { + Topic *TopicResource `protobuf:"bytes,106,opt,name=topic,proto3,oneof"` +} + +type Resource_Subscription struct { + Subscription *SubscriptionResource `protobuf:"bytes,107,opt,name=subscription,proto3,oneof"` +} + +type Resource_Runner struct { + Runner *RunnerResource `protobuf:"bytes,108,opt,name=runner,proto3,oneof"` +} + +func (*Resource_Postgres) isResource_Resource() {} + +func (*Resource_Mysql) isResource_Resource() {} + +func (*Resource_Module) isResource_Resource() {} + +func (*Resource_SqlMigration) isResource_Resource() {} + +func (*Resource_Topic) isResource_Resource() {} + +func (*Resource_Subscription) isResource_Resource() {} + +func (*Resource_Runner) isResource_Resource() {} + +type PostgresResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *v1.DatabaseRuntime `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` +} + +func (x *PostgresResource) Reset() { + *x = PostgresResource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PostgresResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostgresResource) ProtoMessage() {} + +func (x *PostgresResource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostgresResource.ProtoReflect.Descriptor instead. +func (*PostgresResource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{1} +} + +func (x *PostgresResource) GetOutput() *v1.DatabaseRuntime { + if x != nil { + return x.Output + } + return nil +} + +type MysqlResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *v1.DatabaseRuntime `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` +} + +func (x *MysqlResource) Reset() { + *x = MysqlResource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MysqlResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MysqlResource) ProtoMessage() {} + +func (x *MysqlResource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MysqlResource.ProtoReflect.Descriptor instead. +func (*MysqlResource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{2} +} + +func (x *MysqlResource) GetOutput() *v1.DatabaseRuntime { + if x != nil { + return x.Output + } + return nil +} + +type SqlMigrationResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *SqlMigrationResource_SqlMigrationResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Digest string `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"` +} + +func (x *SqlMigrationResource) Reset() { + *x = SqlMigrationResource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SqlMigrationResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SqlMigrationResource) ProtoMessage() {} + +func (x *SqlMigrationResource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SqlMigrationResource.ProtoReflect.Descriptor instead. +func (*SqlMigrationResource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{3} +} + +func (x *SqlMigrationResource) GetOutput() *SqlMigrationResource_SqlMigrationResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +func (x *SqlMigrationResource) GetDigest() string { + if x != nil { + return x.Digest + } + return "" +} + +type ModuleResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *ModuleResource_ModuleResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Schema *v1.Module `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` + Artefacts []*v11.DeploymentArtefact `protobuf:"bytes,3,rep,name=artefacts,proto3" json:"artefacts,omitempty"` +} + +func (x *ModuleResource) Reset() { + *x = ModuleResource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModuleResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModuleResource) ProtoMessage() {} + +func (x *ModuleResource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModuleResource.ProtoReflect.Descriptor instead. +func (*ModuleResource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{4} +} + +func (x *ModuleResource) GetOutput() *ModuleResource_ModuleResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +func (x *ModuleResource) GetSchema() *v1.Module { + if x != nil { + return x.Schema + } + return nil +} + +func (x *ModuleResource) GetArtefacts() []*v11.DeploymentArtefact { + if x != nil { + return x.Artefacts + } + return nil +} + +type RunnerResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *RunnerResource_RunnerResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` +} + +func (x *RunnerResource) Reset() { + *x = RunnerResource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunnerResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunnerResource) ProtoMessage() {} + +func (x *RunnerResource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunnerResource.ProtoReflect.Descriptor instead. +func (*RunnerResource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{5} +} + +func (x *RunnerResource) GetOutput() *RunnerResource_RunnerResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +type TopicResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *TopicResource_TopicResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` +} + +func (x *TopicResource) Reset() { + *x = TopicResource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TopicResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TopicResource) ProtoMessage() {} + +func (x *TopicResource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TopicResource.ProtoReflect.Descriptor instead. +func (*TopicResource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{6} +} + +func (x *TopicResource) GetOutput() *TopicResource_TopicResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +type SubscriptionResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *SubscriptionResource_SubscriptionResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Topic *v1.Ref `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` +} + +func (x *SubscriptionResource) Reset() { + *x = SubscriptionResource{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SubscriptionResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscriptionResource) ProtoMessage() {} + +func (x *SubscriptionResource) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscriptionResource.ProtoReflect.Descriptor instead. +func (*SubscriptionResource) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{7} +} + +func (x *SubscriptionResource) GetOutput() *SubscriptionResource_SubscriptionResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +func (x *SubscriptionResource) GetTopic() *v1.Ref { + if x != nil { + return x.Topic + } + return nil +} + +type SqlMigrationResource_SqlMigrationResourceOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SqlMigrationResource_SqlMigrationResourceOutput) Reset() { + *x = SqlMigrationResource_SqlMigrationResourceOutput{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SqlMigrationResource_SqlMigrationResourceOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SqlMigrationResource_SqlMigrationResourceOutput) ProtoMessage() {} + +func (x *SqlMigrationResource_SqlMigrationResourceOutput) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SqlMigrationResource_SqlMigrationResourceOutput.ProtoReflect.Descriptor instead. +func (*SqlMigrationResource_SqlMigrationResourceOutput) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{3, 0} +} + +type ModuleResource_ModuleResourceOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` +} + +func (x *ModuleResource_ModuleResourceOutput) Reset() { + *x = ModuleResource_ModuleResourceOutput{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModuleResource_ModuleResourceOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModuleResource_ModuleResourceOutput) ProtoMessage() {} + +func (x *ModuleResource_ModuleResourceOutput) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModuleResource_ModuleResourceOutput.ProtoReflect.Descriptor instead. +func (*ModuleResource_ModuleResourceOutput) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{4, 0} +} + +func (x *ModuleResource_ModuleResourceOutput) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +type RunnerResource_RunnerResourceOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RunnerUri string `protobuf:"bytes,1,opt,name=runner_uri,json=runnerUri,proto3" json:"runner_uri,omitempty"` + DeploymentKey string `protobuf:"bytes,2,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` +} + +func (x *RunnerResource_RunnerResourceOutput) Reset() { + *x = RunnerResource_RunnerResourceOutput{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunnerResource_RunnerResourceOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunnerResource_RunnerResourceOutput) ProtoMessage() {} + +func (x *RunnerResource_RunnerResourceOutput) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunnerResource_RunnerResourceOutput.ProtoReflect.Descriptor instead. +func (*RunnerResource_RunnerResourceOutput) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *RunnerResource_RunnerResourceOutput) GetRunnerUri() string { + if x != nil { + return x.RunnerUri + } + return "" +} + +func (x *RunnerResource_RunnerResourceOutput) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +type TopicResource_TopicResourceOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KafkaBrokers []string `protobuf:"bytes,1,rep,name=kafka_brokers,json=kafkaBrokers,proto3" json:"kafka_brokers,omitempty"` + TopicId string `protobuf:"bytes,2,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` +} + +func (x *TopicResource_TopicResourceOutput) Reset() { + *x = TopicResource_TopicResourceOutput{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TopicResource_TopicResourceOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TopicResource_TopicResourceOutput) ProtoMessage() {} + +func (x *TopicResource_TopicResourceOutput) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TopicResource_TopicResourceOutput.ProtoReflect.Descriptor instead. +func (*TopicResource_TopicResourceOutput) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *TopicResource_TopicResourceOutput) GetKafkaBrokers() []string { + if x != nil { + return x.KafkaBrokers + } + return nil +} + +func (x *TopicResource_TopicResourceOutput) GetTopicId() string { + if x != nil { + return x.TopicId + } + return "" +} + +type SubscriptionResource_SubscriptionResourceOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KafkaBrokers []string `protobuf:"bytes,1,rep,name=kafka_brokers,json=kafkaBrokers,proto3" json:"kafka_brokers,omitempty"` + TopicId string `protobuf:"bytes,2,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` + ConsumerGroupId string `protobuf:"bytes,3,opt,name=consumer_group_id,json=consumerGroupId,proto3" json:"consumer_group_id,omitempty"` +} + +func (x *SubscriptionResource_SubscriptionResourceOutput) Reset() { + *x = SubscriptionResource_SubscriptionResourceOutput{} + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SubscriptionResource_SubscriptionResourceOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscriptionResource_SubscriptionResourceOutput) ProtoMessage() {} + +func (x *SubscriptionResource_SubscriptionResourceOutput) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscriptionResource_SubscriptionResourceOutput.ProtoReflect.Descriptor instead. +func (*SubscriptionResource_SubscriptionResourceOutput) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *SubscriptionResource_SubscriptionResourceOutput) GetKafkaBrokers() []string { + if x != nil { + return x.KafkaBrokers + } + return nil +} + +func (x *SubscriptionResource_SubscriptionResourceOutput) GetTopicId() string { + if x != nil { + return x.TopicId + } + return "" +} + +func (x *SubscriptionResource_SubscriptionResourceOutput) GetConsumerGroupId() string { + if x != nil { + return x.ConsumerGroupId + } + return "" +} + +var File_xyz_block_ftl_provisioner_v1beta1_resource_proto protoreflect.FileDescriptor + +var file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x21, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x78, 0x79, 0x7a, + 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf7, + 0x04, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x08, + 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x05, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x48, 0x00, 0x52, 0x05, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x12, 0x4b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x0d, 0x73, 0x71, 0x6c, 0x5f, 0x6d, 0x69, + 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x71, 0x6c, 0x4d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, + 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x5d, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x4b, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x42, 0x0a, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x54, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x51, + 0x0a, 0x0d, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x40, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x6a, 0x0a, 0x06, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, + 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2e, 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x0a, 0x1a, 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0xac, 0x02, 0x0a, + 0x0e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x5e, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x46, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, + 0x37, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x65, + 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, + 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x14, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0xce, 0x01, 0x0a, 0x0e, + 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5e, + 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x5c, + 0x0a, 0x14, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, + 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, + 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0xc4, 0x01, 0x0a, + 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5c, + 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x55, 0x0a, 0x13, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, 0x6f, + 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, + 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x22, 0xc1, 0x02, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x6a, 0x0a, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x88, 0x01, 0x0a, + 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6b, + 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, + 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x42, 0x5d, 0x50, 0x01, 0x5a, 0x59, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, + 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x65, 0x72, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescOnce sync.Once + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescData = file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDesc +) + +func file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescGZIP() []byte { + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescOnce.Do(func() { + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescData) + }) + return file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDescData +} + +var file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_xyz_block_ftl_provisioner_v1beta1_resource_proto_goTypes = []any{ + (*Resource)(nil), // 0: xyz.block.ftl.provisioner.v1beta1.Resource + (*PostgresResource)(nil), // 1: xyz.block.ftl.provisioner.v1beta1.PostgresResource + (*MysqlResource)(nil), // 2: xyz.block.ftl.provisioner.v1beta1.MysqlResource + (*SqlMigrationResource)(nil), // 3: xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource + (*ModuleResource)(nil), // 4: xyz.block.ftl.provisioner.v1beta1.ModuleResource + (*RunnerResource)(nil), // 5: xyz.block.ftl.provisioner.v1beta1.RunnerResource + (*TopicResource)(nil), // 6: xyz.block.ftl.provisioner.v1beta1.TopicResource + (*SubscriptionResource)(nil), // 7: xyz.block.ftl.provisioner.v1beta1.SubscriptionResource + (*SqlMigrationResource_SqlMigrationResourceOutput)(nil), // 8: xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource.SqlMigrationResourceOutput + (*ModuleResource_ModuleResourceOutput)(nil), // 9: xyz.block.ftl.provisioner.v1beta1.ModuleResource.ModuleResourceOutput + (*RunnerResource_RunnerResourceOutput)(nil), // 10: xyz.block.ftl.provisioner.v1beta1.RunnerResource.RunnerResourceOutput + (*TopicResource_TopicResourceOutput)(nil), // 11: xyz.block.ftl.provisioner.v1beta1.TopicResource.TopicResourceOutput + (*SubscriptionResource_SubscriptionResourceOutput)(nil), // 12: xyz.block.ftl.provisioner.v1beta1.SubscriptionResource.SubscriptionResourceOutput + (*v1.DatabaseRuntime)(nil), // 13: xyz.block.ftl.schema.v1.DatabaseRuntime + (*v1.Module)(nil), // 14: xyz.block.ftl.schema.v1.Module + (*v11.DeploymentArtefact)(nil), // 15: xyz.block.ftl.v1.DeploymentArtefact + (*v1.Ref)(nil), // 16: xyz.block.ftl.schema.v1.Ref +} +var file_xyz_block_ftl_provisioner_v1beta1_resource_proto_depIdxs = []int32{ + 1, // 0: xyz.block.ftl.provisioner.v1beta1.Resource.postgres:type_name -> xyz.block.ftl.provisioner.v1beta1.PostgresResource + 2, // 1: xyz.block.ftl.provisioner.v1beta1.Resource.mysql:type_name -> xyz.block.ftl.provisioner.v1beta1.MysqlResource + 4, // 2: xyz.block.ftl.provisioner.v1beta1.Resource.module:type_name -> xyz.block.ftl.provisioner.v1beta1.ModuleResource + 3, // 3: xyz.block.ftl.provisioner.v1beta1.Resource.sql_migration:type_name -> xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource + 6, // 4: xyz.block.ftl.provisioner.v1beta1.Resource.topic:type_name -> xyz.block.ftl.provisioner.v1beta1.TopicResource + 7, // 5: xyz.block.ftl.provisioner.v1beta1.Resource.subscription:type_name -> xyz.block.ftl.provisioner.v1beta1.SubscriptionResource + 5, // 6: xyz.block.ftl.provisioner.v1beta1.Resource.runner:type_name -> xyz.block.ftl.provisioner.v1beta1.RunnerResource + 13, // 7: xyz.block.ftl.provisioner.v1beta1.PostgresResource.output:type_name -> xyz.block.ftl.schema.v1.DatabaseRuntime + 13, // 8: xyz.block.ftl.provisioner.v1beta1.MysqlResource.output:type_name -> xyz.block.ftl.schema.v1.DatabaseRuntime + 8, // 9: xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource.output:type_name -> xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource.SqlMigrationResourceOutput + 9, // 10: xyz.block.ftl.provisioner.v1beta1.ModuleResource.output:type_name -> xyz.block.ftl.provisioner.v1beta1.ModuleResource.ModuleResourceOutput + 14, // 11: xyz.block.ftl.provisioner.v1beta1.ModuleResource.schema:type_name -> xyz.block.ftl.schema.v1.Module + 15, // 12: xyz.block.ftl.provisioner.v1beta1.ModuleResource.artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact + 10, // 13: xyz.block.ftl.provisioner.v1beta1.RunnerResource.output:type_name -> xyz.block.ftl.provisioner.v1beta1.RunnerResource.RunnerResourceOutput + 11, // 14: xyz.block.ftl.provisioner.v1beta1.TopicResource.output:type_name -> xyz.block.ftl.provisioner.v1beta1.TopicResource.TopicResourceOutput + 12, // 15: xyz.block.ftl.provisioner.v1beta1.SubscriptionResource.output:type_name -> xyz.block.ftl.provisioner.v1beta1.SubscriptionResource.SubscriptionResourceOutput + 16, // 16: xyz.block.ftl.provisioner.v1beta1.SubscriptionResource.topic:type_name -> xyz.block.ftl.schema.v1.Ref + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +} + +func init() { file_xyz_block_ftl_provisioner_v1beta1_resource_proto_init() } +func file_xyz_block_ftl_provisioner_v1beta1_resource_proto_init() { + if File_xyz_block_ftl_provisioner_v1beta1_resource_proto != nil { + return + } + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes[0].OneofWrappers = []any{ + (*Resource_Postgres)(nil), + (*Resource_Mysql)(nil), + (*Resource_Module)(nil), + (*Resource_SqlMigration)(nil), + (*Resource_Topic)(nil), + (*Resource_Subscription)(nil), + (*Resource_Runner)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDesc, + NumEnums: 0, + NumMessages: 13, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_xyz_block_ftl_provisioner_v1beta1_resource_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_provisioner_v1beta1_resource_proto_depIdxs, + MessageInfos: file_xyz_block_ftl_provisioner_v1beta1_resource_proto_msgTypes, + }.Build() + File_xyz_block_ftl_provisioner_v1beta1_resource_proto = out.File + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_rawDesc = nil + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_goTypes = nil + file_xyz_block_ftl_provisioner_v1beta1_resource_proto_depIdxs = nil +} diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/resource.proto b/backend/protos/xyz/block/ftl/provisioner/v1beta1/resource.proto similarity index 71% rename from backend/protos/xyz/block/ftl/v1beta1/provisioner/resource.proto rename to backend/protos/xyz/block/ftl/provisioner/v1beta1/resource.proto index 96322b5e43..e40af7276e 100644 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/resource.proto +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/resource.proto @@ -1,12 +1,11 @@ syntax = "proto3"; -package xyz.block.ftl.v1beta1.provisioner; +package xyz.block.ftl.provisioner.v1beta1; -import "google/protobuf/struct.proto"; +import "xyz/block/ftl/schema/v1/schema.proto"; import "xyz/block/ftl/v1/controller.proto"; -import "xyz/block/ftl/v1/schema/schema.proto"; -option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner;provisioner"; +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1;provisionerpb"; option java_multiple_files = true; // Resource is an abstract resource extracted from FTL Schema. @@ -21,6 +20,7 @@ message Resource { SqlMigrationResource sql_migration = 105; TopicResource topic = 106; SubscriptionResource subscription = 107; + RunnerResource runner = 108; } } @@ -29,11 +29,11 @@ message Resource { // any output created by the provisioner is stored in a field called "output" message PostgresResource { - v1.schema.DatabaseRuntime output = 1; + ftl.schema.v1.DatabaseRuntime output = 1; } message MysqlResource { - v1.schema.DatabaseRuntime output = 1; + ftl.schema.v1.DatabaseRuntime output = 1; } message SqlMigrationResource { @@ -48,10 +48,16 @@ message ModuleResource { } ModuleResourceOutput output = 1; - v1.schema.Module schema = 2; - repeated xyz.block.ftl.v1.DeploymentArtefact artefacts = 3; - // Runner labels required to run this deployment. - optional google.protobuf.Struct labels = 4; + ftl.schema.v1.Module schema = 2; + repeated ftl.v1.DeploymentArtefact artefacts = 3; +} + +message RunnerResource { + message RunnerResourceOutput { + string runner_uri = 1; + string deployment_key = 2; + } + RunnerResourceOutput output = 1; } message TopicResource { @@ -71,5 +77,5 @@ message SubscriptionResource { } SubscriptionResourceOutput output = 1; - v1.schema.Ref topic = 2; + ftl.schema.v1.Ref topic = 2; } diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/service.pb.go b/backend/protos/xyz/block/ftl/provisioner/v1beta1/service.pb.go similarity index 77% rename from backend/protos/xyz/block/ftl/v1beta1/provisioner/service.pb.go rename to backend/protos/xyz/block/ftl/provisioner/v1beta1/service.pb.go index 1f82f04ee0..fb9bbf8f04 100644 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/service.pb.go +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/service.pb.go @@ -2,9 +2,9 @@ // versions: // protoc-gen-go v1.35.2 // protoc (unknown) -// source: xyz/block/ftl/v1beta1/provisioner/service.proto +// source: xyz/block/ftl/provisioner/v1beta1/service.proto -package provisioner +package provisionerpb import ( v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" @@ -20,15 +20,15 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -var File_xyz_block_ftl_v1beta1_provisioner_service_proto protoreflect.FileDescriptor +var File_xyz_block_ftl_provisioner_v1beta1_service_proto protoreflect.FileDescriptor -var file_xyz_block_ftl_v1beta1_provisioner_service_proto_rawDesc = []byte{ +var file_xyz_block_ftl_provisioner_v1beta1_service_proto_rawDesc = []byte{ 0x0a, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x1a, 0x21, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, + 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x1a, 0x21, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, @@ -75,16 +75,16 @@ var file_xyz_block_ftl_v1beta1_provisioner_service_proto_rawDesc = []byte{ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x5b, 0x50, 0x01, 0x5a, 0x57, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x5d, 0x50, 0x01, 0x5a, 0x59, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, - 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, - 0x3b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x3b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var file_xyz_block_ftl_v1beta1_provisioner_service_proto_goTypes = []any{ +var file_xyz_block_ftl_provisioner_v1beta1_service_proto_goTypes = []any{ (*v1.PingRequest)(nil), // 0: xyz.block.ftl.v1.PingRequest (*v1.StatusRequest)(nil), // 1: xyz.block.ftl.v1.StatusRequest (*v1.GetArtefactDiffsRequest)(nil), // 2: xyz.block.ftl.v1.GetArtefactDiffsRequest @@ -100,21 +100,21 @@ var file_xyz_block_ftl_v1beta1_provisioner_service_proto_goTypes = []any{ (*v1.UpdateDeployResponse)(nil), // 12: xyz.block.ftl.v1.UpdateDeployResponse (*v1.ReplaceDeployResponse)(nil), // 13: xyz.block.ftl.v1.ReplaceDeployResponse } -var file_xyz_block_ftl_v1beta1_provisioner_service_proto_depIdxs = []int32{ - 0, // 0: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 1, // 1: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Status:input_type -> xyz.block.ftl.v1.StatusRequest - 2, // 2: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.GetArtefactDiffs:input_type -> xyz.block.ftl.v1.GetArtefactDiffsRequest - 3, // 3: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UploadArtefact:input_type -> xyz.block.ftl.v1.UploadArtefactRequest - 4, // 4: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.CreateDeployment:input_type -> xyz.block.ftl.v1.CreateDeploymentRequest - 5, // 5: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UpdateDeploy:input_type -> xyz.block.ftl.v1.UpdateDeployRequest - 6, // 6: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.ReplaceDeploy:input_type -> xyz.block.ftl.v1.ReplaceDeployRequest - 7, // 7: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 8, // 8: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Status:output_type -> xyz.block.ftl.v1.StatusResponse - 9, // 9: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.GetArtefactDiffs:output_type -> xyz.block.ftl.v1.GetArtefactDiffsResponse - 10, // 10: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UploadArtefact:output_type -> xyz.block.ftl.v1.UploadArtefactResponse - 11, // 11: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.CreateDeployment:output_type -> xyz.block.ftl.v1.CreateDeploymentResponse - 12, // 12: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UpdateDeploy:output_type -> xyz.block.ftl.v1.UpdateDeployResponse - 13, // 13: xyz.block.ftl.v1beta1.provisioner.ProvisionerService.ReplaceDeploy:output_type -> xyz.block.ftl.v1.ReplaceDeployResponse +var file_xyz_block_ftl_provisioner_v1beta1_service_proto_depIdxs = []int32{ + 0, // 0: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Ping:input_type -> xyz.block.ftl.v1.PingRequest + 1, // 1: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Status:input_type -> xyz.block.ftl.v1.StatusRequest + 2, // 2: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.GetArtefactDiffs:input_type -> xyz.block.ftl.v1.GetArtefactDiffsRequest + 3, // 3: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UploadArtefact:input_type -> xyz.block.ftl.v1.UploadArtefactRequest + 4, // 4: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.CreateDeployment:input_type -> xyz.block.ftl.v1.CreateDeploymentRequest + 5, // 5: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UpdateDeploy:input_type -> xyz.block.ftl.v1.UpdateDeployRequest + 6, // 6: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.ReplaceDeploy:input_type -> xyz.block.ftl.v1.ReplaceDeployRequest + 7, // 7: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Ping:output_type -> xyz.block.ftl.v1.PingResponse + 8, // 8: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Status:output_type -> xyz.block.ftl.v1.StatusResponse + 9, // 9: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.GetArtefactDiffs:output_type -> xyz.block.ftl.v1.GetArtefactDiffsResponse + 10, // 10: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UploadArtefact:output_type -> xyz.block.ftl.v1.UploadArtefactResponse + 11, // 11: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.CreateDeployment:output_type -> xyz.block.ftl.v1.CreateDeploymentResponse + 12, // 12: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UpdateDeploy:output_type -> xyz.block.ftl.v1.UpdateDeployResponse + 13, // 13: xyz.block.ftl.provisioner.v1beta1.ProvisionerService.ReplaceDeploy:output_type -> xyz.block.ftl.v1.ReplaceDeployResponse 7, // [7:14] is the sub-list for method output_type 0, // [0:7] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name @@ -122,26 +122,26 @@ var file_xyz_block_ftl_v1beta1_provisioner_service_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for field type_name } -func init() { file_xyz_block_ftl_v1beta1_provisioner_service_proto_init() } -func file_xyz_block_ftl_v1beta1_provisioner_service_proto_init() { - if File_xyz_block_ftl_v1beta1_provisioner_service_proto != nil { +func init() { file_xyz_block_ftl_provisioner_v1beta1_service_proto_init() } +func file_xyz_block_ftl_provisioner_v1beta1_service_proto_init() { + if File_xyz_block_ftl_provisioner_v1beta1_service_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_xyz_block_ftl_v1beta1_provisioner_service_proto_rawDesc, + RawDescriptor: file_xyz_block_ftl_provisioner_v1beta1_service_proto_rawDesc, NumEnums: 0, NumMessages: 0, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_xyz_block_ftl_v1beta1_provisioner_service_proto_goTypes, - DependencyIndexes: file_xyz_block_ftl_v1beta1_provisioner_service_proto_depIdxs, + GoTypes: file_xyz_block_ftl_provisioner_v1beta1_service_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_provisioner_v1beta1_service_proto_depIdxs, }.Build() - File_xyz_block_ftl_v1beta1_provisioner_service_proto = out.File - file_xyz_block_ftl_v1beta1_provisioner_service_proto_rawDesc = nil - file_xyz_block_ftl_v1beta1_provisioner_service_proto_goTypes = nil - file_xyz_block_ftl_v1beta1_provisioner_service_proto_depIdxs = nil + File_xyz_block_ftl_provisioner_v1beta1_service_proto = out.File + file_xyz_block_ftl_provisioner_v1beta1_service_proto_rawDesc = nil + file_xyz_block_ftl_provisioner_v1beta1_service_proto_goTypes = nil + file_xyz_block_ftl_provisioner_v1beta1_service_proto_depIdxs = nil } diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/service.proto b/backend/protos/xyz/block/ftl/provisioner/v1beta1/service.proto similarity index 91% rename from backend/protos/xyz/block/ftl/v1beta1/provisioner/service.proto rename to backend/protos/xyz/block/ftl/provisioner/v1beta1/service.proto index 55e479e269..62f2691f28 100644 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/service.proto +++ b/backend/protos/xyz/block/ftl/provisioner/v1beta1/service.proto @@ -1,11 +1,11 @@ syntax = "proto3"; -package xyz.block.ftl.v1beta1.provisioner; +package xyz.block.ftl.provisioner.v1beta1; import "xyz/block/ftl/v1/controller.proto"; import "xyz/block/ftl/v1/ftl.proto"; -option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner;provisioner"; +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1;provisionerpb"; option java_multiple_files = true; service ProvisionerService { diff --git a/backend/protos/xyz/block/ftl/v1/schema/mixins.go b/backend/protos/xyz/block/ftl/schema/v1/mixins.go similarity index 100% rename from backend/protos/xyz/block/ftl/v1/schema/mixins.go rename to backend/protos/xyz/block/ftl/schema/v1/mixins.go diff --git a/backend/protos/xyz/block/ftl/v1/schema/schema.pb.go b/backend/protos/xyz/block/ftl/schema/v1/schema.pb.go similarity index 75% rename from backend/protos/xyz/block/ftl/v1/schema/schema.pb.go rename to backend/protos/xyz/block/ftl/schema/v1/schema.pb.go index 3d4c2bf725..0cfa406884 100644 --- a/backend/protos/xyz/block/ftl/v1/schema/schema.pb.go +++ b/backend/protos/xyz/block/ftl/schema/v1/schema.pb.go @@ -4,7 +4,7 @@ // versions: // protoc-gen-go v1.35.2 // protoc (unknown) -// source: xyz/block/ftl/v1/schema/schema.proto +// source: xyz/block/ftl/schema/v1/schema.proto package schemapb @@ -26,16 +26,19 @@ const ( type AliasKind int32 const ( - AliasKind_ALIAS_KIND_JSON AliasKind = 0 + AliasKind_ALIAS_KIND_UNSPECIFIED AliasKind = 0 + AliasKind_ALIAS_KIND_JSON AliasKind = 1 ) // Enum value maps for AliasKind. var ( AliasKind_name = map[int32]string{ - 0: "ALIAS_KIND_JSON", + 0: "ALIAS_KIND_UNSPECIFIED", + 1: "ALIAS_KIND_JSON", } AliasKind_value = map[string]int32{ - "ALIAS_KIND_JSON": 0, + "ALIAS_KIND_UNSPECIFIED": 0, + "ALIAS_KIND_JSON": 1, } ) @@ -50,11 +53,11 @@ func (x AliasKind) String() string { } func (AliasKind) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_schema_schema_proto_enumTypes[0].Descriptor() + return file_xyz_block_ftl_schema_v1_schema_proto_enumTypes[0].Descriptor() } func (AliasKind) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_schema_schema_proto_enumTypes[0] + return &file_xyz_block_ftl_schema_v1_schema_proto_enumTypes[0] } func (x AliasKind) Number() protoreflect.EnumNumber { @@ -63,25 +66,28 @@ func (x AliasKind) Number() protoreflect.EnumNumber { // Deprecated: Use AliasKind.Descriptor instead. func (AliasKind) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{0} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{0} } type FromOffset int32 const ( - FromOffset_FROM_OFFSET_BEGINNING FromOffset = 0 - FromOffset_FROM_OFFSET_LATEST FromOffset = 1 + FromOffset_FROM_OFFSET_UNSPECIFIED FromOffset = 0 + FromOffset_FROM_OFFSET_BEGINNING FromOffset = 1 + FromOffset_FROM_OFFSET_LATEST FromOffset = 2 ) // Enum value maps for FromOffset. var ( FromOffset_name = map[int32]string{ - 0: "FROM_OFFSET_BEGINNING", - 1: "FROM_OFFSET_LATEST", + 0: "FROM_OFFSET_UNSPECIFIED", + 1: "FROM_OFFSET_BEGINNING", + 2: "FROM_OFFSET_LATEST", } FromOffset_value = map[string]int32{ - "FROM_OFFSET_BEGINNING": 0, - "FROM_OFFSET_LATEST": 1, + "FROM_OFFSET_UNSPECIFIED": 0, + "FROM_OFFSET_BEGINNING": 1, + "FROM_OFFSET_LATEST": 2, } ) @@ -96,11 +102,11 @@ func (x FromOffset) String() string { } func (FromOffset) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_v1_schema_schema_proto_enumTypes[1].Descriptor() + return file_xyz_block_ftl_schema_v1_schema_proto_enumTypes[1].Descriptor() } func (FromOffset) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_v1_schema_schema_proto_enumTypes[1] + return &file_xyz_block_ftl_schema_v1_schema_proto_enumTypes[1] } func (x FromOffset) Number() protoreflect.EnumNumber { @@ -109,7 +115,7 @@ func (x FromOffset) Number() protoreflect.EnumNumber { // Deprecated: Use FromOffset.Descriptor instead. func (FromOffset) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{1} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{1} } type AWSIAMAuthDatabaseConnector struct { @@ -125,7 +131,7 @@ type AWSIAMAuthDatabaseConnector struct { func (x *AWSIAMAuthDatabaseConnector) Reset() { *x = AWSIAMAuthDatabaseConnector{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[0] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -137,7 +143,7 @@ func (x *AWSIAMAuthDatabaseConnector) String() string { func (*AWSIAMAuthDatabaseConnector) ProtoMessage() {} func (x *AWSIAMAuthDatabaseConnector) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[0] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -150,7 +156,7 @@ func (x *AWSIAMAuthDatabaseConnector) ProtoReflect() protoreflect.Message { // Deprecated: Use AWSIAMAuthDatabaseConnector.ProtoReflect.Descriptor instead. func (*AWSIAMAuthDatabaseConnector) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{0} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{0} } func (x *AWSIAMAuthDatabaseConnector) GetPos() *Position { @@ -191,7 +197,7 @@ type Any struct { func (x *Any) Reset() { *x = Any{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[1] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -203,7 +209,7 @@ func (x *Any) String() string { func (*Any) ProtoMessage() {} func (x *Any) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[1] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -216,7 +222,7 @@ func (x *Any) ProtoReflect() protoreflect.Message { // Deprecated: Use Any.ProtoReflect.Descriptor instead. func (*Any) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{1} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{1} } func (x *Any) GetPos() *Position { @@ -237,7 +243,7 @@ type Array struct { func (x *Array) Reset() { *x = Array{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[2] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -249,7 +255,7 @@ func (x *Array) String() string { func (*Array) ProtoMessage() {} func (x *Array) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[2] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -262,7 +268,7 @@ func (x *Array) ProtoReflect() protoreflect.Message { // Deprecated: Use Array.ProtoReflect.Descriptor instead. func (*Array) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{2} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{2} } func (x *Array) GetPos() *Position { @@ -289,7 +295,7 @@ type Bool struct { func (x *Bool) Reset() { *x = Bool{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[3] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -301,7 +307,7 @@ func (x *Bool) String() string { func (*Bool) ProtoMessage() {} func (x *Bool) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[3] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -314,7 +320,7 @@ func (x *Bool) ProtoReflect() protoreflect.Message { // Deprecated: Use Bool.ProtoReflect.Descriptor instead. func (*Bool) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{3} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{3} } func (x *Bool) GetPos() *Position { @@ -334,7 +340,7 @@ type Bytes struct { func (x *Bytes) Reset() { *x = Bytes{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[4] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -346,7 +352,7 @@ func (x *Bytes) String() string { func (*Bytes) ProtoMessage() {} func (x *Bytes) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[4] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -359,7 +365,7 @@ func (x *Bytes) ProtoReflect() protoreflect.Message { // Deprecated: Use Bytes.ProtoReflect.Descriptor instead. func (*Bytes) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{4} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{4} } func (x *Bytes) GetPos() *Position { @@ -382,7 +388,7 @@ type Config struct { func (x *Config) Reset() { *x = Config{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[5] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -394,7 +400,7 @@ func (x *Config) String() string { func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[5] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -407,7 +413,7 @@ func (x *Config) ProtoReflect() protoreflect.Message { // Deprecated: Use Config.ProtoReflect.Descriptor instead. func (*Config) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{5} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{5} } func (x *Config) GetPos() *Position { @@ -449,7 +455,7 @@ type DSNDatabaseConnector struct { func (x *DSNDatabaseConnector) Reset() { *x = DSNDatabaseConnector{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[6] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -461,7 +467,7 @@ func (x *DSNDatabaseConnector) String() string { func (*DSNDatabaseConnector) ProtoMessage() {} func (x *DSNDatabaseConnector) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[6] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -474,7 +480,7 @@ func (x *DSNDatabaseConnector) ProtoReflect() protoreflect.Message { // Deprecated: Use DSNDatabaseConnector.ProtoReflect.Descriptor instead. func (*DSNDatabaseConnector) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{6} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{6} } func (x *DSNDatabaseConnector) GetPos() *Position { @@ -507,7 +513,7 @@ type Data struct { func (x *Data) Reset() { *x = Data{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[7] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -519,7 +525,7 @@ func (x *Data) String() string { func (*Data) ProtoMessage() {} func (x *Data) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[7] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -532,7 +538,7 @@ func (x *Data) ProtoReflect() protoreflect.Message { // Deprecated: Use Data.ProtoReflect.Descriptor instead. func (*Data) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{7} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{7} } func (x *Data) GetPos() *Position { @@ -599,7 +605,7 @@ type Database struct { func (x *Database) Reset() { *x = Database{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[8] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -611,7 +617,7 @@ func (x *Database) String() string { func (*Database) ProtoMessage() {} func (x *Database) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[8] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -624,7 +630,7 @@ func (x *Database) ProtoReflect() protoreflect.Message { // Deprecated: Use Database.ProtoReflect.Descriptor instead. func (*Database) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{8} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{8} } func (x *Database) GetPos() *Position { @@ -683,7 +689,7 @@ type DatabaseConnector struct { func (x *DatabaseConnector) Reset() { *x = DatabaseConnector{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[9] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -695,7 +701,7 @@ func (x *DatabaseConnector) String() string { func (*DatabaseConnector) ProtoMessage() {} func (x *DatabaseConnector) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[9] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -708,7 +714,7 @@ func (x *DatabaseConnector) ProtoReflect() protoreflect.Message { // Deprecated: Use DatabaseConnector.ProtoReflect.Descriptor instead. func (*DatabaseConnector) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{9} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{9} } func (m *DatabaseConnector) GetValue() isDatabaseConnector_Value { @@ -759,7 +765,7 @@ type DatabaseRuntime struct { func (x *DatabaseRuntime) Reset() { *x = DatabaseRuntime{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[10] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -771,7 +777,7 @@ func (x *DatabaseRuntime) String() string { func (*DatabaseRuntime) ProtoMessage() {} func (x *DatabaseRuntime) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[10] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -784,7 +790,7 @@ func (x *DatabaseRuntime) ProtoReflect() protoreflect.Message { // Deprecated: Use DatabaseRuntime.ProtoReflect.Descriptor instead. func (*DatabaseRuntime) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{10} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{10} } func (x *DatabaseRuntime) GetReadConnector() *DatabaseConnector { @@ -821,7 +827,7 @@ type Decl struct { func (x *Decl) Reset() { *x = Decl{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[11] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -833,7 +839,7 @@ func (x *Decl) String() string { func (*Decl) ProtoMessage() {} func (x *Decl) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[11] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -846,7 +852,7 @@ func (x *Decl) ProtoReflect() protoreflect.Message { // Deprecated: Use Decl.ProtoReflect.Descriptor instead. func (*Decl) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{11} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{11} } func (m *Decl) GetValue() isDecl_Value { @@ -979,7 +985,7 @@ type Enum struct { func (x *Enum) Reset() { *x = Enum{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[12] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -991,7 +997,7 @@ func (x *Enum) String() string { func (*Enum) ProtoMessage() {} func (x *Enum) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[12] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1004,7 +1010,7 @@ func (x *Enum) ProtoReflect() protoreflect.Message { // Deprecated: Use Enum.ProtoReflect.Descriptor instead. func (*Enum) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{12} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{12} } func (x *Enum) GetPos() *Position { @@ -1062,7 +1068,7 @@ type EnumVariant struct { func (x *EnumVariant) Reset() { *x = EnumVariant{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[13] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1074,7 +1080,7 @@ func (x *EnumVariant) String() string { func (*EnumVariant) ProtoMessage() {} func (x *EnumVariant) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[13] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1087,7 +1093,7 @@ func (x *EnumVariant) ProtoReflect() protoreflect.Message { // Deprecated: Use EnumVariant.ProtoReflect.Descriptor instead. func (*EnumVariant) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{13} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{13} } func (x *EnumVariant) GetPos() *Position { @@ -1132,7 +1138,7 @@ type Field struct { func (x *Field) Reset() { *x = Field{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[14] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1144,7 +1150,7 @@ func (x *Field) String() string { func (*Field) ProtoMessage() {} func (x *Field) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[14] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1157,7 +1163,7 @@ func (x *Field) ProtoReflect() protoreflect.Message { // Deprecated: Use Field.ProtoReflect.Descriptor instead. func (*Field) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{14} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{14} } func (x *Field) GetPos() *Position { @@ -1205,7 +1211,7 @@ type Float struct { func (x *Float) Reset() { *x = Float{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[15] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1217,7 +1223,7 @@ func (x *Float) String() string { func (*Float) ProtoMessage() {} func (x *Float) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[15] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1230,7 +1236,7 @@ func (x *Float) ProtoReflect() protoreflect.Message { // Deprecated: Use Float.ProtoReflect.Descriptor instead. func (*Float) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{15} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{15} } func (x *Float) GetPos() *Position { @@ -1254,7 +1260,7 @@ type IngressPathComponent struct { func (x *IngressPathComponent) Reset() { *x = IngressPathComponent{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[16] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1266,7 +1272,7 @@ func (x *IngressPathComponent) String() string { func (*IngressPathComponent) ProtoMessage() {} func (x *IngressPathComponent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[16] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1279,7 +1285,7 @@ func (x *IngressPathComponent) ProtoReflect() protoreflect.Message { // Deprecated: Use IngressPathComponent.ProtoReflect.Descriptor instead. func (*IngressPathComponent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{16} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{16} } func (m *IngressPathComponent) GetValue() isIngressPathComponent_Value { @@ -1330,7 +1336,7 @@ type IngressPathLiteral struct { func (x *IngressPathLiteral) Reset() { *x = IngressPathLiteral{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[17] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1342,7 +1348,7 @@ func (x *IngressPathLiteral) String() string { func (*IngressPathLiteral) ProtoMessage() {} func (x *IngressPathLiteral) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[17] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1355,7 +1361,7 @@ func (x *IngressPathLiteral) ProtoReflect() protoreflect.Message { // Deprecated: Use IngressPathLiteral.ProtoReflect.Descriptor instead. func (*IngressPathLiteral) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{17} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{17} } func (x *IngressPathLiteral) GetPos() *Position { @@ -1383,7 +1389,7 @@ type IngressPathParameter struct { func (x *IngressPathParameter) Reset() { *x = IngressPathParameter{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[18] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1395,7 +1401,7 @@ func (x *IngressPathParameter) String() string { func (*IngressPathParameter) ProtoMessage() {} func (x *IngressPathParameter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[18] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1408,7 +1414,7 @@ func (x *IngressPathParameter) ProtoReflect() protoreflect.Message { // Deprecated: Use IngressPathParameter.ProtoReflect.Descriptor instead. func (*IngressPathParameter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{18} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{18} } func (x *IngressPathParameter) GetPos() *Position { @@ -1435,7 +1441,7 @@ type Int struct { func (x *Int) Reset() { *x = Int{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[19] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1447,7 +1453,7 @@ func (x *Int) String() string { func (*Int) ProtoMessage() {} func (x *Int) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[19] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1460,7 +1466,7 @@ func (x *Int) ProtoReflect() protoreflect.Message { // Deprecated: Use Int.ProtoReflect.Descriptor instead. func (*Int) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{19} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{19} } func (x *Int) GetPos() *Position { @@ -1481,7 +1487,7 @@ type IntValue struct { func (x *IntValue) Reset() { *x = IntValue{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[20] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1493,7 +1499,7 @@ func (x *IntValue) String() string { func (*IntValue) ProtoMessage() {} func (x *IntValue) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[20] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1506,7 +1512,7 @@ func (x *IntValue) ProtoReflect() protoreflect.Message { // Deprecated: Use IntValue.ProtoReflect.Descriptor instead. func (*IntValue) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{20} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{20} } func (x *IntValue) GetPos() *Position { @@ -1535,7 +1541,7 @@ type Map struct { func (x *Map) Reset() { *x = Map{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[21] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1547,7 +1553,7 @@ func (x *Map) String() string { func (*Map) ProtoMessage() {} func (x *Map) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[21] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1560,7 +1566,7 @@ func (x *Map) ProtoReflect() protoreflect.Message { // Deprecated: Use Map.ProtoReflect.Descriptor instead. func (*Map) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{21} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{21} } func (x *Map) GetPos() *Position { @@ -1609,7 +1615,7 @@ type Metadata struct { func (x *Metadata) Reset() { *x = Metadata{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[22] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1621,7 +1627,7 @@ func (x *Metadata) String() string { func (*Metadata) ProtoMessage() {} func (x *Metadata) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[22] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1634,7 +1640,7 @@ func (x *Metadata) ProtoReflect() protoreflect.Message { // Deprecated: Use Metadata.ProtoReflect.Descriptor instead. func (*Metadata) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{22} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{22} } func (m *Metadata) GetValue() isMetadata_Value { @@ -1823,13 +1829,13 @@ type MetadataAlias struct { unknownFields protoimpl.UnknownFields Pos *Position `protobuf:"bytes,1,opt,name=pos,proto3,oneof" json:"pos,omitempty"` - Kind AliasKind `protobuf:"varint,2,opt,name=kind,proto3,enum=xyz.block.ftl.v1.schema.AliasKind" json:"kind,omitempty"` + Kind AliasKind `protobuf:"varint,2,opt,name=kind,proto3,enum=xyz.block.ftl.schema.v1.AliasKind" json:"kind,omitempty"` Alias string `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"` } func (x *MetadataAlias) Reset() { *x = MetadataAlias{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[23] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1841,7 +1847,7 @@ func (x *MetadataAlias) String() string { func (*MetadataAlias) ProtoMessage() {} func (x *MetadataAlias) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[23] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1854,7 +1860,7 @@ func (x *MetadataAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataAlias.ProtoReflect.Descriptor instead. func (*MetadataAlias) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{23} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{23} } func (x *MetadataAlias) GetPos() *Position { @@ -1868,7 +1874,7 @@ func (x *MetadataAlias) GetKind() AliasKind { if x != nil { return x.Kind } - return AliasKind_ALIAS_KIND_JSON + return AliasKind_ALIAS_KIND_UNSPECIFIED } func (x *MetadataAlias) GetAlias() string { @@ -1889,7 +1895,7 @@ type MetadataCalls struct { func (x *MetadataCalls) Reset() { *x = MetadataCalls{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[24] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1901,7 +1907,7 @@ func (x *MetadataCalls) String() string { func (*MetadataCalls) ProtoMessage() {} func (x *MetadataCalls) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[24] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1914,7 +1920,7 @@ func (x *MetadataCalls) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataCalls.ProtoReflect.Descriptor instead. func (*MetadataCalls) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{24} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{24} } func (x *MetadataCalls) GetPos() *Position { @@ -1942,7 +1948,7 @@ type MetadataConfig struct { func (x *MetadataConfig) Reset() { *x = MetadataConfig{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[25] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1954,7 +1960,7 @@ func (x *MetadataConfig) String() string { func (*MetadataConfig) ProtoMessage() {} func (x *MetadataConfig) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[25] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1967,7 +1973,7 @@ func (x *MetadataConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataConfig.ProtoReflect.Descriptor instead. func (*MetadataConfig) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{25} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{25} } func (x *MetadataConfig) GetPos() *Position { @@ -1995,7 +2001,7 @@ type MetadataCronJob struct { func (x *MetadataCronJob) Reset() { *x = MetadataCronJob{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[26] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2007,7 +2013,7 @@ func (x *MetadataCronJob) String() string { func (*MetadataCronJob) ProtoMessage() {} func (x *MetadataCronJob) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[26] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2020,7 +2026,7 @@ func (x *MetadataCronJob) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataCronJob.ProtoReflect.Descriptor instead. func (*MetadataCronJob) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{26} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{26} } func (x *MetadataCronJob) GetPos() *Position { @@ -2048,7 +2054,7 @@ type MetadataDatabases struct { func (x *MetadataDatabases) Reset() { *x = MetadataDatabases{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[27] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2060,7 +2066,7 @@ func (x *MetadataDatabases) String() string { func (*MetadataDatabases) ProtoMessage() {} func (x *MetadataDatabases) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[27] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2073,7 +2079,7 @@ func (x *MetadataDatabases) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataDatabases.ProtoReflect.Descriptor instead. func (*MetadataDatabases) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{27} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{27} } func (x *MetadataDatabases) GetPos() *Position { @@ -2102,7 +2108,7 @@ type MetadataEncoding struct { func (x *MetadataEncoding) Reset() { *x = MetadataEncoding{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[28] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2114,7 +2120,7 @@ func (x *MetadataEncoding) String() string { func (*MetadataEncoding) ProtoMessage() {} func (x *MetadataEncoding) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[28] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2127,7 +2133,7 @@ func (x *MetadataEncoding) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataEncoding.ProtoReflect.Descriptor instead. func (*MetadataEncoding) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{28} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{28} } func (x *MetadataEncoding) GetPos() *Position { @@ -2164,7 +2170,7 @@ type MetadataIngress struct { func (x *MetadataIngress) Reset() { *x = MetadataIngress{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[29] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2176,7 +2182,7 @@ func (x *MetadataIngress) String() string { func (*MetadataIngress) ProtoMessage() {} func (x *MetadataIngress) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[29] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2189,7 +2195,7 @@ func (x *MetadataIngress) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataIngress.ProtoReflect.Descriptor instead. func (*MetadataIngress) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{29} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{29} } func (x *MetadataIngress) GetPos() *Position { @@ -2231,7 +2237,7 @@ type MetadataPublisher struct { func (x *MetadataPublisher) Reset() { *x = MetadataPublisher{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[30] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2243,7 +2249,7 @@ func (x *MetadataPublisher) String() string { func (*MetadataPublisher) ProtoMessage() {} func (x *MetadataPublisher) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[30] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2256,7 +2262,7 @@ func (x *MetadataPublisher) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataPublisher.ProtoReflect.Descriptor instead. func (*MetadataPublisher) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{30} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{30} } func (x *MetadataPublisher) GetPos() *Position { @@ -2287,7 +2293,7 @@ type MetadataRetry struct { func (x *MetadataRetry) Reset() { *x = MetadataRetry{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[31] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2299,7 +2305,7 @@ func (x *MetadataRetry) String() string { func (*MetadataRetry) ProtoMessage() {} func (x *MetadataRetry) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[31] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2312,7 +2318,7 @@ func (x *MetadataRetry) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataRetry.ProtoReflect.Descriptor instead. func (*MetadataRetry) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{31} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{31} } func (x *MetadataRetry) GetPos() *Position { @@ -2361,7 +2367,7 @@ type MetadataSQLMigration struct { func (x *MetadataSQLMigration) Reset() { *x = MetadataSQLMigration{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[32] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2373,7 +2379,7 @@ func (x *MetadataSQLMigration) String() string { func (*MetadataSQLMigration) ProtoMessage() {} func (x *MetadataSQLMigration) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[32] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2386,7 +2392,7 @@ func (x *MetadataSQLMigration) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataSQLMigration.ProtoReflect.Descriptor instead. func (*MetadataSQLMigration) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{32} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{32} } func (x *MetadataSQLMigration) GetPos() *Position { @@ -2414,7 +2420,7 @@ type MetadataSecrets struct { func (x *MetadataSecrets) Reset() { *x = MetadataSecrets{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[33] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2426,7 +2432,7 @@ func (x *MetadataSecrets) String() string { func (*MetadataSecrets) ProtoMessage() {} func (x *MetadataSecrets) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[33] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2439,7 +2445,7 @@ func (x *MetadataSecrets) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataSecrets.ProtoReflect.Descriptor instead. func (*MetadataSecrets) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{33} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{33} } func (x *MetadataSecrets) GetPos() *Position { @@ -2463,13 +2469,13 @@ type MetadataSubscriber struct { Pos *Position `protobuf:"bytes,1,opt,name=pos,proto3,oneof" json:"pos,omitempty"` Topic *Ref `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` - FromOffset FromOffset `protobuf:"varint,3,opt,name=from_offset,json=fromOffset,proto3,enum=xyz.block.ftl.v1.schema.FromOffset" json:"from_offset,omitempty"` + FromOffset FromOffset `protobuf:"varint,3,opt,name=from_offset,json=fromOffset,proto3,enum=xyz.block.ftl.schema.v1.FromOffset" json:"from_offset,omitempty"` DeadLetter bool `protobuf:"varint,4,opt,name=dead_letter,json=deadLetter,proto3" json:"dead_letter,omitempty"` } func (x *MetadataSubscriber) Reset() { *x = MetadataSubscriber{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[34] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2481,7 +2487,7 @@ func (x *MetadataSubscriber) String() string { func (*MetadataSubscriber) ProtoMessage() {} func (x *MetadataSubscriber) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[34] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2494,7 +2500,7 @@ func (x *MetadataSubscriber) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataSubscriber.ProtoReflect.Descriptor instead. func (*MetadataSubscriber) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{34} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{34} } func (x *MetadataSubscriber) GetPos() *Position { @@ -2515,7 +2521,7 @@ func (x *MetadataSubscriber) GetFromOffset() FromOffset { if x != nil { return x.FromOffset } - return FromOffset_FROM_OFFSET_BEGINNING + return FromOffset_FROM_OFFSET_UNSPECIFIED } func (x *MetadataSubscriber) GetDeadLetter() bool { @@ -2537,7 +2543,7 @@ type MetadataTypeMap struct { func (x *MetadataTypeMap) Reset() { *x = MetadataTypeMap{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[35] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2549,7 +2555,7 @@ func (x *MetadataTypeMap) String() string { func (*MetadataTypeMap) ProtoMessage() {} func (x *MetadataTypeMap) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[35] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2562,7 +2568,7 @@ func (x *MetadataTypeMap) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataTypeMap.ProtoReflect.Descriptor instead. func (*MetadataTypeMap) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{35} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{35} } func (x *MetadataTypeMap) GetPos() *Position { @@ -2601,7 +2607,7 @@ type Module struct { func (x *Module) Reset() { *x = Module{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[36] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2613,7 +2619,7 @@ func (x *Module) String() string { func (*Module) ProtoMessage() {} func (x *Module) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[36] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2626,7 +2632,7 @@ func (x *Module) ProtoReflect() protoreflect.Message { // Deprecated: Use Module.ProtoReflect.Descriptor instead. func (*Module) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{36} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{36} } func (x *Module) GetPos() *Position { @@ -2686,7 +2692,7 @@ type ModuleRuntime struct { func (x *ModuleRuntime) Reset() { *x = ModuleRuntime{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[37] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2698,7 +2704,7 @@ func (x *ModuleRuntime) String() string { func (*ModuleRuntime) ProtoMessage() {} func (x *ModuleRuntime) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[37] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2711,7 +2717,7 @@ func (x *ModuleRuntime) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleRuntime.ProtoReflect.Descriptor instead. func (*ModuleRuntime) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{37} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{37} } func (x *ModuleRuntime) GetCreateTime() *timestamppb.Timestamp { @@ -2767,7 +2773,7 @@ type Optional struct { func (x *Optional) Reset() { *x = Optional{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[38] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2779,7 +2785,7 @@ func (x *Optional) String() string { func (*Optional) ProtoMessage() {} func (x *Optional) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[38] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2792,7 +2798,7 @@ func (x *Optional) ProtoReflect() protoreflect.Message { // Deprecated: Use Optional.ProtoReflect.Descriptor instead. func (*Optional) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{38} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{38} } func (x *Optional) GetPos() *Position { @@ -2821,7 +2827,7 @@ type Position struct { func (x *Position) Reset() { *x = Position{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[39] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2833,7 +2839,7 @@ func (x *Position) String() string { func (*Position) ProtoMessage() {} func (x *Position) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[39] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2846,7 +2852,7 @@ func (x *Position) ProtoReflect() protoreflect.Message { // Deprecated: Use Position.ProtoReflect.Descriptor instead. func (*Position) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{39} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{39} } func (x *Position) GetFilename() string { @@ -2883,7 +2889,7 @@ type Ref struct { func (x *Ref) Reset() { *x = Ref{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[40] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2895,7 +2901,7 @@ func (x *Ref) String() string { func (*Ref) ProtoMessage() {} func (x *Ref) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[40] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2908,7 +2914,7 @@ func (x *Ref) ProtoReflect() protoreflect.Message { // Deprecated: Use Ref.ProtoReflect.Descriptor instead. func (*Ref) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{40} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{40} } func (x *Ref) GetPos() *Position { @@ -2950,7 +2956,7 @@ type Schema struct { func (x *Schema) Reset() { *x = Schema{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[41] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2962,7 +2968,7 @@ func (x *Schema) String() string { func (*Schema) ProtoMessage() {} func (x *Schema) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[41] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2975,7 +2981,7 @@ func (x *Schema) ProtoReflect() protoreflect.Message { // Deprecated: Use Schema.ProtoReflect.Descriptor instead. func (*Schema) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{41} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{41} } func (x *Schema) GetPos() *Position { @@ -3005,7 +3011,7 @@ type Secret struct { func (x *Secret) Reset() { *x = Secret{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[42] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3017,7 +3023,7 @@ func (x *Secret) String() string { func (*Secret) ProtoMessage() {} func (x *Secret) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[42] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3030,7 +3036,7 @@ func (x *Secret) ProtoReflect() protoreflect.Message { // Deprecated: Use Secret.ProtoReflect.Descriptor instead. func (*Secret) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{42} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{42} } func (x *Secret) GetPos() *Position { @@ -3071,7 +3077,7 @@ type String struct { func (x *String) Reset() { *x = String{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[43] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3083,7 +3089,7 @@ func (x *String) String() string { func (*String) ProtoMessage() {} func (x *String) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[43] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3096,7 +3102,7 @@ func (x *String) ProtoReflect() protoreflect.Message { // Deprecated: Use String.ProtoReflect.Descriptor instead. func (*String) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{43} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{43} } func (x *String) GetPos() *Position { @@ -3117,7 +3123,7 @@ type StringValue struct { func (x *StringValue) Reset() { *x = StringValue{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[44] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3129,7 +3135,7 @@ func (x *StringValue) String() string { func (*StringValue) ProtoMessage() {} func (x *StringValue) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[44] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3142,7 +3148,7 @@ func (x *StringValue) ProtoReflect() protoreflect.Message { // Deprecated: Use StringValue.ProtoReflect.Descriptor instead. func (*StringValue) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{44} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{44} } func (x *StringValue) GetPos() *Position { @@ -3169,7 +3175,7 @@ type Time struct { func (x *Time) Reset() { *x = Time{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[45] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3181,7 +3187,7 @@ func (x *Time) String() string { func (*Time) ProtoMessage() {} func (x *Time) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[45] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3194,7 +3200,7 @@ func (x *Time) ProtoReflect() protoreflect.Message { // Deprecated: Use Time.ProtoReflect.Descriptor instead. func (*Time) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{45} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{45} } func (x *Time) GetPos() *Position { @@ -3219,7 +3225,7 @@ type Topic struct { func (x *Topic) Reset() { *x = Topic{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[46] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3231,7 +3237,7 @@ func (x *Topic) String() string { func (*Topic) ProtoMessage() {} func (x *Topic) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[46] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3244,7 +3250,7 @@ func (x *Topic) ProtoReflect() protoreflect.Message { // Deprecated: Use Topic.ProtoReflect.Descriptor instead. func (*Topic) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{46} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{46} } func (x *Topic) GetPos() *Position { @@ -3300,7 +3306,7 @@ type TopicRuntime struct { func (x *TopicRuntime) Reset() { *x = TopicRuntime{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[47] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3312,7 +3318,7 @@ func (x *TopicRuntime) String() string { func (*TopicRuntime) ProtoMessage() {} func (x *TopicRuntime) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[47] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3325,7 +3331,7 @@ func (x *TopicRuntime) ProtoReflect() protoreflect.Message { // Deprecated: Use TopicRuntime.ProtoReflect.Descriptor instead. func (*TopicRuntime) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{47} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{47} } func (x *TopicRuntime) GetKafkaBrokers() []string { @@ -3366,7 +3372,7 @@ type Type struct { func (x *Type) Reset() { *x = Type{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[48] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3378,7 +3384,7 @@ func (x *Type) String() string { func (*Type) ProtoMessage() {} func (x *Type) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[48] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3391,7 +3397,7 @@ func (x *Type) ProtoReflect() protoreflect.Message { // Deprecated: Use Type.ProtoReflect.Descriptor instead. func (*Type) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{48} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{48} } func (m *Type) GetValue() isType_Value { @@ -3576,7 +3582,7 @@ type TypeAlias struct { func (x *TypeAlias) Reset() { *x = TypeAlias{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[49] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3588,7 +3594,7 @@ func (x *TypeAlias) String() string { func (*TypeAlias) ProtoMessage() {} func (x *TypeAlias) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[49] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3601,7 +3607,7 @@ func (x *TypeAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeAlias.ProtoReflect.Descriptor instead. func (*TypeAlias) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{49} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{49} } func (x *TypeAlias) GetPos() *Position { @@ -3657,7 +3663,7 @@ type TypeParameter struct { func (x *TypeParameter) Reset() { *x = TypeParameter{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[50] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3669,7 +3675,7 @@ func (x *TypeParameter) String() string { func (*TypeParameter) ProtoMessage() {} func (x *TypeParameter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[50] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3682,7 +3688,7 @@ func (x *TypeParameter) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeParameter.ProtoReflect.Descriptor instead. func (*TypeParameter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{50} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{50} } func (x *TypeParameter) GetPos() *Position { @@ -3710,7 +3716,7 @@ type TypeValue struct { func (x *TypeValue) Reset() { *x = TypeValue{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[51] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3722,7 +3728,7 @@ func (x *TypeValue) String() string { func (*TypeValue) ProtoMessage() {} func (x *TypeValue) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[51] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3735,7 +3741,7 @@ func (x *TypeValue) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeValue.ProtoReflect.Descriptor instead. func (*TypeValue) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{51} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{51} } func (x *TypeValue) GetPos() *Position { @@ -3762,7 +3768,7 @@ type Unit struct { func (x *Unit) Reset() { *x = Unit{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[52] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3774,7 +3780,7 @@ func (x *Unit) String() string { func (*Unit) ProtoMessage() {} func (x *Unit) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[52] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3787,7 +3793,7 @@ func (x *Unit) ProtoReflect() protoreflect.Message { // Deprecated: Use Unit.ProtoReflect.Descriptor instead. func (*Unit) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{52} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{52} } func (x *Unit) GetPos() *Position { @@ -3812,7 +3818,7 @@ type Value struct { func (x *Value) Reset() { *x = Value{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[53] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3824,7 +3830,7 @@ func (x *Value) String() string { func (*Value) ProtoMessage() {} func (x *Value) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[53] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3837,7 +3843,7 @@ func (x *Value) ProtoReflect() protoreflect.Message { // Deprecated: Use Value.ProtoReflect.Descriptor instead. func (*Value) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{53} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{53} } func (m *Value) GetValue() isValue_Value { @@ -3907,7 +3913,7 @@ type Verb struct { func (x *Verb) Reset() { *x = Verb{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[54] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3919,7 +3925,7 @@ func (x *Verb) String() string { func (*Verb) ProtoMessage() {} func (x *Verb) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[54] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3932,7 +3938,7 @@ func (x *Verb) ProtoReflect() protoreflect.Message { // Deprecated: Use Verb.ProtoReflect.Descriptor instead. func (*Verb) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{54} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{54} } func (x *Verb) GetPos() *Position { @@ -4003,7 +4009,7 @@ type VerbRuntime struct { func (x *VerbRuntime) Reset() { *x = VerbRuntime{} - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[55] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4015,7 +4021,7 @@ func (x *VerbRuntime) String() string { func (*VerbRuntime) ProtoMessage() {} func (x *VerbRuntime) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[55] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4028,7 +4034,7 @@ func (x *VerbRuntime) ProtoReflect() protoreflect.Message { // Deprecated: Use VerbRuntime.ProtoReflect.Descriptor instead. func (*VerbRuntime) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP(), []int{55} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{55} } func (x *VerbRuntime) GetCreateTime() *timestamppb.Timestamp { @@ -4052,20 +4058,20 @@ func (x *VerbRuntime) GetKafkaBrokers() []string { return nil } -var File_xyz_block_ftl_v1_schema_schema_proto protoreflect.FileDescriptor +var File_xyz_block_ftl_schema_v1_schema_proto protoreflect.FileDescriptor -var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ +var file_xyz_block_ftl_schema_v1_schema_proto_rawDesc = []byte{ 0x0a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x41, 0x57, 0x53, 0x49, 0x41, 0x4d, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, @@ -4074,48 +4080,48 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x49, 0x0a, 0x05, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x6a, 0x0a, 0x14, 0x44, 0x53, 0x4e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xd8, 0x02, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, @@ -4123,25 +4129,25 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x75, 0x6e, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, @@ -4149,71 +4155,71 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x7b, 0x0a, 0x1e, 0x61, 0x77, 0x73, 0x69, 0x61, 0x6d, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x41, 0x57, 0x53, 0x49, 0x41, 0x4d, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x57, 0x53, 0x49, 0x41, 0x4d, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x1b, 0x61, 0x77, 0x73, 0x69, 0x61, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x65, 0x0a, 0x16, 0x64, 0x73, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x53, 0x4e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x53, 0x4e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x14, 0x64, 0x73, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xe2, 0x03, 0x0a, 0x04, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x6f, 0x70, 0x69, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x43, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x48, 0x00, 0x52, 0x04, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x48, 0x00, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, @@ -4221,230 +4227,230 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x45, 0x6e, 0x75, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x49, 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x65, 0x0a, 0x16, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6a, 0x0a, 0x12, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x6c, 0x0a, 0x14, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x03, 0x49, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x62, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xb6, 0x07, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3e, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x08, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x63, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x75, 0x62, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x05, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x74, 0x72, 0x79, 0x12, 0x54, 0x0a, 0x0d, 0x73, 0x71, 0x6c, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x51, 0x4c, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x51, 0x4c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x67, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x41, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xfb, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x62, @@ -4453,45 +4459,45 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x37, 0x0a, 0x05, 0x63, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x02, 0x52, 0x05, 0x63, 0x61, 0x74, 0x63, 0x68, 0x88, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x02, 0x52, 0x05, 0x63, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x61, 0x74, 0x63, 0x68, 0x22, 0x70, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x51, 0x4c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x73, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xf1, 0x01, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, 0x6f, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x0a, 0x66, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, @@ -4499,8 +4505,8 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x0a, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x9e, 0x02, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x18, @@ -4508,11 +4514,11 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x64, 0x65, 0x63, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x65, 0x63, 0x6c, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x52, 0x05, 0x64, 0x65, 0x63, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, @@ -4533,11 +4539,11 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x08, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, @@ -4546,59 +4552,59 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0xbb, 0x01, 0x0a, 0x03, 0x52, 0x65, 0x66, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x65, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x9a, 0x02, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x6f, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, @@ -4607,7 +4613,7 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x0c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6b, 0x61, 0x66, @@ -4617,49 +4623,49 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x22, 0x9a, 0x05, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x41, 0x72, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x3f, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, @@ -4667,49 +4673,49 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x65, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x6e, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, 0x03, 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x69, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, @@ -4717,19 +4723,19 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x75, 0x6e, 0x74, 0x69, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x62, 0x52, 0x75, 0x6e, @@ -4745,226 +4751,229 @@ var file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = []byte{ 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x2a, 0x20, 0x0a, 0x09, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x4c, 0x49, 0x41, 0x53, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x00, 0x2a, 0x3f, 0x0a, 0x0a, - 0x46, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x52, - 0x4f, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x4e, - 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x46, - 0x46, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x53, 0x54, 0x10, 0x01, 0x42, 0x4e, 0x50, - 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, - 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, - 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x3b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x2a, 0x3c, 0x0a, 0x09, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4c, 0x49, 0x41, 0x53, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0x5c, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, + 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x53, + 0x45, 0x54, 0x5f, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x16, + 0x0a, 0x12, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x41, + 0x54, 0x45, 0x53, 0x54, 0x10, 0x02, 0x42, 0x4e, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, + 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, + 0x66, 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_xyz_block_ftl_v1_schema_schema_proto_rawDescOnce sync.Once - file_xyz_block_ftl_v1_schema_schema_proto_rawDescData = file_xyz_block_ftl_v1_schema_schema_proto_rawDesc + file_xyz_block_ftl_schema_v1_schema_proto_rawDescOnce sync.Once + file_xyz_block_ftl_schema_v1_schema_proto_rawDescData = file_xyz_block_ftl_schema_v1_schema_proto_rawDesc ) -func file_xyz_block_ftl_v1_schema_schema_proto_rawDescGZIP() []byte { - file_xyz_block_ftl_v1_schema_schema_proto_rawDescOnce.Do(func() { - file_xyz_block_ftl_v1_schema_schema_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_v1_schema_schema_proto_rawDescData) +func file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP() []byte { + file_xyz_block_ftl_schema_v1_schema_proto_rawDescOnce.Do(func() { + file_xyz_block_ftl_schema_v1_schema_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_schema_v1_schema_proto_rawDescData) }) - return file_xyz_block_ftl_v1_schema_schema_proto_rawDescData -} - -var file_xyz_block_ftl_v1_schema_schema_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_xyz_block_ftl_v1_schema_schema_proto_msgTypes = make([]protoimpl.MessageInfo, 56) -var file_xyz_block_ftl_v1_schema_schema_proto_goTypes = []any{ - (AliasKind)(0), // 0: xyz.block.ftl.v1.schema.AliasKind - (FromOffset)(0), // 1: xyz.block.ftl.v1.schema.FromOffset - (*AWSIAMAuthDatabaseConnector)(nil), // 2: xyz.block.ftl.v1.schema.AWSIAMAuthDatabaseConnector - (*Any)(nil), // 3: xyz.block.ftl.v1.schema.Any - (*Array)(nil), // 4: xyz.block.ftl.v1.schema.Array - (*Bool)(nil), // 5: xyz.block.ftl.v1.schema.Bool - (*Bytes)(nil), // 6: xyz.block.ftl.v1.schema.Bytes - (*Config)(nil), // 7: xyz.block.ftl.v1.schema.Config - (*DSNDatabaseConnector)(nil), // 8: xyz.block.ftl.v1.schema.DSNDatabaseConnector - (*Data)(nil), // 9: xyz.block.ftl.v1.schema.Data - (*Database)(nil), // 10: xyz.block.ftl.v1.schema.Database - (*DatabaseConnector)(nil), // 11: xyz.block.ftl.v1.schema.DatabaseConnector - (*DatabaseRuntime)(nil), // 12: xyz.block.ftl.v1.schema.DatabaseRuntime - (*Decl)(nil), // 13: xyz.block.ftl.v1.schema.Decl - (*Enum)(nil), // 14: xyz.block.ftl.v1.schema.Enum - (*EnumVariant)(nil), // 15: xyz.block.ftl.v1.schema.EnumVariant - (*Field)(nil), // 16: xyz.block.ftl.v1.schema.Field - (*Float)(nil), // 17: xyz.block.ftl.v1.schema.Float - (*IngressPathComponent)(nil), // 18: xyz.block.ftl.v1.schema.IngressPathComponent - (*IngressPathLiteral)(nil), // 19: xyz.block.ftl.v1.schema.IngressPathLiteral - (*IngressPathParameter)(nil), // 20: xyz.block.ftl.v1.schema.IngressPathParameter - (*Int)(nil), // 21: xyz.block.ftl.v1.schema.Int - (*IntValue)(nil), // 22: xyz.block.ftl.v1.schema.IntValue - (*Map)(nil), // 23: xyz.block.ftl.v1.schema.Map - (*Metadata)(nil), // 24: xyz.block.ftl.v1.schema.Metadata - (*MetadataAlias)(nil), // 25: xyz.block.ftl.v1.schema.MetadataAlias - (*MetadataCalls)(nil), // 26: xyz.block.ftl.v1.schema.MetadataCalls - (*MetadataConfig)(nil), // 27: xyz.block.ftl.v1.schema.MetadataConfig - (*MetadataCronJob)(nil), // 28: xyz.block.ftl.v1.schema.MetadataCronJob - (*MetadataDatabases)(nil), // 29: xyz.block.ftl.v1.schema.MetadataDatabases - (*MetadataEncoding)(nil), // 30: xyz.block.ftl.v1.schema.MetadataEncoding - (*MetadataIngress)(nil), // 31: xyz.block.ftl.v1.schema.MetadataIngress - (*MetadataPublisher)(nil), // 32: xyz.block.ftl.v1.schema.MetadataPublisher - (*MetadataRetry)(nil), // 33: xyz.block.ftl.v1.schema.MetadataRetry - (*MetadataSQLMigration)(nil), // 34: xyz.block.ftl.v1.schema.MetadataSQLMigration - (*MetadataSecrets)(nil), // 35: xyz.block.ftl.v1.schema.MetadataSecrets - (*MetadataSubscriber)(nil), // 36: xyz.block.ftl.v1.schema.MetadataSubscriber - (*MetadataTypeMap)(nil), // 37: xyz.block.ftl.v1.schema.MetadataTypeMap - (*Module)(nil), // 38: xyz.block.ftl.v1.schema.Module - (*ModuleRuntime)(nil), // 39: xyz.block.ftl.v1.schema.ModuleRuntime - (*Optional)(nil), // 40: xyz.block.ftl.v1.schema.Optional - (*Position)(nil), // 41: xyz.block.ftl.v1.schema.Position - (*Ref)(nil), // 42: xyz.block.ftl.v1.schema.Ref - (*Schema)(nil), // 43: xyz.block.ftl.v1.schema.Schema - (*Secret)(nil), // 44: xyz.block.ftl.v1.schema.Secret - (*String)(nil), // 45: xyz.block.ftl.v1.schema.String - (*StringValue)(nil), // 46: xyz.block.ftl.v1.schema.StringValue - (*Time)(nil), // 47: xyz.block.ftl.v1.schema.Time - (*Topic)(nil), // 48: xyz.block.ftl.v1.schema.Topic - (*TopicRuntime)(nil), // 49: xyz.block.ftl.v1.schema.TopicRuntime - (*Type)(nil), // 50: xyz.block.ftl.v1.schema.Type - (*TypeAlias)(nil), // 51: xyz.block.ftl.v1.schema.TypeAlias - (*TypeParameter)(nil), // 52: xyz.block.ftl.v1.schema.TypeParameter - (*TypeValue)(nil), // 53: xyz.block.ftl.v1.schema.TypeValue - (*Unit)(nil), // 54: xyz.block.ftl.v1.schema.Unit - (*Value)(nil), // 55: xyz.block.ftl.v1.schema.Value - (*Verb)(nil), // 56: xyz.block.ftl.v1.schema.Verb - (*VerbRuntime)(nil), // 57: xyz.block.ftl.v1.schema.VerbRuntime + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescData +} + +var file_xyz_block_ftl_schema_v1_schema_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_xyz_block_ftl_schema_v1_schema_proto_msgTypes = make([]protoimpl.MessageInfo, 56) +var file_xyz_block_ftl_schema_v1_schema_proto_goTypes = []any{ + (AliasKind)(0), // 0: xyz.block.ftl.schema.v1.AliasKind + (FromOffset)(0), // 1: xyz.block.ftl.schema.v1.FromOffset + (*AWSIAMAuthDatabaseConnector)(nil), // 2: xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector + (*Any)(nil), // 3: xyz.block.ftl.schema.v1.Any + (*Array)(nil), // 4: xyz.block.ftl.schema.v1.Array + (*Bool)(nil), // 5: xyz.block.ftl.schema.v1.Bool + (*Bytes)(nil), // 6: xyz.block.ftl.schema.v1.Bytes + (*Config)(nil), // 7: xyz.block.ftl.schema.v1.Config + (*DSNDatabaseConnector)(nil), // 8: xyz.block.ftl.schema.v1.DSNDatabaseConnector + (*Data)(nil), // 9: xyz.block.ftl.schema.v1.Data + (*Database)(nil), // 10: xyz.block.ftl.schema.v1.Database + (*DatabaseConnector)(nil), // 11: xyz.block.ftl.schema.v1.DatabaseConnector + (*DatabaseRuntime)(nil), // 12: xyz.block.ftl.schema.v1.DatabaseRuntime + (*Decl)(nil), // 13: xyz.block.ftl.schema.v1.Decl + (*Enum)(nil), // 14: xyz.block.ftl.schema.v1.Enum + (*EnumVariant)(nil), // 15: xyz.block.ftl.schema.v1.EnumVariant + (*Field)(nil), // 16: xyz.block.ftl.schema.v1.Field + (*Float)(nil), // 17: xyz.block.ftl.schema.v1.Float + (*IngressPathComponent)(nil), // 18: xyz.block.ftl.schema.v1.IngressPathComponent + (*IngressPathLiteral)(nil), // 19: xyz.block.ftl.schema.v1.IngressPathLiteral + (*IngressPathParameter)(nil), // 20: xyz.block.ftl.schema.v1.IngressPathParameter + (*Int)(nil), // 21: xyz.block.ftl.schema.v1.Int + (*IntValue)(nil), // 22: xyz.block.ftl.schema.v1.IntValue + (*Map)(nil), // 23: xyz.block.ftl.schema.v1.Map + (*Metadata)(nil), // 24: xyz.block.ftl.schema.v1.Metadata + (*MetadataAlias)(nil), // 25: xyz.block.ftl.schema.v1.MetadataAlias + (*MetadataCalls)(nil), // 26: xyz.block.ftl.schema.v1.MetadataCalls + (*MetadataConfig)(nil), // 27: xyz.block.ftl.schema.v1.MetadataConfig + (*MetadataCronJob)(nil), // 28: xyz.block.ftl.schema.v1.MetadataCronJob + (*MetadataDatabases)(nil), // 29: xyz.block.ftl.schema.v1.MetadataDatabases + (*MetadataEncoding)(nil), // 30: xyz.block.ftl.schema.v1.MetadataEncoding + (*MetadataIngress)(nil), // 31: xyz.block.ftl.schema.v1.MetadataIngress + (*MetadataPublisher)(nil), // 32: xyz.block.ftl.schema.v1.MetadataPublisher + (*MetadataRetry)(nil), // 33: xyz.block.ftl.schema.v1.MetadataRetry + (*MetadataSQLMigration)(nil), // 34: xyz.block.ftl.schema.v1.MetadataSQLMigration + (*MetadataSecrets)(nil), // 35: xyz.block.ftl.schema.v1.MetadataSecrets + (*MetadataSubscriber)(nil), // 36: xyz.block.ftl.schema.v1.MetadataSubscriber + (*MetadataTypeMap)(nil), // 37: xyz.block.ftl.schema.v1.MetadataTypeMap + (*Module)(nil), // 38: xyz.block.ftl.schema.v1.Module + (*ModuleRuntime)(nil), // 39: xyz.block.ftl.schema.v1.ModuleRuntime + (*Optional)(nil), // 40: xyz.block.ftl.schema.v1.Optional + (*Position)(nil), // 41: xyz.block.ftl.schema.v1.Position + (*Ref)(nil), // 42: xyz.block.ftl.schema.v1.Ref + (*Schema)(nil), // 43: xyz.block.ftl.schema.v1.Schema + (*Secret)(nil), // 44: xyz.block.ftl.schema.v1.Secret + (*String)(nil), // 45: xyz.block.ftl.schema.v1.String + (*StringValue)(nil), // 46: xyz.block.ftl.schema.v1.StringValue + (*Time)(nil), // 47: xyz.block.ftl.schema.v1.Time + (*Topic)(nil), // 48: xyz.block.ftl.schema.v1.Topic + (*TopicRuntime)(nil), // 49: xyz.block.ftl.schema.v1.TopicRuntime + (*Type)(nil), // 50: xyz.block.ftl.schema.v1.Type + (*TypeAlias)(nil), // 51: xyz.block.ftl.schema.v1.TypeAlias + (*TypeParameter)(nil), // 52: xyz.block.ftl.schema.v1.TypeParameter + (*TypeValue)(nil), // 53: xyz.block.ftl.schema.v1.TypeValue + (*Unit)(nil), // 54: xyz.block.ftl.schema.v1.Unit + (*Value)(nil), // 55: xyz.block.ftl.schema.v1.Value + (*Verb)(nil), // 56: xyz.block.ftl.schema.v1.Verb + (*VerbRuntime)(nil), // 57: xyz.block.ftl.schema.v1.VerbRuntime (*timestamppb.Timestamp)(nil), // 58: google.protobuf.Timestamp } -var file_xyz_block_ftl_v1_schema_schema_proto_depIdxs = []int32{ - 41, // 0: xyz.block.ftl.v1.schema.AWSIAMAuthDatabaseConnector.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 1: xyz.block.ftl.v1.schema.Any.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 2: xyz.block.ftl.v1.schema.Array.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 3: xyz.block.ftl.v1.schema.Array.element:type_name -> xyz.block.ftl.v1.schema.Type - 41, // 4: xyz.block.ftl.v1.schema.Bool.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 5: xyz.block.ftl.v1.schema.Bytes.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 6: xyz.block.ftl.v1.schema.Config.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 7: xyz.block.ftl.v1.schema.Config.type:type_name -> xyz.block.ftl.v1.schema.Type - 41, // 8: xyz.block.ftl.v1.schema.DSNDatabaseConnector.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 9: xyz.block.ftl.v1.schema.Data.pos:type_name -> xyz.block.ftl.v1.schema.Position - 52, // 10: xyz.block.ftl.v1.schema.Data.type_parameters:type_name -> xyz.block.ftl.v1.schema.TypeParameter - 16, // 11: xyz.block.ftl.v1.schema.Data.fields:type_name -> xyz.block.ftl.v1.schema.Field - 24, // 12: xyz.block.ftl.v1.schema.Data.metadata:type_name -> xyz.block.ftl.v1.schema.Metadata - 41, // 13: xyz.block.ftl.v1.schema.Database.pos:type_name -> xyz.block.ftl.v1.schema.Position - 12, // 14: xyz.block.ftl.v1.schema.Database.runtime:type_name -> xyz.block.ftl.v1.schema.DatabaseRuntime - 24, // 15: xyz.block.ftl.v1.schema.Database.metadata:type_name -> xyz.block.ftl.v1.schema.Metadata - 2, // 16: xyz.block.ftl.v1.schema.DatabaseConnector.awsiam_auth_database_connector:type_name -> xyz.block.ftl.v1.schema.AWSIAMAuthDatabaseConnector - 8, // 17: xyz.block.ftl.v1.schema.DatabaseConnector.dsn_database_connector:type_name -> xyz.block.ftl.v1.schema.DSNDatabaseConnector - 11, // 18: xyz.block.ftl.v1.schema.DatabaseRuntime.read_connector:type_name -> xyz.block.ftl.v1.schema.DatabaseConnector - 11, // 19: xyz.block.ftl.v1.schema.DatabaseRuntime.write_connector:type_name -> xyz.block.ftl.v1.schema.DatabaseConnector - 7, // 20: xyz.block.ftl.v1.schema.Decl.config:type_name -> xyz.block.ftl.v1.schema.Config - 9, // 21: xyz.block.ftl.v1.schema.Decl.data:type_name -> xyz.block.ftl.v1.schema.Data - 10, // 22: xyz.block.ftl.v1.schema.Decl.database:type_name -> xyz.block.ftl.v1.schema.Database - 14, // 23: xyz.block.ftl.v1.schema.Decl.enum:type_name -> xyz.block.ftl.v1.schema.Enum - 44, // 24: xyz.block.ftl.v1.schema.Decl.secret:type_name -> xyz.block.ftl.v1.schema.Secret - 48, // 25: xyz.block.ftl.v1.schema.Decl.topic:type_name -> xyz.block.ftl.v1.schema.Topic - 51, // 26: xyz.block.ftl.v1.schema.Decl.type_alias:type_name -> xyz.block.ftl.v1.schema.TypeAlias - 56, // 27: xyz.block.ftl.v1.schema.Decl.verb:type_name -> xyz.block.ftl.v1.schema.Verb - 41, // 28: xyz.block.ftl.v1.schema.Enum.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 29: xyz.block.ftl.v1.schema.Enum.type:type_name -> xyz.block.ftl.v1.schema.Type - 15, // 30: xyz.block.ftl.v1.schema.Enum.variants:type_name -> xyz.block.ftl.v1.schema.EnumVariant - 41, // 31: xyz.block.ftl.v1.schema.EnumVariant.pos:type_name -> xyz.block.ftl.v1.schema.Position - 55, // 32: xyz.block.ftl.v1.schema.EnumVariant.value:type_name -> xyz.block.ftl.v1.schema.Value - 41, // 33: xyz.block.ftl.v1.schema.Field.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 34: xyz.block.ftl.v1.schema.Field.type:type_name -> xyz.block.ftl.v1.schema.Type - 24, // 35: xyz.block.ftl.v1.schema.Field.metadata:type_name -> xyz.block.ftl.v1.schema.Metadata - 41, // 36: xyz.block.ftl.v1.schema.Float.pos:type_name -> xyz.block.ftl.v1.schema.Position - 19, // 37: xyz.block.ftl.v1.schema.IngressPathComponent.ingress_path_literal:type_name -> xyz.block.ftl.v1.schema.IngressPathLiteral - 20, // 38: xyz.block.ftl.v1.schema.IngressPathComponent.ingress_path_parameter:type_name -> xyz.block.ftl.v1.schema.IngressPathParameter - 41, // 39: xyz.block.ftl.v1.schema.IngressPathLiteral.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 40: xyz.block.ftl.v1.schema.IngressPathParameter.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 41: xyz.block.ftl.v1.schema.Int.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 42: xyz.block.ftl.v1.schema.IntValue.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 43: xyz.block.ftl.v1.schema.Map.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 44: xyz.block.ftl.v1.schema.Map.key:type_name -> xyz.block.ftl.v1.schema.Type - 50, // 45: xyz.block.ftl.v1.schema.Map.value:type_name -> xyz.block.ftl.v1.schema.Type - 25, // 46: xyz.block.ftl.v1.schema.Metadata.alias:type_name -> xyz.block.ftl.v1.schema.MetadataAlias - 26, // 47: xyz.block.ftl.v1.schema.Metadata.calls:type_name -> xyz.block.ftl.v1.schema.MetadataCalls - 27, // 48: xyz.block.ftl.v1.schema.Metadata.config:type_name -> xyz.block.ftl.v1.schema.MetadataConfig - 28, // 49: xyz.block.ftl.v1.schema.Metadata.cron_job:type_name -> xyz.block.ftl.v1.schema.MetadataCronJob - 29, // 50: xyz.block.ftl.v1.schema.Metadata.databases:type_name -> xyz.block.ftl.v1.schema.MetadataDatabases - 30, // 51: xyz.block.ftl.v1.schema.Metadata.encoding:type_name -> xyz.block.ftl.v1.schema.MetadataEncoding - 31, // 52: xyz.block.ftl.v1.schema.Metadata.ingress:type_name -> xyz.block.ftl.v1.schema.MetadataIngress - 32, // 53: xyz.block.ftl.v1.schema.Metadata.publisher:type_name -> xyz.block.ftl.v1.schema.MetadataPublisher - 33, // 54: xyz.block.ftl.v1.schema.Metadata.retry:type_name -> xyz.block.ftl.v1.schema.MetadataRetry - 34, // 55: xyz.block.ftl.v1.schema.Metadata.sql_migration:type_name -> xyz.block.ftl.v1.schema.MetadataSQLMigration - 35, // 56: xyz.block.ftl.v1.schema.Metadata.secrets:type_name -> xyz.block.ftl.v1.schema.MetadataSecrets - 36, // 57: xyz.block.ftl.v1.schema.Metadata.subscriber:type_name -> xyz.block.ftl.v1.schema.MetadataSubscriber - 37, // 58: xyz.block.ftl.v1.schema.Metadata.type_map:type_name -> xyz.block.ftl.v1.schema.MetadataTypeMap - 41, // 59: xyz.block.ftl.v1.schema.MetadataAlias.pos:type_name -> xyz.block.ftl.v1.schema.Position - 0, // 60: xyz.block.ftl.v1.schema.MetadataAlias.kind:type_name -> xyz.block.ftl.v1.schema.AliasKind - 41, // 61: xyz.block.ftl.v1.schema.MetadataCalls.pos:type_name -> xyz.block.ftl.v1.schema.Position - 42, // 62: xyz.block.ftl.v1.schema.MetadataCalls.calls:type_name -> xyz.block.ftl.v1.schema.Ref - 41, // 63: xyz.block.ftl.v1.schema.MetadataConfig.pos:type_name -> xyz.block.ftl.v1.schema.Position - 42, // 64: xyz.block.ftl.v1.schema.MetadataConfig.config:type_name -> xyz.block.ftl.v1.schema.Ref - 41, // 65: xyz.block.ftl.v1.schema.MetadataCronJob.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 66: xyz.block.ftl.v1.schema.MetadataDatabases.pos:type_name -> xyz.block.ftl.v1.schema.Position - 42, // 67: xyz.block.ftl.v1.schema.MetadataDatabases.calls:type_name -> xyz.block.ftl.v1.schema.Ref - 41, // 68: xyz.block.ftl.v1.schema.MetadataEncoding.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 69: xyz.block.ftl.v1.schema.MetadataIngress.pos:type_name -> xyz.block.ftl.v1.schema.Position - 18, // 70: xyz.block.ftl.v1.schema.MetadataIngress.path:type_name -> xyz.block.ftl.v1.schema.IngressPathComponent - 41, // 71: xyz.block.ftl.v1.schema.MetadataPublisher.pos:type_name -> xyz.block.ftl.v1.schema.Position - 42, // 72: xyz.block.ftl.v1.schema.MetadataPublisher.topics:type_name -> xyz.block.ftl.v1.schema.Ref - 41, // 73: xyz.block.ftl.v1.schema.MetadataRetry.pos:type_name -> xyz.block.ftl.v1.schema.Position - 42, // 74: xyz.block.ftl.v1.schema.MetadataRetry.catch:type_name -> xyz.block.ftl.v1.schema.Ref - 41, // 75: xyz.block.ftl.v1.schema.MetadataSQLMigration.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 76: xyz.block.ftl.v1.schema.MetadataSecrets.pos:type_name -> xyz.block.ftl.v1.schema.Position - 42, // 77: xyz.block.ftl.v1.schema.MetadataSecrets.secrets:type_name -> xyz.block.ftl.v1.schema.Ref - 41, // 78: xyz.block.ftl.v1.schema.MetadataSubscriber.pos:type_name -> xyz.block.ftl.v1.schema.Position - 42, // 79: xyz.block.ftl.v1.schema.MetadataSubscriber.topic:type_name -> xyz.block.ftl.v1.schema.Ref - 1, // 80: xyz.block.ftl.v1.schema.MetadataSubscriber.from_offset:type_name -> xyz.block.ftl.v1.schema.FromOffset - 41, // 81: xyz.block.ftl.v1.schema.MetadataTypeMap.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 82: xyz.block.ftl.v1.schema.Module.pos:type_name -> xyz.block.ftl.v1.schema.Position - 13, // 83: xyz.block.ftl.v1.schema.Module.decls:type_name -> xyz.block.ftl.v1.schema.Decl - 39, // 84: xyz.block.ftl.v1.schema.Module.runtime:type_name -> xyz.block.ftl.v1.schema.ModuleRuntime - 58, // 85: xyz.block.ftl.v1.schema.ModuleRuntime.create_time:type_name -> google.protobuf.Timestamp - 41, // 86: xyz.block.ftl.v1.schema.Optional.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 87: xyz.block.ftl.v1.schema.Optional.type:type_name -> xyz.block.ftl.v1.schema.Type - 41, // 88: xyz.block.ftl.v1.schema.Ref.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 89: xyz.block.ftl.v1.schema.Ref.type_parameters:type_name -> xyz.block.ftl.v1.schema.Type - 41, // 90: xyz.block.ftl.v1.schema.Schema.pos:type_name -> xyz.block.ftl.v1.schema.Position - 38, // 91: xyz.block.ftl.v1.schema.Schema.modules:type_name -> xyz.block.ftl.v1.schema.Module - 41, // 92: xyz.block.ftl.v1.schema.Secret.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 93: xyz.block.ftl.v1.schema.Secret.type:type_name -> xyz.block.ftl.v1.schema.Type - 41, // 94: xyz.block.ftl.v1.schema.String.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 95: xyz.block.ftl.v1.schema.StringValue.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 96: xyz.block.ftl.v1.schema.Time.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 97: xyz.block.ftl.v1.schema.Topic.pos:type_name -> xyz.block.ftl.v1.schema.Position - 49, // 98: xyz.block.ftl.v1.schema.Topic.runtime:type_name -> xyz.block.ftl.v1.schema.TopicRuntime - 50, // 99: xyz.block.ftl.v1.schema.Topic.event:type_name -> xyz.block.ftl.v1.schema.Type - 3, // 100: xyz.block.ftl.v1.schema.Type.any:type_name -> xyz.block.ftl.v1.schema.Any - 4, // 101: xyz.block.ftl.v1.schema.Type.array:type_name -> xyz.block.ftl.v1.schema.Array - 5, // 102: xyz.block.ftl.v1.schema.Type.bool:type_name -> xyz.block.ftl.v1.schema.Bool - 6, // 103: xyz.block.ftl.v1.schema.Type.bytes:type_name -> xyz.block.ftl.v1.schema.Bytes - 17, // 104: xyz.block.ftl.v1.schema.Type.float:type_name -> xyz.block.ftl.v1.schema.Float - 21, // 105: xyz.block.ftl.v1.schema.Type.int:type_name -> xyz.block.ftl.v1.schema.Int - 23, // 106: xyz.block.ftl.v1.schema.Type.map:type_name -> xyz.block.ftl.v1.schema.Map - 40, // 107: xyz.block.ftl.v1.schema.Type.optional:type_name -> xyz.block.ftl.v1.schema.Optional - 42, // 108: xyz.block.ftl.v1.schema.Type.ref:type_name -> xyz.block.ftl.v1.schema.Ref - 45, // 109: xyz.block.ftl.v1.schema.Type.string:type_name -> xyz.block.ftl.v1.schema.String - 47, // 110: xyz.block.ftl.v1.schema.Type.time:type_name -> xyz.block.ftl.v1.schema.Time - 54, // 111: xyz.block.ftl.v1.schema.Type.unit:type_name -> xyz.block.ftl.v1.schema.Unit - 41, // 112: xyz.block.ftl.v1.schema.TypeAlias.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 113: xyz.block.ftl.v1.schema.TypeAlias.type:type_name -> xyz.block.ftl.v1.schema.Type - 24, // 114: xyz.block.ftl.v1.schema.TypeAlias.metadata:type_name -> xyz.block.ftl.v1.schema.Metadata - 41, // 115: xyz.block.ftl.v1.schema.TypeParameter.pos:type_name -> xyz.block.ftl.v1.schema.Position - 41, // 116: xyz.block.ftl.v1.schema.TypeValue.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 117: xyz.block.ftl.v1.schema.TypeValue.value:type_name -> xyz.block.ftl.v1.schema.Type - 41, // 118: xyz.block.ftl.v1.schema.Unit.pos:type_name -> xyz.block.ftl.v1.schema.Position - 22, // 119: xyz.block.ftl.v1.schema.Value.int_value:type_name -> xyz.block.ftl.v1.schema.IntValue - 46, // 120: xyz.block.ftl.v1.schema.Value.string_value:type_name -> xyz.block.ftl.v1.schema.StringValue - 53, // 121: xyz.block.ftl.v1.schema.Value.type_value:type_name -> xyz.block.ftl.v1.schema.TypeValue - 41, // 122: xyz.block.ftl.v1.schema.Verb.pos:type_name -> xyz.block.ftl.v1.schema.Position - 50, // 123: xyz.block.ftl.v1.schema.Verb.request:type_name -> xyz.block.ftl.v1.schema.Type - 50, // 124: xyz.block.ftl.v1.schema.Verb.response:type_name -> xyz.block.ftl.v1.schema.Type - 24, // 125: xyz.block.ftl.v1.schema.Verb.metadata:type_name -> xyz.block.ftl.v1.schema.Metadata - 57, // 126: xyz.block.ftl.v1.schema.Verb.runtime:type_name -> xyz.block.ftl.v1.schema.VerbRuntime - 58, // 127: xyz.block.ftl.v1.schema.VerbRuntime.create_time:type_name -> google.protobuf.Timestamp - 58, // 128: xyz.block.ftl.v1.schema.VerbRuntime.start_time:type_name -> google.protobuf.Timestamp +var file_xyz_block_ftl_schema_v1_schema_proto_depIdxs = []int32{ + 41, // 0: xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 1: xyz.block.ftl.schema.v1.Any.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 2: xyz.block.ftl.schema.v1.Array.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 3: xyz.block.ftl.schema.v1.Array.element:type_name -> xyz.block.ftl.schema.v1.Type + 41, // 4: xyz.block.ftl.schema.v1.Bool.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 5: xyz.block.ftl.schema.v1.Bytes.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 6: xyz.block.ftl.schema.v1.Config.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 7: xyz.block.ftl.schema.v1.Config.type:type_name -> xyz.block.ftl.schema.v1.Type + 41, // 8: xyz.block.ftl.schema.v1.DSNDatabaseConnector.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 9: xyz.block.ftl.schema.v1.Data.pos:type_name -> xyz.block.ftl.schema.v1.Position + 52, // 10: xyz.block.ftl.schema.v1.Data.type_parameters:type_name -> xyz.block.ftl.schema.v1.TypeParameter + 16, // 11: xyz.block.ftl.schema.v1.Data.fields:type_name -> xyz.block.ftl.schema.v1.Field + 24, // 12: xyz.block.ftl.schema.v1.Data.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 41, // 13: xyz.block.ftl.schema.v1.Database.pos:type_name -> xyz.block.ftl.schema.v1.Position + 12, // 14: xyz.block.ftl.schema.v1.Database.runtime:type_name -> xyz.block.ftl.schema.v1.DatabaseRuntime + 24, // 15: xyz.block.ftl.schema.v1.Database.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 2, // 16: xyz.block.ftl.schema.v1.DatabaseConnector.awsiam_auth_database_connector:type_name -> xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector + 8, // 17: xyz.block.ftl.schema.v1.DatabaseConnector.dsn_database_connector:type_name -> xyz.block.ftl.schema.v1.DSNDatabaseConnector + 11, // 18: xyz.block.ftl.schema.v1.DatabaseRuntime.read_connector:type_name -> xyz.block.ftl.schema.v1.DatabaseConnector + 11, // 19: xyz.block.ftl.schema.v1.DatabaseRuntime.write_connector:type_name -> xyz.block.ftl.schema.v1.DatabaseConnector + 7, // 20: xyz.block.ftl.schema.v1.Decl.config:type_name -> xyz.block.ftl.schema.v1.Config + 9, // 21: xyz.block.ftl.schema.v1.Decl.data:type_name -> xyz.block.ftl.schema.v1.Data + 10, // 22: xyz.block.ftl.schema.v1.Decl.database:type_name -> xyz.block.ftl.schema.v1.Database + 14, // 23: xyz.block.ftl.schema.v1.Decl.enum:type_name -> xyz.block.ftl.schema.v1.Enum + 44, // 24: xyz.block.ftl.schema.v1.Decl.secret:type_name -> xyz.block.ftl.schema.v1.Secret + 48, // 25: xyz.block.ftl.schema.v1.Decl.topic:type_name -> xyz.block.ftl.schema.v1.Topic + 51, // 26: xyz.block.ftl.schema.v1.Decl.type_alias:type_name -> xyz.block.ftl.schema.v1.TypeAlias + 56, // 27: xyz.block.ftl.schema.v1.Decl.verb:type_name -> xyz.block.ftl.schema.v1.Verb + 41, // 28: xyz.block.ftl.schema.v1.Enum.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 29: xyz.block.ftl.schema.v1.Enum.type:type_name -> xyz.block.ftl.schema.v1.Type + 15, // 30: xyz.block.ftl.schema.v1.Enum.variants:type_name -> xyz.block.ftl.schema.v1.EnumVariant + 41, // 31: xyz.block.ftl.schema.v1.EnumVariant.pos:type_name -> xyz.block.ftl.schema.v1.Position + 55, // 32: xyz.block.ftl.schema.v1.EnumVariant.value:type_name -> xyz.block.ftl.schema.v1.Value + 41, // 33: xyz.block.ftl.schema.v1.Field.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 34: xyz.block.ftl.schema.v1.Field.type:type_name -> xyz.block.ftl.schema.v1.Type + 24, // 35: xyz.block.ftl.schema.v1.Field.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 41, // 36: xyz.block.ftl.schema.v1.Float.pos:type_name -> xyz.block.ftl.schema.v1.Position + 19, // 37: xyz.block.ftl.schema.v1.IngressPathComponent.ingress_path_literal:type_name -> xyz.block.ftl.schema.v1.IngressPathLiteral + 20, // 38: xyz.block.ftl.schema.v1.IngressPathComponent.ingress_path_parameter:type_name -> xyz.block.ftl.schema.v1.IngressPathParameter + 41, // 39: xyz.block.ftl.schema.v1.IngressPathLiteral.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 40: xyz.block.ftl.schema.v1.IngressPathParameter.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 41: xyz.block.ftl.schema.v1.Int.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 42: xyz.block.ftl.schema.v1.IntValue.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 43: xyz.block.ftl.schema.v1.Map.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 44: xyz.block.ftl.schema.v1.Map.key:type_name -> xyz.block.ftl.schema.v1.Type + 50, // 45: xyz.block.ftl.schema.v1.Map.value:type_name -> xyz.block.ftl.schema.v1.Type + 25, // 46: xyz.block.ftl.schema.v1.Metadata.alias:type_name -> xyz.block.ftl.schema.v1.MetadataAlias + 26, // 47: xyz.block.ftl.schema.v1.Metadata.calls:type_name -> xyz.block.ftl.schema.v1.MetadataCalls + 27, // 48: xyz.block.ftl.schema.v1.Metadata.config:type_name -> xyz.block.ftl.schema.v1.MetadataConfig + 28, // 49: xyz.block.ftl.schema.v1.Metadata.cron_job:type_name -> xyz.block.ftl.schema.v1.MetadataCronJob + 29, // 50: xyz.block.ftl.schema.v1.Metadata.databases:type_name -> xyz.block.ftl.schema.v1.MetadataDatabases + 30, // 51: xyz.block.ftl.schema.v1.Metadata.encoding:type_name -> xyz.block.ftl.schema.v1.MetadataEncoding + 31, // 52: xyz.block.ftl.schema.v1.Metadata.ingress:type_name -> xyz.block.ftl.schema.v1.MetadataIngress + 32, // 53: xyz.block.ftl.schema.v1.Metadata.publisher:type_name -> xyz.block.ftl.schema.v1.MetadataPublisher + 33, // 54: xyz.block.ftl.schema.v1.Metadata.retry:type_name -> xyz.block.ftl.schema.v1.MetadataRetry + 34, // 55: xyz.block.ftl.schema.v1.Metadata.sql_migration:type_name -> xyz.block.ftl.schema.v1.MetadataSQLMigration + 35, // 56: xyz.block.ftl.schema.v1.Metadata.secrets:type_name -> xyz.block.ftl.schema.v1.MetadataSecrets + 36, // 57: xyz.block.ftl.schema.v1.Metadata.subscriber:type_name -> xyz.block.ftl.schema.v1.MetadataSubscriber + 37, // 58: xyz.block.ftl.schema.v1.Metadata.type_map:type_name -> xyz.block.ftl.schema.v1.MetadataTypeMap + 41, // 59: xyz.block.ftl.schema.v1.MetadataAlias.pos:type_name -> xyz.block.ftl.schema.v1.Position + 0, // 60: xyz.block.ftl.schema.v1.MetadataAlias.kind:type_name -> xyz.block.ftl.schema.v1.AliasKind + 41, // 61: xyz.block.ftl.schema.v1.MetadataCalls.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 62: xyz.block.ftl.schema.v1.MetadataCalls.calls:type_name -> xyz.block.ftl.schema.v1.Ref + 41, // 63: xyz.block.ftl.schema.v1.MetadataConfig.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 64: xyz.block.ftl.schema.v1.MetadataConfig.config:type_name -> xyz.block.ftl.schema.v1.Ref + 41, // 65: xyz.block.ftl.schema.v1.MetadataCronJob.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 66: xyz.block.ftl.schema.v1.MetadataDatabases.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 67: xyz.block.ftl.schema.v1.MetadataDatabases.calls:type_name -> xyz.block.ftl.schema.v1.Ref + 41, // 68: xyz.block.ftl.schema.v1.MetadataEncoding.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 69: xyz.block.ftl.schema.v1.MetadataIngress.pos:type_name -> xyz.block.ftl.schema.v1.Position + 18, // 70: xyz.block.ftl.schema.v1.MetadataIngress.path:type_name -> xyz.block.ftl.schema.v1.IngressPathComponent + 41, // 71: xyz.block.ftl.schema.v1.MetadataPublisher.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 72: xyz.block.ftl.schema.v1.MetadataPublisher.topics:type_name -> xyz.block.ftl.schema.v1.Ref + 41, // 73: xyz.block.ftl.schema.v1.MetadataRetry.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 74: xyz.block.ftl.schema.v1.MetadataRetry.catch:type_name -> xyz.block.ftl.schema.v1.Ref + 41, // 75: xyz.block.ftl.schema.v1.MetadataSQLMigration.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 76: xyz.block.ftl.schema.v1.MetadataSecrets.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 77: xyz.block.ftl.schema.v1.MetadataSecrets.secrets:type_name -> xyz.block.ftl.schema.v1.Ref + 41, // 78: xyz.block.ftl.schema.v1.MetadataSubscriber.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 79: xyz.block.ftl.schema.v1.MetadataSubscriber.topic:type_name -> xyz.block.ftl.schema.v1.Ref + 1, // 80: xyz.block.ftl.schema.v1.MetadataSubscriber.from_offset:type_name -> xyz.block.ftl.schema.v1.FromOffset + 41, // 81: xyz.block.ftl.schema.v1.MetadataTypeMap.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 82: xyz.block.ftl.schema.v1.Module.pos:type_name -> xyz.block.ftl.schema.v1.Position + 13, // 83: xyz.block.ftl.schema.v1.Module.decls:type_name -> xyz.block.ftl.schema.v1.Decl + 39, // 84: xyz.block.ftl.schema.v1.Module.runtime:type_name -> xyz.block.ftl.schema.v1.ModuleRuntime + 58, // 85: xyz.block.ftl.schema.v1.ModuleRuntime.create_time:type_name -> google.protobuf.Timestamp + 41, // 86: xyz.block.ftl.schema.v1.Optional.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 87: xyz.block.ftl.schema.v1.Optional.type:type_name -> xyz.block.ftl.schema.v1.Type + 41, // 88: xyz.block.ftl.schema.v1.Ref.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 89: xyz.block.ftl.schema.v1.Ref.type_parameters:type_name -> xyz.block.ftl.schema.v1.Type + 41, // 90: xyz.block.ftl.schema.v1.Schema.pos:type_name -> xyz.block.ftl.schema.v1.Position + 38, // 91: xyz.block.ftl.schema.v1.Schema.modules:type_name -> xyz.block.ftl.schema.v1.Module + 41, // 92: xyz.block.ftl.schema.v1.Secret.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 93: xyz.block.ftl.schema.v1.Secret.type:type_name -> xyz.block.ftl.schema.v1.Type + 41, // 94: xyz.block.ftl.schema.v1.String.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 95: xyz.block.ftl.schema.v1.StringValue.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 96: xyz.block.ftl.schema.v1.Time.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 97: xyz.block.ftl.schema.v1.Topic.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 98: xyz.block.ftl.schema.v1.Topic.runtime:type_name -> xyz.block.ftl.schema.v1.TopicRuntime + 50, // 99: xyz.block.ftl.schema.v1.Topic.event:type_name -> xyz.block.ftl.schema.v1.Type + 3, // 100: xyz.block.ftl.schema.v1.Type.any:type_name -> xyz.block.ftl.schema.v1.Any + 4, // 101: xyz.block.ftl.schema.v1.Type.array:type_name -> xyz.block.ftl.schema.v1.Array + 5, // 102: xyz.block.ftl.schema.v1.Type.bool:type_name -> xyz.block.ftl.schema.v1.Bool + 6, // 103: xyz.block.ftl.schema.v1.Type.bytes:type_name -> xyz.block.ftl.schema.v1.Bytes + 17, // 104: xyz.block.ftl.schema.v1.Type.float:type_name -> xyz.block.ftl.schema.v1.Float + 21, // 105: xyz.block.ftl.schema.v1.Type.int:type_name -> xyz.block.ftl.schema.v1.Int + 23, // 106: xyz.block.ftl.schema.v1.Type.map:type_name -> xyz.block.ftl.schema.v1.Map + 40, // 107: xyz.block.ftl.schema.v1.Type.optional:type_name -> xyz.block.ftl.schema.v1.Optional + 42, // 108: xyz.block.ftl.schema.v1.Type.ref:type_name -> xyz.block.ftl.schema.v1.Ref + 45, // 109: xyz.block.ftl.schema.v1.Type.string:type_name -> xyz.block.ftl.schema.v1.String + 47, // 110: xyz.block.ftl.schema.v1.Type.time:type_name -> xyz.block.ftl.schema.v1.Time + 54, // 111: xyz.block.ftl.schema.v1.Type.unit:type_name -> xyz.block.ftl.schema.v1.Unit + 41, // 112: xyz.block.ftl.schema.v1.TypeAlias.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 113: xyz.block.ftl.schema.v1.TypeAlias.type:type_name -> xyz.block.ftl.schema.v1.Type + 24, // 114: xyz.block.ftl.schema.v1.TypeAlias.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 41, // 115: xyz.block.ftl.schema.v1.TypeParameter.pos:type_name -> xyz.block.ftl.schema.v1.Position + 41, // 116: xyz.block.ftl.schema.v1.TypeValue.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 117: xyz.block.ftl.schema.v1.TypeValue.value:type_name -> xyz.block.ftl.schema.v1.Type + 41, // 118: xyz.block.ftl.schema.v1.Unit.pos:type_name -> xyz.block.ftl.schema.v1.Position + 22, // 119: xyz.block.ftl.schema.v1.Value.int_value:type_name -> xyz.block.ftl.schema.v1.IntValue + 46, // 120: xyz.block.ftl.schema.v1.Value.string_value:type_name -> xyz.block.ftl.schema.v1.StringValue + 53, // 121: xyz.block.ftl.schema.v1.Value.type_value:type_name -> xyz.block.ftl.schema.v1.TypeValue + 41, // 122: xyz.block.ftl.schema.v1.Verb.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 123: xyz.block.ftl.schema.v1.Verb.request:type_name -> xyz.block.ftl.schema.v1.Type + 50, // 124: xyz.block.ftl.schema.v1.Verb.response:type_name -> xyz.block.ftl.schema.v1.Type + 24, // 125: xyz.block.ftl.schema.v1.Verb.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 57, // 126: xyz.block.ftl.schema.v1.Verb.runtime:type_name -> xyz.block.ftl.schema.v1.VerbRuntime + 58, // 127: xyz.block.ftl.schema.v1.VerbRuntime.create_time:type_name -> google.protobuf.Timestamp + 58, // 128: xyz.block.ftl.schema.v1.VerbRuntime.start_time:type_name -> google.protobuf.Timestamp 129, // [129:129] is the sub-list for method output_type 129, // [129:129] is the sub-list for method input_type 129, // [129:129] is the sub-list for extension type_name @@ -4972,25 +4981,25 @@ var file_xyz_block_ftl_v1_schema_schema_proto_depIdxs = []int32{ 0, // [0:129] is the sub-list for field type_name } -func init() { file_xyz_block_ftl_v1_schema_schema_proto_init() } -func file_xyz_block_ftl_v1_schema_schema_proto_init() { - if File_xyz_block_ftl_v1_schema_schema_proto != nil { +func init() { file_xyz_block_ftl_schema_v1_schema_proto_init() } +func file_xyz_block_ftl_schema_v1_schema_proto_init() { + if File_xyz_block_ftl_schema_v1_schema_proto != nil { return } - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[0].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[1].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[2].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[3].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[4].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[5].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[6].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[7].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[8].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[9].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[0].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[1].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[2].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[3].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[4].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[5].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[6].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[7].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[8].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[9].OneofWrappers = []any{ (*DatabaseConnector_AwsiamAuthDatabaseConnector)(nil), (*DatabaseConnector_DsnDatabaseConnector)(nil), } - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[11].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[11].OneofWrappers = []any{ (*Decl_Config)(nil), (*Decl_Data)(nil), (*Decl_Database)(nil), @@ -5000,20 +5009,20 @@ func file_xyz_block_ftl_v1_schema_schema_proto_init() { (*Decl_TypeAlias)(nil), (*Decl_Verb)(nil), } - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[12].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[13].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[14].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[15].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[16].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[12].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[13].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[14].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[15].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[16].OneofWrappers = []any{ (*IngressPathComponent_IngressPathLiteral)(nil), (*IngressPathComponent_IngressPathParameter)(nil), } - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[17].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[18].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[19].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[20].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[21].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[22].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[17].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[18].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[19].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[20].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[21].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[22].OneofWrappers = []any{ (*Metadata_Alias)(nil), (*Metadata_Calls)(nil), (*Metadata_Config)(nil), @@ -5028,30 +5037,30 @@ func file_xyz_block_ftl_v1_schema_schema_proto_init() { (*Metadata_Subscriber)(nil), (*Metadata_TypeMap)(nil), } - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[23].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[24].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[25].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[26].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[27].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[28].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[29].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[30].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[31].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[32].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[33].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[34].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[35].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[36].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[37].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[38].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[40].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[41].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[42].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[43].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[44].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[45].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[46].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[48].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[23].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[24].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[25].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[26].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[27].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[28].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[29].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[30].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[31].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[32].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[33].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[34].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[35].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[36].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[37].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[38].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48].OneofWrappers = []any{ (*Type_Any)(nil), (*Type_Array)(nil), (*Type_Bool)(nil), @@ -5065,34 +5074,34 @@ func file_xyz_block_ftl_v1_schema_schema_proto_init() { (*Type_Time)(nil), (*Type_Unit)(nil), } - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[49].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[50].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[51].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[52].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[53].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53].OneofWrappers = []any{ (*Value_IntValue)(nil), (*Value_StringValue)(nil), (*Value_TypeValue)(nil), } - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[54].OneofWrappers = []any{} - file_xyz_block_ftl_v1_schema_schema_proto_msgTypes[55].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_xyz_block_ftl_v1_schema_schema_proto_rawDesc, + RawDescriptor: file_xyz_block_ftl_schema_v1_schema_proto_rawDesc, NumEnums: 2, NumMessages: 56, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_xyz_block_ftl_v1_schema_schema_proto_goTypes, - DependencyIndexes: file_xyz_block_ftl_v1_schema_schema_proto_depIdxs, - EnumInfos: file_xyz_block_ftl_v1_schema_schema_proto_enumTypes, - MessageInfos: file_xyz_block_ftl_v1_schema_schema_proto_msgTypes, + GoTypes: file_xyz_block_ftl_schema_v1_schema_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_schema_v1_schema_proto_depIdxs, + EnumInfos: file_xyz_block_ftl_schema_v1_schema_proto_enumTypes, + MessageInfos: file_xyz_block_ftl_schema_v1_schema_proto_msgTypes, }.Build() - File_xyz_block_ftl_v1_schema_schema_proto = out.File - file_xyz_block_ftl_v1_schema_schema_proto_rawDesc = nil - file_xyz_block_ftl_v1_schema_schema_proto_goTypes = nil - file_xyz_block_ftl_v1_schema_schema_proto_depIdxs = nil + File_xyz_block_ftl_schema_v1_schema_proto = out.File + file_xyz_block_ftl_schema_v1_schema_proto_rawDesc = nil + file_xyz_block_ftl_schema_v1_schema_proto_goTypes = nil + file_xyz_block_ftl_schema_v1_schema_proto_depIdxs = nil } diff --git a/backend/protos/xyz/block/ftl/v1/schema/schema.proto b/backend/protos/xyz/block/ftl/schema/v1/schema.proto similarity index 97% rename from backend/protos/xyz/block/ftl/v1/schema/schema.proto rename to backend/protos/xyz/block/ftl/schema/v1/schema.proto index df51489053..5213bad56b 100644 --- a/backend/protos/xyz/block/ftl/v1/schema/schema.proto +++ b/backend/protos/xyz/block/ftl/schema/v1/schema.proto @@ -1,11 +1,11 @@ // THIS FILE IS GENERATED; DO NOT MODIFY syntax = "proto3"; -package xyz.block.ftl.v1.schema; +package xyz.block.ftl.schema.v1; import "google/protobuf/timestamp.proto"; -option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema;schemapb"; +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1;schemapb"; option java_multiple_files = true; message AWSIAMAuthDatabaseConnector { @@ -16,7 +16,8 @@ message AWSIAMAuthDatabaseConnector { } enum AliasKind { - ALIAS_KIND_JSON = 0; + ALIAS_KIND_UNSPECIFIED = 0; + ALIAS_KIND_JSON = 1; } message Any { @@ -121,8 +122,9 @@ message Float { } enum FromOffset { - FROM_OFFSET_BEGINNING = 0; - FROM_OFFSET_LATEST = 1; + FROM_OFFSET_UNSPECIFIED = 0; + FROM_OFFSET_BEGINNING = 1; + FROM_OFFSET_LATEST = 2; } message IngressPathComponent { diff --git a/backend/protos/xyz/block/ftl/v1/admin.pb.go b/backend/protos/xyz/block/ftl/v1/admin.pb.go index e822b668e6..f8425bdf40 100644 --- a/backend/protos/xyz/block/ftl/v1/admin.pb.go +++ b/backend/protos/xyz/block/ftl/v1/admin.pb.go @@ -23,25 +23,28 @@ const ( type ConfigProvider int32 const ( + ConfigProvider_CONFIG_PROVIDER_UNSPECIFIED ConfigProvider = 0 // Write values inline in the configuration file. - ConfigProvider_CONFIG_INLINE ConfigProvider = 0 + ConfigProvider_CONFIG_PROVIDER_INLINE ConfigProvider = 1 // Print configuration as environment variables. - ConfigProvider_CONFIG_ENVAR ConfigProvider = 1 + ConfigProvider_CONFIG_PROVIDER_ENVAR ConfigProvider = 2 // Use the database as a configuration store. - ConfigProvider_CONFIG_DB ConfigProvider = 2 + ConfigProvider_CONFIG_PROVIDER_DB ConfigProvider = 3 ) // Enum value maps for ConfigProvider. var ( ConfigProvider_name = map[int32]string{ - 0: "CONFIG_INLINE", - 1: "CONFIG_ENVAR", - 2: "CONFIG_DB", + 0: "CONFIG_PROVIDER_UNSPECIFIED", + 1: "CONFIG_PROVIDER_INLINE", + 2: "CONFIG_PROVIDER_ENVAR", + 3: "CONFIG_PROVIDER_DB", } ConfigProvider_value = map[string]int32{ - "CONFIG_INLINE": 0, - "CONFIG_ENVAR": 1, - "CONFIG_DB": 2, + "CONFIG_PROVIDER_UNSPECIFIED": 0, + "CONFIG_PROVIDER_INLINE": 1, + "CONFIG_PROVIDER_ENVAR": 2, + "CONFIG_PROVIDER_DB": 3, } ) @@ -75,33 +78,36 @@ func (ConfigProvider) EnumDescriptor() ([]byte, []int) { type SecretProvider int32 const ( + SecretProvider_SECRET_PROVIDER_UNSPECIFIED SecretProvider = 0 // Write values inline in the configuration file. - SecretProvider_SECRET_INLINE SecretProvider = 0 + SecretProvider_SECRET_PROVIDER_INLINE SecretProvider = 1 // Print configuration as environment variables. - SecretProvider_SECRET_ENVAR SecretProvider = 1 + SecretProvider_SECRET_PROVIDER_ENVAR SecretProvider = 2 // Write to the system keychain. - SecretProvider_SECRET_KEYCHAIN SecretProvider = 2 + SecretProvider_SECRET_PROVIDER_KEYCHAIN SecretProvider = 3 // Store a secret in the 1Password vault. - SecretProvider_SECRET_OP SecretProvider = 3 + SecretProvider_SECRET_PROVIDER_OP SecretProvider = 4 // Store a secret in the AWS Secrets Manager. - SecretProvider_SECRET_ASM SecretProvider = 4 + SecretProvider_SECRET_PROVIDER_ASM SecretProvider = 5 ) // Enum value maps for SecretProvider. var ( SecretProvider_name = map[int32]string{ - 0: "SECRET_INLINE", - 1: "SECRET_ENVAR", - 2: "SECRET_KEYCHAIN", - 3: "SECRET_OP", - 4: "SECRET_ASM", + 0: "SECRET_PROVIDER_UNSPECIFIED", + 1: "SECRET_PROVIDER_INLINE", + 2: "SECRET_PROVIDER_ENVAR", + 3: "SECRET_PROVIDER_KEYCHAIN", + 4: "SECRET_PROVIDER_OP", + 5: "SECRET_PROVIDER_ASM", } SecretProvider_value = map[string]int32{ - "SECRET_INLINE": 0, - "SECRET_ENVAR": 1, - "SECRET_KEYCHAIN": 2, - "SECRET_OP": 3, - "SECRET_ASM": 4, + "SECRET_PROVIDER_UNSPECIFIED": 0, + "SECRET_PROVIDER_INLINE": 1, + "SECRET_PROVIDER_ENVAR": 2, + "SECRET_PROVIDER_KEYCHAIN": 3, + "SECRET_PROVIDER_OP": 4, + "SECRET_PROVIDER_ASM": 5, } ) @@ -185,7 +191,7 @@ func (x *ConfigRef) GetName() string { return "" } -type ListConfigRequest struct { +type ConfigListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -195,20 +201,20 @@ type ListConfigRequest struct { Provider *ConfigProvider `protobuf:"varint,3,opt,name=provider,proto3,enum=xyz.block.ftl.v1.ConfigProvider,oneof" json:"provider,omitempty"` } -func (x *ListConfigRequest) Reset() { - *x = ListConfigRequest{} +func (x *ConfigListRequest) Reset() { + *x = ConfigListRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ListConfigRequest) String() string { +func (x *ConfigListRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListConfigRequest) ProtoMessage() {} +func (*ConfigListRequest) ProtoMessage() {} -func (x *ListConfigRequest) ProtoReflect() protoreflect.Message { +func (x *ConfigListRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -220,54 +226,54 @@ func (x *ListConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListConfigRequest.ProtoReflect.Descriptor instead. -func (*ListConfigRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigListRequest.ProtoReflect.Descriptor instead. +func (*ConfigListRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{1} } -func (x *ListConfigRequest) GetModule() string { +func (x *ConfigListRequest) GetModule() string { if x != nil && x.Module != nil { return *x.Module } return "" } -func (x *ListConfigRequest) GetIncludeValues() bool { +func (x *ConfigListRequest) GetIncludeValues() bool { if x != nil && x.IncludeValues != nil { return *x.IncludeValues } return false } -func (x *ListConfigRequest) GetProvider() ConfigProvider { +func (x *ConfigListRequest) GetProvider() ConfigProvider { if x != nil && x.Provider != nil { return *x.Provider } - return ConfigProvider_CONFIG_INLINE + return ConfigProvider_CONFIG_PROVIDER_UNSPECIFIED } -type ListConfigResponse struct { +type ConfigListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Configs []*ListConfigResponse_Config `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"` + Configs []*ConfigListResponse_Config `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"` } -func (x *ListConfigResponse) Reset() { - *x = ListConfigResponse{} +func (x *ConfigListResponse) Reset() { + *x = ConfigListResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ListConfigResponse) String() string { +func (x *ConfigListResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListConfigResponse) ProtoMessage() {} +func (*ConfigListResponse) ProtoMessage() {} -func (x *ListConfigResponse) ProtoReflect() protoreflect.Message { +func (x *ConfigListResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -279,19 +285,19 @@ func (x *ListConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListConfigResponse.ProtoReflect.Descriptor instead. -func (*ListConfigResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigListResponse.ProtoReflect.Descriptor instead. +func (*ConfigListResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{2} } -func (x *ListConfigResponse) GetConfigs() []*ListConfigResponse_Config { +func (x *ConfigListResponse) GetConfigs() []*ConfigListResponse_Config { if x != nil { return x.Configs } return nil } -type GetConfigRequest struct { +type ConfigGetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -299,20 +305,20 @@ type GetConfigRequest struct { Ref *ConfigRef `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"` } -func (x *GetConfigRequest) Reset() { - *x = GetConfigRequest{} +func (x *ConfigGetRequest) Reset() { + *x = ConfigGetRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetConfigRequest) String() string { +func (x *ConfigGetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigRequest) ProtoMessage() {} +func (*ConfigGetRequest) ProtoMessage() {} -func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { +func (x *ConfigGetRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -324,19 +330,19 @@ func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead. -func (*GetConfigRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigGetRequest.ProtoReflect.Descriptor instead. +func (*ConfigGetRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{3} } -func (x *GetConfigRequest) GetRef() *ConfigRef { +func (x *ConfigGetRequest) GetRef() *ConfigRef { if x != nil { return x.Ref } return nil } -type GetConfigResponse struct { +type ConfigGetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -344,20 +350,20 @@ type GetConfigResponse struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GetConfigResponse) Reset() { - *x = GetConfigResponse{} +func (x *ConfigGetResponse) Reset() { + *x = ConfigGetResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetConfigResponse) String() string { +func (x *ConfigGetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigResponse) ProtoMessage() {} +func (*ConfigGetResponse) ProtoMessage() {} -func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { +func (x *ConfigGetResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -369,19 +375,19 @@ func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. -func (*GetConfigResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigGetResponse.ProtoReflect.Descriptor instead. +func (*ConfigGetResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{4} } -func (x *GetConfigResponse) GetValue() []byte { +func (x *ConfigGetResponse) GetValue() []byte { if x != nil { return x.Value } return nil } -type SetConfigRequest struct { +type ConfigSetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -391,20 +397,20 @@ type SetConfigRequest struct { Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SetConfigRequest) Reset() { - *x = SetConfigRequest{} +func (x *ConfigSetRequest) Reset() { + *x = ConfigSetRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetConfigRequest) String() string { +func (x *ConfigSetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigRequest) ProtoMessage() {} +func (*ConfigSetRequest) ProtoMessage() {} -func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { +func (x *ConfigSetRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -416,52 +422,52 @@ func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. -func (*SetConfigRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigSetRequest.ProtoReflect.Descriptor instead. +func (*ConfigSetRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{5} } -func (x *SetConfigRequest) GetProvider() ConfigProvider { +func (x *ConfigSetRequest) GetProvider() ConfigProvider { if x != nil && x.Provider != nil { return *x.Provider } - return ConfigProvider_CONFIG_INLINE + return ConfigProvider_CONFIG_PROVIDER_UNSPECIFIED } -func (x *SetConfigRequest) GetRef() *ConfigRef { +func (x *ConfigSetRequest) GetRef() *ConfigRef { if x != nil { return x.Ref } return nil } -func (x *SetConfigRequest) GetValue() []byte { +func (x *ConfigSetRequest) GetValue() []byte { if x != nil { return x.Value } return nil } -type SetConfigResponse struct { +type ConfigSetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *SetConfigResponse) Reset() { - *x = SetConfigResponse{} +func (x *ConfigSetResponse) Reset() { + *x = ConfigSetResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetConfigResponse) String() string { +func (x *ConfigSetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigResponse) ProtoMessage() {} +func (*ConfigSetResponse) ProtoMessage() {} -func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { +func (x *ConfigSetResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -473,12 +479,12 @@ func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. -func (*SetConfigResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigSetResponse.ProtoReflect.Descriptor instead. +func (*ConfigSetResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{6} } -type UnsetConfigRequest struct { +type ConfigUnsetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -487,20 +493,20 @@ type UnsetConfigRequest struct { Ref *ConfigRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` } -func (x *UnsetConfigRequest) Reset() { - *x = UnsetConfigRequest{} +func (x *ConfigUnsetRequest) Reset() { + *x = ConfigUnsetRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *UnsetConfigRequest) String() string { +func (x *ConfigUnsetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UnsetConfigRequest) ProtoMessage() {} +func (*ConfigUnsetRequest) ProtoMessage() {} -func (x *UnsetConfigRequest) ProtoReflect() protoreflect.Message { +func (x *ConfigUnsetRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -512,45 +518,45 @@ func (x *UnsetConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UnsetConfigRequest.ProtoReflect.Descriptor instead. -func (*UnsetConfigRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigUnsetRequest.ProtoReflect.Descriptor instead. +func (*ConfigUnsetRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{7} } -func (x *UnsetConfigRequest) GetProvider() ConfigProvider { +func (x *ConfigUnsetRequest) GetProvider() ConfigProvider { if x != nil && x.Provider != nil { return *x.Provider } - return ConfigProvider_CONFIG_INLINE + return ConfigProvider_CONFIG_PROVIDER_UNSPECIFIED } -func (x *UnsetConfigRequest) GetRef() *ConfigRef { +func (x *ConfigUnsetRequest) GetRef() *ConfigRef { if x != nil { return x.Ref } return nil } -type UnsetConfigResponse struct { +type ConfigUnsetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *UnsetConfigResponse) Reset() { - *x = UnsetConfigResponse{} +func (x *ConfigUnsetResponse) Reset() { + *x = ConfigUnsetResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *UnsetConfigResponse) String() string { +func (x *ConfigUnsetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UnsetConfigResponse) ProtoMessage() {} +func (*ConfigUnsetResponse) ProtoMessage() {} -func (x *UnsetConfigResponse) ProtoReflect() protoreflect.Message { +func (x *ConfigUnsetResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -562,12 +568,12 @@ func (x *UnsetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UnsetConfigResponse.ProtoReflect.Descriptor instead. -func (*UnsetConfigResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigUnsetResponse.ProtoReflect.Descriptor instead. +func (*ConfigUnsetResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{8} } -type ListSecretsRequest struct { +type SecretsListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -577,20 +583,20 @@ type ListSecretsRequest struct { Provider *SecretProvider `protobuf:"varint,3,opt,name=provider,proto3,enum=xyz.block.ftl.v1.SecretProvider,oneof" json:"provider,omitempty"` } -func (x *ListSecretsRequest) Reset() { - *x = ListSecretsRequest{} +func (x *SecretsListRequest) Reset() { + *x = SecretsListRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ListSecretsRequest) String() string { +func (x *SecretsListRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSecretsRequest) ProtoMessage() {} +func (*SecretsListRequest) ProtoMessage() {} -func (x *ListSecretsRequest) ProtoReflect() protoreflect.Message { +func (x *SecretsListRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -602,54 +608,54 @@ func (x *ListSecretsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSecretsRequest.ProtoReflect.Descriptor instead. -func (*ListSecretsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretsListRequest.ProtoReflect.Descriptor instead. +func (*SecretsListRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{9} } -func (x *ListSecretsRequest) GetModule() string { +func (x *SecretsListRequest) GetModule() string { if x != nil && x.Module != nil { return *x.Module } return "" } -func (x *ListSecretsRequest) GetIncludeValues() bool { +func (x *SecretsListRequest) GetIncludeValues() bool { if x != nil && x.IncludeValues != nil { return *x.IncludeValues } return false } -func (x *ListSecretsRequest) GetProvider() SecretProvider { +func (x *SecretsListRequest) GetProvider() SecretProvider { if x != nil && x.Provider != nil { return *x.Provider } - return SecretProvider_SECRET_INLINE + return SecretProvider_SECRET_PROVIDER_UNSPECIFIED } -type ListSecretsResponse struct { +type SecretsListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Secrets []*ListSecretsResponse_Secret `protobuf:"bytes,1,rep,name=secrets,proto3" json:"secrets,omitempty"` + Secrets []*SecretsListResponse_Secret `protobuf:"bytes,1,rep,name=secrets,proto3" json:"secrets,omitempty"` } -func (x *ListSecretsResponse) Reset() { - *x = ListSecretsResponse{} +func (x *SecretsListResponse) Reset() { + *x = SecretsListResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ListSecretsResponse) String() string { +func (x *SecretsListResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSecretsResponse) ProtoMessage() {} +func (*SecretsListResponse) ProtoMessage() {} -func (x *ListSecretsResponse) ProtoReflect() protoreflect.Message { +func (x *SecretsListResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -661,19 +667,19 @@ func (x *ListSecretsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSecretsResponse.ProtoReflect.Descriptor instead. -func (*ListSecretsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretsListResponse.ProtoReflect.Descriptor instead. +func (*SecretsListResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{10} } -func (x *ListSecretsResponse) GetSecrets() []*ListSecretsResponse_Secret { +func (x *SecretsListResponse) GetSecrets() []*SecretsListResponse_Secret { if x != nil { return x.Secrets } return nil } -type GetSecretRequest struct { +type SecretGetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -681,20 +687,20 @@ type GetSecretRequest struct { Ref *ConfigRef `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"` } -func (x *GetSecretRequest) Reset() { - *x = GetSecretRequest{} +func (x *SecretGetRequest) Reset() { + *x = SecretGetRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetSecretRequest) String() string { +func (x *SecretGetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSecretRequest) ProtoMessage() {} +func (*SecretGetRequest) ProtoMessage() {} -func (x *GetSecretRequest) ProtoReflect() protoreflect.Message { +func (x *SecretGetRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -706,19 +712,19 @@ func (x *GetSecretRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSecretRequest.ProtoReflect.Descriptor instead. -func (*GetSecretRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretGetRequest.ProtoReflect.Descriptor instead. +func (*SecretGetRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{11} } -func (x *GetSecretRequest) GetRef() *ConfigRef { +func (x *SecretGetRequest) GetRef() *ConfigRef { if x != nil { return x.Ref } return nil } -type GetSecretResponse struct { +type SecretGetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -726,20 +732,20 @@ type GetSecretResponse struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GetSecretResponse) Reset() { - *x = GetSecretResponse{} +func (x *SecretGetResponse) Reset() { + *x = SecretGetResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetSecretResponse) String() string { +func (x *SecretGetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSecretResponse) ProtoMessage() {} +func (*SecretGetResponse) ProtoMessage() {} -func (x *GetSecretResponse) ProtoReflect() protoreflect.Message { +func (x *SecretGetResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -751,19 +757,19 @@ func (x *GetSecretResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSecretResponse.ProtoReflect.Descriptor instead. -func (*GetSecretResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretGetResponse.ProtoReflect.Descriptor instead. +func (*SecretGetResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{12} } -func (x *GetSecretResponse) GetValue() []byte { +func (x *SecretGetResponse) GetValue() []byte { if x != nil { return x.Value } return nil } -type SetSecretRequest struct { +type SecretSetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -773,20 +779,20 @@ type SetSecretRequest struct { Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SetSecretRequest) Reset() { - *x = SetSecretRequest{} +func (x *SecretSetRequest) Reset() { + *x = SecretSetRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetSecretRequest) String() string { +func (x *SecretSetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetSecretRequest) ProtoMessage() {} +func (*SecretSetRequest) ProtoMessage() {} -func (x *SetSecretRequest) ProtoReflect() protoreflect.Message { +func (x *SecretSetRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -798,52 +804,52 @@ func (x *SetSecretRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetSecretRequest.ProtoReflect.Descriptor instead. -func (*SetSecretRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretSetRequest.ProtoReflect.Descriptor instead. +func (*SecretSetRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{13} } -func (x *SetSecretRequest) GetProvider() SecretProvider { +func (x *SecretSetRequest) GetProvider() SecretProvider { if x != nil && x.Provider != nil { return *x.Provider } - return SecretProvider_SECRET_INLINE + return SecretProvider_SECRET_PROVIDER_UNSPECIFIED } -func (x *SetSecretRequest) GetRef() *ConfigRef { +func (x *SecretSetRequest) GetRef() *ConfigRef { if x != nil { return x.Ref } return nil } -func (x *SetSecretRequest) GetValue() []byte { +func (x *SecretSetRequest) GetValue() []byte { if x != nil { return x.Value } return nil } -type SetSecretResponse struct { +type SecretSetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *SetSecretResponse) Reset() { - *x = SetSecretResponse{} +func (x *SecretSetResponse) Reset() { + *x = SecretSetResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SetSecretResponse) String() string { +func (x *SecretSetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetSecretResponse) ProtoMessage() {} +func (*SecretSetResponse) ProtoMessage() {} -func (x *SetSecretResponse) ProtoReflect() protoreflect.Message { +func (x *SecretSetResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -855,12 +861,12 @@ func (x *SetSecretResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetSecretResponse.ProtoReflect.Descriptor instead. -func (*SetSecretResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretSetResponse.ProtoReflect.Descriptor instead. +func (*SecretSetResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{14} } -type UnsetSecretRequest struct { +type SecretUnsetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -869,20 +875,20 @@ type UnsetSecretRequest struct { Ref *ConfigRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` } -func (x *UnsetSecretRequest) Reset() { - *x = UnsetSecretRequest{} +func (x *SecretUnsetRequest) Reset() { + *x = SecretUnsetRequest{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *UnsetSecretRequest) String() string { +func (x *SecretUnsetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UnsetSecretRequest) ProtoMessage() {} +func (*SecretUnsetRequest) ProtoMessage() {} -func (x *UnsetSecretRequest) ProtoReflect() protoreflect.Message { +func (x *SecretUnsetRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -894,45 +900,45 @@ func (x *UnsetSecretRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UnsetSecretRequest.ProtoReflect.Descriptor instead. -func (*UnsetSecretRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretUnsetRequest.ProtoReflect.Descriptor instead. +func (*SecretUnsetRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{15} } -func (x *UnsetSecretRequest) GetProvider() SecretProvider { +func (x *SecretUnsetRequest) GetProvider() SecretProvider { if x != nil && x.Provider != nil { return *x.Provider } - return SecretProvider_SECRET_INLINE + return SecretProvider_SECRET_PROVIDER_UNSPECIFIED } -func (x *UnsetSecretRequest) GetRef() *ConfigRef { +func (x *SecretUnsetRequest) GetRef() *ConfigRef { if x != nil { return x.Ref } return nil } -type UnsetSecretResponse struct { +type SecretUnsetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *UnsetSecretResponse) Reset() { - *x = UnsetSecretResponse{} +func (x *SecretUnsetResponse) Reset() { + *x = SecretUnsetResponse{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *UnsetSecretResponse) String() string { +func (x *SecretUnsetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UnsetSecretResponse) ProtoMessage() {} +func (*SecretUnsetResponse) ProtoMessage() {} -func (x *UnsetSecretResponse) ProtoReflect() protoreflect.Message { +func (x *SecretUnsetResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -944,12 +950,12 @@ func (x *UnsetSecretResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UnsetSecretResponse.ProtoReflect.Descriptor instead. -func (*UnsetSecretResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretUnsetResponse.ProtoReflect.Descriptor instead. +func (*SecretUnsetResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{16} } -type ListConfigResponse_Config struct { +type ConfigListResponse_Config struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -958,20 +964,20 @@ type ListConfigResponse_Config struct { Value []byte `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ListConfigResponse_Config) Reset() { - *x = ListConfigResponse_Config{} +func (x *ConfigListResponse_Config) Reset() { + *x = ConfigListResponse_Config{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ListConfigResponse_Config) String() string { +func (x *ConfigListResponse_Config) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListConfigResponse_Config) ProtoMessage() {} +func (*ConfigListResponse_Config) ProtoMessage() {} -func (x *ListConfigResponse_Config) ProtoReflect() protoreflect.Message { +func (x *ConfigListResponse_Config) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -983,26 +989,26 @@ func (x *ListConfigResponse_Config) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListConfigResponse_Config.ProtoReflect.Descriptor instead. -func (*ListConfigResponse_Config) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigListResponse_Config.ProtoReflect.Descriptor instead. +func (*ConfigListResponse_Config) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{2, 0} } -func (x *ListConfigResponse_Config) GetRefPath() string { +func (x *ConfigListResponse_Config) GetRefPath() string { if x != nil { return x.RefPath } return "" } -func (x *ListConfigResponse_Config) GetValue() []byte { +func (x *ConfigListResponse_Config) GetValue() []byte { if x != nil { return x.Value } return nil } -type ListSecretsResponse_Secret struct { +type SecretsListResponse_Secret struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1011,20 +1017,20 @@ type ListSecretsResponse_Secret struct { Value []byte `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ListSecretsResponse_Secret) Reset() { - *x = ListSecretsResponse_Secret{} +func (x *SecretsListResponse_Secret) Reset() { + *x = SecretsListResponse_Secret{} mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ListSecretsResponse_Secret) String() string { +func (x *SecretsListResponse_Secret) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSecretsResponse_Secret) ProtoMessage() {} +func (*SecretsListResponse_Secret) ProtoMessage() {} -func (x *ListSecretsResponse_Secret) ProtoReflect() protoreflect.Message { +func (x *SecretsListResponse_Secret) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_admin_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1036,19 +1042,19 @@ func (x *ListSecretsResponse_Secret) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSecretsResponse_Secret.ProtoReflect.Descriptor instead. -func (*ListSecretsResponse_Secret) Descriptor() ([]byte, []int) { +// Deprecated: Use SecretsListResponse_Secret.ProtoReflect.Descriptor instead. +func (*SecretsListResponse_Secret) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_admin_proto_rawDescGZIP(), []int{10, 0} } -func (x *ListSecretsResponse_Secret) GetRefPath() string { +func (x *SecretsListResponse_Secret) GetRefPath() string { if x != nil { return x.RefPath } return "" } -func (x *ListSecretsResponse_Secret) GetValue() []byte { +func (x *SecretsListResponse_Secret) GetValue() []byte { if x != nil { return x.Value } @@ -1067,8 +1073,8 @@ var file_xyz_block_ftl_v1_admin_proto_rawDesc = []byte{ 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, @@ -1080,25 +1086,25 @@ var file_xyz_block_ftl_v1_admin_proto_rawDesc = []byte{ 0x69, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x65, 0x72, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0x48, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x10, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x10, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x52, 0x03, 0x72, 0x65, 0x66, 0x22, 0x29, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, @@ -1108,9 +1114,9 @@ var file_xyz_block_ftl_v1_admin_proto_rawDesc = []byte{ 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x12, 0x55, 0x6e, 0x73, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, + 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, @@ -1119,9 +1125,9 @@ var file_xyz_block_ftl_v1_admin_proto_rawDesc = []byte{ 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x52, 0x03, 0x72, 0x65, 0x66, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x15, 0x0a, - 0x13, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcb, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6d, + 0x13, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcb, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, @@ -1133,25 +1139,25 @@ var file_xyz_block_ftl_v1_admin_proto_rawDesc = []byte{ 0x69, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x73, 0x65, + 0x65, 0x72, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x48, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x52, 0x03, 0x72, 0x65, 0x66, 0x22, - 0x29, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x29, 0x0a, 0x11, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x10, 0x53, - 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, @@ -1161,9 +1167,9 @@ var file_xyz_block_ftl_v1_admin_proto_rawDesc = []byte{ 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x12, 0x55, 0x6e, - 0x73, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x64, 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x12, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, @@ -1172,74 +1178,83 @@ var file_xyz_block_ftl_v1_admin_proto_rawDesc = []byte{ 0x32, 0x1b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x52, 0x03, 0x72, 0x65, 0x66, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x15, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x44, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x46, - 0x49, 0x47, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, - 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, 0x56, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x44, 0x42, 0x10, 0x02, 0x2a, 0x69, 0x0a, 0x0e, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x11, - 0x0a, 0x0d, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x56, 0x41, - 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x4b, 0x45, - 0x59, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x43, 0x52, - 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x43, 0x52, 0x45, - 0x54, 0x5f, 0x41, 0x53, 0x4d, 0x10, 0x04, 0x32, 0x9f, 0x06, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, - 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x03, 0x90, 0x02, 0x01, 0x12, 0x57, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, - 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x15, 0x0a, 0x13, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x80, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, + 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x49, 0x4e, + 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x56, 0x41, 0x52, 0x10, + 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x56, + 0x49, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x42, 0x10, 0x03, 0x2a, 0xb7, 0x01, 0x0a, 0x0e, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x1b, + 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, + 0x16, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, + 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x43, + 0x52, 0x45, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x56, + 0x41, 0x52, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x50, + 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x4b, 0x45, 0x59, 0x43, 0x48, 0x41, 0x49, 0x4e, + 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x50, 0x52, 0x4f, + 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x4f, 0x50, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, + 0x43, 0x52, 0x45, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, + 0x4d, 0x10, 0x05, 0x32, 0x9f, 0x06, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, + 0x12, 0x57, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x54, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, + 0x6e, 0x73, 0x65, 0x74, 0x12, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x6e, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, + 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x47, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x12, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x54, 0x0a, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x47, 0x65, 0x74, 0x12, 0x22, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x12, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x53, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, - 0x0b, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x12, 0x24, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x73, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x44, 0x50, 0x01, 0x5a, 0x40, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, - 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, 0x76, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x44, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, + 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, + 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1260,60 +1275,60 @@ var file_xyz_block_ftl_v1_admin_proto_goTypes = []any{ (ConfigProvider)(0), // 0: xyz.block.ftl.v1.ConfigProvider (SecretProvider)(0), // 1: xyz.block.ftl.v1.SecretProvider (*ConfigRef)(nil), // 2: xyz.block.ftl.v1.ConfigRef - (*ListConfigRequest)(nil), // 3: xyz.block.ftl.v1.ListConfigRequest - (*ListConfigResponse)(nil), // 4: xyz.block.ftl.v1.ListConfigResponse - (*GetConfigRequest)(nil), // 5: xyz.block.ftl.v1.GetConfigRequest - (*GetConfigResponse)(nil), // 6: xyz.block.ftl.v1.GetConfigResponse - (*SetConfigRequest)(nil), // 7: xyz.block.ftl.v1.SetConfigRequest - (*SetConfigResponse)(nil), // 8: xyz.block.ftl.v1.SetConfigResponse - (*UnsetConfigRequest)(nil), // 9: xyz.block.ftl.v1.UnsetConfigRequest - (*UnsetConfigResponse)(nil), // 10: xyz.block.ftl.v1.UnsetConfigResponse - (*ListSecretsRequest)(nil), // 11: xyz.block.ftl.v1.ListSecretsRequest - (*ListSecretsResponse)(nil), // 12: xyz.block.ftl.v1.ListSecretsResponse - (*GetSecretRequest)(nil), // 13: xyz.block.ftl.v1.GetSecretRequest - (*GetSecretResponse)(nil), // 14: xyz.block.ftl.v1.GetSecretResponse - (*SetSecretRequest)(nil), // 15: xyz.block.ftl.v1.SetSecretRequest - (*SetSecretResponse)(nil), // 16: xyz.block.ftl.v1.SetSecretResponse - (*UnsetSecretRequest)(nil), // 17: xyz.block.ftl.v1.UnsetSecretRequest - (*UnsetSecretResponse)(nil), // 18: xyz.block.ftl.v1.UnsetSecretResponse - (*ListConfigResponse_Config)(nil), // 19: xyz.block.ftl.v1.ListConfigResponse.Config - (*ListSecretsResponse_Secret)(nil), // 20: xyz.block.ftl.v1.ListSecretsResponse.Secret + (*ConfigListRequest)(nil), // 3: xyz.block.ftl.v1.ConfigListRequest + (*ConfigListResponse)(nil), // 4: xyz.block.ftl.v1.ConfigListResponse + (*ConfigGetRequest)(nil), // 5: xyz.block.ftl.v1.ConfigGetRequest + (*ConfigGetResponse)(nil), // 6: xyz.block.ftl.v1.ConfigGetResponse + (*ConfigSetRequest)(nil), // 7: xyz.block.ftl.v1.ConfigSetRequest + (*ConfigSetResponse)(nil), // 8: xyz.block.ftl.v1.ConfigSetResponse + (*ConfigUnsetRequest)(nil), // 9: xyz.block.ftl.v1.ConfigUnsetRequest + (*ConfigUnsetResponse)(nil), // 10: xyz.block.ftl.v1.ConfigUnsetResponse + (*SecretsListRequest)(nil), // 11: xyz.block.ftl.v1.SecretsListRequest + (*SecretsListResponse)(nil), // 12: xyz.block.ftl.v1.SecretsListResponse + (*SecretGetRequest)(nil), // 13: xyz.block.ftl.v1.SecretGetRequest + (*SecretGetResponse)(nil), // 14: xyz.block.ftl.v1.SecretGetResponse + (*SecretSetRequest)(nil), // 15: xyz.block.ftl.v1.SecretSetRequest + (*SecretSetResponse)(nil), // 16: xyz.block.ftl.v1.SecretSetResponse + (*SecretUnsetRequest)(nil), // 17: xyz.block.ftl.v1.SecretUnsetRequest + (*SecretUnsetResponse)(nil), // 18: xyz.block.ftl.v1.SecretUnsetResponse + (*ConfigListResponse_Config)(nil), // 19: xyz.block.ftl.v1.ConfigListResponse.Config + (*SecretsListResponse_Secret)(nil), // 20: xyz.block.ftl.v1.SecretsListResponse.Secret (*PingRequest)(nil), // 21: xyz.block.ftl.v1.PingRequest (*PingResponse)(nil), // 22: xyz.block.ftl.v1.PingResponse } var file_xyz_block_ftl_v1_admin_proto_depIdxs = []int32{ - 0, // 0: xyz.block.ftl.v1.ListConfigRequest.provider:type_name -> xyz.block.ftl.v1.ConfigProvider - 19, // 1: xyz.block.ftl.v1.ListConfigResponse.configs:type_name -> xyz.block.ftl.v1.ListConfigResponse.Config - 2, // 2: xyz.block.ftl.v1.GetConfigRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef - 0, // 3: xyz.block.ftl.v1.SetConfigRequest.provider:type_name -> xyz.block.ftl.v1.ConfigProvider - 2, // 4: xyz.block.ftl.v1.SetConfigRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef - 0, // 5: xyz.block.ftl.v1.UnsetConfigRequest.provider:type_name -> xyz.block.ftl.v1.ConfigProvider - 2, // 6: xyz.block.ftl.v1.UnsetConfigRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef - 1, // 7: xyz.block.ftl.v1.ListSecretsRequest.provider:type_name -> xyz.block.ftl.v1.SecretProvider - 20, // 8: xyz.block.ftl.v1.ListSecretsResponse.secrets:type_name -> xyz.block.ftl.v1.ListSecretsResponse.Secret - 2, // 9: xyz.block.ftl.v1.GetSecretRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef - 1, // 10: xyz.block.ftl.v1.SetSecretRequest.provider:type_name -> xyz.block.ftl.v1.SecretProvider - 2, // 11: xyz.block.ftl.v1.SetSecretRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef - 1, // 12: xyz.block.ftl.v1.UnsetSecretRequest.provider:type_name -> xyz.block.ftl.v1.SecretProvider - 2, // 13: xyz.block.ftl.v1.UnsetSecretRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef + 0, // 0: xyz.block.ftl.v1.ConfigListRequest.provider:type_name -> xyz.block.ftl.v1.ConfigProvider + 19, // 1: xyz.block.ftl.v1.ConfigListResponse.configs:type_name -> xyz.block.ftl.v1.ConfigListResponse.Config + 2, // 2: xyz.block.ftl.v1.ConfigGetRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef + 0, // 3: xyz.block.ftl.v1.ConfigSetRequest.provider:type_name -> xyz.block.ftl.v1.ConfigProvider + 2, // 4: xyz.block.ftl.v1.ConfigSetRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef + 0, // 5: xyz.block.ftl.v1.ConfigUnsetRequest.provider:type_name -> xyz.block.ftl.v1.ConfigProvider + 2, // 6: xyz.block.ftl.v1.ConfigUnsetRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef + 1, // 7: xyz.block.ftl.v1.SecretsListRequest.provider:type_name -> xyz.block.ftl.v1.SecretProvider + 20, // 8: xyz.block.ftl.v1.SecretsListResponse.secrets:type_name -> xyz.block.ftl.v1.SecretsListResponse.Secret + 2, // 9: xyz.block.ftl.v1.SecretGetRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef + 1, // 10: xyz.block.ftl.v1.SecretSetRequest.provider:type_name -> xyz.block.ftl.v1.SecretProvider + 2, // 11: xyz.block.ftl.v1.SecretSetRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef + 1, // 12: xyz.block.ftl.v1.SecretUnsetRequest.provider:type_name -> xyz.block.ftl.v1.SecretProvider + 2, // 13: xyz.block.ftl.v1.SecretUnsetRequest.ref:type_name -> xyz.block.ftl.v1.ConfigRef 21, // 14: xyz.block.ftl.v1.AdminService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 3, // 15: xyz.block.ftl.v1.AdminService.ConfigList:input_type -> xyz.block.ftl.v1.ListConfigRequest - 5, // 16: xyz.block.ftl.v1.AdminService.ConfigGet:input_type -> xyz.block.ftl.v1.GetConfigRequest - 7, // 17: xyz.block.ftl.v1.AdminService.ConfigSet:input_type -> xyz.block.ftl.v1.SetConfigRequest - 9, // 18: xyz.block.ftl.v1.AdminService.ConfigUnset:input_type -> xyz.block.ftl.v1.UnsetConfigRequest - 11, // 19: xyz.block.ftl.v1.AdminService.SecretsList:input_type -> xyz.block.ftl.v1.ListSecretsRequest - 13, // 20: xyz.block.ftl.v1.AdminService.SecretGet:input_type -> xyz.block.ftl.v1.GetSecretRequest - 15, // 21: xyz.block.ftl.v1.AdminService.SecretSet:input_type -> xyz.block.ftl.v1.SetSecretRequest - 17, // 22: xyz.block.ftl.v1.AdminService.SecretUnset:input_type -> xyz.block.ftl.v1.UnsetSecretRequest + 3, // 15: xyz.block.ftl.v1.AdminService.ConfigList:input_type -> xyz.block.ftl.v1.ConfigListRequest + 5, // 16: xyz.block.ftl.v1.AdminService.ConfigGet:input_type -> xyz.block.ftl.v1.ConfigGetRequest + 7, // 17: xyz.block.ftl.v1.AdminService.ConfigSet:input_type -> xyz.block.ftl.v1.ConfigSetRequest + 9, // 18: xyz.block.ftl.v1.AdminService.ConfigUnset:input_type -> xyz.block.ftl.v1.ConfigUnsetRequest + 11, // 19: xyz.block.ftl.v1.AdminService.SecretsList:input_type -> xyz.block.ftl.v1.SecretsListRequest + 13, // 20: xyz.block.ftl.v1.AdminService.SecretGet:input_type -> xyz.block.ftl.v1.SecretGetRequest + 15, // 21: xyz.block.ftl.v1.AdminService.SecretSet:input_type -> xyz.block.ftl.v1.SecretSetRequest + 17, // 22: xyz.block.ftl.v1.AdminService.SecretUnset:input_type -> xyz.block.ftl.v1.SecretUnsetRequest 22, // 23: xyz.block.ftl.v1.AdminService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 4, // 24: xyz.block.ftl.v1.AdminService.ConfigList:output_type -> xyz.block.ftl.v1.ListConfigResponse - 6, // 25: xyz.block.ftl.v1.AdminService.ConfigGet:output_type -> xyz.block.ftl.v1.GetConfigResponse - 8, // 26: xyz.block.ftl.v1.AdminService.ConfigSet:output_type -> xyz.block.ftl.v1.SetConfigResponse - 10, // 27: xyz.block.ftl.v1.AdminService.ConfigUnset:output_type -> xyz.block.ftl.v1.UnsetConfigResponse - 12, // 28: xyz.block.ftl.v1.AdminService.SecretsList:output_type -> xyz.block.ftl.v1.ListSecretsResponse - 14, // 29: xyz.block.ftl.v1.AdminService.SecretGet:output_type -> xyz.block.ftl.v1.GetSecretResponse - 16, // 30: xyz.block.ftl.v1.AdminService.SecretSet:output_type -> xyz.block.ftl.v1.SetSecretResponse - 18, // 31: xyz.block.ftl.v1.AdminService.SecretUnset:output_type -> xyz.block.ftl.v1.UnsetSecretResponse + 4, // 24: xyz.block.ftl.v1.AdminService.ConfigList:output_type -> xyz.block.ftl.v1.ConfigListResponse + 6, // 25: xyz.block.ftl.v1.AdminService.ConfigGet:output_type -> xyz.block.ftl.v1.ConfigGetResponse + 8, // 26: xyz.block.ftl.v1.AdminService.ConfigSet:output_type -> xyz.block.ftl.v1.ConfigSetResponse + 10, // 27: xyz.block.ftl.v1.AdminService.ConfigUnset:output_type -> xyz.block.ftl.v1.ConfigUnsetResponse + 12, // 28: xyz.block.ftl.v1.AdminService.SecretsList:output_type -> xyz.block.ftl.v1.SecretsListResponse + 14, // 29: xyz.block.ftl.v1.AdminService.SecretGet:output_type -> xyz.block.ftl.v1.SecretGetResponse + 16, // 30: xyz.block.ftl.v1.AdminService.SecretSet:output_type -> xyz.block.ftl.v1.SecretSetResponse + 18, // 31: xyz.block.ftl.v1.AdminService.SecretUnset:output_type -> xyz.block.ftl.v1.SecretUnsetResponse 23, // [23:32] is the sub-list for method output_type 14, // [14:23] is the sub-list for method input_type 14, // [14:14] is the sub-list for extension type_name diff --git a/backend/protos/xyz/block/ftl/v1/admin.proto b/backend/protos/xyz/block/ftl/v1/admin.proto index 160171cba5..84d3b7a717 100644 --- a/backend/protos/xyz/block/ftl/v1/admin.proto +++ b/backend/protos/xyz/block/ftl/v1/admin.proto @@ -13,22 +13,24 @@ message ConfigRef { } enum ConfigProvider { + CONFIG_PROVIDER_UNSPECIFIED = 0; + // Write values inline in the configuration file. - CONFIG_INLINE = 0; + CONFIG_PROVIDER_INLINE = 1; // Print configuration as environment variables. - CONFIG_ENVAR = 1; + CONFIG_PROVIDER_ENVAR = 2; // Use the database as a configuration store. - CONFIG_DB = 2; + CONFIG_PROVIDER_DB = 3; } -message ListConfigRequest { +message ConfigListRequest { optional string module = 1; optional bool include_values = 2; optional ConfigProvider provider = 3; } -message ListConfigResponse { +message ConfigListResponse { message Config { string ref_path = 1; optional bytes value = 2; @@ -36,49 +38,51 @@ message ListConfigResponse { repeated Config configs = 1; } -message GetConfigRequest { +message ConfigGetRequest { ConfigRef ref = 1; } -message GetConfigResponse { +message ConfigGetResponse { bytes value = 1; } -message SetConfigRequest { +message ConfigSetRequest { optional ConfigProvider provider = 1; ConfigRef ref = 2; bytes value = 3; } -message SetConfigResponse {} +message ConfigSetResponse {} -message UnsetConfigRequest { +message ConfigUnsetRequest { optional ConfigProvider provider = 1; ConfigRef ref = 2; } -message UnsetConfigResponse {} +message ConfigUnsetResponse {} enum SecretProvider { + SECRET_PROVIDER_UNSPECIFIED = 0; + // Write values inline in the configuration file. - SECRET_INLINE = 0; + SECRET_PROVIDER_INLINE = 1; // Print configuration as environment variables. - SECRET_ENVAR = 1; + SECRET_PROVIDER_ENVAR = 2; // Write to the system keychain. - SECRET_KEYCHAIN = 2; + SECRET_PROVIDER_KEYCHAIN = 3; // Store a secret in the 1Password vault. - SECRET_OP = 3; + SECRET_PROVIDER_OP = 4; // Store a secret in the AWS Secrets Manager. - SECRET_ASM = 4; + SECRET_PROVIDER_ASM = 5; } -message ListSecretsRequest { +message SecretsListRequest { optional string module = 1; optional bool include_values = 2; optional SecretProvider provider = 3; } -message ListSecretsResponse { +message SecretsListResponse { message Secret { string ref_path = 1; optional bytes value = 2; @@ -86,25 +90,25 @@ message ListSecretsResponse { repeated Secret secrets = 1; } -message GetSecretRequest { +message SecretGetRequest { ConfigRef ref = 1; } -message GetSecretResponse { +message SecretGetResponse { bytes value = 1; } -message SetSecretRequest { +message SecretSetRequest { optional SecretProvider provider = 1; ConfigRef ref = 2; bytes value = 3; } -message SetSecretResponse {} +message SecretSetResponse {} -message UnsetSecretRequest { +message SecretUnsetRequest { optional SecretProvider provider = 1; ConfigRef ref = 2; } -message UnsetSecretResponse {} +message SecretUnsetResponse {} // AdminService is the service that provides and updates admin data. For example, // it is used to encapsulate configuration and secrets. @@ -114,26 +118,26 @@ service AdminService { } // List configuration. - rpc ConfigList(ListConfigRequest) returns (ListConfigResponse); + rpc ConfigList(ConfigListRequest) returns (ConfigListResponse); // Get a config value. - rpc ConfigGet(GetConfigRequest) returns (GetConfigResponse); + rpc ConfigGet(ConfigGetRequest) returns (ConfigGetResponse); // Set a config value. - rpc ConfigSet(SetConfigRequest) returns (SetConfigResponse); + rpc ConfigSet(ConfigSetRequest) returns (ConfigSetResponse); // Unset a config value. - rpc ConfigUnset(UnsetConfigRequest) returns (UnsetConfigResponse); + rpc ConfigUnset(ConfigUnsetRequest) returns (ConfigUnsetResponse); // List secrets. - rpc SecretsList(ListSecretsRequest) returns (ListSecretsResponse); + rpc SecretsList(SecretsListRequest) returns (SecretsListResponse); // Get a secret. - rpc SecretGet(GetSecretRequest) returns (GetSecretResponse); + rpc SecretGet(SecretGetRequest) returns (SecretGetResponse); // Set a secret. - rpc SecretSet(SetSecretRequest) returns (SetSecretResponse); + rpc SecretSet(SecretSetRequest) returns (SecretSetResponse); // Unset a secret. - rpc SecretUnset(UnsetSecretRequest) returns (UnsetSecretResponse); + rpc SecretUnset(SecretUnsetRequest) returns (SecretUnsetResponse); } diff --git a/backend/protos/xyz/block/ftl/v1/controller.pb.go b/backend/protos/xyz/block/ftl/v1/controller.pb.go index 6fedeae0a1..84bc28e6a1 100644 --- a/backend/protos/xyz/block/ftl/v1/controller.pb.go +++ b/backend/protos/xyz/block/ftl/v1/controller.pb.go @@ -7,7 +7,7 @@ package ftlv1 import ( - schema "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" @@ -483,10 +483,8 @@ type CreateDeploymentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Schema *schema.Module `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` + Schema *v1.Module `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` Artefacts []*DeploymentArtefact `protobuf:"bytes,2,rep,name=artefacts,proto3" json:"artefacts,omitempty"` - // Runner labels required to run this deployment. - Labels *structpb.Struct `protobuf:"bytes,3,opt,name=labels,proto3,oneof" json:"labels,omitempty"` } func (x *CreateDeploymentRequest) Reset() { @@ -519,7 +517,7 @@ func (*CreateDeploymentRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_controller_proto_rawDescGZIP(), []int{9} } -func (x *CreateDeploymentRequest) GetSchema() *schema.Module { +func (x *CreateDeploymentRequest) GetSchema() *v1.Module { if x != nil { return x.Schema } @@ -533,13 +531,6 @@ func (x *CreateDeploymentRequest) GetArtefacts() []*DeploymentArtefact { return nil } -func (x *CreateDeploymentRequest) GetLabels() *structpb.Struct { - if x != nil { - return x.Labels - } - return nil -} - type CreateDeploymentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -750,7 +741,7 @@ type GetDeploymentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Schema *schema.Module `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` + Schema *v1.Module `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` Artefacts []*DeploymentArtefact `protobuf:"bytes,2,rep,name=artefacts,proto3" json:"artefacts,omitempty"` } @@ -784,7 +775,7 @@ func (*GetDeploymentResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_controller_proto_rawDescGZIP(), []int{14} } -func (x *GetDeploymentResponse) GetSchema() *schema.Module { +func (x *GetDeploymentResponse) GetSchema() *v1.Module { if x != nil { return x.Schema } @@ -908,8 +899,9 @@ type UpdateDeployRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - MinReplicas int32 `protobuf:"varint,2,opt,name=min_replicas,json=minReplicas,proto3" json:"min_replicas,omitempty"` + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + MinReplicas *int32 `protobuf:"varint,2,opt,name=min_replicas,json=minReplicas,proto3,oneof" json:"min_replicas,omitempty"` + Endpoint *string `protobuf:"bytes,3,opt,name=endpoint,proto3,oneof" json:"endpoint,omitempty"` } func (x *UpdateDeployRequest) Reset() { @@ -950,12 +942,19 @@ func (x *UpdateDeployRequest) GetDeploymentKey() string { } func (x *UpdateDeployRequest) GetMinReplicas() int32 { - if x != nil { - return x.MinReplicas + if x != nil && x.MinReplicas != nil { + return *x.MinReplicas } return 0 } +func (x *UpdateDeployRequest) GetEndpoint() string { + if x != nil && x.Endpoint != nil { + return *x.Endpoint + } + return "" +} + type UpdateDeployResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1401,7 +1400,7 @@ type ResetSubscriptionRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Subscription *schema.Ref `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` + Subscription *v1.Ref `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"` } func (x *ResetSubscriptionRequest) Reset() { @@ -1434,7 +1433,7 @@ func (*ResetSubscriptionRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_controller_proto_rawDescGZIP(), []int{27} } -func (x *ResetSubscriptionRequest) GetSubscription() *schema.Ref { +func (x *ResetSubscriptionRequest) GetSubscription() *v1.Ref { if x != nil { return x.Subscription } @@ -1618,7 +1617,7 @@ type StatusResponse_Deployment struct { MinReplicas int32 `protobuf:"varint,4,opt,name=min_replicas,json=minReplicas,proto3" json:"min_replicas,omitempty"` Replicas int32 `protobuf:"varint,7,opt,name=replicas,proto3" json:"replicas,omitempty"` Labels *structpb.Struct `protobuf:"bytes,5,opt,name=labels,proto3" json:"labels,omitempty"` - Schema *schema.Module `protobuf:"bytes,6,opt,name=schema,proto3" json:"schema,omitempty"` + Schema *v1.Module `protobuf:"bytes,6,opt,name=schema,proto3" json:"schema,omitempty"` } func (x *StatusResponse_Deployment) Reset() { @@ -1693,7 +1692,7 @@ func (x *StatusResponse_Deployment) GetLabels() *structpb.Struct { return nil } -func (x *StatusResponse_Deployment) GetSchema() *schema.Module { +func (x *StatusResponse_Deployment) GetSchema() *v1.Module { if x != nil { return x.Schema } @@ -1901,10 +1900,10 @@ var file_xyz_block_ftl_v1_controller_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, - 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, + 0x66, 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x77, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, @@ -1958,304 +1957,304 @@ var file_xyz_block_ftl_v1_controller_proto_rawDesc = []byte{ 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x22, 0xd7, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x22, 0x96, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x73, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, - 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x18, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x37, - 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x22, 0x93, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x4b, 0x0a, 0x0e, 0x68, 0x61, - 0x76, 0x65, 0x5f, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x0d, 0x68, 0x61, 0x76, 0x65, 0x41, 0x72, - 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x78, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, 0x65, + 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x37, 0x0a, + 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x22, 0x93, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x4b, 0x0a, 0x0e, 0x68, 0x61, 0x76, + 0x65, 0x5f, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x0d, 0x68, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, + 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x78, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x65, + 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x61, 0x72, 0x74, - 0x65, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, - 0x74, 0x52, 0x08, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, - 0x6b, 0x22, 0x3d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, - 0x22, 0x94, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, - 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x2f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x0a, 0x13, 0x55, 0x70, + 0x52, 0x08, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, + 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, + 0x22, 0x3d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, + 0x94, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, + 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, + 0x18, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, - 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, - 0x03, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, - 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x5d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0xfc, 0x06, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x07, 0x72, - 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, + 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, + 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xaf, 0x03, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, + 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x5d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x54, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x9b, 0x01, 0x0a, 0x06, - 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0xf7, 0x01, 0x0a, 0x0a, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, - 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x1a, 0x5b, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x22, 0x14, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xaf, 0x03, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, - 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x6e, 0x0a, 0x0d, 0x50, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xfc, 0x06, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x65, + 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x6e, 0x65, + 0x72, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x54, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x9b, 0x01, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0xf7, 0x01, + 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0xda, 0x01, 0x0a, 0x07, - 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x50, 0x0a, 0x06, 0x72, - 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x2f, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, + 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x5b, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xaf, 0x03, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x5c, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x65, - 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x32, 0x9e, 0x0b, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, - 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x5a, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x44, 0x69, 0x66, 0x66, 0x73, 0x12, 0x29, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x44, 0x69, 0x66, 0x66, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x44, 0x69, 0x66, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, - 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x10, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x12, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x65, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x12, 0x5d, 0x0a, 0x0c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x25, 0x2e, 0x78, + 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, + 0x6e, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2f, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, + 0xda, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, + 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x2f, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, + 0x50, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x75, + 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x5c, 0x0a, 0x18, + 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x0c, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, + 0x73, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x9e, 0x0b, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, + 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x5a, 0x0a, 0x0b, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x44, 0x69, 0x66, 0x66, + 0x73, 0x12, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, + 0x44, 0x69, 0x66, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x26, 0x2e, 0x78, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x44, 0x69, 0x66, 0x66, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, + 0x65, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, + 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, - 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x12, 0x6c, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x78, 0x79, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, + 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x65, 0x0a, 0x0e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, + 0x12, 0x5d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x12, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x60, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x12, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x77, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x12, 0x6c, 0x0a, 0x11, 0x52, 0x65, + 0x73, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x44, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, - 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, - 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x44, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, + 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, 0x76, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2308,10 +2307,10 @@ var file_xyz_block_ftl_v1_controller_proto_goTypes = []any{ (*StatusResponse_Route)(nil), // 33: xyz.block.ftl.v1.StatusResponse.Route (*ProcessListResponse_ProcessRunner)(nil), // 34: xyz.block.ftl.v1.ProcessListResponse.ProcessRunner (*ProcessListResponse_Process)(nil), // 35: xyz.block.ftl.v1.ProcessListResponse.Process - (*schema.Module)(nil), // 36: xyz.block.ftl.v1.schema.Module + (*v1.Module)(nil), // 36: xyz.block.ftl.schema.v1.Module (*structpb.Struct)(nil), // 37: google.protobuf.Struct (*timestamppb.Timestamp)(nil), // 38: google.protobuf.Timestamp - (*schema.Ref)(nil), // 39: xyz.block.ftl.v1.schema.Ref + (*v1.Ref)(nil), // 39: xyz.block.ftl.schema.v1.Ref (*PingRequest)(nil), // 40: xyz.block.ftl.v1.PingRequest (*PingResponse)(nil), // 41: xyz.block.ftl.v1.PingResponse } @@ -2320,61 +2319,60 @@ var file_xyz_block_ftl_v1_controller_proto_depIdxs = []int32{ 3, // 1: xyz.block.ftl.v1.GetCertificationResponse.certificate:type_name -> xyz.block.ftl.v1.Certificate 2, // 2: xyz.block.ftl.v1.Certificate.content:type_name -> xyz.block.ftl.v1.CertificateContent 8, // 3: xyz.block.ftl.v1.GetArtefactDiffsResponse.client_artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact - 36, // 4: xyz.block.ftl.v1.CreateDeploymentRequest.schema:type_name -> xyz.block.ftl.v1.schema.Module + 36, // 4: xyz.block.ftl.v1.CreateDeploymentRequest.schema:type_name -> xyz.block.ftl.schema.v1.Module 8, // 5: xyz.block.ftl.v1.CreateDeploymentRequest.artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact - 37, // 6: xyz.block.ftl.v1.CreateDeploymentRequest.labels:type_name -> google.protobuf.Struct - 8, // 7: xyz.block.ftl.v1.GetDeploymentArtefactsRequest.have_artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact - 8, // 8: xyz.block.ftl.v1.GetDeploymentArtefactsResponse.artefact:type_name -> xyz.block.ftl.v1.DeploymentArtefact - 36, // 9: xyz.block.ftl.v1.GetDeploymentResponse.schema:type_name -> xyz.block.ftl.v1.schema.Module - 8, // 10: xyz.block.ftl.v1.GetDeploymentResponse.artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact - 37, // 11: xyz.block.ftl.v1.RegisterRunnerRequest.labels:type_name -> google.protobuf.Struct - 38, // 12: xyz.block.ftl.v1.StreamDeploymentLogsRequest.time_stamp:type_name -> google.protobuf.Timestamp - 29, // 13: xyz.block.ftl.v1.StreamDeploymentLogsRequest.attributes:type_name -> xyz.block.ftl.v1.StreamDeploymentLogsRequest.AttributesEntry - 30, // 14: xyz.block.ftl.v1.StatusResponse.controllers:type_name -> xyz.block.ftl.v1.StatusResponse.Controller - 31, // 15: xyz.block.ftl.v1.StatusResponse.runners:type_name -> xyz.block.ftl.v1.StatusResponse.Runner - 32, // 16: xyz.block.ftl.v1.StatusResponse.deployments:type_name -> xyz.block.ftl.v1.StatusResponse.Deployment - 33, // 17: xyz.block.ftl.v1.StatusResponse.routes:type_name -> xyz.block.ftl.v1.StatusResponse.Route - 35, // 18: xyz.block.ftl.v1.ProcessListResponse.processes:type_name -> xyz.block.ftl.v1.ProcessListResponse.Process - 39, // 19: xyz.block.ftl.v1.ResetSubscriptionRequest.subscription:type_name -> xyz.block.ftl.v1.schema.Ref - 37, // 20: xyz.block.ftl.v1.StatusResponse.Runner.labels:type_name -> google.protobuf.Struct - 37, // 21: xyz.block.ftl.v1.StatusResponse.Deployment.labels:type_name -> google.protobuf.Struct - 36, // 22: xyz.block.ftl.v1.StatusResponse.Deployment.schema:type_name -> xyz.block.ftl.v1.schema.Module - 37, // 23: xyz.block.ftl.v1.ProcessListResponse.ProcessRunner.labels:type_name -> google.protobuf.Struct - 37, // 24: xyz.block.ftl.v1.ProcessListResponse.Process.labels:type_name -> google.protobuf.Struct - 34, // 25: xyz.block.ftl.v1.ProcessListResponse.Process.runner:type_name -> xyz.block.ftl.v1.ProcessListResponse.ProcessRunner - 40, // 26: xyz.block.ftl.v1.ControllerService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 25, // 27: xyz.block.ftl.v1.ControllerService.ProcessList:input_type -> xyz.block.ftl.v1.ProcessListRequest - 23, // 28: xyz.block.ftl.v1.ControllerService.Status:input_type -> xyz.block.ftl.v1.StatusRequest - 0, // 29: xyz.block.ftl.v1.ControllerService.GetCertification:input_type -> xyz.block.ftl.v1.GetCertificationRequest - 4, // 30: xyz.block.ftl.v1.ControllerService.GetArtefactDiffs:input_type -> xyz.block.ftl.v1.GetArtefactDiffsRequest - 6, // 31: xyz.block.ftl.v1.ControllerService.UploadArtefact:input_type -> xyz.block.ftl.v1.UploadArtefactRequest - 9, // 32: xyz.block.ftl.v1.ControllerService.CreateDeployment:input_type -> xyz.block.ftl.v1.CreateDeploymentRequest - 13, // 33: xyz.block.ftl.v1.ControllerService.GetDeployment:input_type -> xyz.block.ftl.v1.GetDeploymentRequest - 11, // 34: xyz.block.ftl.v1.ControllerService.GetDeploymentArtefacts:input_type -> xyz.block.ftl.v1.GetDeploymentArtefactsRequest - 15, // 35: xyz.block.ftl.v1.ControllerService.RegisterRunner:input_type -> xyz.block.ftl.v1.RegisterRunnerRequest - 17, // 36: xyz.block.ftl.v1.ControllerService.UpdateDeploy:input_type -> xyz.block.ftl.v1.UpdateDeployRequest - 19, // 37: xyz.block.ftl.v1.ControllerService.ReplaceDeploy:input_type -> xyz.block.ftl.v1.ReplaceDeployRequest - 21, // 38: xyz.block.ftl.v1.ControllerService.StreamDeploymentLogs:input_type -> xyz.block.ftl.v1.StreamDeploymentLogsRequest - 27, // 39: xyz.block.ftl.v1.ControllerService.ResetSubscription:input_type -> xyz.block.ftl.v1.ResetSubscriptionRequest - 41, // 40: xyz.block.ftl.v1.ControllerService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 26, // 41: xyz.block.ftl.v1.ControllerService.ProcessList:output_type -> xyz.block.ftl.v1.ProcessListResponse - 24, // 42: xyz.block.ftl.v1.ControllerService.Status:output_type -> xyz.block.ftl.v1.StatusResponse - 1, // 43: xyz.block.ftl.v1.ControllerService.GetCertification:output_type -> xyz.block.ftl.v1.GetCertificationResponse - 5, // 44: xyz.block.ftl.v1.ControllerService.GetArtefactDiffs:output_type -> xyz.block.ftl.v1.GetArtefactDiffsResponse - 7, // 45: xyz.block.ftl.v1.ControllerService.UploadArtefact:output_type -> xyz.block.ftl.v1.UploadArtefactResponse - 10, // 46: xyz.block.ftl.v1.ControllerService.CreateDeployment:output_type -> xyz.block.ftl.v1.CreateDeploymentResponse - 14, // 47: xyz.block.ftl.v1.ControllerService.GetDeployment:output_type -> xyz.block.ftl.v1.GetDeploymentResponse - 12, // 48: xyz.block.ftl.v1.ControllerService.GetDeploymentArtefacts:output_type -> xyz.block.ftl.v1.GetDeploymentArtefactsResponse - 16, // 49: xyz.block.ftl.v1.ControllerService.RegisterRunner:output_type -> xyz.block.ftl.v1.RegisterRunnerResponse - 18, // 50: xyz.block.ftl.v1.ControllerService.UpdateDeploy:output_type -> xyz.block.ftl.v1.UpdateDeployResponse - 20, // 51: xyz.block.ftl.v1.ControllerService.ReplaceDeploy:output_type -> xyz.block.ftl.v1.ReplaceDeployResponse - 22, // 52: xyz.block.ftl.v1.ControllerService.StreamDeploymentLogs:output_type -> xyz.block.ftl.v1.StreamDeploymentLogsResponse - 28, // 53: xyz.block.ftl.v1.ControllerService.ResetSubscription:output_type -> xyz.block.ftl.v1.ResetSubscriptionResponse - 40, // [40:54] is the sub-list for method output_type - 26, // [26:40] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 8, // 6: xyz.block.ftl.v1.GetDeploymentArtefactsRequest.have_artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact + 8, // 7: xyz.block.ftl.v1.GetDeploymentArtefactsResponse.artefact:type_name -> xyz.block.ftl.v1.DeploymentArtefact + 36, // 8: xyz.block.ftl.v1.GetDeploymentResponse.schema:type_name -> xyz.block.ftl.schema.v1.Module + 8, // 9: xyz.block.ftl.v1.GetDeploymentResponse.artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact + 37, // 10: xyz.block.ftl.v1.RegisterRunnerRequest.labels:type_name -> google.protobuf.Struct + 38, // 11: xyz.block.ftl.v1.StreamDeploymentLogsRequest.time_stamp:type_name -> google.protobuf.Timestamp + 29, // 12: xyz.block.ftl.v1.StreamDeploymentLogsRequest.attributes:type_name -> xyz.block.ftl.v1.StreamDeploymentLogsRequest.AttributesEntry + 30, // 13: xyz.block.ftl.v1.StatusResponse.controllers:type_name -> xyz.block.ftl.v1.StatusResponse.Controller + 31, // 14: xyz.block.ftl.v1.StatusResponse.runners:type_name -> xyz.block.ftl.v1.StatusResponse.Runner + 32, // 15: xyz.block.ftl.v1.StatusResponse.deployments:type_name -> xyz.block.ftl.v1.StatusResponse.Deployment + 33, // 16: xyz.block.ftl.v1.StatusResponse.routes:type_name -> xyz.block.ftl.v1.StatusResponse.Route + 35, // 17: xyz.block.ftl.v1.ProcessListResponse.processes:type_name -> xyz.block.ftl.v1.ProcessListResponse.Process + 39, // 18: xyz.block.ftl.v1.ResetSubscriptionRequest.subscription:type_name -> xyz.block.ftl.schema.v1.Ref + 37, // 19: xyz.block.ftl.v1.StatusResponse.Runner.labels:type_name -> google.protobuf.Struct + 37, // 20: xyz.block.ftl.v1.StatusResponse.Deployment.labels:type_name -> google.protobuf.Struct + 36, // 21: xyz.block.ftl.v1.StatusResponse.Deployment.schema:type_name -> xyz.block.ftl.schema.v1.Module + 37, // 22: xyz.block.ftl.v1.ProcessListResponse.ProcessRunner.labels:type_name -> google.protobuf.Struct + 37, // 23: xyz.block.ftl.v1.ProcessListResponse.Process.labels:type_name -> google.protobuf.Struct + 34, // 24: xyz.block.ftl.v1.ProcessListResponse.Process.runner:type_name -> xyz.block.ftl.v1.ProcessListResponse.ProcessRunner + 40, // 25: xyz.block.ftl.v1.ControllerService.Ping:input_type -> xyz.block.ftl.v1.PingRequest + 25, // 26: xyz.block.ftl.v1.ControllerService.ProcessList:input_type -> xyz.block.ftl.v1.ProcessListRequest + 23, // 27: xyz.block.ftl.v1.ControllerService.Status:input_type -> xyz.block.ftl.v1.StatusRequest + 0, // 28: xyz.block.ftl.v1.ControllerService.GetCertification:input_type -> xyz.block.ftl.v1.GetCertificationRequest + 4, // 29: xyz.block.ftl.v1.ControllerService.GetArtefactDiffs:input_type -> xyz.block.ftl.v1.GetArtefactDiffsRequest + 6, // 30: xyz.block.ftl.v1.ControllerService.UploadArtefact:input_type -> xyz.block.ftl.v1.UploadArtefactRequest + 9, // 31: xyz.block.ftl.v1.ControllerService.CreateDeployment:input_type -> xyz.block.ftl.v1.CreateDeploymentRequest + 13, // 32: xyz.block.ftl.v1.ControllerService.GetDeployment:input_type -> xyz.block.ftl.v1.GetDeploymentRequest + 11, // 33: xyz.block.ftl.v1.ControllerService.GetDeploymentArtefacts:input_type -> xyz.block.ftl.v1.GetDeploymentArtefactsRequest + 15, // 34: xyz.block.ftl.v1.ControllerService.RegisterRunner:input_type -> xyz.block.ftl.v1.RegisterRunnerRequest + 17, // 35: xyz.block.ftl.v1.ControllerService.UpdateDeploy:input_type -> xyz.block.ftl.v1.UpdateDeployRequest + 19, // 36: xyz.block.ftl.v1.ControllerService.ReplaceDeploy:input_type -> xyz.block.ftl.v1.ReplaceDeployRequest + 21, // 37: xyz.block.ftl.v1.ControllerService.StreamDeploymentLogs:input_type -> xyz.block.ftl.v1.StreamDeploymentLogsRequest + 27, // 38: xyz.block.ftl.v1.ControllerService.ResetSubscription:input_type -> xyz.block.ftl.v1.ResetSubscriptionRequest + 41, // 39: xyz.block.ftl.v1.ControllerService.Ping:output_type -> xyz.block.ftl.v1.PingResponse + 26, // 40: xyz.block.ftl.v1.ControllerService.ProcessList:output_type -> xyz.block.ftl.v1.ProcessListResponse + 24, // 41: xyz.block.ftl.v1.ControllerService.Status:output_type -> xyz.block.ftl.v1.StatusResponse + 1, // 42: xyz.block.ftl.v1.ControllerService.GetCertification:output_type -> xyz.block.ftl.v1.GetCertificationResponse + 5, // 43: xyz.block.ftl.v1.ControllerService.GetArtefactDiffs:output_type -> xyz.block.ftl.v1.GetArtefactDiffsResponse + 7, // 44: xyz.block.ftl.v1.ControllerService.UploadArtefact:output_type -> xyz.block.ftl.v1.UploadArtefactResponse + 10, // 45: xyz.block.ftl.v1.ControllerService.CreateDeployment:output_type -> xyz.block.ftl.v1.CreateDeploymentResponse + 14, // 46: xyz.block.ftl.v1.ControllerService.GetDeployment:output_type -> xyz.block.ftl.v1.GetDeploymentResponse + 12, // 47: xyz.block.ftl.v1.ControllerService.GetDeploymentArtefacts:output_type -> xyz.block.ftl.v1.GetDeploymentArtefactsResponse + 16, // 48: xyz.block.ftl.v1.ControllerService.RegisterRunner:output_type -> xyz.block.ftl.v1.RegisterRunnerResponse + 18, // 49: xyz.block.ftl.v1.ControllerService.UpdateDeploy:output_type -> xyz.block.ftl.v1.UpdateDeployResponse + 20, // 50: xyz.block.ftl.v1.ControllerService.ReplaceDeploy:output_type -> xyz.block.ftl.v1.ReplaceDeployResponse + 22, // 51: xyz.block.ftl.v1.ControllerService.StreamDeploymentLogs:output_type -> xyz.block.ftl.v1.StreamDeploymentLogsResponse + 28, // 52: xyz.block.ftl.v1.ControllerService.ResetSubscription:output_type -> xyz.block.ftl.v1.ResetSubscriptionResponse + 39, // [39:53] is the sub-list for method output_type + 25, // [25:39] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_xyz_block_ftl_v1_controller_proto_init() } @@ -2383,8 +2381,8 @@ func file_xyz_block_ftl_v1_controller_proto_init() { return } file_xyz_block_ftl_v1_ftl_proto_init() - file_xyz_block_ftl_v1_controller_proto_msgTypes[9].OneofWrappers = []any{} file_xyz_block_ftl_v1_controller_proto_msgTypes[10].OneofWrappers = []any{} + file_xyz_block_ftl_v1_controller_proto_msgTypes[17].OneofWrappers = []any{} file_xyz_block_ftl_v1_controller_proto_msgTypes[21].OneofWrappers = []any{} file_xyz_block_ftl_v1_controller_proto_msgTypes[31].OneofWrappers = []any{} file_xyz_block_ftl_v1_controller_proto_msgTypes[35].OneofWrappers = []any{} diff --git a/backend/protos/xyz/block/ftl/v1/controller.proto b/backend/protos/xyz/block/ftl/v1/controller.proto index 649d614f2e..6f02eb891e 100644 --- a/backend/protos/xyz/block/ftl/v1/controller.proto +++ b/backend/protos/xyz/block/ftl/v1/controller.proto @@ -4,8 +4,8 @@ package xyz.block.ftl.v1; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; +import "xyz/block/ftl/schema/v1/schema.proto"; import "xyz/block/ftl/v1/ftl.proto"; -import "xyz/block/ftl/v1/schema/schema.proto"; option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1;ftlv1"; option java_multiple_files = true; @@ -53,10 +53,8 @@ message DeploymentArtefact { } message CreateDeploymentRequest { - schema.Module schema = 1; + ftl.schema.v1.Module schema = 1; repeated DeploymentArtefact artefacts = 2; - // Runner labels required to run this deployment. - optional google.protobuf.Struct labels = 3; } message CreateDeploymentResponse { string deployment_key = 1; @@ -77,7 +75,7 @@ message GetDeploymentRequest { string deployment_key = 1; } message GetDeploymentResponse { - schema.Module schema = 1; + ftl.schema.v1.Module schema = 1; repeated DeploymentArtefact artefacts = 2; } @@ -92,7 +90,8 @@ message RegisterRunnerResponse {} message UpdateDeployRequest { string deployment_key = 1; - int32 min_replicas = 2; + optional int32 min_replicas = 2; + optional string endpoint = 3; } message UpdateDeployResponse {} @@ -137,7 +136,7 @@ message StatusResponse { int32 min_replicas = 4; int32 replicas = 7; google.protobuf.Struct labels = 5; - schema.Module schema = 6; + ftl.schema.v1.Module schema = 6; } repeated Deployment deployments = 3; @@ -166,7 +165,7 @@ message ProcessListResponse { } message ResetSubscriptionRequest { - schema.Ref subscription = 1; + ftl.schema.v1.Ref subscription = 1; } message ResetSubscriptionResponse {} diff --git a/backend/protos/xyz/block/ftl/v1/ftlv1connect/admin.connect.go b/backend/protos/xyz/block/ftl/v1/ftlv1connect/admin.connect.go index d24ca8fbe3..d740a824a1 100644 --- a/backend/protos/xyz/block/ftl/v1/ftlv1connect/admin.connect.go +++ b/backend/protos/xyz/block/ftl/v1/ftlv1connect/admin.connect.go @@ -60,21 +60,21 @@ const ( type AdminServiceClient interface { Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) // List configuration. - ConfigList(context.Context, *connect.Request[v1.ListConfigRequest]) (*connect.Response[v1.ListConfigResponse], error) + ConfigList(context.Context, *connect.Request[v1.ConfigListRequest]) (*connect.Response[v1.ConfigListResponse], error) // Get a config value. - ConfigGet(context.Context, *connect.Request[v1.GetConfigRequest]) (*connect.Response[v1.GetConfigResponse], error) + ConfigGet(context.Context, *connect.Request[v1.ConfigGetRequest]) (*connect.Response[v1.ConfigGetResponse], error) // Set a config value. - ConfigSet(context.Context, *connect.Request[v1.SetConfigRequest]) (*connect.Response[v1.SetConfigResponse], error) + ConfigSet(context.Context, *connect.Request[v1.ConfigSetRequest]) (*connect.Response[v1.ConfigSetResponse], error) // Unset a config value. - ConfigUnset(context.Context, *connect.Request[v1.UnsetConfigRequest]) (*connect.Response[v1.UnsetConfigResponse], error) + ConfigUnset(context.Context, *connect.Request[v1.ConfigUnsetRequest]) (*connect.Response[v1.ConfigUnsetResponse], error) // List secrets. - SecretsList(context.Context, *connect.Request[v1.ListSecretsRequest]) (*connect.Response[v1.ListSecretsResponse], error) + SecretsList(context.Context, *connect.Request[v1.SecretsListRequest]) (*connect.Response[v1.SecretsListResponse], error) // Get a secret. - SecretGet(context.Context, *connect.Request[v1.GetSecretRequest]) (*connect.Response[v1.GetSecretResponse], error) + SecretGet(context.Context, *connect.Request[v1.SecretGetRequest]) (*connect.Response[v1.SecretGetResponse], error) // Set a secret. - SecretSet(context.Context, *connect.Request[v1.SetSecretRequest]) (*connect.Response[v1.SetSecretResponse], error) + SecretSet(context.Context, *connect.Request[v1.SecretSetRequest]) (*connect.Response[v1.SecretSetResponse], error) // Unset a secret. - SecretUnset(context.Context, *connect.Request[v1.UnsetSecretRequest]) (*connect.Response[v1.UnsetSecretResponse], error) + SecretUnset(context.Context, *connect.Request[v1.SecretUnsetRequest]) (*connect.Response[v1.SecretUnsetResponse], error) } // NewAdminServiceClient constructs a client for the xyz.block.ftl.v1.AdminService service. By @@ -93,42 +93,42 @@ func NewAdminServiceClient(httpClient connect.HTTPClient, baseURL string, opts . connect.WithIdempotency(connect.IdempotencyNoSideEffects), connect.WithClientOptions(opts...), ), - configList: connect.NewClient[v1.ListConfigRequest, v1.ListConfigResponse]( + configList: connect.NewClient[v1.ConfigListRequest, v1.ConfigListResponse]( httpClient, baseURL+AdminServiceConfigListProcedure, opts..., ), - configGet: connect.NewClient[v1.GetConfigRequest, v1.GetConfigResponse]( + configGet: connect.NewClient[v1.ConfigGetRequest, v1.ConfigGetResponse]( httpClient, baseURL+AdminServiceConfigGetProcedure, opts..., ), - configSet: connect.NewClient[v1.SetConfigRequest, v1.SetConfigResponse]( + configSet: connect.NewClient[v1.ConfigSetRequest, v1.ConfigSetResponse]( httpClient, baseURL+AdminServiceConfigSetProcedure, opts..., ), - configUnset: connect.NewClient[v1.UnsetConfigRequest, v1.UnsetConfigResponse]( + configUnset: connect.NewClient[v1.ConfigUnsetRequest, v1.ConfigUnsetResponse]( httpClient, baseURL+AdminServiceConfigUnsetProcedure, opts..., ), - secretsList: connect.NewClient[v1.ListSecretsRequest, v1.ListSecretsResponse]( + secretsList: connect.NewClient[v1.SecretsListRequest, v1.SecretsListResponse]( httpClient, baseURL+AdminServiceSecretsListProcedure, opts..., ), - secretGet: connect.NewClient[v1.GetSecretRequest, v1.GetSecretResponse]( + secretGet: connect.NewClient[v1.SecretGetRequest, v1.SecretGetResponse]( httpClient, baseURL+AdminServiceSecretGetProcedure, opts..., ), - secretSet: connect.NewClient[v1.SetSecretRequest, v1.SetSecretResponse]( + secretSet: connect.NewClient[v1.SecretSetRequest, v1.SecretSetResponse]( httpClient, baseURL+AdminServiceSecretSetProcedure, opts..., ), - secretUnset: connect.NewClient[v1.UnsetSecretRequest, v1.UnsetSecretResponse]( + secretUnset: connect.NewClient[v1.SecretUnsetRequest, v1.SecretUnsetResponse]( httpClient, baseURL+AdminServiceSecretUnsetProcedure, opts..., @@ -139,14 +139,14 @@ func NewAdminServiceClient(httpClient connect.HTTPClient, baseURL string, opts . // adminServiceClient implements AdminServiceClient. type adminServiceClient struct { ping *connect.Client[v1.PingRequest, v1.PingResponse] - configList *connect.Client[v1.ListConfigRequest, v1.ListConfigResponse] - configGet *connect.Client[v1.GetConfigRequest, v1.GetConfigResponse] - configSet *connect.Client[v1.SetConfigRequest, v1.SetConfigResponse] - configUnset *connect.Client[v1.UnsetConfigRequest, v1.UnsetConfigResponse] - secretsList *connect.Client[v1.ListSecretsRequest, v1.ListSecretsResponse] - secretGet *connect.Client[v1.GetSecretRequest, v1.GetSecretResponse] - secretSet *connect.Client[v1.SetSecretRequest, v1.SetSecretResponse] - secretUnset *connect.Client[v1.UnsetSecretRequest, v1.UnsetSecretResponse] + configList *connect.Client[v1.ConfigListRequest, v1.ConfigListResponse] + configGet *connect.Client[v1.ConfigGetRequest, v1.ConfigGetResponse] + configSet *connect.Client[v1.ConfigSetRequest, v1.ConfigSetResponse] + configUnset *connect.Client[v1.ConfigUnsetRequest, v1.ConfigUnsetResponse] + secretsList *connect.Client[v1.SecretsListRequest, v1.SecretsListResponse] + secretGet *connect.Client[v1.SecretGetRequest, v1.SecretGetResponse] + secretSet *connect.Client[v1.SecretSetRequest, v1.SecretSetResponse] + secretUnset *connect.Client[v1.SecretUnsetRequest, v1.SecretUnsetResponse] } // Ping calls xyz.block.ftl.v1.AdminService.Ping. @@ -155,42 +155,42 @@ func (c *adminServiceClient) Ping(ctx context.Context, req *connect.Request[v1.P } // ConfigList calls xyz.block.ftl.v1.AdminService.ConfigList. -func (c *adminServiceClient) ConfigList(ctx context.Context, req *connect.Request[v1.ListConfigRequest]) (*connect.Response[v1.ListConfigResponse], error) { +func (c *adminServiceClient) ConfigList(ctx context.Context, req *connect.Request[v1.ConfigListRequest]) (*connect.Response[v1.ConfigListResponse], error) { return c.configList.CallUnary(ctx, req) } // ConfigGet calls xyz.block.ftl.v1.AdminService.ConfigGet. -func (c *adminServiceClient) ConfigGet(ctx context.Context, req *connect.Request[v1.GetConfigRequest]) (*connect.Response[v1.GetConfigResponse], error) { +func (c *adminServiceClient) ConfigGet(ctx context.Context, req *connect.Request[v1.ConfigGetRequest]) (*connect.Response[v1.ConfigGetResponse], error) { return c.configGet.CallUnary(ctx, req) } // ConfigSet calls xyz.block.ftl.v1.AdminService.ConfigSet. -func (c *adminServiceClient) ConfigSet(ctx context.Context, req *connect.Request[v1.SetConfigRequest]) (*connect.Response[v1.SetConfigResponse], error) { +func (c *adminServiceClient) ConfigSet(ctx context.Context, req *connect.Request[v1.ConfigSetRequest]) (*connect.Response[v1.ConfigSetResponse], error) { return c.configSet.CallUnary(ctx, req) } // ConfigUnset calls xyz.block.ftl.v1.AdminService.ConfigUnset. -func (c *adminServiceClient) ConfigUnset(ctx context.Context, req *connect.Request[v1.UnsetConfigRequest]) (*connect.Response[v1.UnsetConfigResponse], error) { +func (c *adminServiceClient) ConfigUnset(ctx context.Context, req *connect.Request[v1.ConfigUnsetRequest]) (*connect.Response[v1.ConfigUnsetResponse], error) { return c.configUnset.CallUnary(ctx, req) } // SecretsList calls xyz.block.ftl.v1.AdminService.SecretsList. -func (c *adminServiceClient) SecretsList(ctx context.Context, req *connect.Request[v1.ListSecretsRequest]) (*connect.Response[v1.ListSecretsResponse], error) { +func (c *adminServiceClient) SecretsList(ctx context.Context, req *connect.Request[v1.SecretsListRequest]) (*connect.Response[v1.SecretsListResponse], error) { return c.secretsList.CallUnary(ctx, req) } // SecretGet calls xyz.block.ftl.v1.AdminService.SecretGet. -func (c *adminServiceClient) SecretGet(ctx context.Context, req *connect.Request[v1.GetSecretRequest]) (*connect.Response[v1.GetSecretResponse], error) { +func (c *adminServiceClient) SecretGet(ctx context.Context, req *connect.Request[v1.SecretGetRequest]) (*connect.Response[v1.SecretGetResponse], error) { return c.secretGet.CallUnary(ctx, req) } // SecretSet calls xyz.block.ftl.v1.AdminService.SecretSet. -func (c *adminServiceClient) SecretSet(ctx context.Context, req *connect.Request[v1.SetSecretRequest]) (*connect.Response[v1.SetSecretResponse], error) { +func (c *adminServiceClient) SecretSet(ctx context.Context, req *connect.Request[v1.SecretSetRequest]) (*connect.Response[v1.SecretSetResponse], error) { return c.secretSet.CallUnary(ctx, req) } // SecretUnset calls xyz.block.ftl.v1.AdminService.SecretUnset. -func (c *adminServiceClient) SecretUnset(ctx context.Context, req *connect.Request[v1.UnsetSecretRequest]) (*connect.Response[v1.UnsetSecretResponse], error) { +func (c *adminServiceClient) SecretUnset(ctx context.Context, req *connect.Request[v1.SecretUnsetRequest]) (*connect.Response[v1.SecretUnsetResponse], error) { return c.secretUnset.CallUnary(ctx, req) } @@ -198,21 +198,21 @@ func (c *adminServiceClient) SecretUnset(ctx context.Context, req *connect.Reque type AdminServiceHandler interface { Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) // List configuration. - ConfigList(context.Context, *connect.Request[v1.ListConfigRequest]) (*connect.Response[v1.ListConfigResponse], error) + ConfigList(context.Context, *connect.Request[v1.ConfigListRequest]) (*connect.Response[v1.ConfigListResponse], error) // Get a config value. - ConfigGet(context.Context, *connect.Request[v1.GetConfigRequest]) (*connect.Response[v1.GetConfigResponse], error) + ConfigGet(context.Context, *connect.Request[v1.ConfigGetRequest]) (*connect.Response[v1.ConfigGetResponse], error) // Set a config value. - ConfigSet(context.Context, *connect.Request[v1.SetConfigRequest]) (*connect.Response[v1.SetConfigResponse], error) + ConfigSet(context.Context, *connect.Request[v1.ConfigSetRequest]) (*connect.Response[v1.ConfigSetResponse], error) // Unset a config value. - ConfigUnset(context.Context, *connect.Request[v1.UnsetConfigRequest]) (*connect.Response[v1.UnsetConfigResponse], error) + ConfigUnset(context.Context, *connect.Request[v1.ConfigUnsetRequest]) (*connect.Response[v1.ConfigUnsetResponse], error) // List secrets. - SecretsList(context.Context, *connect.Request[v1.ListSecretsRequest]) (*connect.Response[v1.ListSecretsResponse], error) + SecretsList(context.Context, *connect.Request[v1.SecretsListRequest]) (*connect.Response[v1.SecretsListResponse], error) // Get a secret. - SecretGet(context.Context, *connect.Request[v1.GetSecretRequest]) (*connect.Response[v1.GetSecretResponse], error) + SecretGet(context.Context, *connect.Request[v1.SecretGetRequest]) (*connect.Response[v1.SecretGetResponse], error) // Set a secret. - SecretSet(context.Context, *connect.Request[v1.SetSecretRequest]) (*connect.Response[v1.SetSecretResponse], error) + SecretSet(context.Context, *connect.Request[v1.SecretSetRequest]) (*connect.Response[v1.SecretSetResponse], error) // Unset a secret. - SecretUnset(context.Context, *connect.Request[v1.UnsetSecretRequest]) (*connect.Response[v1.UnsetSecretResponse], error) + SecretUnset(context.Context, *connect.Request[v1.SecretUnsetRequest]) (*connect.Response[v1.SecretUnsetResponse], error) } // NewAdminServiceHandler builds an HTTP handler from the service implementation. It returns the @@ -300,34 +300,34 @@ func (UnimplementedAdminServiceHandler) Ping(context.Context, *connect.Request[v return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.Ping is not implemented")) } -func (UnimplementedAdminServiceHandler) ConfigList(context.Context, *connect.Request[v1.ListConfigRequest]) (*connect.Response[v1.ListConfigResponse], error) { +func (UnimplementedAdminServiceHandler) ConfigList(context.Context, *connect.Request[v1.ConfigListRequest]) (*connect.Response[v1.ConfigListResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.ConfigList is not implemented")) } -func (UnimplementedAdminServiceHandler) ConfigGet(context.Context, *connect.Request[v1.GetConfigRequest]) (*connect.Response[v1.GetConfigResponse], error) { +func (UnimplementedAdminServiceHandler) ConfigGet(context.Context, *connect.Request[v1.ConfigGetRequest]) (*connect.Response[v1.ConfigGetResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.ConfigGet is not implemented")) } -func (UnimplementedAdminServiceHandler) ConfigSet(context.Context, *connect.Request[v1.SetConfigRequest]) (*connect.Response[v1.SetConfigResponse], error) { +func (UnimplementedAdminServiceHandler) ConfigSet(context.Context, *connect.Request[v1.ConfigSetRequest]) (*connect.Response[v1.ConfigSetResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.ConfigSet is not implemented")) } -func (UnimplementedAdminServiceHandler) ConfigUnset(context.Context, *connect.Request[v1.UnsetConfigRequest]) (*connect.Response[v1.UnsetConfigResponse], error) { +func (UnimplementedAdminServiceHandler) ConfigUnset(context.Context, *connect.Request[v1.ConfigUnsetRequest]) (*connect.Response[v1.ConfigUnsetResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.ConfigUnset is not implemented")) } -func (UnimplementedAdminServiceHandler) SecretsList(context.Context, *connect.Request[v1.ListSecretsRequest]) (*connect.Response[v1.ListSecretsResponse], error) { +func (UnimplementedAdminServiceHandler) SecretsList(context.Context, *connect.Request[v1.SecretsListRequest]) (*connect.Response[v1.SecretsListResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.SecretsList is not implemented")) } -func (UnimplementedAdminServiceHandler) SecretGet(context.Context, *connect.Request[v1.GetSecretRequest]) (*connect.Response[v1.GetSecretResponse], error) { +func (UnimplementedAdminServiceHandler) SecretGet(context.Context, *connect.Request[v1.SecretGetRequest]) (*connect.Response[v1.SecretGetResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.SecretGet is not implemented")) } -func (UnimplementedAdminServiceHandler) SecretSet(context.Context, *connect.Request[v1.SetSecretRequest]) (*connect.Response[v1.SetSecretResponse], error) { +func (UnimplementedAdminServiceHandler) SecretSet(context.Context, *connect.Request[v1.SecretSetRequest]) (*connect.Response[v1.SecretSetResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.SecretSet is not implemented")) } -func (UnimplementedAdminServiceHandler) SecretUnset(context.Context, *connect.Request[v1.UnsetSecretRequest]) (*connect.Response[v1.UnsetSecretResponse], error) { +func (UnimplementedAdminServiceHandler) SecretUnset(context.Context, *connect.Request[v1.SecretUnsetRequest]) (*connect.Response[v1.SecretUnsetResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.AdminService.SecretUnset is not implemented")) } diff --git a/backend/protos/xyz/block/ftl/v1/ftlv1connect/module.connect.go b/backend/protos/xyz/block/ftl/v1/ftlv1connect/module.connect.go index 9ef01d7137..4e8b33c72f 100644 --- a/backend/protos/xyz/block/ftl/v1/ftlv1connect/module.connect.go +++ b/backend/protos/xyz/block/ftl/v1/ftlv1connect/module.connect.go @@ -51,7 +51,7 @@ type ModuleServiceClient interface { // Ping service for readiness. Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) // Get configuration state for the module - GetModuleContext(context.Context, *connect.Request[v1.ModuleContextRequest]) (*connect.ServerStreamForClient[v1.ModuleContextResponse], error) + GetModuleContext(context.Context, *connect.Request[v1.GetModuleContextRequest]) (*connect.ServerStreamForClient[v1.GetModuleContextResponse], error) // Acquire (and renew) a lease for a deployment. // // Returns ResourceExhausted if the lease is held. @@ -76,7 +76,7 @@ func NewModuleServiceClient(httpClient connect.HTTPClient, baseURL string, opts connect.WithIdempotency(connect.IdempotencyNoSideEffects), connect.WithClientOptions(opts...), ), - getModuleContext: connect.NewClient[v1.ModuleContextRequest, v1.ModuleContextResponse]( + getModuleContext: connect.NewClient[v1.GetModuleContextRequest, v1.GetModuleContextResponse]( httpClient, baseURL+ModuleServiceGetModuleContextProcedure, opts..., @@ -97,7 +97,7 @@ func NewModuleServiceClient(httpClient connect.HTTPClient, baseURL string, opts // moduleServiceClient implements ModuleServiceClient. type moduleServiceClient struct { ping *connect.Client[v1.PingRequest, v1.PingResponse] - getModuleContext *connect.Client[v1.ModuleContextRequest, v1.ModuleContextResponse] + getModuleContext *connect.Client[v1.GetModuleContextRequest, v1.GetModuleContextResponse] acquireLease *connect.Client[v1.AcquireLeaseRequest, v1.AcquireLeaseResponse] publishEvent *connect.Client[v1.PublishEventRequest, v1.PublishEventResponse] } @@ -108,7 +108,7 @@ func (c *moduleServiceClient) Ping(ctx context.Context, req *connect.Request[v1. } // GetModuleContext calls xyz.block.ftl.v1.ModuleService.GetModuleContext. -func (c *moduleServiceClient) GetModuleContext(ctx context.Context, req *connect.Request[v1.ModuleContextRequest]) (*connect.ServerStreamForClient[v1.ModuleContextResponse], error) { +func (c *moduleServiceClient) GetModuleContext(ctx context.Context, req *connect.Request[v1.GetModuleContextRequest]) (*connect.ServerStreamForClient[v1.GetModuleContextResponse], error) { return c.getModuleContext.CallServerStream(ctx, req) } @@ -127,7 +127,7 @@ type ModuleServiceHandler interface { // Ping service for readiness. Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) // Get configuration state for the module - GetModuleContext(context.Context, *connect.Request[v1.ModuleContextRequest], *connect.ServerStream[v1.ModuleContextResponse]) error + GetModuleContext(context.Context, *connect.Request[v1.GetModuleContextRequest], *connect.ServerStream[v1.GetModuleContextResponse]) error // Acquire (and renew) a lease for a deployment. // // Returns ResourceExhausted if the lease is held. @@ -186,7 +186,7 @@ func (UnimplementedModuleServiceHandler) Ping(context.Context, *connect.Request[ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.ModuleService.Ping is not implemented")) } -func (UnimplementedModuleServiceHandler) GetModuleContext(context.Context, *connect.Request[v1.ModuleContextRequest], *connect.ServerStream[v1.ModuleContextResponse]) error { +func (UnimplementedModuleServiceHandler) GetModuleContext(context.Context, *connect.Request[v1.GetModuleContextRequest], *connect.ServerStream[v1.GetModuleContextResponse]) error { return connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.v1.ModuleService.GetModuleContext is not implemented")) } diff --git a/backend/protos/xyz/block/ftl/v1/module.pb.go b/backend/protos/xyz/block/ftl/v1/module.pb.go index 5036a38050..6ac4a9b5b2 100644 --- a/backend/protos/xyz/block/ftl/v1/module.pb.go +++ b/backend/protos/xyz/block/ftl/v1/module.pb.go @@ -7,7 +7,7 @@ package ftlv1 import ( - schema "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" @@ -22,49 +22,52 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type ModuleContextResponse_DBType int32 +type GetModuleContextResponse_DbType int32 const ( - ModuleContextResponse_POSTGRES ModuleContextResponse_DBType = 0 - ModuleContextResponse_MYSQL ModuleContextResponse_DBType = 1 + GetModuleContextResponse_DB_TYPE_UNSPECIFIED GetModuleContextResponse_DbType = 0 + GetModuleContextResponse_DB_TYPE_POSTGRES GetModuleContextResponse_DbType = 1 + GetModuleContextResponse_DB_TYPE_MYSQL GetModuleContextResponse_DbType = 2 ) -// Enum value maps for ModuleContextResponse_DBType. +// Enum value maps for GetModuleContextResponse_DbType. var ( - ModuleContextResponse_DBType_name = map[int32]string{ - 0: "POSTGRES", - 1: "MYSQL", + GetModuleContextResponse_DbType_name = map[int32]string{ + 0: "DB_TYPE_UNSPECIFIED", + 1: "DB_TYPE_POSTGRES", + 2: "DB_TYPE_MYSQL", } - ModuleContextResponse_DBType_value = map[string]int32{ - "POSTGRES": 0, - "MYSQL": 1, + GetModuleContextResponse_DbType_value = map[string]int32{ + "DB_TYPE_UNSPECIFIED": 0, + "DB_TYPE_POSTGRES": 1, + "DB_TYPE_MYSQL": 2, } ) -func (x ModuleContextResponse_DBType) Enum() *ModuleContextResponse_DBType { - p := new(ModuleContextResponse_DBType) +func (x GetModuleContextResponse_DbType) Enum() *GetModuleContextResponse_DbType { + p := new(GetModuleContextResponse_DbType) *p = x return p } -func (x ModuleContextResponse_DBType) String() string { +func (x GetModuleContextResponse_DbType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (ModuleContextResponse_DBType) Descriptor() protoreflect.EnumDescriptor { +func (GetModuleContextResponse_DbType) Descriptor() protoreflect.EnumDescriptor { return file_xyz_block_ftl_v1_module_proto_enumTypes[0].Descriptor() } -func (ModuleContextResponse_DBType) Type() protoreflect.EnumType { +func (GetModuleContextResponse_DbType) Type() protoreflect.EnumType { return &file_xyz_block_ftl_v1_module_proto_enumTypes[0] } -func (x ModuleContextResponse_DBType) Number() protoreflect.EnumNumber { +func (x GetModuleContextResponse_DbType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use ModuleContextResponse_DBType.Descriptor instead. -func (ModuleContextResponse_DBType) EnumDescriptor() ([]byte, []int) { +// Deprecated: Use GetModuleContextResponse_DbType.Descriptor instead. +func (GetModuleContextResponse_DbType) EnumDescriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_module_proto_rawDescGZIP(), []int{5, 0} } @@ -170,8 +173,8 @@ type PublishEventRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Topic *schema.Ref `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` - Body []byte `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` + Topic *v1.Ref `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` + Body []byte `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` // Only verb name is included because this verb will be in the same module as topic Caller string `protobuf:"bytes,3,opt,name=caller,proto3" json:"caller,omitempty"` } @@ -206,7 +209,7 @@ func (*PublishEventRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_module_proto_rawDescGZIP(), []int{2} } -func (x *PublishEventRequest) GetTopic() *schema.Ref { +func (x *PublishEventRequest) GetTopic() *v1.Ref { if x != nil { return x.Topic } @@ -263,7 +266,7 @@ func (*PublishEventResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_module_proto_rawDescGZIP(), []int{3} } -type ModuleContextRequest struct { +type GetModuleContextRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -271,20 +274,20 @@ type ModuleContextRequest struct { Module string `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` } -func (x *ModuleContextRequest) Reset() { - *x = ModuleContextRequest{} +func (x *GetModuleContextRequest) Reset() { + *x = GetModuleContextRequest{} mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ModuleContextRequest) String() string { +func (x *GetModuleContextRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ModuleContextRequest) ProtoMessage() {} +func (*GetModuleContextRequest) ProtoMessage() {} -func (x *ModuleContextRequest) ProtoReflect() protoreflect.Message { +func (x *GetModuleContextRequest) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -296,43 +299,43 @@ func (x *ModuleContextRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ModuleContextRequest.ProtoReflect.Descriptor instead. -func (*ModuleContextRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetModuleContextRequest.ProtoReflect.Descriptor instead. +func (*GetModuleContextRequest) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_module_proto_rawDescGZIP(), []int{4} } -func (x *ModuleContextRequest) GetModule() string { +func (x *GetModuleContextRequest) GetModule() string { if x != nil { return x.Module } return "" } -type ModuleContextResponse struct { +type GetModuleContextResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Module string `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` - Configs map[string][]byte `protobuf:"bytes,2,rep,name=configs,proto3" json:"configs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Secrets map[string][]byte `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Databases []*ModuleContextResponse_DSN `protobuf:"bytes,4,rep,name=databases,proto3" json:"databases,omitempty"` + Module string `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` + Configs map[string][]byte `protobuf:"bytes,2,rep,name=configs,proto3" json:"configs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Secrets map[string][]byte `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Databases []*GetModuleContextResponse_DSN `protobuf:"bytes,4,rep,name=databases,proto3" json:"databases,omitempty"` } -func (x *ModuleContextResponse) Reset() { - *x = ModuleContextResponse{} +func (x *GetModuleContextResponse) Reset() { + *x = GetModuleContextResponse{} mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ModuleContextResponse) String() string { +func (x *GetModuleContextResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ModuleContextResponse) ProtoMessage() {} +func (*GetModuleContextResponse) ProtoMessage() {} -func (x *ModuleContextResponse) ProtoReflect() protoreflect.Message { +func (x *GetModuleContextResponse) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -344,40 +347,40 @@ func (x *ModuleContextResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ModuleContextResponse.ProtoReflect.Descriptor instead. -func (*ModuleContextResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetModuleContextResponse.ProtoReflect.Descriptor instead. +func (*GetModuleContextResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_module_proto_rawDescGZIP(), []int{5} } -func (x *ModuleContextResponse) GetModule() string { +func (x *GetModuleContextResponse) GetModule() string { if x != nil { return x.Module } return "" } -func (x *ModuleContextResponse) GetConfigs() map[string][]byte { +func (x *GetModuleContextResponse) GetConfigs() map[string][]byte { if x != nil { return x.Configs } return nil } -func (x *ModuleContextResponse) GetSecrets() map[string][]byte { +func (x *GetModuleContextResponse) GetSecrets() map[string][]byte { if x != nil { return x.Secrets } return nil } -func (x *ModuleContextResponse) GetDatabases() []*ModuleContextResponse_DSN { +func (x *GetModuleContextResponse) GetDatabases() []*GetModuleContextResponse_DSN { if x != nil { return x.Databases } return nil } -type ModuleContextResponse_Ref struct { +type GetModuleContextResponse_Ref struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -386,20 +389,20 @@ type ModuleContextResponse_Ref struct { Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } -func (x *ModuleContextResponse_Ref) Reset() { - *x = ModuleContextResponse_Ref{} +func (x *GetModuleContextResponse_Ref) Reset() { + *x = GetModuleContextResponse_Ref{} mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ModuleContextResponse_Ref) String() string { +func (x *GetModuleContextResponse_Ref) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ModuleContextResponse_Ref) ProtoMessage() {} +func (*GetModuleContextResponse_Ref) ProtoMessage() {} -func (x *ModuleContextResponse_Ref) ProtoReflect() protoreflect.Message { +func (x *GetModuleContextResponse_Ref) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -411,49 +414,49 @@ func (x *ModuleContextResponse_Ref) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ModuleContextResponse_Ref.ProtoReflect.Descriptor instead. -func (*ModuleContextResponse_Ref) Descriptor() ([]byte, []int) { +// Deprecated: Use GetModuleContextResponse_Ref.ProtoReflect.Descriptor instead. +func (*GetModuleContextResponse_Ref) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_module_proto_rawDescGZIP(), []int{5, 0} } -func (x *ModuleContextResponse_Ref) GetModule() string { +func (x *GetModuleContextResponse_Ref) GetModule() string { if x != nil && x.Module != nil { return *x.Module } return "" } -func (x *ModuleContextResponse_Ref) GetName() string { +func (x *GetModuleContextResponse_Ref) GetName() string { if x != nil { return x.Name } return "" } -type ModuleContextResponse_DSN struct { +type GetModuleContextResponse_DSN struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type ModuleContextResponse_DBType `protobuf:"varint,2,opt,name=type,proto3,enum=xyz.block.ftl.v1.ModuleContextResponse_DBType" json:"type,omitempty"` - Dsn string `protobuf:"bytes,3,opt,name=dsn,proto3" json:"dsn,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type GetModuleContextResponse_DbType `protobuf:"varint,2,opt,name=type,proto3,enum=xyz.block.ftl.v1.GetModuleContextResponse_DbType" json:"type,omitempty"` + Dsn string `protobuf:"bytes,3,opt,name=dsn,proto3" json:"dsn,omitempty"` } -func (x *ModuleContextResponse_DSN) Reset() { - *x = ModuleContextResponse_DSN{} +func (x *GetModuleContextResponse_DSN) Reset() { + *x = GetModuleContextResponse_DSN{} mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ModuleContextResponse_DSN) String() string { +func (x *GetModuleContextResponse_DSN) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ModuleContextResponse_DSN) ProtoMessage() {} +func (*GetModuleContextResponse_DSN) ProtoMessage() {} -func (x *ModuleContextResponse_DSN) ProtoReflect() protoreflect.Message { +func (x *GetModuleContextResponse_DSN) ProtoReflect() protoreflect.Message { mi := &file_xyz_block_ftl_v1_module_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -465,26 +468,26 @@ func (x *ModuleContextResponse_DSN) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ModuleContextResponse_DSN.ProtoReflect.Descriptor instead. -func (*ModuleContextResponse_DSN) Descriptor() ([]byte, []int) { +// Deprecated: Use GetModuleContextResponse_DSN.ProtoReflect.Descriptor instead. +func (*GetModuleContextResponse_DSN) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_module_proto_rawDescGZIP(), []int{5, 1} } -func (x *ModuleContextResponse_DSN) GetName() string { +func (x *GetModuleContextResponse_DSN) GetName() string { if x != nil { return x.Name } return "" } -func (x *ModuleContextResponse_DSN) GetType() ModuleContextResponse_DBType { +func (x *GetModuleContextResponse_DSN) GetType() GetModuleContextResponse_DbType { if x != nil { return x.Type } - return ModuleContextResponse_POSTGRES + return GetModuleContextResponse_DB_TYPE_UNSPECIFIED } -func (x *ModuleContextResponse_DSN) GetDsn() string { +func (x *GetModuleContextResponse_DSN) GetDsn() string { if x != nil { return x.Dsn } @@ -499,10 +502,10 @@ var file_xyz_block_ftl_v1_module_proto_rawDesc = []byte{ 0x10, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, - 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, - 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, + 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, + 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6c, 0x0a, 0x13, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, @@ -515,83 +518,87 @@ var file_xyz_block_ftl_v1_module_proto_rawDesc = []byte{ 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xe9, 0x04, 0x0a, 0x15, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x4e, 0x0a, 0x07, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x53, 0x4e, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x03, 0x52, 0x65, 0x66, 0x12, 0x1b, 0x0a, 0x06, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x1a, 0x6f, 0x0a, 0x03, 0x44, 0x53, 0x4e, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x42, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x21, 0x0a, 0x06, 0x44, 0x42, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x50, - 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x59, 0x53, - 0x51, 0x4c, 0x10, 0x01, 0x32, 0x84, 0x03, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, - 0x02, 0x01, 0x12, 0x65, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x0c, 0x41, 0x63, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x0c, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x78, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xa1, 0x05, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x12, 0x51, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x12, 0x51, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x53, 0x4e, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x03, 0x52, 0x65, 0x66, 0x12, 0x1b, 0x0a, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x1a, 0x72, 0x0a, 0x03, 0x44, 0x53, 0x4e, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x62, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x06, 0x44, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, + 0x13, 0x44, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, + 0x44, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x10, 0x02, 0x32, + 0x8a, 0x03, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x6b, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x12, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x44, 0x50, 0x01, 0x5a, - 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, - 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, - 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, 0x76, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x0c, 0x41, 0x63, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x25, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x5d, 0x0a, + 0x0c, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x44, 0x50, 0x01, + 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, + 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, + 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, + 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -609,35 +616,35 @@ func file_xyz_block_ftl_v1_module_proto_rawDescGZIP() []byte { var file_xyz_block_ftl_v1_module_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_xyz_block_ftl_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_xyz_block_ftl_v1_module_proto_goTypes = []any{ - (ModuleContextResponse_DBType)(0), // 0: xyz.block.ftl.v1.ModuleContextResponse.DBType - (*AcquireLeaseRequest)(nil), // 1: xyz.block.ftl.v1.AcquireLeaseRequest - (*AcquireLeaseResponse)(nil), // 2: xyz.block.ftl.v1.AcquireLeaseResponse - (*PublishEventRequest)(nil), // 3: xyz.block.ftl.v1.PublishEventRequest - (*PublishEventResponse)(nil), // 4: xyz.block.ftl.v1.PublishEventResponse - (*ModuleContextRequest)(nil), // 5: xyz.block.ftl.v1.ModuleContextRequest - (*ModuleContextResponse)(nil), // 6: xyz.block.ftl.v1.ModuleContextResponse - (*ModuleContextResponse_Ref)(nil), // 7: xyz.block.ftl.v1.ModuleContextResponse.Ref - (*ModuleContextResponse_DSN)(nil), // 8: xyz.block.ftl.v1.ModuleContextResponse.DSN - nil, // 9: xyz.block.ftl.v1.ModuleContextResponse.ConfigsEntry - nil, // 10: xyz.block.ftl.v1.ModuleContextResponse.SecretsEntry - (*durationpb.Duration)(nil), // 11: google.protobuf.Duration - (*schema.Ref)(nil), // 12: xyz.block.ftl.v1.schema.Ref - (*PingRequest)(nil), // 13: xyz.block.ftl.v1.PingRequest - (*PingResponse)(nil), // 14: xyz.block.ftl.v1.PingResponse + (GetModuleContextResponse_DbType)(0), // 0: xyz.block.ftl.v1.GetModuleContextResponse.DbType + (*AcquireLeaseRequest)(nil), // 1: xyz.block.ftl.v1.AcquireLeaseRequest + (*AcquireLeaseResponse)(nil), // 2: xyz.block.ftl.v1.AcquireLeaseResponse + (*PublishEventRequest)(nil), // 3: xyz.block.ftl.v1.PublishEventRequest + (*PublishEventResponse)(nil), // 4: xyz.block.ftl.v1.PublishEventResponse + (*GetModuleContextRequest)(nil), // 5: xyz.block.ftl.v1.GetModuleContextRequest + (*GetModuleContextResponse)(nil), // 6: xyz.block.ftl.v1.GetModuleContextResponse + (*GetModuleContextResponse_Ref)(nil), // 7: xyz.block.ftl.v1.GetModuleContextResponse.Ref + (*GetModuleContextResponse_DSN)(nil), // 8: xyz.block.ftl.v1.GetModuleContextResponse.DSN + nil, // 9: xyz.block.ftl.v1.GetModuleContextResponse.ConfigsEntry + nil, // 10: xyz.block.ftl.v1.GetModuleContextResponse.SecretsEntry + (*durationpb.Duration)(nil), // 11: google.protobuf.Duration + (*v1.Ref)(nil), // 12: xyz.block.ftl.schema.v1.Ref + (*PingRequest)(nil), // 13: xyz.block.ftl.v1.PingRequest + (*PingResponse)(nil), // 14: xyz.block.ftl.v1.PingResponse } var file_xyz_block_ftl_v1_module_proto_depIdxs = []int32{ 11, // 0: xyz.block.ftl.v1.AcquireLeaseRequest.ttl:type_name -> google.protobuf.Duration - 12, // 1: xyz.block.ftl.v1.PublishEventRequest.topic:type_name -> xyz.block.ftl.v1.schema.Ref - 9, // 2: xyz.block.ftl.v1.ModuleContextResponse.configs:type_name -> xyz.block.ftl.v1.ModuleContextResponse.ConfigsEntry - 10, // 3: xyz.block.ftl.v1.ModuleContextResponse.secrets:type_name -> xyz.block.ftl.v1.ModuleContextResponse.SecretsEntry - 8, // 4: xyz.block.ftl.v1.ModuleContextResponse.databases:type_name -> xyz.block.ftl.v1.ModuleContextResponse.DSN - 0, // 5: xyz.block.ftl.v1.ModuleContextResponse.DSN.type:type_name -> xyz.block.ftl.v1.ModuleContextResponse.DBType + 12, // 1: xyz.block.ftl.v1.PublishEventRequest.topic:type_name -> xyz.block.ftl.schema.v1.Ref + 9, // 2: xyz.block.ftl.v1.GetModuleContextResponse.configs:type_name -> xyz.block.ftl.v1.GetModuleContextResponse.ConfigsEntry + 10, // 3: xyz.block.ftl.v1.GetModuleContextResponse.secrets:type_name -> xyz.block.ftl.v1.GetModuleContextResponse.SecretsEntry + 8, // 4: xyz.block.ftl.v1.GetModuleContextResponse.databases:type_name -> xyz.block.ftl.v1.GetModuleContextResponse.DSN + 0, // 5: xyz.block.ftl.v1.GetModuleContextResponse.DSN.type:type_name -> xyz.block.ftl.v1.GetModuleContextResponse.DbType 13, // 6: xyz.block.ftl.v1.ModuleService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 5, // 7: xyz.block.ftl.v1.ModuleService.GetModuleContext:input_type -> xyz.block.ftl.v1.ModuleContextRequest + 5, // 7: xyz.block.ftl.v1.ModuleService.GetModuleContext:input_type -> xyz.block.ftl.v1.GetModuleContextRequest 1, // 8: xyz.block.ftl.v1.ModuleService.AcquireLease:input_type -> xyz.block.ftl.v1.AcquireLeaseRequest 3, // 9: xyz.block.ftl.v1.ModuleService.PublishEvent:input_type -> xyz.block.ftl.v1.PublishEventRequest 14, // 10: xyz.block.ftl.v1.ModuleService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 6, // 11: xyz.block.ftl.v1.ModuleService.GetModuleContext:output_type -> xyz.block.ftl.v1.ModuleContextResponse + 6, // 11: xyz.block.ftl.v1.ModuleService.GetModuleContext:output_type -> xyz.block.ftl.v1.GetModuleContextResponse 2, // 12: xyz.block.ftl.v1.ModuleService.AcquireLease:output_type -> xyz.block.ftl.v1.AcquireLeaseResponse 4, // 13: xyz.block.ftl.v1.ModuleService.PublishEvent:output_type -> xyz.block.ftl.v1.PublishEventResponse 10, // [10:14] is the sub-list for method output_type diff --git a/backend/protos/xyz/block/ftl/v1/module.proto b/backend/protos/xyz/block/ftl/v1/module.proto index 19c7bc1707..8db4036a08 100644 --- a/backend/protos/xyz/block/ftl/v1/module.proto +++ b/backend/protos/xyz/block/ftl/v1/module.proto @@ -3,8 +3,8 @@ syntax = "proto3"; package xyz.block.ftl.v1; import "google/protobuf/duration.proto"; +import "xyz/block/ftl/schema/v1/schema.proto"; import "xyz/block/ftl/v1/ftl.proto"; -import "xyz/block/ftl/v1/schema/schema.proto"; option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1;ftlv1"; option java_multiple_files = true; @@ -18,7 +18,7 @@ message AcquireLeaseRequest { message AcquireLeaseResponse {} message PublishEventRequest { - schema.Ref topic = 1; + ftl.schema.v1.Ref topic = 1; bytes body = 2; // Only verb name is included because this verb will be in the same module as topic string caller = 3; @@ -26,24 +26,25 @@ message PublishEventRequest { message PublishEventResponse {} -message ModuleContextRequest { +message GetModuleContextRequest { string module = 1; } -message ModuleContextResponse { +message GetModuleContextResponse { message Ref { optional string module = 1; string name = 2; } - enum DBType { - POSTGRES = 0; - MYSQL = 1; + enum DbType { + DB_TYPE_UNSPECIFIED = 0; + DB_TYPE_POSTGRES = 1; + DB_TYPE_MYSQL = 2; } message DSN { string name = 1; - DBType type = 2; + DbType type = 2; string dsn = 3; } @@ -61,7 +62,7 @@ service ModuleService { } // Get configuration state for the module - rpc GetModuleContext(ModuleContextRequest) returns (stream ModuleContextResponse); + rpc GetModuleContext(GetModuleContextRequest) returns (stream GetModuleContextResponse); // Acquire (and renew) a lease for a deployment. // diff --git a/backend/protos/xyz/block/ftl/v1/schemaservice.pb.go b/backend/protos/xyz/block/ftl/v1/schemaservice.pb.go index 18b5b8b72c..7d48a9ca2c 100644 --- a/backend/protos/xyz/block/ftl/v1/schemaservice.pb.go +++ b/backend/protos/xyz/block/ftl/v1/schemaservice.pb.go @@ -7,7 +7,7 @@ package ftlv1 import ( - schema "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -24,25 +24,25 @@ const ( type DeploymentChangeType int32 const ( - DeploymentChangeType_DEPLOYMENT_UNKNOWN DeploymentChangeType = 0 - DeploymentChangeType_DEPLOYMENT_ADDED DeploymentChangeType = 1 - DeploymentChangeType_DEPLOYMENT_REMOVED DeploymentChangeType = 2 - DeploymentChangeType_DEPLOYMENT_CHANGED DeploymentChangeType = 3 + DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_UNSPECIFIED DeploymentChangeType = 0 + DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_ADDED DeploymentChangeType = 1 + DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_REMOVED DeploymentChangeType = 2 + DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_CHANGED DeploymentChangeType = 3 ) // Enum value maps for DeploymentChangeType. var ( DeploymentChangeType_name = map[int32]string{ - 0: "DEPLOYMENT_UNKNOWN", - 1: "DEPLOYMENT_ADDED", - 2: "DEPLOYMENT_REMOVED", - 3: "DEPLOYMENT_CHANGED", + 0: "DEPLOYMENT_CHANGE_TYPE_UNSPECIFIED", + 1: "DEPLOYMENT_CHANGE_TYPE_ADDED", + 2: "DEPLOYMENT_CHANGE_TYPE_REMOVED", + 3: "DEPLOYMENT_CHANGE_TYPE_CHANGED", } DeploymentChangeType_value = map[string]int32{ - "DEPLOYMENT_UNKNOWN": 0, - "DEPLOYMENT_ADDED": 1, - "DEPLOYMENT_REMOVED": 2, - "DEPLOYMENT_CHANGED": 3, + "DEPLOYMENT_CHANGE_TYPE_UNSPECIFIED": 0, + "DEPLOYMENT_CHANGE_TYPE_ADDED": 1, + "DEPLOYMENT_CHANGE_TYPE_REMOVED": 2, + "DEPLOYMENT_CHANGE_TYPE_CHANGED": 3, } ) @@ -114,7 +114,7 @@ type GetSchemaResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Schema *schema.Schema `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` + Schema *v1.Schema `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` } func (x *GetSchemaResponse) Reset() { @@ -147,7 +147,7 @@ func (*GetSchemaResponse) Descriptor() ([]byte, []int) { return file_xyz_block_ftl_v1_schemaservice_proto_rawDescGZIP(), []int{1} } -func (x *GetSchemaResponse) GetSchema() *schema.Schema { +func (x *GetSchemaResponse) GetSchema() *v1.Schema { if x != nil { return x.Schema } @@ -199,7 +199,7 @@ type PullSchemaResponse struct { DeploymentKey *string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3,oneof" json:"deployment_key,omitempty"` ModuleName string `protobuf:"bytes,2,opt,name=module_name,json=moduleName,proto3" json:"module_name,omitempty"` // For deletes this will not be present. - Schema *schema.Module `protobuf:"bytes,4,opt,name=schema,proto3,oneof" json:"schema,omitempty"` + Schema *v1.Module `protobuf:"bytes,4,opt,name=schema,proto3,oneof" json:"schema,omitempty"` // If true there are more schema changes immediately following this one as part of the initial batch. // If false this is the last schema change in the initial batch, but others may follow later. More bool `protobuf:"varint,3,opt,name=more,proto3" json:"more,omitempty"` @@ -252,7 +252,7 @@ func (x *PullSchemaResponse) GetModuleName() string { return "" } -func (x *PullSchemaResponse) GetSchema() *schema.Module { +func (x *PullSchemaResponse) GetSchema() *v1.Module { if x != nil { return x.Schema } @@ -270,7 +270,7 @@ func (x *PullSchemaResponse) GetChangeType() DeploymentChangeType { if x != nil { return x.ChangeType } - return DeploymentChangeType_DEPLOYMENT_UNKNOWN + return DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_UNSPECIFIED } func (x *PullSchemaResponse) GetModuleRemoved() bool { @@ -286,16 +286,16 @@ var file_xyz_block_ftl_v1_schemaservice_proto_rawDesc = []byte{ 0x0a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, - 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, + 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x53, 0x63, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x13, 0x0a, 0x11, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, @@ -306,7 +306,7 @@ var file_xyz_block_ftl_v1_schemaservice_proto_rawDesc = []byte{ 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x01, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x6f, 0x72, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, @@ -318,37 +318,40 @@ var file_xyz_block_ftl_v1_schemaservice_proto_rawDesc = []byte{ 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2a, 0x74, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, - 0x12, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, - 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, - 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, - 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x03, 0x32, 0x96, 0x02, 0x0a, 0x0d, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, - 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x59, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x03, 0x90, 0x02, 0x01, 0x12, 0x5e, 0x0a, 0x0a, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x12, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2a, 0xa8, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, + 0x0a, 0x22, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, + 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, + 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, 0x50, 0x4c, + 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, + 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x03, + 0x32, 0x96, 0x02, 0x0a, 0x0d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x59, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x22, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x5e, 0x0a, 0x0a, 0x50, 0x75, 0x6c, + 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, - 0x02, 0x01, 0x30, 0x01, 0x42, 0x44, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, - 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, - 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x30, 0x01, 0x42, 0x44, 0x50, 0x01, 0x5a, 0x40, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, + 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x74, 0x6c, 0x76, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -371,14 +374,14 @@ var file_xyz_block_ftl_v1_schemaservice_proto_goTypes = []any{ (*GetSchemaResponse)(nil), // 2: xyz.block.ftl.v1.GetSchemaResponse (*PullSchemaRequest)(nil), // 3: xyz.block.ftl.v1.PullSchemaRequest (*PullSchemaResponse)(nil), // 4: xyz.block.ftl.v1.PullSchemaResponse - (*schema.Schema)(nil), // 5: xyz.block.ftl.v1.schema.Schema - (*schema.Module)(nil), // 6: xyz.block.ftl.v1.schema.Module + (*v1.Schema)(nil), // 5: xyz.block.ftl.schema.v1.Schema + (*v1.Module)(nil), // 6: xyz.block.ftl.schema.v1.Module (*PingRequest)(nil), // 7: xyz.block.ftl.v1.PingRequest (*PingResponse)(nil), // 8: xyz.block.ftl.v1.PingResponse } var file_xyz_block_ftl_v1_schemaservice_proto_depIdxs = []int32{ - 5, // 0: xyz.block.ftl.v1.GetSchemaResponse.schema:type_name -> xyz.block.ftl.v1.schema.Schema - 6, // 1: xyz.block.ftl.v1.PullSchemaResponse.schema:type_name -> xyz.block.ftl.v1.schema.Module + 5, // 0: xyz.block.ftl.v1.GetSchemaResponse.schema:type_name -> xyz.block.ftl.schema.v1.Schema + 6, // 1: xyz.block.ftl.v1.PullSchemaResponse.schema:type_name -> xyz.block.ftl.schema.v1.Module 0, // 2: xyz.block.ftl.v1.PullSchemaResponse.change_type:type_name -> xyz.block.ftl.v1.DeploymentChangeType 7, // 3: xyz.block.ftl.v1.SchemaService.Ping:input_type -> xyz.block.ftl.v1.PingRequest 1, // 4: xyz.block.ftl.v1.SchemaService.GetSchema:input_type -> xyz.block.ftl.v1.GetSchemaRequest diff --git a/backend/protos/xyz/block/ftl/v1/schemaservice.proto b/backend/protos/xyz/block/ftl/v1/schemaservice.proto index f3f5201b50..4a68d91101 100644 --- a/backend/protos/xyz/block/ftl/v1/schemaservice.proto +++ b/backend/protos/xyz/block/ftl/v1/schemaservice.proto @@ -2,22 +2,22 @@ syntax = "proto3"; package xyz.block.ftl.v1; +import "xyz/block/ftl/schema/v1/schema.proto"; import "xyz/block/ftl/v1/ftl.proto"; -import "xyz/block/ftl/v1/schema/schema.proto"; option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1;ftlv1"; option java_multiple_files = true; message GetSchemaRequest {} message GetSchemaResponse { - schema.Schema schema = 1; + ftl.schema.v1.Schema schema = 1; } enum DeploymentChangeType { - DEPLOYMENT_UNKNOWN = 0; - DEPLOYMENT_ADDED = 1; - DEPLOYMENT_REMOVED = 2; - DEPLOYMENT_CHANGED = 3; + DEPLOYMENT_CHANGE_TYPE_UNSPECIFIED = 0; + DEPLOYMENT_CHANGE_TYPE_ADDED = 1; + DEPLOYMENT_CHANGE_TYPE_REMOVED = 2; + DEPLOYMENT_CHANGE_TYPE_CHANGED = 3; } message PullSchemaRequest {} @@ -26,7 +26,7 @@ message PullSchemaResponse { optional string deployment_key = 1; string module_name = 2; // For deletes this will not be present. - optional schema.Module schema = 4; + optional ftl.schema.v1.Module schema = 4; // If true there are more schema changes immediately following this one as part of the initial batch. // If false this is the last schema change in the initial batch, but others may follow later. bool more = 3; diff --git a/backend/protos/xyz/block/ftl/v1/verb.pb.go b/backend/protos/xyz/block/ftl/v1/verb.pb.go index f390c51501..2a39ef7723 100644 --- a/backend/protos/xyz/block/ftl/v1/verb.pb.go +++ b/backend/protos/xyz/block/ftl/v1/verb.pb.go @@ -7,7 +7,7 @@ package ftlv1 import ( - schema "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -26,9 +26,9 @@ type CallRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Verb *schema.Ref `protobuf:"bytes,2,opt,name=verb,proto3" json:"verb,omitempty"` - Body []byte `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Verb *v1.Ref `protobuf:"bytes,2,opt,name=verb,proto3" json:"verb,omitempty"` + Body []byte `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` } func (x *CallRequest) Reset() { @@ -68,7 +68,7 @@ func (x *CallRequest) GetMetadata() *Metadata { return nil } -func (x *CallRequest) GetVerb() *schema.Ref { +func (x *CallRequest) GetVerb() *v1.Ref { if x != nil { return x.Verb } @@ -220,18 +220,18 @@ var file_xyz_block_ftl_v1_verb_proto_rawDesc = []byte{ 0x0a, 0x1b, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x1a, - 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, - 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, - 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8b, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, @@ -280,13 +280,13 @@ var file_xyz_block_ftl_v1_verb_proto_goTypes = []any{ (*CallResponse)(nil), // 1: xyz.block.ftl.v1.CallResponse (*CallResponse_Error)(nil), // 2: xyz.block.ftl.v1.CallResponse.Error (*Metadata)(nil), // 3: xyz.block.ftl.v1.Metadata - (*schema.Ref)(nil), // 4: xyz.block.ftl.v1.schema.Ref + (*v1.Ref)(nil), // 4: xyz.block.ftl.schema.v1.Ref (*PingRequest)(nil), // 5: xyz.block.ftl.v1.PingRequest (*PingResponse)(nil), // 6: xyz.block.ftl.v1.PingResponse } var file_xyz_block_ftl_v1_verb_proto_depIdxs = []int32{ 3, // 0: xyz.block.ftl.v1.CallRequest.metadata:type_name -> xyz.block.ftl.v1.Metadata - 4, // 1: xyz.block.ftl.v1.CallRequest.verb:type_name -> xyz.block.ftl.v1.schema.Ref + 4, // 1: xyz.block.ftl.v1.CallRequest.verb:type_name -> xyz.block.ftl.schema.v1.Ref 2, // 2: xyz.block.ftl.v1.CallResponse.error:type_name -> xyz.block.ftl.v1.CallResponse.Error 5, // 3: xyz.block.ftl.v1.VerbService.Ping:input_type -> xyz.block.ftl.v1.PingRequest 0, // 4: xyz.block.ftl.v1.VerbService.Call:input_type -> xyz.block.ftl.v1.CallRequest diff --git a/backend/protos/xyz/block/ftl/v1/verb.proto b/backend/protos/xyz/block/ftl/v1/verb.proto index 95e6290f03..b0cd9cf08a 100644 --- a/backend/protos/xyz/block/ftl/v1/verb.proto +++ b/backend/protos/xyz/block/ftl/v1/verb.proto @@ -2,8 +2,8 @@ syntax = "proto3"; package xyz.block.ftl.v1; +import "xyz/block/ftl/schema/v1/schema.proto"; import "xyz/block/ftl/v1/ftl.proto"; -import "xyz/block/ftl/v1/schema/schema.proto"; option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1;ftlv1"; option java_multiple_files = true; @@ -11,7 +11,7 @@ option java_multiple_files = true; message CallRequest { Metadata metadata = 1; - schema.Ref verb = 2; + ftl.schema.v1.Ref verb = 2; bytes body = 3; } diff --git a/backend/protos/xyz/block/ftl/v1beta1/provisioner/resource.pb.go b/backend/protos/xyz/block/ftl/v1beta1/provisioner/resource.pb.go deleted file mode 100644 index 7a00148d32..0000000000 --- a/backend/protos/xyz/block/ftl/v1beta1/provisioner/resource.pb.go +++ /dev/null @@ -1,900 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: xyz/block/ftl/v1beta1/provisioner/resource.proto - -package provisioner - -import ( - v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schema "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - structpb "google.golang.org/protobuf/types/known/structpb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Resource is an abstract resource extracted from FTL Schema. -type Resource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // id unique within the module - ResourceId string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"` - // Types that are assignable to Resource: - // - // *Resource_Postgres - // *Resource_Mysql - // *Resource_Module - // *Resource_SqlMigration - // *Resource_Topic - // *Resource_Subscription - Resource isResource_Resource `protobuf_oneof:"resource"` -} - -func (x *Resource) Reset() { - *x = Resource{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Resource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Resource) ProtoMessage() {} - -func (x *Resource) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Resource.ProtoReflect.Descriptor instead. -func (*Resource) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{0} -} - -func (x *Resource) GetResourceId() string { - if x != nil { - return x.ResourceId - } - return "" -} - -func (m *Resource) GetResource() isResource_Resource { - if m != nil { - return m.Resource - } - return nil -} - -func (x *Resource) GetPostgres() *PostgresResource { - if x, ok := x.GetResource().(*Resource_Postgres); ok { - return x.Postgres - } - return nil -} - -func (x *Resource) GetMysql() *MysqlResource { - if x, ok := x.GetResource().(*Resource_Mysql); ok { - return x.Mysql - } - return nil -} - -func (x *Resource) GetModule() *ModuleResource { - if x, ok := x.GetResource().(*Resource_Module); ok { - return x.Module - } - return nil -} - -func (x *Resource) GetSqlMigration() *SqlMigrationResource { - if x, ok := x.GetResource().(*Resource_SqlMigration); ok { - return x.SqlMigration - } - return nil -} - -func (x *Resource) GetTopic() *TopicResource { - if x, ok := x.GetResource().(*Resource_Topic); ok { - return x.Topic - } - return nil -} - -func (x *Resource) GetSubscription() *SubscriptionResource { - if x, ok := x.GetResource().(*Resource_Subscription); ok { - return x.Subscription - } - return nil -} - -type isResource_Resource interface { - isResource_Resource() -} - -type Resource_Postgres struct { - Postgres *PostgresResource `protobuf:"bytes,102,opt,name=postgres,proto3,oneof"` -} - -type Resource_Mysql struct { - Mysql *MysqlResource `protobuf:"bytes,103,opt,name=mysql,proto3,oneof"` -} - -type Resource_Module struct { - Module *ModuleResource `protobuf:"bytes,104,opt,name=module,proto3,oneof"` -} - -type Resource_SqlMigration struct { - SqlMigration *SqlMigrationResource `protobuf:"bytes,105,opt,name=sql_migration,json=sqlMigration,proto3,oneof"` -} - -type Resource_Topic struct { - Topic *TopicResource `protobuf:"bytes,106,opt,name=topic,proto3,oneof"` -} - -type Resource_Subscription struct { - Subscription *SubscriptionResource `protobuf:"bytes,107,opt,name=subscription,proto3,oneof"` -} - -func (*Resource_Postgres) isResource_Resource() {} - -func (*Resource_Mysql) isResource_Resource() {} - -func (*Resource_Module) isResource_Resource() {} - -func (*Resource_SqlMigration) isResource_Resource() {} - -func (*Resource_Topic) isResource_Resource() {} - -func (*Resource_Subscription) isResource_Resource() {} - -type PostgresResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Output *schema.DatabaseRuntime `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` -} - -func (x *PostgresResource) Reset() { - *x = PostgresResource{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PostgresResource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PostgresResource) ProtoMessage() {} - -func (x *PostgresResource) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PostgresResource.ProtoReflect.Descriptor instead. -func (*PostgresResource) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{1} -} - -func (x *PostgresResource) GetOutput() *schema.DatabaseRuntime { - if x != nil { - return x.Output - } - return nil -} - -type MysqlResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Output *schema.DatabaseRuntime `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` -} - -func (x *MysqlResource) Reset() { - *x = MysqlResource{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *MysqlResource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MysqlResource) ProtoMessage() {} - -func (x *MysqlResource) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[2] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MysqlResource.ProtoReflect.Descriptor instead. -func (*MysqlResource) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{2} -} - -func (x *MysqlResource) GetOutput() *schema.DatabaseRuntime { - if x != nil { - return x.Output - } - return nil -} - -type SqlMigrationResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Output *SqlMigrationResource_SqlMigrationResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - Digest string `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"` -} - -func (x *SqlMigrationResource) Reset() { - *x = SqlMigrationResource{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SqlMigrationResource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SqlMigrationResource) ProtoMessage() {} - -func (x *SqlMigrationResource) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SqlMigrationResource.ProtoReflect.Descriptor instead. -func (*SqlMigrationResource) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{3} -} - -func (x *SqlMigrationResource) GetOutput() *SqlMigrationResource_SqlMigrationResourceOutput { - if x != nil { - return x.Output - } - return nil -} - -func (x *SqlMigrationResource) GetDigest() string { - if x != nil { - return x.Digest - } - return "" -} - -type ModuleResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Output *ModuleResource_ModuleResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - Schema *schema.Module `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` - Artefacts []*v1.DeploymentArtefact `protobuf:"bytes,3,rep,name=artefacts,proto3" json:"artefacts,omitempty"` - // Runner labels required to run this deployment. - Labels *structpb.Struct `protobuf:"bytes,4,opt,name=labels,proto3,oneof" json:"labels,omitempty"` -} - -func (x *ModuleResource) Reset() { - *x = ModuleResource{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ModuleResource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ModuleResource) ProtoMessage() {} - -func (x *ModuleResource) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ModuleResource.ProtoReflect.Descriptor instead. -func (*ModuleResource) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{4} -} - -func (x *ModuleResource) GetOutput() *ModuleResource_ModuleResourceOutput { - if x != nil { - return x.Output - } - return nil -} - -func (x *ModuleResource) GetSchema() *schema.Module { - if x != nil { - return x.Schema - } - return nil -} - -func (x *ModuleResource) GetArtefacts() []*v1.DeploymentArtefact { - if x != nil { - return x.Artefacts - } - return nil -} - -func (x *ModuleResource) GetLabels() *structpb.Struct { - if x != nil { - return x.Labels - } - return nil -} - -type TopicResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Output *TopicResource_TopicResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` -} - -func (x *TopicResource) Reset() { - *x = TopicResource{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TopicResource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TopicResource) ProtoMessage() {} - -func (x *TopicResource) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TopicResource.ProtoReflect.Descriptor instead. -func (*TopicResource) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{5} -} - -func (x *TopicResource) GetOutput() *TopicResource_TopicResourceOutput { - if x != nil { - return x.Output - } - return nil -} - -type SubscriptionResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Output *SubscriptionResource_SubscriptionResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - Topic *schema.Ref `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` -} - -func (x *SubscriptionResource) Reset() { - *x = SubscriptionResource{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SubscriptionResource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubscriptionResource) ProtoMessage() {} - -func (x *SubscriptionResource) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SubscriptionResource.ProtoReflect.Descriptor instead. -func (*SubscriptionResource) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{6} -} - -func (x *SubscriptionResource) GetOutput() *SubscriptionResource_SubscriptionResourceOutput { - if x != nil { - return x.Output - } - return nil -} - -func (x *SubscriptionResource) GetTopic() *schema.Ref { - if x != nil { - return x.Topic - } - return nil -} - -type SqlMigrationResource_SqlMigrationResourceOutput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SqlMigrationResource_SqlMigrationResourceOutput) Reset() { - *x = SqlMigrationResource_SqlMigrationResourceOutput{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SqlMigrationResource_SqlMigrationResourceOutput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SqlMigrationResource_SqlMigrationResourceOutput) ProtoMessage() {} - -func (x *SqlMigrationResource_SqlMigrationResourceOutput) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[7] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SqlMigrationResource_SqlMigrationResourceOutput.ProtoReflect.Descriptor instead. -func (*SqlMigrationResource_SqlMigrationResourceOutput) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{3, 0} -} - -type ModuleResource_ModuleResourceOutput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` -} - -func (x *ModuleResource_ModuleResourceOutput) Reset() { - *x = ModuleResource_ModuleResourceOutput{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ModuleResource_ModuleResourceOutput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ModuleResource_ModuleResourceOutput) ProtoMessage() {} - -func (x *ModuleResource_ModuleResourceOutput) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[8] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ModuleResource_ModuleResourceOutput.ProtoReflect.Descriptor instead. -func (*ModuleResource_ModuleResourceOutput) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{4, 0} -} - -func (x *ModuleResource_ModuleResourceOutput) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey - } - return "" -} - -type TopicResource_TopicResourceOutput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - KafkaBrokers []string `protobuf:"bytes,1,rep,name=kafka_brokers,json=kafkaBrokers,proto3" json:"kafka_brokers,omitempty"` - TopicId string `protobuf:"bytes,2,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` -} - -func (x *TopicResource_TopicResourceOutput) Reset() { - *x = TopicResource_TopicResourceOutput{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TopicResource_TopicResourceOutput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TopicResource_TopicResourceOutput) ProtoMessage() {} - -func (x *TopicResource_TopicResourceOutput) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[9] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TopicResource_TopicResourceOutput.ProtoReflect.Descriptor instead. -func (*TopicResource_TopicResourceOutput) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{5, 0} -} - -func (x *TopicResource_TopicResourceOutput) GetKafkaBrokers() []string { - if x != nil { - return x.KafkaBrokers - } - return nil -} - -func (x *TopicResource_TopicResourceOutput) GetTopicId() string { - if x != nil { - return x.TopicId - } - return "" -} - -type SubscriptionResource_SubscriptionResourceOutput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - KafkaBrokers []string `protobuf:"bytes,1,rep,name=kafka_brokers,json=kafkaBrokers,proto3" json:"kafka_brokers,omitempty"` - TopicId string `protobuf:"bytes,2,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` - ConsumerGroupId string `protobuf:"bytes,3,opt,name=consumer_group_id,json=consumerGroupId,proto3" json:"consumer_group_id,omitempty"` -} - -func (x *SubscriptionResource_SubscriptionResourceOutput) Reset() { - *x = SubscriptionResource_SubscriptionResourceOutput{} - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SubscriptionResource_SubscriptionResourceOutput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubscriptionResource_SubscriptionResourceOutput) ProtoMessage() {} - -func (x *SubscriptionResource_SubscriptionResourceOutput) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[10] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SubscriptionResource_SubscriptionResourceOutput.ProtoReflect.Descriptor instead. -func (*SubscriptionResource_SubscriptionResourceOutput) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP(), []int{6, 0} -} - -func (x *SubscriptionResource_SubscriptionResourceOutput) GetKafkaBrokers() []string { - if x != nil { - return x.KafkaBrokers - } - return nil -} - -func (x *SubscriptionResource_SubscriptionResourceOutput) GetTopicId() string { - if x != nil { - return x.TopicId - } - return "" -} - -func (x *SubscriptionResource_SubscriptionResourceOutput) GetConsumerGroupId() string { - if x != nil { - return x.ConsumerGroupId - } - return "" -} - -var File_xyz_block_ftl_v1beta1_provisioner_resource_proto protoreflect.FileDescriptor - -var file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDesc = []byte{ - 0x0a, 0x30, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x21, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, - 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x04, 0x0a, - 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x12, 0x48, 0x0a, - 0x05, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, - 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, - 0x52, 0x05, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x12, 0x4b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x0d, 0x73, 0x71, 0x6c, 0x5f, 0x6d, 0x69, 0x67, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, - 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x6a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x5d, - 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x6b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x54, 0x0a, 0x10, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, - 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, - 0x51, 0x0a, 0x0d, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x40, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x6a, 0x0a, 0x06, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, - 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x2e, 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, - 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x0a, 0x1a, 0x53, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0xed, 0x02, - 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x5e, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x46, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x72, 0x74, - 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, - 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x34, 0x0a, - 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, - 0x65, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0xc4, 0x01, - 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x5c, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x44, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x55, 0x0a, - 0x13, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, - 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, - 0x6b, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x22, 0xc1, 0x02, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x6a, 0x0a, - 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x88, 0x01, - 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, - 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x42, 0x5b, 0x50, 0x01, 0x5a, 0x57, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, - 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x3b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescOnce sync.Once - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescData = file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDesc -) - -func file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescGZIP() []byte { - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescOnce.Do(func() { - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescData) - }) - return file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDescData -} - -var file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 11) -var file_xyz_block_ftl_v1beta1_provisioner_resource_proto_goTypes = []any{ - (*Resource)(nil), // 0: xyz.block.ftl.v1beta1.provisioner.Resource - (*PostgresResource)(nil), // 1: xyz.block.ftl.v1beta1.provisioner.PostgresResource - (*MysqlResource)(nil), // 2: xyz.block.ftl.v1beta1.provisioner.MysqlResource - (*SqlMigrationResource)(nil), // 3: xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource - (*ModuleResource)(nil), // 4: xyz.block.ftl.v1beta1.provisioner.ModuleResource - (*TopicResource)(nil), // 5: xyz.block.ftl.v1beta1.provisioner.TopicResource - (*SubscriptionResource)(nil), // 6: xyz.block.ftl.v1beta1.provisioner.SubscriptionResource - (*SqlMigrationResource_SqlMigrationResourceOutput)(nil), // 7: xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource.SqlMigrationResourceOutput - (*ModuleResource_ModuleResourceOutput)(nil), // 8: xyz.block.ftl.v1beta1.provisioner.ModuleResource.ModuleResourceOutput - (*TopicResource_TopicResourceOutput)(nil), // 9: xyz.block.ftl.v1beta1.provisioner.TopicResource.TopicResourceOutput - (*SubscriptionResource_SubscriptionResourceOutput)(nil), // 10: xyz.block.ftl.v1beta1.provisioner.SubscriptionResource.SubscriptionResourceOutput - (*schema.DatabaseRuntime)(nil), // 11: xyz.block.ftl.v1.schema.DatabaseRuntime - (*schema.Module)(nil), // 12: xyz.block.ftl.v1.schema.Module - (*v1.DeploymentArtefact)(nil), // 13: xyz.block.ftl.v1.DeploymentArtefact - (*structpb.Struct)(nil), // 14: google.protobuf.Struct - (*schema.Ref)(nil), // 15: xyz.block.ftl.v1.schema.Ref -} -var file_xyz_block_ftl_v1beta1_provisioner_resource_proto_depIdxs = []int32{ - 1, // 0: xyz.block.ftl.v1beta1.provisioner.Resource.postgres:type_name -> xyz.block.ftl.v1beta1.provisioner.PostgresResource - 2, // 1: xyz.block.ftl.v1beta1.provisioner.Resource.mysql:type_name -> xyz.block.ftl.v1beta1.provisioner.MysqlResource - 4, // 2: xyz.block.ftl.v1beta1.provisioner.Resource.module:type_name -> xyz.block.ftl.v1beta1.provisioner.ModuleResource - 3, // 3: xyz.block.ftl.v1beta1.provisioner.Resource.sql_migration:type_name -> xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource - 5, // 4: xyz.block.ftl.v1beta1.provisioner.Resource.topic:type_name -> xyz.block.ftl.v1beta1.provisioner.TopicResource - 6, // 5: xyz.block.ftl.v1beta1.provisioner.Resource.subscription:type_name -> xyz.block.ftl.v1beta1.provisioner.SubscriptionResource - 11, // 6: xyz.block.ftl.v1beta1.provisioner.PostgresResource.output:type_name -> xyz.block.ftl.v1.schema.DatabaseRuntime - 11, // 7: xyz.block.ftl.v1beta1.provisioner.MysqlResource.output:type_name -> xyz.block.ftl.v1.schema.DatabaseRuntime - 7, // 8: xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource.output:type_name -> xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource.SqlMigrationResourceOutput - 8, // 9: xyz.block.ftl.v1beta1.provisioner.ModuleResource.output:type_name -> xyz.block.ftl.v1beta1.provisioner.ModuleResource.ModuleResourceOutput - 12, // 10: xyz.block.ftl.v1beta1.provisioner.ModuleResource.schema:type_name -> xyz.block.ftl.v1.schema.Module - 13, // 11: xyz.block.ftl.v1beta1.provisioner.ModuleResource.artefacts:type_name -> xyz.block.ftl.v1.DeploymentArtefact - 14, // 12: xyz.block.ftl.v1beta1.provisioner.ModuleResource.labels:type_name -> google.protobuf.Struct - 9, // 13: xyz.block.ftl.v1beta1.provisioner.TopicResource.output:type_name -> xyz.block.ftl.v1beta1.provisioner.TopicResource.TopicResourceOutput - 10, // 14: xyz.block.ftl.v1beta1.provisioner.SubscriptionResource.output:type_name -> xyz.block.ftl.v1beta1.provisioner.SubscriptionResource.SubscriptionResourceOutput - 15, // 15: xyz.block.ftl.v1beta1.provisioner.SubscriptionResource.topic:type_name -> xyz.block.ftl.v1.schema.Ref - 16, // [16:16] is the sub-list for method output_type - 16, // [16:16] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name -} - -func init() { file_xyz_block_ftl_v1beta1_provisioner_resource_proto_init() } -func file_xyz_block_ftl_v1beta1_provisioner_resource_proto_init() { - if File_xyz_block_ftl_v1beta1_provisioner_resource_proto != nil { - return - } - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[0].OneofWrappers = []any{ - (*Resource_Postgres)(nil), - (*Resource_Mysql)(nil), - (*Resource_Module)(nil), - (*Resource_SqlMigration)(nil), - (*Resource_Topic)(nil), - (*Resource_Subscription)(nil), - } - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes[4].OneofWrappers = []any{} - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDesc, - NumEnums: 0, - NumMessages: 11, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_xyz_block_ftl_v1beta1_provisioner_resource_proto_goTypes, - DependencyIndexes: file_xyz_block_ftl_v1beta1_provisioner_resource_proto_depIdxs, - MessageInfos: file_xyz_block_ftl_v1beta1_provisioner_resource_proto_msgTypes, - }.Build() - File_xyz_block_ftl_v1beta1_provisioner_resource_proto = out.File - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_rawDesc = nil - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_goTypes = nil - file_xyz_block_ftl_v1beta1_provisioner_resource_proto_depIdxs = nil -} diff --git a/backend/provisioner/controller_provisioner.go b/backend/provisioner/controller_provisioner.go index e33beeb65f..a6cb564f9e 100644 --- a/backend/provisioner/controller_provisioner.go +++ b/backend/provisioner/controller_provisioner.go @@ -6,23 +6,23 @@ import ( "connectrpc.com/connect" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" "github.com/TBD54566975/ftl/internal/log" ) // NewControllerProvisioner creates a new provisioner that uses the FTL controller to provision modules func NewControllerProvisioner(client ftlv1connect.ControllerServiceClient) *InMemProvisioner { return NewEmbeddedProvisioner(map[ResourceType]InMemResourceProvisionerFn{ - ResourceTypeModule: func(ctx context.Context, rc *provisioner.ResourceContext, module, _ string) (*provisioner.Resource, error) { + ResourceTypeModule: func(ctx context.Context, rc *provisioner.ResourceContext, module, _ string, previous *provisioner.Resource) (*provisioner.Resource, error) { mod, ok := rc.Resource.Resource.(*provisioner.Resource_Module) if !ok { panic(fmt.Errorf("unexpected resource type: %T", rc.Resource.Resource)) } logger := log.FromContext(ctx) - logger.Infof("Provisioning module: %s", module) + logger.Debugf("Provisioning module: %s", module) for _, dep := range rc.Dependencies { switch r := dep.Resource.(type) { @@ -83,7 +83,6 @@ func NewControllerProvisioner(client ftlv1connect.ControllerServiceClient) *InMe resp, err := client.CreateDeployment(ctx, connect.NewRequest(&ftlv1.CreateDeploymentRequest{ Schema: mod.Module.Schema, Artefacts: mod.Module.Artefacts, - Labels: mod.Module.Labels, })) if err != nil { return nil, fmt.Errorf("failed to create deployment: %w", err) diff --git a/backend/provisioner/deployment.go b/backend/provisioner/deployment.go index b7f9ef8002..fdce722ef0 100644 --- a/backend/provisioner/deployment.go +++ b/backend/provisioner/deployment.go @@ -9,7 +9,7 @@ import ( "github.com/alecthomas/types/optional" "github.com/jpillora/backoff" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" "github.com/TBD54566975/ftl/internal/log" ) diff --git a/backend/provisioner/deployment_test.go b/backend/provisioner/deployment_test.go index 5e99cac0b6..f03bdd16ad 100644 --- a/backend/provisioner/deployment_test.go +++ b/backend/provisioner/deployment_test.go @@ -6,14 +6,15 @@ import ( "testing" "connectrpc.com/connect" + "github.com/alecthomas/assert/v2" + "github.com/google/uuid" + + proto "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" - proto "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" "github.com/TBD54566975/ftl/backend/provisioner" "github.com/TBD54566975/ftl/internal/log" - "github.com/alecthomas/assert/v2" - "github.com/google/uuid" ) // MockProvisioner is a mock implementation of the Provisioner interface diff --git a/backend/provisioner/dev_provisioner.go b/backend/provisioner/dev_provisioner.go index f8025bf7d6..cb2aaf57a2 100644 --- a/backend/provisioner/dev_provisioner.go +++ b/backend/provisioner/dev_provisioner.go @@ -11,8 +11,8 @@ import ( "github.com/XSAM/otelsql" _ "github.com/go-sql-driver/mysql" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" "github.com/TBD54566975/ftl/internal/dev" "github.com/TBD54566975/ftl/internal/dsn" "github.com/TBD54566975/ftl/internal/log" @@ -31,9 +31,8 @@ func NewDevProvisioner(postgresPort int, mysqlPort int) *InMemProvisioner { ResourceTypeSubscription: provisionSubscription(), }) } - func provisionMysql(mysqlPort int) InMemResourceProvisionerFn { - return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { + return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { mysql, ok := rc.Resource.Resource.(*provisioner.Resource_Mysql) if !ok { panic(fmt.Errorf("unexpected resource type: %T", rc.Resource.Resource)) @@ -120,7 +119,7 @@ func ProvisionPostgresForTest(ctx context.Context, module string, id string) (st rc.Resource = &provisioner.Resource{ Resource: &provisioner.Resource_Postgres{}, } - res, err := provisionPostgres(15432)(ctx, rc, module, id+"_test") + res, err := provisionPostgres(15432)(ctx, rc, module, id+"_test", nil) if err != nil { return "", err } @@ -133,15 +132,15 @@ func ProvisionMySQLForTest(ctx context.Context, module string, id string) (strin rc.Resource = &provisioner.Resource{ Resource: &provisioner.Resource_Mysql{}, } - res, err := provisionMysql(13306)(ctx, rc, module, id+"_test") + res, err := provisionMysql(13306)(ctx, rc, module, id+"_test", nil) if err != nil { return "", err } return res.GetMysql().GetOutput().WriteConnector.GetDsnDatabaseConnector().GetDsn(), nil } -func provisionPostgres(postgresPort int) func(ctx context.Context, rc *provisioner.ResourceContext, module string, id string) (*provisioner.Resource, error) { - return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { +func provisionPostgres(postgresPort int) func(ctx context.Context, rc *provisioner.ResourceContext, module string, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { + return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { pg, ok := rc.Resource.Resource.(*provisioner.Resource_Postgres) if !ok { panic(fmt.Errorf("unexpected resource type: %T", rc.Resource.Resource)) @@ -210,8 +209,8 @@ func provisionPostgres(postgresPort int) func(ctx context.Context, rc *provision } -func provisionTopic() func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { - return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { +func provisionTopic() func(ctx context.Context, rc *provisioner.ResourceContext, module string, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { + return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { logger := log.FromContext(ctx) if err := dev.SetUpRedPanda(ctx); err != nil { return nil, fmt.Errorf("could not set up redpanda: %w", err) @@ -263,8 +262,8 @@ func provisionTopic() func(ctx context.Context, rc *provisioner.ResourceContext, } } -func provisionSubscription() func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { - return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { +func provisionSubscription() func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { + return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { logger := log.FromContext(ctx) if err := dev.SetUpRedPanda(ctx); err != nil { return nil, fmt.Errorf("could not set up redpanda: %w", err) diff --git a/backend/provisioner/inmem_provisioner.go b/backend/provisioner/inmem_provisioner.go index 5442477580..59f3a818c7 100644 --- a/backend/provisioner/inmem_provisioner.go +++ b/backend/provisioner/inmem_provisioner.go @@ -10,9 +10,9 @@ import ( "github.com/google/uuid" "github.com/puzpuzpuz/xsync/v3" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" "github.com/TBD54566975/ftl/internal/log" ) @@ -40,7 +40,7 @@ type inMemProvisioningStep struct { } // InMemResourceProvisionerFn is a function that provisions a resource -type InMemResourceProvisionerFn func(context.Context, *provisioner.ResourceContext, string, string) (*provisioner.Resource, error) +type InMemResourceProvisionerFn func(context.Context, *provisioner.ResourceContext, string, string, *provisioner.Resource) (*provisioner.Resource, error) // InMemProvisioner for running an in memory provisioner, constructing all resources concurrently // @@ -83,7 +83,7 @@ func (d *InMemProvisioner) Provision(ctx context.Context, req *connect.Request[p task.steps = append(task.steps, step) go func() { defer step.Done.Store(true) - output, err := handler(ctx, r, req.Msg.Module, r.Resource.ResourceId) + output, err := handler(ctx, r, req.Msg.Module, r.Resource.ResourceId, previous[r.Resource.ResourceId]) if err != nil { step.Err = err logger.Errorf(err, "failed to provision resource %s", r.Resource.ResourceId) @@ -103,7 +103,7 @@ func (d *InMemProvisioner) Provision(ctx context.Context, req *connect.Request[p return connect.NewResponse(&provisioner.ProvisionResponse{ ProvisioningToken: token, - Status: provisioner.ProvisionResponse_SUBMITTED, + Status: provisioner.ProvisionResponse_PROVISION_RESPONSE_STATUS_SUBMITTED, }), nil } diff --git a/backend/provisioner/noop_provisioner.go b/backend/provisioner/noop_provisioner.go index 6f3af98549..d5a186f2c1 100644 --- a/backend/provisioner/noop_provisioner.go +++ b/backend/provisioner/noop_provisioner.go @@ -5,9 +5,9 @@ import ( "connectrpc.com/connect" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" ) // NoopProvisioner is a provisioner that does nothing @@ -25,7 +25,7 @@ func (d *NoopProvisioner) Plan(context.Context, *connect.Request[provisioner.Pla func (d *NoopProvisioner) Provision(context.Context, *connect.Request[provisioner.ProvisionRequest]) (*connect.Response[provisioner.ProvisionResponse], error) { return connect.NewResponse(&provisioner.ProvisionResponse{ - Status: provisioner.ProvisionResponse_SUBMITTED, + Status: provisioner.ProvisionResponse_PROVISION_RESPONSE_STATUS_SUBMITTED, ProvisioningToken: "token", }), nil } diff --git a/backend/provisioner/registry.go b/backend/provisioner/registry.go index 78b32e0b1a..2a62ad3d8a 100644 --- a/backend/provisioner/registry.go +++ b/backend/provisioner/registry.go @@ -9,14 +9,16 @@ import ( "github.com/google/go-cmp/cmp" "google.golang.org/protobuf/testing/protocmp" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" + "github.com/TBD54566975/ftl/backend/provisioner/scaling" "github.com/TBD54566975/ftl/common/plugin" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/schema" + "github.com/TBD54566975/ftl/internal/sha256" "github.com/TBD54566975/ftl/internal/slices" ) @@ -70,14 +72,14 @@ func (reg *ProvisionerRegistry) listBindings() []*ProvisionerBinding { return result } -func registryFromConfig(ctx context.Context, cfg *provisionerPluginConfig, controller ftlv1connect.ControllerServiceClient) (*ProvisionerRegistry, error) { +func registryFromConfig(ctx context.Context, cfg *provisionerPluginConfig, controller ftlv1connect.ControllerServiceClient, runnerScaling scaling.RunnerScaling) (*ProvisionerRegistry, error) { logger := log.FromContext(ctx) result := &ProvisionerRegistry{} if err := cfg.Validate(); err != nil { return nil, fmt.Errorf("error validating provisioner config: %w", err) } for _, plugin := range cfg.Plugins { - provisioner, err := provisionerIDToProvisioner(ctx, plugin.ID, controller) + provisioner, err := provisionerIDToProvisioner(ctx, plugin.ID, controller, runnerScaling) if err != nil { return nil, err } @@ -87,10 +89,13 @@ func registryFromConfig(ctx context.Context, cfg *provisionerPluginConfig, contr return result, nil } -func provisionerIDToProvisioner(ctx context.Context, id string, controller ftlv1connect.ControllerServiceClient) (provisionerconnect.ProvisionerPluginServiceClient, error) { +func provisionerIDToProvisioner(ctx context.Context, id string, controller ftlv1connect.ControllerServiceClient, scaling scaling.RunnerScaling) (provisionerconnect.ProvisionerPluginServiceClient, error) { switch id { case "controller": return NewControllerProvisioner(controller), nil + case "kubernetes": + // TODO: move this into a plugin + return NewRunnerScalingProvisioner(scaling, controller), nil case "noop": return &NoopProvisioner{}, nil default: @@ -263,7 +268,6 @@ func ExtractResources(msg *ftlv1.CreateDeploymentRequest) (*ResourceGraph, error Module: &provisioner.ModuleResource{ Schema: msg.Schema, Artefacts: msg.Artefacts, - Labels: msg.Labels, }, }, } @@ -273,9 +277,31 @@ func ExtractResources(msg *ftlv1.CreateDeploymentRequest) (*ResourceGraph, error to: dep.ResourceId, }) } + digests := "" + orderedDigests := []string{} + for _, d := range msg.Artefacts { + orderedDigests = append(orderedDigests, d.Digest) + } + slices.Sort(orderedDigests) + for _, d := range orderedDigests { + digests += d + } + + // Hack, we just use the artifact digests to create a unique runner resource + hash := sha256.Sum([]byte(digests)) + runnerResource := &provisioner.Resource{ + ResourceId: module.GetName() + "-" + hash.String() + "-runner", + Resource: &provisioner.Resource_Runner{ + Runner: &provisioner.RunnerResource{}, + }, + } + edges = append(edges, &ResourceEdge{ + from: runnerResource.ResourceId, + to: root.ResourceId, + }) result := &ResourceGraph{ - nodes: append(deps, root), + nodes: append(deps, root, runnerResource), edges: edges, } diff --git a/backend/provisioner/resource_equality_test.go b/backend/provisioner/resource_equality_test.go index 390719932b..148ccef342 100644 --- a/backend/provisioner/resource_equality_test.go +++ b/backend/provisioner/resource_equality_test.go @@ -3,8 +3,8 @@ package provisioner import ( "testing" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ) func TestResourceEqual(t *testing.T) { diff --git a/backend/provisioner/resource_graph.go b/backend/provisioner/resource_graph.go index 16771361b0..eaeca27841 100644 --- a/backend/provisioner/resource_graph.go +++ b/backend/provisioner/resource_graph.go @@ -1,7 +1,7 @@ package provisioner import ( - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" ) // ResourceGraph is an in-memory graph of resources and their dependencies diff --git a/backend/provisioner/resource_graph_test.go b/backend/provisioner/resource_graph_test.go index d910811983..3c4369b721 100644 --- a/backend/provisioner/resource_graph_test.go +++ b/backend/provisioner/resource_graph_test.go @@ -3,9 +3,10 @@ package provisioner_test import ( "testing" - proto "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/provisioner" "github.com/alecthomas/assert/v2" + + proto "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + "github.com/TBD54566975/ftl/backend/provisioner" ) func TestSubGraphWithDirectDependencies(t *testing.T) { diff --git a/backend/provisioner/resource_type.go b/backend/provisioner/resource_type.go index e31c3283da..d405a199d5 100644 --- a/backend/provisioner/resource_type.go +++ b/backend/provisioner/resource_type.go @@ -1,7 +1,7 @@ package provisioner import ( - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" ) // ResourceType is a type of resource used to configure provisioners @@ -15,6 +15,7 @@ const ( ResourceTypeSQLMigration ResourceType = "sql-migration" ResourceTypeTopic ResourceType = "topic" ResourceTypeSubscription ResourceType = "subscription" + ResourceTypeRunner ResourceType = "runner" ) // TypeOf returns the resource type of the given resource @@ -32,6 +33,8 @@ func TypeOf(r *provisioner.Resource) ResourceType { return ResourceTypeTopic case *provisioner.Resource_Subscription: return ResourceTypeSubscription + case *provisioner.Resource_Runner: + return ResourceTypeRunner default: return ResourceTypeUnknown } diff --git a/backend/provisioner/runner_scaling_provisioner.go b/backend/provisioner/runner_scaling_provisioner.go new file mode 100644 index 0000000000..1df0486076 --- /dev/null +++ b/backend/provisioner/runner_scaling_provisioner.go @@ -0,0 +1,79 @@ +package provisioner + +import ( + "context" + "fmt" + + "connectrpc.com/connect" + _ "github.com/go-sql-driver/mysql" + + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" + ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" + "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" + "github.com/TBD54566975/ftl/backend/provisioner/scaling" + "github.com/TBD54566975/ftl/internal/log" + "github.com/TBD54566975/ftl/internal/schema" +) + +// NewRunnerScalingProvisioner creates a new provisioner that provisions resources locally when running FTL in dev mode +func NewRunnerScalingProvisioner(runners scaling.RunnerScaling, client ftlv1connect.ControllerServiceClient) *InMemProvisioner { + return NewEmbeddedProvisioner(map[ResourceType]InMemResourceProvisionerFn{ + ResourceTypeRunner: provisionRunner(runners, client), + }) +} + +func provisionRunner(scaling scaling.RunnerScaling, client ftlv1connect.ControllerServiceClient) InMemResourceProvisionerFn { + return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { + logger := log.FromContext(ctx) + runner, ok := rc.Resource.Resource.(*provisioner.Resource_Runner) + if !ok { + panic(fmt.Errorf("unexpected resource type: %T", rc.Resource.Resource)) + } + deployment := "" + var sch *schemapb.Module + for _, dep := range rc.Dependencies { + switch mod := dep.Resource.(type) { + case *provisioner.Resource_Module: + deployment = mod.Module.Output.DeploymentKey + sch = mod.Module.Schema + default: + } + } + if deployment == "" { + return rc.Resource, fmt.Errorf("failed to find deployment for runner") + } + schema, err := schema.ModuleFromProto(sch) + if err != nil { + return nil, fmt.Errorf("failed to parse schema: %w", err) + } + logger.Debugf("provisioning runner: %s.%s for deployment %s", module, id, deployment) + err = scaling.StartDeployment(ctx, module, deployment, schema) + if err != nil { + return nil, fmt.Errorf("failed to start deployment: %w", err) + } + endpoint, err := scaling.GetEndpointForDeployment(ctx, module, deployment) + if err != nil || !endpoint.Ok() { + return nil, fmt.Errorf("failed to get endpoint for deployment: %w", err) + } + ep := endpoint.MustGet() + endpointURI := ep.String() + runner.Runner.Output = &provisioner.RunnerResource_RunnerResourceOutput{ + RunnerUri: endpointURI, + DeploymentKey: deployment, + } + logger.Infof("previous deployment: %v", previous) + if previous != nil && previous.GetRunner().GetOutput().GetDeploymentKey() != deployment { + logger.Infof("terminating previous deployment: %s", previous.GetRunner().GetOutput().GetDeploymentKey()) + err := scaling.TerminateDeployment(ctx, module, previous.GetRunner().GetOutput().GetDeploymentKey()) + if err != nil { + logger.Errorf(err, "failed to terminate previous deployment") + } + } + _, err = client.UpdateDeploy(ctx, connect.NewRequest(&ftlv1.UpdateDeployRequest{DeploymentKey: deployment, Endpoint: &endpointURI})) + if err != nil { + return nil, fmt.Errorf("failed to update deployment: %w", err) + } + return rc.Resource, nil + } +} diff --git a/backend/controller/scaling/k8sscaling/deployment_provisioner.go b/backend/provisioner/scaling/k8sscaling/k8s_scaling.go similarity index 50% rename from backend/controller/scaling/k8sscaling/deployment_provisioner.go rename to backend/provisioner/scaling/k8sscaling/k8s_scaling.go index 5762d2f6dd..1211f13cd8 100644 --- a/backend/controller/scaling/k8sscaling/deployment_provisioner.go +++ b/backend/provisioner/scaling/k8sscaling/k8s_scaling.go @@ -1,24 +1,10 @@ -/* -Copyright 2024. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - package k8sscaling import ( "context" "fmt" + "net/url" + "os" "strings" "time" @@ -35,92 +21,90 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" - ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + "github.com/TBD54566975/ftl/backend/provisioner/scaling" "github.com/TBD54566975/ftl/internal/log" - "github.com/TBD54566975/ftl/internal/model" + "github.com/TBD54566975/ftl/internal/schema" ) -const thisDeploymentName = "ftl-controller" -const deploymentLabel = "ftl-deployment" +const controllerDeploymentName = "ftl-controller" const configMapName = "ftl-controller-deployment-config" const deploymentTemplate = "deploymentTemplate" const serviceTemplate = "serviceTemplate" const serviceAccountTemplate = "serviceAccountTemplate" +const moduleLabel = "ftl.dev/module" +const deploymentLabel = "ftl.dev/deployment" +const deployTimeout = time.Minute * 5 + +var _ scaling.RunnerScaling = &k8sScaling{} -// DeploymentProvisioner reconciles a Foo object -type DeploymentProvisioner struct { - Client *kubernetes.Clientset - MyDeploymentName string - Namespace string +type k8sScaling struct { + disableIstio bool + controller string + + client *kubernetes.Clientset + namespace string // Map of known deployments - KnownDeployments *xsync.MapOf[string, bool] - FTLEndpoint string - IstioSecurity optional.Option[istioclient.Clientset] + knownDeployments *xsync.MapOf[string, bool] + istioSecurity optional.Option[istioclient.Clientset] } -func (r *DeploymentProvisioner) updateDeployment(ctx context.Context, name string, mod func(deployment *kubeapps.Deployment)) error { - deploymentClient := r.Client.AppsV1().Deployments(r.Namespace) - for range 10 { - - get, err := deploymentClient.Get(ctx, name, v1.GetOptions{}) - if err != nil { - return fmt.Errorf("failed to get deployment %s: %w", name, err) - } - mod(get) - _, err = deploymentClient.Update(ctx, get, v1.UpdateOptions{}) - if err != nil { - if errors.IsConflict(err) { - time.Sleep(time.Second) - continue - } - return fmt.Errorf("failed to update deployment %s: %w", name, err) - } - return nil - } - return fmt.Errorf("failed to update deployment %s, 10 clonflicts in a row", name) +func NewK8sScaling(disableIstio bool, controllerURL string) scaling.RunnerScaling { + return &k8sScaling{disableIstio: disableIstio, controller: controllerURL} } -func (r *DeploymentProvisioner) HandleSchemaChange(ctx context.Context, msg *ftlv1.PullSchemaResponse) error { - logger := log.FromContext(ctx).Scope("DeploymentProvisioner") +func (r *k8sScaling) StartDeployment(ctx context.Context, module string, deploymentKey string, sch *schema.Module) error { + logger := log.FromContext(ctx) + logger = logger.Module(module) ctx = log.ContextWithLogger(ctx, logger) - defer func() { - if r := recover(); r != nil { - var err error - if rerr, ok := r.(error); ok { - err = rerr - } else { - err = fmt.Errorf("%v", r) - } - logger.Errorf(err, "Panic creating kube deployment") - } - }() - err := r.handleSchemaChange(ctx, msg) + logger.Debugf("Handling schema change for %s", deploymentKey) + deploymentClient := r.client.AppsV1().Deployments(r.namespace) + deployment, err := deploymentClient.Get(ctx, deploymentKey, v1.GetOptions{}) + deploymentExists := true if err != nil { - logger.Errorf(err, "Failed to handle schema change") + if errors.IsNotFound(err) { + deploymentExists = false + } else { + return fmt.Errorf("failed to get deployment %s: %w", deploymentKey, err) + } } - logger.Debugf("Handled schema change for %s", msg.ModuleName) - return err -} -func (r *DeploymentProvisioner) handleSchemaChange(ctx context.Context, msg *ftlv1.PullSchemaResponse) error { - if !msg.More { - defer r.deleteMissingDeployments(ctx) + + // Note that a change is now currently usually and add and a delete + // As it should really be called a module changed, not a deployment changed + // This will need to be fixed as part of the support for rolling deployments + r.knownDeployments.Store(deploymentKey, true) + if deploymentExists { + logger.Debugf("Updating deployment %s", deploymentKey) + return r.handleExistingDeployment(ctx, deployment) + } - if msg.DeploymentKey == nil { - // Builtins don't have deployments - return nil + err = r.handleNewDeployment(ctx, module, deploymentKey, sch) + if err != nil { + return err } - logger := log.FromContext(ctx) - logger = logger.Module(msg.ModuleName) - ctx = log.ContextWithLogger(ctx, logger) - deploymentKey, err := model.ParseDeploymentKey(msg.GetDeploymentKey()) + err = r.waitForDeploymentReady(ctx, deploymentKey, deployTimeout) if err != nil { - return fmt.Errorf("failed to parse deployment key %s: %w", msg.GetDeploymentKey(), err) + return err } + delCtx := log.ContextWithLogger(context.Background(), logger) + go func() { + time.Sleep(time.Second * 10) + err := r.deleteOldDeployments(delCtx, module, deploymentKey) + if err != nil { + logger.Errorf(err, "Failed to delete old deployments") + } + }() + return nil +} + +func (r *k8sScaling) TerminateDeployment(ctx context.Context, module string, deploymentKey string) error { + logger := log.FromContext(ctx) + logger = logger.Module(module) logger.Debugf("Handling schema change for %s", deploymentKey) - deploymentClient := r.Client.AppsV1().Deployments(r.Namespace) - deployment, err := deploymentClient.Get(ctx, deploymentKey.String(), v1.GetOptions{}) + deploymentClient := r.client.AppsV1().Deployments(r.namespace) + _, err := deploymentClient.Get(ctx, deploymentKey, v1.GetOptions{}) deploymentExists := true if err != nil { if errors.IsNotFound(err) { @@ -130,69 +114,188 @@ func (r *DeploymentProvisioner) handleSchemaChange(ctx context.Context, msg *ftl } } - switch msg.ChangeType { - case ftlv1.DeploymentChangeType_DEPLOYMENT_ADDED, ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGED: + if deploymentExists { + go func() { - // Note that a change is now currently usually and add and a delete - // As it should really be called a module changed, not a deployment changed - // This will need to be fixed as part of the support for rolling deployments - r.KnownDeployments.Store(deploymentKey.String(), true) - if deploymentExists { - logger.Debugf("Updating deployment %s", deploymentKey) - return r.handleExistingDeployment(ctx, deployment, msg.Schema) - } else { - return r.handleNewDeployment(ctx, msg.Schema, deploymentKey.String()) + // Nasty hack, we want all the controllers to have updated their route tables before we kill the runner + // so we add a slight delay here + time.Sleep(time.Second * 10) + r.knownDeployments.Delete(deploymentKey) + logger.Debugf("Deleting service %s", module) + err = r.client.CoreV1().Services(r.namespace).Delete(ctx, deploymentKey, v1.DeleteOptions{}) + if err != nil { + if !errors.IsNotFound(err) { + logger.Errorf(err, "Failed to delete service %s", module) + } + } + }() + } + return nil +} + +func (r *k8sScaling) Start(ctx context.Context) error { + logger := log.FromContext(ctx).Scope("K8sScaling") + clientset, err := CreateClientSet() + if err != nil { + return fmt.Errorf("failed to create clientset: %w", err) + } + + namespace, err := GetCurrentNamespace() + if err != nil { + // Nothing we can do here, if we don't have a namespace we have no runners + return fmt.Errorf("failed to get current namespace: %w", err) + } + + var sec *istioclient.Clientset + if !r.disableIstio { + groups, err := clientset.Discovery().ServerGroups() + if err != nil { + return fmt.Errorf("failed to get server groups: %w", err) } - case ftlv1.DeploymentChangeType_DEPLOYMENT_REMOVED: - if deploymentExists { - go func() { - - // Nasty hack, we want all the controllers to have updated their route tables before we kill the runner - // so we add a slight delay here - time.Sleep(time.Second * 10) - r.KnownDeployments.Delete(deploymentKey.String()) - logger.Debugf("Deleting service %s", msg.ModuleName) - err = r.Client.CoreV1().Services(r.Namespace).Delete(ctx, deploymentKey.String(), v1.DeleteOptions{}) + // If istio is present and not explicitly disabled we create the client + for _, group := range groups.Groups { + if group.Name == "security.istio.io" { + sec, err = CreateIstioClientSet() if err != nil { - if !errors.IsNotFound(err) { - logger.Errorf(err, "Failed to delete service %s", msg.ModuleName) - } + return fmt.Errorf("failed to create istio clientset: %w", err) } - }() + break + } } } + + logger.Debugf("Using namespace %s", namespace) + r.client = clientset + r.namespace = namespace + r.knownDeployments = xsync.NewMapOf[string, bool]() + r.istioSecurity = optional.Ptr(sec) return nil } -func (r *DeploymentProvisioner) thisContainerImage(ctx context.Context) (string, error) { - deploymentClient := r.Client.AppsV1().Deployments(r.Namespace) - thisDeployment, err := deploymentClient.Get(ctx, thisDeploymentName, v1.GetOptions{}) +func CreateClientSet() (*kubernetes.Clientset, error) { + config, err := getKubeConfig() if err != nil { - return "", fmt.Errorf("failed to get deployment %s: %w", thisDeploymentName, err) + return nil, err } - return thisDeployment.Spec.Template.Spec.Containers[0].Image, nil + // creates the clientset + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + return nil, fmt.Errorf("failed to create client set: %w", err) + } + return clientset, nil +} + +func CreateIstioClientSet() (*istioclient.Clientset, error) { + config, err := getKubeConfig() + if err != nil { + return nil, err + } + // creates the clientset + clientset, err := istioclient.NewForConfig(config) + if err != nil { + return nil, fmt.Errorf("failed to create client set: %w", err) + } + return clientset, nil +} + +func getKubeConfig() (*rest.Config, error) { + // creates the in-cluster config + config, err := rest.InClusterConfig() + if err != nil { + // if we're not in a cluster, use the kubeconfig + config, err = clientcmd.BuildConfigFromFlags("", clientcmd.RecommendedHomeFile) + if err != nil { + return nil, fmt.Errorf("failed to get kubeconfig: %w", err) + } + } + return config, nil +} + +func (r *k8sScaling) GetEndpointForDeployment(ctx context.Context, module string, deployment string) (optional.Option[url.URL], error) { + // TODO: hard coded port? It's hard to deal with as we might not have the lease + // I think requiring this port is fine for now + return optional.Some(url.URL{Scheme: "http", + Host: fmt.Sprintf("%s:8893", deployment), + }), nil +} +func GetCurrentNamespace() (string, error) { + namespaceFile := "/var/run/secrets/kubernetes.io/serviceaccount/namespace" + namespace, err := os.ReadFile(namespaceFile) + if err != nil && !os.IsNotExist(err) { + return "", fmt.Errorf("failed to read namespace file: %w", err) + } else if err == nil { + return string(namespace), nil + } + + // If not running in a cluster, get the namespace from the kubeconfig + configAccess := clientcmd.NewDefaultPathOptions() + config, err := configAccess.GetStartingConfig() + if err != nil { + return "", fmt.Errorf("failed to get kubeconfig: %w", err) + } + + currentContext := config.CurrentContext + if currentContext == "" { + return "", fmt.Errorf("no current context found in kubeconfig") + } + + context, exists := config.Contexts[currentContext] + if !exists { + return "", fmt.Errorf("context %s not found in kubeconfig", currentContext) + } + + return context.Namespace, nil } -func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *schemapb.Module, name string) error { - if dep.Runtime == nil { +func (r *k8sScaling) updateDeployment(ctx context.Context, name string, mod func(deployment *kubeapps.Deployment)) error { + deploymentClient := r.client.AppsV1().Deployments(r.namespace) + for range 10 { + + get, err := deploymentClient.Get(ctx, name, v1.GetOptions{}) + if err != nil { + return fmt.Errorf("failed to get deployment %s: %w", name, err) + } + mod(get) + _, err = deploymentClient.Update(ctx, get, v1.UpdateOptions{}) + if err != nil { + if errors.IsConflict(err) { + time.Sleep(time.Second) + continue + } + return fmt.Errorf("failed to update deployment %s: %w", name, err) + } return nil } + return fmt.Errorf("failed to update deployment %s, 10 clonflicts in a row", name) +} + +func (r *k8sScaling) thisContainerImage(ctx context.Context) (string, error) { + deploymentClient := r.client.AppsV1().Deployments(r.namespace) + thisDeployment, err := deploymentClient.Get(ctx, controllerDeploymentName, v1.GetOptions{}) + if err != nil { + return "", fmt.Errorf("failed to get deployment %s: %w", controllerDeploymentName, err) + } + return thisDeployment.Spec.Template.Spec.Containers[0].Image, nil + +} + +func (r *k8sScaling) handleNewDeployment(ctx context.Context, module string, name string, sch *schema.Module) error { logger := log.FromContext(ctx) - cm, err := r.Client.CoreV1().ConfigMaps(r.Namespace).Get(ctx, configMapName, v1.GetOptions{}) + cm, err := r.client.CoreV1().ConfigMaps(r.namespace).Get(ctx, configMapName, v1.GetOptions{}) if err != nil { return fmt.Errorf("failed to get configMap %s: %w", configMapName, err) } - deploymentClient := r.Client.AppsV1().Deployments(r.Namespace) - thisDeployment, err := deploymentClient.Get(ctx, thisDeploymentName, v1.GetOptions{}) + deploymentClient := r.client.AppsV1().Deployments(r.namespace) + thisDeployment, err := deploymentClient.Get(ctx, controllerDeploymentName, v1.GetOptions{}) if err != nil { - return fmt.Errorf("failed to get deployment %s: %w", thisDeploymentName, err) + return fmt.Errorf("failed to get deployment %s: %w", controllerDeploymentName, err) } // First create a Service, this will be the root owner of all the other resources // Only create if it does not exist already - servicesClient := r.Client.CoreV1().Services(r.Namespace) + servicesClient := r.client.CoreV1().Services(r.namespace) service, err := servicesClient.Get(ctx, name, v1.GetOptions{}) if err != nil { if !errors.IsNotFound(err) { @@ -204,10 +307,9 @@ func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *sc return fmt.Errorf("failed to decode service from configMap %s: %w", configMapName, err) } service.Name = name - service.Labels = addLabel(service.Labels, "app", name) - service.Labels = addLabel(service.Labels, deploymentLabel, name) - service.OwnerReferences = []v1.OwnerReference{{APIVersion: "apps/v1", Kind: "deployment", Name: thisDeploymentName, UID: thisDeployment.UID}} + service.OwnerReferences = []v1.OwnerReference{{APIVersion: "apps/v1", Kind: "deployment", Name: controllerDeploymentName, UID: thisDeployment.UID}} service.Spec.Selector = map[string]string{"app": name} + addLabels(&service.ObjectMeta, module, name) service, err = servicesClient.Create(ctx, service, v1.CreateOptions{}) if err != nil { return fmt.Errorf("failed to create service %s: %w", name, err) @@ -219,7 +321,7 @@ func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *sc // Now create a ServiceAccount, we mostly need this for Istio but we create it for all deployments // To keep things consistent - serviceAccountClient := r.Client.CoreV1().ServiceAccounts(r.Namespace) + serviceAccountClient := r.client.CoreV1().ServiceAccounts(r.namespace) serviceAccount, err := serviceAccountClient.Get(ctx, name, v1.GetOptions{}) if err != nil { if !errors.IsNotFound(err) { @@ -231,8 +333,8 @@ func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *sc return fmt.Errorf("failed to decode service account from configMap %s: %w", configMapName, err) } serviceAccount.Name = name - serviceAccount.Labels = addLabel(serviceAccount.Labels, "app", name) serviceAccount.OwnerReferences = []v1.OwnerReference{{APIVersion: "v1", Kind: "service", Name: name, UID: service.UID}} + addLabels(&serviceAccount.ObjectMeta, module, name) _, err = serviceAccountClient.Create(ctx, serviceAccount, v1.CreateOptions{}) if err != nil { return fmt.Errorf("failed to create service account%s: %w", name, err) @@ -243,8 +345,8 @@ func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *sc } // Sync the istio policy if applicable - if sec, ok := r.IstioSecurity.Get(); ok { - err = r.syncIstioPolicy(ctx, sec, name, service, thisDeployment) + if sec, ok := r.istioSecurity.Get(); ok { + err = r.syncIstioPolicy(ctx, sec, module, name, service, thisDeployment) if err != nil { return err } @@ -273,7 +375,10 @@ func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *sc } // runner images use the same tag as the controller - rawRunnerImage := optional.Ptr(dep.Runtime.Image).Default("ftl0/ftl-runner") + rawRunnerImage := sch.Runtime.Image + if rawRunnerImage == "" { + rawRunnerImage = "ftl0/ftl-runner" + } var runnerImage string if len(strings.Split(rawRunnerImage, ":")) != 1 { return fmt.Errorf("module runtime's image should not contain a tag: %s", rawRunnerImage) @@ -298,19 +403,19 @@ func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *sc deployment.Spec.Template.ObjectMeta.Labels = map[string]string{} } - deployment.Spec.Template.ObjectMeta.Labels = addLabel(deployment.Spec.Template.ObjectMeta.Labels, "app", name) deployment.Spec.Template.Spec.ServiceAccountName = name - changes, err := r.syncDeployment(ctx, thisImage, deployment, dep) + changes, err := r.syncDeployment(ctx, thisImage, deployment, 1) if err != nil { return err } for _, change := range changes { + change(deployment) } - deployment.Labels = addLabel(deployment.Labels, deploymentLabel, name) - deployment.Labels = addLabel(deployment.Labels, "app", name) + addLabels(&deployment.ObjectMeta, module, name) + addLabels(&deployment.Spec.Template.ObjectMeta, module, name) deployment, err = deploymentClient.Create(ctx, deployment, v1.CreateOptions{}) if err != nil { return fmt.Errorf("failed to create deployment %s: %w", deployment.Name, err) @@ -320,12 +425,13 @@ func (r *DeploymentProvisioner) handleNewDeployment(ctx context.Context, dep *sc return nil } -func addLabel(labels map[string]string, key string, value string) map[string]string { - if labels == nil { - labels = map[string]string{} +func addLabels(obj *v1.ObjectMeta, module string, deployment string) { + if obj.Labels == nil { + obj.Labels = map[string]string{} } - labels[key] = value - return labels + obj.Labels["app"] = deployment + obj.Labels[deploymentLabel] = deployment + obj.Labels[moduleLabel] = module } func decodeBytesToObject(bytes []byte, deployment runtime.Object) error { @@ -339,13 +445,13 @@ func decodeBytesToObject(bytes []byte, deployment runtime.Object) error { return nil } -func (r *DeploymentProvisioner) handleExistingDeployment(ctx context.Context, deployment *kubeapps.Deployment, ftlDeployment *schemapb.Module) error { +func (r *k8sScaling) handleExistingDeployment(ctx context.Context, deployment *kubeapps.Deployment) error { thisContainerImage, err := r.thisContainerImage(ctx) if err != nil { return err } - changes, err := r.syncDeployment(ctx, thisContainerImage, deployment, ftlDeployment) + changes, err := r.syncDeployment(ctx, thisContainerImage, deployment, 1) if err != nil { return err } @@ -365,7 +471,7 @@ func (r *DeploymentProvisioner) handleExistingDeployment(ctx context.Context, de return nil } -func (r *DeploymentProvisioner) syncDeployment(ctx context.Context, thisImage string, deployment *kubeapps.Deployment, ftlDeployment *schemapb.Module) ([]func(*kubeapps.Deployment), error) { +func (r *k8sScaling) syncDeployment(ctx context.Context, thisImage string, deployment *kubeapps.Deployment, replicas int32) ([]func(*kubeapps.Deployment), error) { logger := log.FromContext(ctx) changes := []func(*kubeapps.Deployment){} ourVersion, err := extractTag(thisImage) @@ -396,17 +502,17 @@ func (r *DeploymentProvisioner) syncDeployment(ctx context.Context, thisImage st } // For now we just make sure the number of replicas match - if deployment.Spec.Replicas == nil || *deployment.Spec.Replicas != ftlDeployment.Runtime.MinReplicas { + if deployment.Spec.Replicas == nil || *deployment.Spec.Replicas != replicas { changes = append(changes, func(deployment *kubeapps.Deployment) { - deployment.Spec.Replicas = &ftlDeployment.Runtime.MinReplicas + deployment.Spec.Replicas = &replicas }) } changes = r.updateEnvVar(deployment, "FTL_DEPLOYMENT", deployment.Name, changes) - changes = r.updateEnvVar(deployment, "FTL_ENDPOINT", r.FTLEndpoint, changes) + changes = r.updateEnvVar(deployment, "FTL_ENDPOINT", r.controller, changes) return changes, nil } -func (r *DeploymentProvisioner) updateEnvVar(deployment *kubeapps.Deployment, envVerName string, envVarValue string, changes []func(*kubeapps.Deployment)) []func(*kubeapps.Deployment) { +func (r *k8sScaling) updateEnvVar(deployment *kubeapps.Deployment, envVerName string, envVarValue string, changes []func(*kubeapps.Deployment)) []func(*kubeapps.Deployment) { found := false for pos, env := range deployment.Spec.Template.Spec.Containers[0].Env { if env.Name == envVerName { @@ -433,35 +539,12 @@ func (r *DeploymentProvisioner) updateEnvVar(deployment *kubeapps.Deployment, en return changes } -func (r *DeploymentProvisioner) deleteMissingDeployments(ctx context.Context) { - logger := log.FromContext(ctx) - serviceClient := r.Client.CoreV1().Services(r.Namespace) - - list, err := serviceClient.List(ctx, v1.ListOptions{LabelSelector: deploymentLabel}) - if err != nil { - logger.Errorf(err, "Failed to list services") - return - } - - for _, service := range list.Items { - if _, ok := r.KnownDeployments.Load(service.Name); !ok { - // With owner references the deployments should be deleted automatically - // However this is in transition so delete both - logger.Debugf("Deleting service %s as it is not a known module", service.Name) - err := serviceClient.Delete(ctx, service.Name, v1.DeleteOptions{}) - if err != nil { - logger.Errorf(err, "Failed to delete service %s", service.Name) - } - } - } -} - -func (r *DeploymentProvisioner) syncIstioPolicy(ctx context.Context, sec istioclient.Clientset, name string, service *kubecore.Service, thisDeployment *kubeapps.Deployment) error { +func (r *k8sScaling) syncIstioPolicy(ctx context.Context, sec istioclient.Clientset, module string, name string, service *kubecore.Service, controllerDeployment *kubeapps.Deployment) error { logger := log.FromContext(ctx) logger.Debugf("Creating new istio policy for %s", name) var update func(policy *istiosec.AuthorizationPolicy) error - policiesClient := sec.SecurityV1().AuthorizationPolicies(r.Namespace) + policiesClient := sec.SecurityV1().AuthorizationPolicies(r.namespace) policy, err := policiesClient.Get(ctx, name, v1.GetOptions{}) if err != nil { if !errors.IsNotFound(err) { @@ -469,7 +552,7 @@ func (r *DeploymentProvisioner) syncIstioPolicy(ctx context.Context, sec istiocl } policy = &istiosec.AuthorizationPolicy{} policy.Name = name - policy.Namespace = r.Namespace + policy.Namespace = r.namespace update = func(policy *istiosec.AuthorizationPolicy) error { _, err := policiesClient.Create(ctx, policy, v1.CreateOptions{}) if err != nil { @@ -486,6 +569,7 @@ func (r *DeploymentProvisioner) syncIstioPolicy(ctx context.Context, sec istiocl return nil } } + addLabels(&policy.ObjectMeta, module, name) policy.OwnerReferences = []v1.OwnerReference{{APIVersion: "v1", Kind: "service", Name: name, UID: service.UID}} // At present we only allow ingress from the controller policy.Spec.Selector = &v1beta1.WorkloadSelector{MatchLabels: map[string]string{"app": name}} @@ -495,7 +579,7 @@ func (r *DeploymentProvisioner) syncIstioPolicy(ctx context.Context, sec istiocl From: []*istiosecmodel.Rule_From{ { Source: &istiosecmodel.Source{ - Principals: []string{"cluster.local/ns/" + r.Namespace + "/sa/" + thisDeployment.Spec.Template.Spec.ServiceAccountName}, + Principals: []string{"cluster.local/ns/" + r.namespace + "/sa/" + controllerDeployment.Spec.Template.Spec.ServiceAccountName}, }, }, }, @@ -505,6 +589,56 @@ func (r *DeploymentProvisioner) syncIstioPolicy(ctx context.Context, sec istiocl return update(policy) } +func (r *k8sScaling) waitForDeploymentReady(ctx context.Context, key string, timeout time.Duration) error { + logger := log.FromContext(ctx) + deploymentClient := r.client.AppsV1().Deployments(r.namespace) + watch, err := deploymentClient.Watch(ctx, v1.ListOptions{LabelSelector: deploymentLabel + "=" + key}) + if err != nil { + return fmt.Errorf("failed to watch deployment %s: %w", key, err) + } + watch.ResultChan() + end := time.After(timeout) + for { + deployment, err := deploymentClient.Get(ctx, key, v1.GetOptions{}) + if err != nil { + return fmt.Errorf("failed to get deployment %s: %w", key, err) + } + if deployment.Status.ReadyReplicas == *deployment.Spec.Replicas { + logger.Debugf("Deployment %s is ready", key) + return nil + } + for _, condition := range deployment.Status.Conditions { + if condition.Type == kubeapps.DeploymentReplicaFailure && condition.Status == kubecore.ConditionTrue { + return fmt.Errorf("deployment %s is in error state: %s", deployment, condition.Message) + } + } + select { + case <-end: + return fmt.Errorf("deployment %s did not become ready in time", key) + case <-watch.ResultChan(): + } + } +} + +func (r *k8sScaling) deleteOldDeployments(ctx context.Context, module string, deployment string) error { + logger := log.FromContext(ctx) + deploymentClient := r.client.AppsV1().Deployments(r.namespace) + deployments, err := deploymentClient.List(ctx, v1.ListOptions{LabelSelector: moduleLabel + "=" + module}) + if err != nil { + return fmt.Errorf("failed to list deployments: %w", err) + } + for _, deploy := range deployments.Items { + if deploy.Name != deployment { + logger.Debugf("Deleting old deployment %s", deploy.Name) + err = deploymentClient.Delete(ctx, deploy.Name, v1.DeleteOptions{}) + if err != nil { + logger.Errorf(err, "Failed to delete deployment %s", deploy.Name) + } + } + } + return nil +} + func extractTag(image string) (string, error) { idx := strings.LastIndex(image, ":") if idx == -1 { diff --git a/backend/controller/scaling/kube_scaling_integration_test.go b/backend/provisioner/scaling/kube_scaling_integration_test.go similarity index 93% rename from backend/controller/scaling/kube_scaling_integration_test.go rename to backend/provisioner/scaling/kube_scaling_integration_test.go index b101efe446..586c71847e 100644 --- a/backend/controller/scaling/kube_scaling_integration_test.go +++ b/backend/provisioner/scaling/kube_scaling_integration_test.go @@ -99,14 +99,15 @@ func TestKubeScaling(t *testing.T) { depCount := 0 for _, dep := range deps.Items { if strings.HasPrefix(dep.Name, "dpl-echo") { + t.Logf("Found deployment %s", dep.Name) depCount++ service, err := client.CoreV1().Services(namespace).Get(ctx, dep.Name, v1.GetOptions{}) assert.NoError(t, err) - assert.Equal(t, 1, len(dep.OwnerReferences)) + assert.Equal(t, 1, len(dep.OwnerReferences), "Expected 1 owner reference", dep.OwnerReferences) assert.Equal(t, service.UID, dep.OwnerReferences[0].UID) } } - assert.Equal(t, 1, depCount) + assert.Equal(t, 1, depCount, "Expected 1 deployment, found %d", depCount) }), ) } diff --git a/backend/controller/scaling/local_scaling_integration_test.go b/backend/provisioner/scaling/local_scaling_integration_test.go similarity index 100% rename from backend/controller/scaling/local_scaling_integration_test.go rename to backend/provisioner/scaling/local_scaling_integration_test.go diff --git a/backend/controller/scaling/localscaling/local_scaling.go b/backend/provisioner/scaling/localscaling/local_scaling.go similarity index 82% rename from backend/controller/scaling/localscaling/local_scaling.go rename to backend/provisioner/scaling/localscaling/local_scaling.go index 16810168b9..214b77f03f 100644 --- a/backend/controller/scaling/localscaling/local_scaling.go +++ b/backend/provisioner/scaling/localscaling/local_scaling.go @@ -14,15 +14,15 @@ import ( "github.com/alecthomas/types/optional" "github.com/TBD54566975/ftl/backend/controller/artefacts" - "github.com/TBD54566975/ftl/backend/controller/leases" - "github.com/TBD54566975/ftl/backend/controller/scaling" - ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" + "github.com/TBD54566975/ftl/backend/provisioner/scaling" "github.com/TBD54566975/ftl/backend/runner" "github.com/TBD54566975/ftl/internal/bind" + "github.com/TBD54566975/ftl/internal/dev" "github.com/TBD54566975/ftl/internal/localdebug" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/model" "github.com/TBD54566975/ftl/internal/observability" + "github.com/TBD54566975/ftl/internal/schema" ) var _ scaling.RunnerScaling = &localScaling{} @@ -30,6 +30,7 @@ var _ scaling.RunnerScaling = &localScaling{} const maxExits = 10 type localScaling struct { + ctx context.Context lock sync.Mutex cacheDir string // Module -> Deployments -> info @@ -45,10 +46,47 @@ type localScaling struct { registryConfig artefacts.RegistryConfig enableOtel bool - devModeEndpointsUpdates <-chan scaling.DevModeEndpoints + devModeEndpointsUpdates <-chan dev.LocalEndpoint devModeEndpoints map[string]*devModeRunner } +func (l *localScaling) StartDeployment(ctx context.Context, module string, deployment string, sch *schema.Module) error { + if sch.Runtime == nil { + return nil + } + return l.setReplicas(module, deployment, sch.Runtime.Language, 1) +} + +func (l *localScaling) setReplicas(module string, deployment string, language string, replicas int32) error { + l.lock.Lock() + defer l.lock.Unlock() + deploymentKey, err := model.ParseDeploymentKey(deployment) + if err != nil { + return fmt.Errorf("failed to parse deployment key: %w", err) + } + ctx := l.ctx + logger := log.FromContext(ctx).Scope("localScaling").Module(module) + ctx = log.ContextWithLogger(ctx, logger) + logger.Debugf("Starting deployment for %s", deployment) + moduleDeployments := l.runners[module] + if moduleDeployments == nil { + moduleDeployments = map[string]*deploymentInfo{} + l.runners[module] = moduleDeployments + } + deploymentRunners := moduleDeployments[deployment] + if deploymentRunners == nil { + deploymentRunners = &deploymentInfo{runner: optional.None[runnerInfo](), key: deploymentKey, module: module, language: language} + moduleDeployments[deployment] = deploymentRunners + } + deploymentRunners.replicas = replicas + + return l.reconcileRunners(ctx, deploymentRunners) +} + +func (l *localScaling) TerminateDeployment(ctx context.Context, module string, deployment string) error { + return l.setReplicas(module, deployment, "", 0) +} + type devModeRunner struct { uri url.URL // The deployment key of the deployment that is currently running @@ -56,7 +94,7 @@ type devModeRunner struct { debugPort int } -func (l *localScaling) Start(ctx context.Context, endpoint url.URL, leaser leases.Leaser) error { +func (l *localScaling) Start(ctx context.Context) error { go func() { for { select { @@ -69,13 +107,12 @@ func (l *localScaling) Start(ctx context.Context, endpoint url.URL, leaser lease } } }() - scaling.BeginGrpcScaling(ctx, endpoint, leaser, l.handleSchemaChange) return nil } // updateDevModeEndpoint updates the dev mode endpoint for a module // Must be called under lock -func (l *localScaling) updateDevModeEndpoint(ctx context.Context, devEndpoints scaling.DevModeEndpoints) { +func (l *localScaling) updateDevModeEndpoint(ctx context.Context, devEndpoints dev.LocalEndpoint) { l.devModeEndpoints[devEndpoints.Module] = &devModeRunner{ uri: devEndpoints.Endpoint, debugPort: devEndpoints.DebugPort, @@ -129,13 +166,14 @@ type runnerInfo struct { port string } -func NewLocalScaling(portAllocator *bind.BindAllocator, controllerAddresses []*url.URL, configPath string, enableIDEIntegration bool, registryConfig artefacts.RegistryConfig, enableOtel bool, devModeEndpoints <-chan scaling.DevModeEndpoints) (scaling.RunnerScaling, error) { +func NewLocalScaling(ctx context.Context, portAllocator *bind.BindAllocator, controllerAddresses []*url.URL, configPath string, enableIDEIntegration bool, registryConfig artefacts.RegistryConfig, enableOtel bool, devModeEndpoints <-chan dev.LocalEndpoint) (scaling.RunnerScaling, error) { cacheDir, err := os.UserCacheDir() if err != nil { return nil, err } local := localScaling{ + ctx: ctx, lock: sync.Mutex{}, cacheDir: cacheDir, runners: map[string]map[string]*deploymentInfo{}, @@ -155,41 +193,6 @@ func NewLocalScaling(portAllocator *bind.BindAllocator, controllerAddresses []*u return &local, nil } -func (l *localScaling) handleSchemaChange(ctx context.Context, msg *ftlv1.PullSchemaResponse) error { - if msg.DeploymentKey == nil { - // Builtins don't have deployments - return nil - } - deploymentKey, err := model.ParseDeploymentKey(msg.GetDeploymentKey()) - if err != nil { - return fmt.Errorf("failed to parse deployment key: %w", err) - } - l.lock.Lock() - defer l.lock.Unlock() - logger := log.FromContext(ctx).Scope("localScaling").Module(msg.ModuleName) - ctx = log.ContextWithLogger(ctx, logger) - logger.Debugf("Handling schema change for %s", deploymentKey) - moduleDeployments := l.runners[msg.ModuleName] - if moduleDeployments == nil { - moduleDeployments = map[string]*deploymentInfo{} - l.runners[msg.ModuleName] = moduleDeployments - } - deploymentRunners := moduleDeployments[deploymentKey.String()] - if deploymentRunners == nil { - deploymentRunners = &deploymentInfo{runner: optional.None[runnerInfo](), key: deploymentKey, module: msg.ModuleName, language: msg.Schema.Runtime.Language} - moduleDeployments[deploymentKey.String()] = deploymentRunners - } - - switch msg.ChangeType { - case ftlv1.DeploymentChangeType_DEPLOYMENT_ADDED, ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGED: - deploymentRunners.replicas = msg.Schema.Runtime.MinReplicas - case ftlv1.DeploymentChangeType_DEPLOYMENT_REMOVED: - deploymentRunners.replicas = 0 - delete(moduleDeployments, deploymentKey.String()) - } - return l.reconcileRunners(ctx, deploymentRunners) -} - func (l *localScaling) reconcileRunners(ctx context.Context, deploymentRunners *deploymentInfo) error { // Must be called under lock @@ -300,7 +303,6 @@ func (l *localScaling) startRunner(ctx context.Context, deploymentKey model.Depl info.runner = optional.Some(runnerInfo{cancelFunc: cancel, port: bind.Port()}) go func() { - logger.Debugf("Starting runner: %s", config.Key) err := runner.Start(runnerCtx, config) l.lock.Lock() defer l.lock.Unlock() diff --git a/backend/provisioner/scaling/scaling.go b/backend/provisioner/scaling/scaling.go new file mode 100644 index 0000000000..898bb0bc52 --- /dev/null +++ b/backend/provisioner/scaling/scaling.go @@ -0,0 +1,20 @@ +package scaling + +import ( + "context" + "net/url" + + "github.com/alecthomas/types/optional" + + "github.com/TBD54566975/ftl/internal/schema" +) + +type RunnerScaling interface { + Start(ctx context.Context) error + + GetEndpointForDeployment(ctx context.Context, module string, deployment string) (optional.Option[url.URL], error) + + StartDeployment(ctx context.Context, module string, deployment string, sch *schema.Module) error + + TerminateDeployment(ctx context.Context, module string, deployment string) error +} diff --git a/backend/controller/scaling/testdata/go/echo/echo.go b/backend/provisioner/scaling/testdata/go/echo/echo.go similarity index 100% rename from backend/controller/scaling/testdata/go/echo/echo.go rename to backend/provisioner/scaling/testdata/go/echo/echo.go diff --git a/backend/controller/scaling/testdata/go/echo/ftl.toml b/backend/provisioner/scaling/testdata/go/echo/ftl.toml similarity index 100% rename from backend/controller/scaling/testdata/go/echo/ftl.toml rename to backend/provisioner/scaling/testdata/go/echo/ftl.toml diff --git a/backend/controller/scaling/testdata/go/echo/go.mod b/backend/provisioner/scaling/testdata/go/echo/go.mod similarity index 100% rename from backend/controller/scaling/testdata/go/echo/go.mod rename to backend/provisioner/scaling/testdata/go/echo/go.mod diff --git a/backend/controller/scaling/testdata/go/echo/go.sum b/backend/provisioner/scaling/testdata/go/echo/go.sum similarity index 100% rename from backend/controller/scaling/testdata/go/echo/go.sum rename to backend/provisioner/scaling/testdata/go/echo/go.sum diff --git a/backend/controller/scaling/testdata/go/naughty/ftl.toml b/backend/provisioner/scaling/testdata/go/naughty/ftl.toml similarity index 100% rename from backend/controller/scaling/testdata/go/naughty/ftl.toml rename to backend/provisioner/scaling/testdata/go/naughty/ftl.toml diff --git a/backend/controller/scaling/testdata/go/naughty/go.mod b/backend/provisioner/scaling/testdata/go/naughty/go.mod similarity index 100% rename from backend/controller/scaling/testdata/go/naughty/go.mod rename to backend/provisioner/scaling/testdata/go/naughty/go.mod diff --git a/backend/controller/scaling/testdata/go/naughty/go.sum b/backend/provisioner/scaling/testdata/go/naughty/go.sum similarity index 100% rename from backend/controller/scaling/testdata/go/naughty/go.sum rename to backend/provisioner/scaling/testdata/go/naughty/go.sum diff --git a/backend/controller/scaling/testdata/go/naughty/naughty.go b/backend/provisioner/scaling/testdata/go/naughty/naughty.go similarity index 100% rename from backend/controller/scaling/testdata/go/naughty/naughty.go rename to backend/provisioner/scaling/testdata/go/naughty/naughty.go diff --git a/backend/provisioner/service.go b/backend/provisioner/service.go index f8789a94a8..c3420612ca 100644 --- a/backend/provisioner/service.go +++ b/backend/provisioner/service.go @@ -14,10 +14,11 @@ import ( "github.com/puzpuzpuz/xsync/v3" "golang.org/x/sync/errgroup" + provproto "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - provproto "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" + ftlv1connect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" + "github.com/TBD54566975/ftl/backend/provisioner/scaling" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/rpc" ) @@ -149,6 +150,14 @@ func replaceOutputs(to []*provproto.Resource, from []*provproto.Resource) error } r.Subscription.Output = subscriptionFrom.Subscription.Output } + case *provproto.Resource_Runner: + if runnerFrom, ok := existing.Resource.(*provproto.Resource_Runner); ok && runnerFrom.Runner != nil { + if r.Runner == nil { + r.Runner = &provproto.RunnerResource{} + } + r.Runner.Output = runnerFrom.Runner.Output + } + // Ignore default: return fmt.Errorf("can not replace outputs for an unknown resource type %T", r) } @@ -188,7 +197,7 @@ func Start( return nil } -func RegistryFromConfigFile(ctx context.Context, file *os.File, controller ftlv1connect.ControllerServiceClient) (*ProvisionerRegistry, error) { +func RegistryFromConfigFile(ctx context.Context, file *os.File, controller ftlv1connect.ControllerServiceClient, scaling scaling.RunnerScaling) (*ProvisionerRegistry, error) { config := provisionerPluginConfig{} bytes, err := io.ReadAll(bufio.NewReader(file)) if err != nil { @@ -198,7 +207,7 @@ func RegistryFromConfigFile(ctx context.Context, file *os.File, controller ftlv1 return nil, fmt.Errorf("error parsing plugin configuration: %w", err) } - registry, err := registryFromConfig(ctx, &config, controller) + registry, err := registryFromConfig(ctx, &config, controller, scaling) if err != nil { return nil, fmt.Errorf("error creating provisioner registry: %w", err) } diff --git a/backend/provisioner/sql_migration_provisioner.go b/backend/provisioner/sql_migration_provisioner.go index e91d87183d..58589a92ae 100644 --- a/backend/provisioner/sql_migration_provisioner.go +++ b/backend/provisioner/sql_migration_provisioner.go @@ -17,7 +17,7 @@ import ( _ "github.com/jackc/pgx/v5/stdlib" // SQL driver "github.com/TBD54566975/ftl/backend/controller/artefacts" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" "github.com/TBD54566975/ftl/internal/dsn" "github.com/TBD54566975/ftl/internal/errors" "github.com/TBD54566975/ftl/internal/log" @@ -34,8 +34,8 @@ func NewSQLMigrationProvisioner(registryConfig artefacts.RegistryConfig) *InMemP }) } -func provisionSQLMigration(registryConfig artefacts.RegistryConfig) func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { - return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string) (*provisioner.Resource, error) { +func provisionSQLMigration(registryConfig artefacts.RegistryConfig) func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { + return func(ctx context.Context, rc *provisioner.ResourceContext, module, id string, previous *provisioner.Resource) (*provisioner.Resource, error) { migration, ok := rc.Resource.Resource.(*provisioner.Resource_SqlMigration) if !ok { return nil, fmt.Errorf("unexpected resource type: %T", rc.Resource.Resource) diff --git a/charts/ftl/templates/controller-role.yaml b/charts/ftl/templates/controller-role.yaml index 9aa7291903..7d01d8acd4 100644 --- a/charts/ftl/templates/controller-role.yaml +++ b/charts/ftl/templates/controller-role.yaml @@ -7,42 +7,3 @@ metadata: annotations: eks.amazonaws.com/role-arn: {{ .Values.controller.controllersRoleArn }} {{- end }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: {{ include "ftl.fullname" . }}-controller - labels: - {{- include "ftl.labels" . | nindent 4 }} -rules: - - apiGroups: [ "apps" ] - resources: [ "deployments" ] - verbs: [ "get", "list", "watch", "delete", "create", "update", "patch" ] - - apiGroups: [ "" ] - resources: [ "services" , "serviceaccounts"] - verbs: [ "get", "list", "watch", "delete", "create", "update", "patch" ] - - apiGroups: [ "" ] - resources: [ "pods" ] - verbs: [ "get", "list", "watch" ] - - apiGroups: [ "" ] - resources: [ "configmaps" ] - resourceNames: - - ftl-controller-deployment-config - verbs: [ "get"] - - apiGroups: [ "security.istio.io" ] - resources: [ "authorizationpolicies" ] - verbs: [ "get", "list", "watch", "delete", "create", "update", "patch" ] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: {{ include "ftl.fullname" . }}-controller - labels: - {{- include "ftl.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ include "ftl.fullname" . }}-controller -subjects: - - kind: ServiceAccount - name: {{ .Values.controller.serviceAccountName }} diff --git a/charts/ftl/templates/provisioner-config-map.yaml b/charts/ftl/templates/provisioner-config-map.yaml index 9a342353a0..a82f98ddc1 100644 --- a/charts/ftl/templates/provisioner-config-map.yaml +++ b/charts/ftl/templates/provisioner-config-map.yaml @@ -9,5 +9,6 @@ data: plugins = [ { id = "cloudformation", resources = ["postgres"] }, { id = "controller", resources = ["module"] }, + { id = "kubernetes", resources = ["runner"] }, ] {{- end}} \ No newline at end of file diff --git a/charts/ftl/templates/provisioner-role.yaml b/charts/ftl/templates/provisioner-role.yaml index 42facc9bba..d87da824a7 100644 --- a/charts/ftl/templates/provisioner-role.yaml +++ b/charts/ftl/templates/provisioner-role.yaml @@ -7,3 +7,42 @@ metadata: annotations: eks.amazonaws.com/role-arn: {{ .Values.provisioner.provisionersRoleArn }} {{- end }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "ftl.fullname" . }}-provisioner + labels: + {{- include "ftl.labels" . | nindent 4 }} +rules: + - apiGroups: [ "apps" ] + resources: [ "deployments" ] + verbs: [ "get", "list", "watch", "delete", "create", "update", "patch" ] + - apiGroups: [ "" ] + resources: [ "services" , "serviceaccounts"] + verbs: [ "get", "list", "watch", "delete", "create", "update", "patch" ] + - apiGroups: [ "" ] + resources: [ "pods" ] + verbs: [ "get", "list", "watch" ] + - apiGroups: [ "" ] + resources: [ "configmaps" ] + resourceNames: + - ftl-controller-deployment-config + verbs: [ "get"] + - apiGroups: [ "security.istio.io" ] + resources: [ "authorizationpolicies" ] + verbs: [ "get", "list", "watch", "delete", "create", "update", "patch" ] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "ftl.fullname" . }}-provisioner + labels: + {{- include "ftl.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "ftl.fullname" . }}-provisioner +subjects: + - kind: ServiceAccount + name: {{ .Values.provisioner.serviceAccountName }} diff --git a/charts/ftl/templates/provisioner.yaml b/charts/ftl/templates/provisioner.yaml index c0fa72c6c0..04a04927a1 100644 --- a/charts/ftl/templates/provisioner.yaml +++ b/charts/ftl/templates/provisioner.yaml @@ -51,7 +51,7 @@ spec: {{- else }} httpGet: path: /healthz - port: 8893 + port: 8892 initialDelaySeconds: 1 periodSeconds: 2 timeoutSeconds: 2 diff --git a/charts/ftl/templates/runner.yaml b/charts/ftl/templates/runner.yaml index 5554fdc1ca..24252e69eb 100644 --- a/charts/ftl/templates/runner.yaml +++ b/charts/ftl/templates/runner.yaml @@ -14,9 +14,9 @@ data: ports: - name: verbs protocol: TCP - port: 8893 + port: 8892 appProtocol: http - targetPort: 8893 + targetPort: 8892 type: ClusterIP deploymentTemplate: |- apiVersion: apps/v1 diff --git a/cmd/devel-provisioner/main.go b/cmd/devel-provisioner/main.go index daf0aad7b3..ea2eed931a 100644 --- a/cmd/devel-provisioner/main.go +++ b/cmd/devel-provisioner/main.go @@ -10,8 +10,8 @@ import ( "github.com/alecthomas/kong" "github.com/jpillora/backoff" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" "github.com/TBD54566975/ftl/common/plugin" "github.com/TBD54566975/ftl/internal/log" ) diff --git a/cmd/ftl-controller/main.go b/cmd/ftl-controller/main.go index 2346d70686..e6a068710b 100644 --- a/cmd/ftl-controller/main.go +++ b/cmd/ftl-controller/main.go @@ -14,7 +14,6 @@ import ( "github.com/TBD54566975/ftl" "github.com/TBD54566975/ftl/backend/controller" "github.com/TBD54566975/ftl/backend/controller/leases/dbleaser" - "github.com/TBD54566975/ftl/backend/controller/scaling/k8sscaling" _ "github.com/TBD54566975/ftl/internal/automaxprocs" // Set GOMAXPROCS to match Linux container CPU quota. cf "github.com/TBD54566975/ftl/internal/configuration" cfdal "github.com/TBD54566975/ftl/internal/configuration/dal" @@ -76,6 +75,6 @@ func main() { sm, err := manager.New[cf.Secrets](ctx, dbSecretResolver, asmSecretProvider) kctx.FatalIfErrorf(err) - err = controller.Start(ctx, cli.ControllerConfig, k8sscaling.NewK8sScaling(cli.DisableIstio), cm, sm, conn, false) + err = controller.Start(ctx, cli.ControllerConfig, cm, sm, conn, false) kctx.FatalIfErrorf(err) } diff --git a/cmd/ftl-provisioner-cloudformation/plan.go b/cmd/ftl-provisioner-cloudformation/plan.go index 28bfd44c0f..4e473246b8 100644 --- a/cmd/ftl-provisioner-cloudformation/plan.go +++ b/cmd/ftl-provisioner-cloudformation/plan.go @@ -8,7 +8,7 @@ import ( "connectrpc.com/connect" "github.com/aws/aws-sdk-go-v2/service/cloudformation" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" ) func (c *CloudformationProvisioner) Plan(ctx context.Context, req *connect.Request[provisioner.PlanRequest]) (*connect.Response[provisioner.PlanResponse], error) { diff --git a/cmd/ftl-provisioner-cloudformation/postgres.go b/cmd/ftl-provisioner-cloudformation/postgres.go index 570d98818d..48fc0b0334 100644 --- a/cmd/ftl-provisioner-cloudformation/postgres.go +++ b/cmd/ftl-provisioner-cloudformation/postgres.go @@ -11,7 +11,7 @@ import ( goformation "github.com/awslabs/goformation/v7/cloudformation" "github.com/awslabs/goformation/v7/cloudformation/rds" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ) type PostgresTemplater struct { diff --git a/cmd/ftl-provisioner-cloudformation/provisioner.go b/cmd/ftl-provisioner-cloudformation/provisioner.go index f01f6cb23a..2e3ef3a5fb 100644 --- a/cmd/ftl-provisioner-cloudformation/provisioner.go +++ b/cmd/ftl-provisioner-cloudformation/provisioner.go @@ -17,9 +17,9 @@ import ( "golang.org/x/text/cases" "golang.org/x/text/language" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" "github.com/TBD54566975/ftl/common/plugin" "github.com/TBD54566975/ftl/internal/log" ) @@ -84,7 +84,7 @@ func (c *CloudformationProvisioner) Provision(ctx context.Context, req *connect. if !updated { return connect.NewResponse(&provisioner.ProvisionResponse{ // even if there are no changes, return the stack id so that any resource outputs can be populated - Status: provisioner.ProvisionResponse_SUBMITTED, + Status: provisioner.ProvisionResponse_PROVISION_RESPONSE_STATUS_SUBMITTED, ProvisioningToken: token, }), nil } @@ -96,7 +96,7 @@ func (c *CloudformationProvisioner) Provision(ctx context.Context, req *connect. logger.Debugf("Starting task for module %s: %s (%s)", req.Msg.Module, token, changeSetID) task.Start(ctx, c.client, c.secrets, changeSetID) return connect.NewResponse(&provisioner.ProvisionResponse{ - Status: provisioner.ProvisionResponse_SUBMITTED, + Status: provisioner.ProvisionResponse_PROVISION_RESPONSE_STATUS_SUBMITTED, ProvisioningToken: token, }), nil } diff --git a/cmd/ftl-provisioner-cloudformation/status.go b/cmd/ftl-provisioner-cloudformation/status.go index fffe7675ef..dbcde45f69 100644 --- a/cmd/ftl-provisioner-cloudformation/status.go +++ b/cmd/ftl-provisioner-cloudformation/status.go @@ -9,8 +9,8 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudformation/types" _ "github.com/jackc/pgx/v5/stdlib" // SQL driver - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner" + provisioner "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ) func (c *CloudformationProvisioner) Status(ctx context.Context, req *connect.Request[provisioner.StatusRequest]) (*connect.Response[provisioner.StatusResponse], error) { diff --git a/cmd/ftl-provisioner/main.go b/cmd/ftl-provisioner/main.go index ec470515d5..12d6286b04 100644 --- a/cmd/ftl-provisioner/main.go +++ b/cmd/ftl-provisioner/main.go @@ -12,6 +12,7 @@ import ( "github.com/TBD54566975/ftl" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" "github.com/TBD54566975/ftl/backend/provisioner" + "github.com/TBD54566975/ftl/backend/provisioner/scaling/k8sscaling" _ "github.com/TBD54566975/ftl/internal/automaxprocs" // Set GOMAXPROCS to match Linux container CPU quota. "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/observability" @@ -44,7 +45,11 @@ func main() { controllerClient := rpc.Dial(ftlv1connect.NewControllerServiceClient, cli.ProvisionerConfig.ControllerEndpoint.String(), log.Error) - registry, err := provisioner.RegistryFromConfigFile(ctx, cli.ProvisionerConfig.PluginConfigFile, controllerClient) + scaling := k8sscaling.NewK8sScaling(false, cli.ProvisionerConfig.ControllerEndpoint.String()) + err = scaling.Start(ctx) + kctx.FatalIfErrorf(err, "error starting k8s scaling") + registry, err := provisioner.RegistryFromConfigFile(ctx, cli.ProvisionerConfig.PluginConfigFile, controllerClient, scaling) + kctx.FatalIfErrorf(err, "failed to create provisioner registry") err = provisioner.Start(ctx, cli.ProvisionerConfig, registry, controllerClient) diff --git a/deployment/Justfile b/deployment/Justfile index af389ba45e..212dad56c5 100755 --- a/deployment/Justfile +++ b/deployment/Justfile @@ -20,6 +20,9 @@ rm: teardown full-deploy: build-controller build-runners build-provisioner setup-istio-cluster build-cron build-http-ingress #!/bin/bash kubectl rollout restart deployment ftl-controller || true # if this exists already restart it to get the latest image + kubectl rollout restart deployment ftl-provisioner || true # if this exists already restart it to get the latest image + kubectl rollout restart deployment ftl-cron || true # if this exists already restart it to get the latest image + kubectl rollout restart deployment ftl-http-ingress || true # if this exists already restart it to get the latest image just apply || sleep 5 # wait for CRDs to be created, the initial apply will usually fail just apply @@ -50,7 +53,9 @@ setup-cluster: setup-registry if [ -z "$(k3d cluster list | grep ftl)" ]; then k3d cluster create ftl --api-port 6550 -p "8892:80@loadbalancer" -p "8891:80@loadbalancer" -p "8893:80@loadbalancer" --agents 2 \ --registry-use {{registry_full}} \ - --registry-config '{{mirrors}}' + --registry-config '{{mirrors}}'\ + --k3s-arg '--kubelet-arg=eviction-hard=imagefs.available<1%,nodefs.available<1%@agent:*' \ + --k3s-arg '--kubelet-arg=eviction-minimum-reclaim=imagefs.available=1%,nodefs.available=1%@agent:*' fi kubectl config set-context --current --namespace=default @@ -60,8 +65,8 @@ setup-istio-cluster: setup-cluster kubectl create namespace istio-system helm repo add istio https://istio-release.storage.googleapis.com/charts helm repo update - helm install istio-base istio/base -n istio-system --wait - helm install istiod istio/istiod -n istio-system --wait + helm install istio-base istio/base -n istio-system --wait --version 1.23.3 + helm install istiod istio/istiod -n istio-system --wait --version 1.23.3 fi kubectl label namespace default istio-injection=enabled --overwrite kubectl apply -f istio-access-logs.yaml diff --git a/examples/go/mysql/go.mod b/examples/go/mysql/go.mod index 222a5eb315..ab722779c7 100644 --- a/examples/go/mysql/go.mod +++ b/examples/go/mysql/go.mod @@ -98,6 +98,7 @@ require ( github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/puzpuzpuz/xsync/v3 v3.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/examples/go/mysql/go.sum b/examples/go/mysql/go.sum index 0e84b199d4..148037cdd3 100644 --- a/examples/go/mysql/go.sum +++ b/examples/go/mysql/go.sum @@ -245,8 +245,9 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= diff --git a/examples/go/postgres/go.mod b/examples/go/postgres/go.mod index 987e55ac56..8b166d231e 100644 --- a/examples/go/postgres/go.mod +++ b/examples/go/postgres/go.mod @@ -98,6 +98,7 @@ require ( github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/puzpuzpuz/xsync/v3 v3.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/examples/go/postgres/go.sum b/examples/go/postgres/go.sum index 0e84b199d4..148037cdd3 100644 --- a/examples/go/postgres/go.sum +++ b/examples/go/postgres/go.sum @@ -245,8 +245,9 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= diff --git a/frontend/cli/cmd_config.go b/frontend/cli/cmd_config.go index 8300f0095c..bac101082c 100644 --- a/frontend/cli/cmd_config.go +++ b/frontend/cli/cmd_config.go @@ -45,11 +45,11 @@ func configRefFromRef(ref configuration.Ref) *ftlv1.ConfigRef { func (s *configCmd) provider() optional.Option[ftlv1.ConfigProvider] { if s.Envar { - return optional.Some(ftlv1.ConfigProvider_CONFIG_ENVAR) + return optional.Some(ftlv1.ConfigProvider_CONFIG_PROVIDER_ENVAR) } else if s.Inline { - return optional.Some(ftlv1.ConfigProvider_CONFIG_INLINE) + return optional.Some(ftlv1.ConfigProvider_CONFIG_PROVIDER_INLINE) } else if s.DB { - return optional.Some(ftlv1.ConfigProvider_CONFIG_DB) + return optional.Some(ftlv1.ConfigProvider_CONFIG_PROVIDER_DB) } return optional.None[ftlv1.ConfigProvider]() } @@ -60,7 +60,7 @@ type configListCmd struct { } func (s *configListCmd) Run(ctx context.Context, adminClient admin.Client) error { - resp, err := adminClient.ConfigList(ctx, connect.NewRequest(&ftlv1.ListConfigRequest{ + resp, err := adminClient.ConfigList(ctx, connect.NewRequest(&ftlv1.ConfigListRequest{ Module: &s.Module, IncludeValues: &s.Values, })) @@ -90,7 +90,7 @@ Returns a JSON-encoded configuration value. } func (s *configGetCmd) Run(ctx context.Context, adminClient admin.Client) error { - resp, err := adminClient.ConfigGet(ctx, connect.NewRequest(&ftlv1.GetConfigRequest{ + resp, err := adminClient.ConfigGet(ctx, connect.NewRequest(&ftlv1.ConfigGetRequest{ Ref: configRefFromRef(s.Ref), })) if err != nil { @@ -131,7 +131,7 @@ func (s *configSetCmd) Run(ctx context.Context, scmd *configCmd, adminClient adm } } - req := &ftlv1.SetConfigRequest{ + req := &ftlv1.ConfigSetRequest{ Ref: configRefFromRef(s.Ref), Value: configJSON, } @@ -150,7 +150,7 @@ type configUnsetCmd struct { } func (s *configUnsetCmd) Run(ctx context.Context, scmd *configCmd, adminClient admin.Client) error { - req := &ftlv1.UnsetConfigRequest{ + req := &ftlv1.ConfigUnsetRequest{ Ref: configRefFromRef(s.Ref), } if provider, ok := scmd.provider().Get(); ok { @@ -192,7 +192,7 @@ func (s *configImportCmd) Run(ctx context.Context, cmd *configCmd, adminClient a if err != nil { return fmt.Errorf("could not marshal value for %q: %w", refPath, err) } - req := &ftlv1.SetConfigRequest{ + req := &ftlv1.ConfigSetRequest{ Ref: configRefFromRef(ref), Value: bytes, } @@ -217,7 +217,7 @@ Outputs configuration values in a JSON object. A provider can be used to filter } func (s *configExportCmd) Run(ctx context.Context, cmd *configCmd, adminClient admin.Client) error { - req := &ftlv1.ListConfigRequest{ + req := &ftlv1.ConfigListRequest{ IncludeValues: optional.Some(true).Ptr(), } if provider, ok := cmd.provider().Get(); ok { diff --git a/frontend/cli/cmd_deploy.go b/frontend/cli/cmd_deploy.go index dabde36c97..39552fa969 100644 --- a/frontend/cli/cmd_deploy.go +++ b/frontend/cli/cmd_deploy.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" "github.com/TBD54566975/ftl/internal/buildengine" "github.com/TBD54566975/ftl/internal/projectconfig" "github.com/TBD54566975/ftl/internal/schema/schemaeventsource" diff --git a/frontend/cli/cmd_dev.go b/frontend/cli/cmd_dev.go index 0e23f018d7..455ac99169 100644 --- a/frontend/cli/cmd_dev.go +++ b/frontend/cli/cmd_dev.go @@ -11,9 +11,8 @@ import ( "github.com/alecthomas/types/optional" "golang.org/x/sync/errgroup" - "github.com/TBD54566975/ftl/backend/controller/scaling" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" "github.com/TBD54566975/ftl/internal/bind" "github.com/TBD54566975/ftl/internal/buildengine" "github.com/TBD54566975/ftl/internal/configuration" @@ -90,7 +89,7 @@ func (d *devCmd) Run( d.ServeCmd.Ingress.AllowOrigins = []*url.URL{{Scheme: "*", Host: "*"}} d.ServeCmd.Ingress.AllowHeaders = []string{"*"} - devModeEndpointUpdates := make(chan scaling.DevModeEndpoints, 1) + devModeEndpointUpdates := make(chan dev.LocalEndpoint, 1) // cmdServe will notify this channel when startup commands are complete and the controller is ready controllerReady := make(chan bool, 1) if !d.NoServe { diff --git a/frontend/cli/cmd_replay.go b/frontend/cli/cmd_replay.go index bc609bd270..7ab6e88864 100644 --- a/frontend/cli/cmd_replay.go +++ b/frontend/cli/cmd_replay.go @@ -9,9 +9,9 @@ import ( "connectrpc.com/connect" "github.com/jpillora/backoff" + pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" + "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" - pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/console/pbconsoleconnect" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" "github.com/TBD54566975/ftl/go-runtime/ftl/reflection" "github.com/TBD54566975/ftl/internal/log" @@ -76,21 +76,22 @@ func (c *replayCmd) Run( return fmt.Errorf("verb not found: %s", c.Verb) } - events, err := consoleServiceClient.GetEvents(ctx, connect.NewRequest(&pbconsole.EventsQuery{ - Order: pbconsole.EventsQuery_DESC, - Limit: 1, - Filters: []*pbconsole.EventsQuery_Filter{ + events, err := consoleServiceClient.GetEvents(ctx, connect.NewRequest(&pbconsole.GetEventsRequest{ + Order: pbconsole.GetEventsRequest_ORDER_DESC, + Filters: []*pbconsole.GetEventsRequest_Filter{ { - Filter: &pbconsole.EventsQuery_Filter_Call{ - Call: &pbconsole.EventsQuery_CallFilter{ + Filter: &pbconsole.GetEventsRequest_Filter_Call{ + Call: &pbconsole.GetEventsRequest_CallFilter{ DestModule: c.Verb.Module, DestVerb: &c.Verb.Name, }, }, }, { - Filter: &pbconsole.EventsQuery_Filter_EventTypes{ - EventTypes: &pbconsole.EventsQuery_EventTypeFilter{EventTypes: []pbconsole.EventType{pbconsole.EventType_EVENT_TYPE_CALL}}, + Filter: &pbconsole.GetEventsRequest_Filter_EventTypes{ + EventTypes: &pbconsole.GetEventsRequest_EventTypeFilter{ + EventTypes: []pbconsole.EventType{pbconsole.EventType_EVENT_TYPE_CALL}, + }, }, }, }, diff --git a/frontend/cli/cmd_schema_diff.go b/frontend/cli/cmd_schema_diff.go index a2313a4237..5c9c275d9f 100644 --- a/frontend/cli/cmd_schema_diff.go +++ b/frontend/cli/cmd_schema_diff.go @@ -15,9 +15,9 @@ import ( "github.com/hexops/gotextdiff/span" "github.com/mattn/go-isatty" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" "github.com/TBD54566975/ftl/internal/projectconfig" "github.com/TBD54566975/ftl/internal/schema" "github.com/TBD54566975/ftl/internal/terminal" diff --git a/frontend/cli/cmd_schema_generate.go b/frontend/cli/cmd_schema_generate.go index 52cac14670..8224e4cecc 100644 --- a/frontend/cli/cmd_schema_generate.go +++ b/frontend/cli/cmd_schema_generate.go @@ -88,15 +88,23 @@ func (s *schemaGenerateCmd) hotReload(ctx context.Context, client ftlv1connect.S for stream.Receive() { msg := stream.Msg() switch msg.ChangeType { - case ftlv1.DeploymentChangeType_DEPLOYMENT_ADDED, ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGED: + case ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_ADDED, ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_CHANGED: + if msg.Schema == nil { + return fmt.Errorf("schema is nil for added/changed deployment %q", msg.GetDeploymentKey()) + } module, err := schema.ModuleFromProto(msg.Schema) if err != nil { - return fmt.Errorf("invalid module schema: %w", err) + return fmt.Errorf("failed to convert proto to module: %w", err) } modules[module.Name] = module - case ftlv1.DeploymentChangeType_DEPLOYMENT_REMOVED: - delete(modules, msg.ModuleName) + case ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_REMOVED: + if msg.Schema == nil { + return fmt.Errorf("schema is nil for removed deployment %q", msg.GetDeploymentKey()) + } + if msg.ModuleRemoved { + delete(modules, msg.Schema.Name) + } } if !msg.More { regenerate = true diff --git a/frontend/cli/cmd_schema_get.go b/frontend/cli/cmd_schema_get.go index 29c99df8a8..0efa8496d6 100644 --- a/frontend/cli/cmd_schema_get.go +++ b/frontend/cli/cmd_schema_get.go @@ -12,9 +12,9 @@ import ( "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema" "github.com/TBD54566975/ftl/internal/schema" ) @@ -42,8 +42,11 @@ func (g *getSchemaCmd) Run(ctx context.Context, client ftlv1connect.SchemaServic } for resp.Receive() { msg := resp.Msg() - switch resp.Msg().ChangeType { - case ftlv1.DeploymentChangeType_DEPLOYMENT_ADDED, ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGED: + switch msg.ChangeType { + case ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_ADDED, ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_CHANGED: + if msg.Schema == nil { + return fmt.Errorf("schema is nil for added/changed deployment %q", msg.GetDeploymentKey()) + } module, err := schema.ModuleFromProto(msg.Schema) if len(g.Modules) == 0 || remainingNames[msg.Schema.Name] { if err != nil { @@ -66,8 +69,16 @@ func (g *getSchemaCmd) Run(ctx context.Context, client ftlv1connect.SchemaServic return nil } } - case ftlv1.DeploymentChangeType_DEPLOYMENT_REMOVED: + case ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_REMOVED: + if msg.Schema == nil { + return fmt.Errorf("schema is nil for removed deployment %q", msg.GetDeploymentKey()) + } + if msg.ModuleRemoved { + delete(remainingNames, msg.Schema.Name) + } fmt.Printf("deployment %s removed\n", msg.GetDeploymentKey()) + case ftlv1.DeploymentChangeType_DEPLOYMENT_CHANGE_TYPE_UNSPECIFIED: + return fmt.Errorf("unexpected unspecified deployment change type for deployment %q", msg.GetDeploymentKey()) } } diff --git a/frontend/cli/cmd_secret.go b/frontend/cli/cmd_secret.go index 5efd1943b9..f2632db8ed 100644 --- a/frontend/cli/cmd_secret.go +++ b/frontend/cli/cmd_secret.go @@ -49,7 +49,7 @@ type secretListCmd struct { } func (s *secretListCmd) Run(ctx context.Context, adminClient admin.Client) error { - resp, err := adminClient.SecretsList(ctx, connect.NewRequest(&ftlv1.ListSecretsRequest{ + resp, err := adminClient.SecretsList(ctx, connect.NewRequest(&ftlv1.SecretsListRequest{ Module: &s.Module, IncludeValues: &s.Values, })) @@ -78,7 +78,7 @@ Returns a JSON-encoded secret value. } func (s *secretGetCmd) Run(ctx context.Context, adminClient admin.Client) error { - resp, err := adminClient.SecretGet(ctx, connect.NewRequest(&ftlv1.GetSecretRequest{ + resp, err := adminClient.SecretGet(ctx, connect.NewRequest(&ftlv1.SecretGetRequest{ Ref: configRefFromRef(s.Ref), })) if err != nil { @@ -126,7 +126,7 @@ func (s *secretSetCmd) Run(ctx context.Context, adminClient admin.Client) (err e } } - req := &ftlv1.SetSecretRequest{ + req := &ftlv1.SecretSetRequest{ Ref: configRefFromRef(s.Ref), Value: secretJSON, } @@ -142,7 +142,7 @@ type secretUnsetCmd struct { } func (s *secretUnsetCmd) Run(ctx context.Context, adminClient admin.Client) (err error) { - req := &ftlv1.UnsetSecretRequest{ + req := &ftlv1.SecretUnsetRequest{ Ref: configRefFromRef(s.Ref), } _, err = adminClient.SecretUnset(ctx, connect.NewRequest(req)) @@ -181,7 +181,7 @@ func (s *secretImportCmd) Run(ctx context.Context, adminClient admin.Client) (er if err != nil { return fmt.Errorf("could not marshal value for %q: %w", refPath, err) } - req := &ftlv1.SetSecretRequest{ + req := &ftlv1.SecretSetRequest{ Ref: configRefFromRef(ref), Value: bytes, } @@ -203,7 +203,7 @@ Outputs secrets in a JSON object. A provider can be used to filter which secrets } func (s *secretExportCmd) Run(ctx context.Context, adminClient admin.Client) (err error) { - req := &ftlv1.ListSecretsRequest{ + req := &ftlv1.SecretsListRequest{ IncludeValues: optional.Some(true).Ptr(), } listResponse, err := adminClient.SecretsList(ctx, connect.NewRequest(req)) diff --git a/frontend/cli/cmd_serve.go b/frontend/cli/cmd_serve.go index 4e65db844c..1bd70ba9ce 100644 --- a/frontend/cli/cmd_serve.go +++ b/frontend/cli/cmd_serve.go @@ -21,14 +21,13 @@ import ( "github.com/TBD54566975/ftl" "github.com/TBD54566975/ftl/backend/controller" "github.com/TBD54566975/ftl/backend/controller/artefacts" - "github.com/TBD54566975/ftl/backend/controller/scaling" - "github.com/TBD54566975/ftl/backend/controller/scaling/localscaling" "github.com/TBD54566975/ftl/backend/cron" "github.com/TBD54566975/ftl/backend/ingress" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" "github.com/TBD54566975/ftl/backend/provisioner" + "github.com/TBD54566975/ftl/backend/provisioner/scaling/localscaling" "github.com/TBD54566975/ftl/internal/bind" "github.com/TBD54566975/ftl/internal/configuration" "github.com/TBD54566975/ftl/internal/configuration/manager" @@ -51,7 +50,7 @@ type serveCommonConfig struct { Bind *url.URL `help:"Starting endpoint to bind to and advertise to. Each controller, ingress, runner and language plugin will increment the port by 1" default:"http://127.0.0.1:8891"` DBPort int `help:"Port to use for the database." env:"FTL_DB_PORT" default:"15432"` MysqlPort int `help:"Port to use for the MySQL database, if one is required." env:"FTL_MYSQL_PORT" default:"13306"` - RegistryPort int `help:"Port to use for the registry." env:"FTL_REGISTRY_PORT" default:"15000"` + RegistryPort int `help:"Port to use for the registry." env:"FTL_OCI_REGISTRY_PORT" default:"15000"` Controllers int `short:"c" help:"Number of controllers to start." default:"1"` Provisioners int `short:"p" help:"Number of provisioners to start." default:"1"` Background bool `help:"Run in the background." default:"false"` @@ -101,7 +100,7 @@ func (s *serveCommonConfig) run( schemaEventSourceFactory func() schemaeventsource.EventSource, verbClient ftlv1connect.VerbServiceClient, recreate bool, - devModeEndpoints <-chan scaling.DevModeEndpoints, + devModeEndpoints <-chan dev.LocalEndpoint, ) error { logger := log.FromContext(ctx) @@ -203,11 +202,14 @@ func (s *serveCommonConfig) run( provisionerAddresses = append(provisionerAddresses, bind) } - runnerScaling, err := localscaling.NewLocalScaling(bindAllocator, controllerAddresses, projConfig.Path, devMode && !projConfig.DisableIDEIntegration, registry, bool(s.ObservabilityConfig.ExportOTEL), devModeEndpoints) - + runnerScaling, err := localscaling.NewLocalScaling(ctx, bindAllocator, controllerAddresses, projConfig.Path, devMode && !projConfig.DisableIDEIntegration, registry, bool(s.ObservabilityConfig.ExportOTEL), devModeEndpoints) if err != nil { return err } + err = runnerScaling.Start(ctx) + if err != nil { + return fmt.Errorf("runner scaling failed to start: %w", err) + } for i := range s.Controllers { config := controller.Config{ CommonConfig: s.CommonConfig, @@ -229,7 +231,7 @@ func (s *serveCommonConfig) run( } wg.Go(func() error { - if err := controller.Start(controllerCtx, config, runnerScaling, cm, sm, conn, true); err != nil { + if err := controller.Start(controllerCtx, config, cm, sm, conn, true); err != nil { logger.Errorf(err, "controller%d failed: %v", i, err) return fmt.Errorf("controller%d failed: %w", i, err) } @@ -250,6 +252,7 @@ func (s *serveCommonConfig) run( provisionerCtx := log.ContextWithLogger(ctx, logger.Scope(scope)) // default local dev provisioner + provisionerRegistry := &provisioner.ProvisionerRegistry{ Bindings: []*provisioner.ProvisionerBinding{ { @@ -262,22 +265,27 @@ func (s *serveCommonConfig) run( }, ID: "dev", }, + { + Provisioner: provisioner.NewSQLMigrationProvisioner(registry), + Types: []provisioner.ResourceType{provisioner.ResourceTypeSQLMigration}, + ID: "migration", + }, { Provisioner: provisioner.NewControllerProvisioner(controllerClient), Types: []provisioner.ResourceType{provisioner.ResourceTypeModule}, ID: "controller", }, { - Provisioner: provisioner.NewSQLMigrationProvisioner(registry), - Types: []provisioner.ResourceType{provisioner.ResourceTypeSQLMigration}, - ID: "migration", + Provisioner: provisioner.NewRunnerScalingProvisioner(runnerScaling, controllerClient), + Types: []provisioner.ResourceType{provisioner.ResourceTypeRunner}, + ID: "runner", }, }, } // read provisioners from a config file if provided if s.PluginConfigFile != nil { - r, err := provisioner.RegistryFromConfigFile(provisionerCtx, s.PluginConfigFile, controllerClient) + r, err := provisioner.RegistryFromConfigFile(provisionerCtx, s.PluginConfigFile, controllerClient, runnerScaling) if err != nil { return fmt.Errorf("failed to create provisioner registry: %w", err) } diff --git a/frontend/cli/cmd_update.go b/frontend/cli/cmd_update.go index 5c92f9cfa2..35b54c9c8c 100644 --- a/frontend/cli/cmd_update.go +++ b/frontend/cli/cmd_update.go @@ -18,7 +18,7 @@ type updateCmd struct { func (u *updateCmd) Run(ctx context.Context, client ftlv1connect.ControllerServiceClient) error { _, err := client.UpdateDeploy(ctx, connect.NewRequest(&ftlv1.UpdateDeployRequest{ DeploymentKey: u.Deployment.String(), - MinReplicas: u.Replicas, + MinReplicas: &u.Replicas, })) if err != nil { return err diff --git a/frontend/cli/main.go b/frontend/cli/main.go index 11268f41c8..750d1663d2 100644 --- a/frontend/cli/main.go +++ b/frontend/cli/main.go @@ -19,8 +19,8 @@ import ( "github.com/TBD54566975/ftl" "github.com/TBD54566975/ftl/backend/controller/admin" + provisionerconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" - "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1beta1/provisioner/provisionerconnect" "github.com/TBD54566975/ftl/internal" _ "github.com/TBD54566975/ftl/internal/automaxprocs" // Set GOMAXPROCS to match Linux container CPU quota. "github.com/TBD54566975/ftl/internal/configuration" diff --git a/frontend/console/e2e/command-palette.spec.ts b/frontend/console/e2e/command-palette.spec.ts new file mode 100644 index 0000000000..74c5bdae66 --- /dev/null +++ b/frontend/console/e2e/command-palette.spec.ts @@ -0,0 +1,28 @@ +import { expect, test } from '@playwright/test' +import { pressShortcut } from './helpers' + +test('shows command palette results', async ({ page }) => { + await page.goto('http://localhost:8892') + + await page.click('#command-palette-search') + await page.fill('#command-palette-search-input', 'echo') + + // Command palette should be showing the echo parts + await expect(page.locator('[role="listbox"]').getByText('echo.EchoRequest', { exact: true })).toBeVisible() + await expect(page.locator('[role="listbox"]').getByText('echo.EchoResponse', { exact: true })).toBeVisible() + await expect(page.locator('[role="listbox"]').getByText('echo.echo', { exact: true })).toBeVisible() +}) + +test('opens command palette with keyboard shortcut', async ({ page }) => { + await page.goto('http://localhost:8892') + + await pressShortcut(page, 'k') + + await expect(page.locator('#command-palette-search-input')).toBeVisible() + await page.fill('#command-palette-search-input', 'echo') + + // Command palette should be showing the echo parts + await expect(page.locator('[role="listbox"]').getByText('echo.EchoRequest', { exact: true })).toBeVisible() + await expect(page.locator('[role="listbox"]').getByText('echo.EchoResponse', { exact: true })).toBeVisible() + await expect(page.locator('[role="listbox"]').getByText('echo.echo', { exact: true })).toBeVisible() +}) diff --git a/frontend/console/e2e/command-palette.ts b/frontend/console/e2e/command-palette.ts deleted file mode 100644 index c592b2b991..0000000000 --- a/frontend/console/e2e/command-palette.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { expect, ftlTest } from './ftl-test' - -ftlTest('shows command palette results', async ({ page }) => { - await page.goto('http://localhost:8892') - - await page.click('#command-palette-search') - await page.fill('#search-input', 'echo') - - // Command palette should be showing the echo parts - await expect(page.getByText('echo.EchoRequest')).toBeVisible() - await expect(page.getByText('echo.EchoReponse')).toBeVisible() - await expect(page.getByText('echo.echo')).toBeVisible() -}) diff --git a/frontend/console/e2e/helpers.ts b/frontend/console/e2e/helpers.ts index 344ace0e99..272d347266 100644 --- a/frontend/console/e2e/helpers.ts +++ b/frontend/console/e2e/helpers.ts @@ -23,3 +23,13 @@ export async function navigateToDecl(page: Page, moduleName: string, declName: s await page.locator(`a#decl-${declName}`).click() await expect(page).toHaveURL(new RegExp(`/modules/${moduleName}/verb/${declName}`)) } + +export async function pressShortcut(page: Page, key: string) { + // Get the platform-specific modifier key + const isMac = await page.evaluate(() => navigator.userAgent.includes('Mac')) + const modifier = isMac ? 'Meta' : 'Control' + + await page.keyboard.down(modifier) + await page.keyboard.press(key) + await page.keyboard.up(modifier) +} diff --git a/frontend/console/src/api/modules/use-modules.ts b/frontend/console/src/api/modules/use-modules.ts index fcfe7b9f91..a2cc5bd59e 100644 --- a/frontend/console/src/api/modules/use-modules.ts +++ b/frontend/console/src/api/modules/use-modules.ts @@ -1,7 +1,7 @@ import { Code, ConnectError } from '@connectrpc/connect' import { useQuery } from '@tanstack/react-query' import { useClient } from '../../hooks/use-client' -import { ConsoleService } from '../../protos/xyz/block/ftl/v1/console/console_connect' +import { ConsoleService } from '../../protos/xyz/block/ftl/console/v1/console_connect' import { useSchema } from '../schema/use-schema' const useModulesKey = 'modules' diff --git a/frontend/console/src/api/modules/use-stream-modules.ts b/frontend/console/src/api/modules/use-stream-modules.ts index 8582d1c7a7..6fd78baf5a 100644 --- a/frontend/console/src/api/modules/use-stream-modules.ts +++ b/frontend/console/src/api/modules/use-stream-modules.ts @@ -2,8 +2,8 @@ import { Code, ConnectError } from '@connectrpc/connect' import { useQuery, useQueryClient } from '@tanstack/react-query' import { useClient } from '../../hooks/use-client' import { useVisibility } from '../../hooks/use-visibility' -import { ConsoleService } from '../../protos/xyz/block/ftl/v1/console/console_connect' -import type { Module, Topology } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import { ConsoleService } from '../../protos/xyz/block/ftl/console/v1/console_connect' +import type { Module, Topology } from '../../protos/xyz/block/ftl/console/v1/console_pb' const streamModulesKey = 'streamModules' diff --git a/frontend/console/src/api/schema/use-schema.ts b/frontend/console/src/api/schema/use-schema.ts index 0ccd35b422..1277417926 100644 --- a/frontend/console/src/api/schema/use-schema.ts +++ b/frontend/console/src/api/schema/use-schema.ts @@ -21,8 +21,8 @@ export const useSchema = (): UseQueryResult => { const deploymentKey = response.deploymentKey ?? '' console.log(`schema changed: ${DeploymentChangeType[response.changeType]} ${deploymentKey}`) switch (response.changeType) { - case DeploymentChangeType.DEPLOYMENT_ADDED: - case DeploymentChangeType.DEPLOYMENT_CHANGED: { + case DeploymentChangeType.ADDED: + case DeploymentChangeType.CHANGED: { const previousDeploymentKey = currentDeployments[moduleName] currentDeployments[moduleName] = deploymentKey @@ -35,7 +35,7 @@ export const useSchema = (): UseQueryResult => { break } - case DeploymentChangeType.DEPLOYMENT_REMOVED: + case DeploymentChangeType.REMOVED: if (currentDeployments[moduleName] === deploymentKey) { delete schemaMap[deploymentKey] delete currentDeployments[moduleName] diff --git a/frontend/console/src/api/timeline/timeline-filters.ts b/frontend/console/src/api/timeline/timeline-filters.ts index 924616ccff..be2c2f7682 100644 --- a/frontend/console/src/api/timeline/timeline-filters.ts +++ b/frontend/console/src/api/timeline/timeline-filters.ts @@ -1,21 +1,21 @@ import type { Timestamp } from '@bufbuild/protobuf' import { type EventType, - EventsQuery_CallFilter, - EventsQuery_DeploymentFilter, - EventsQuery_EventTypeFilter, - EventsQuery_Filter, - EventsQuery_IDFilter, - EventsQuery_LogLevelFilter, - EventsQuery_ModuleFilter, - EventsQuery_RequestFilter, - EventsQuery_TimeFilter, + GetEventsRequest_CallFilter, + GetEventsRequest_DeploymentFilter, + GetEventsRequest_EventTypeFilter, + GetEventsRequest_Filter, + GetEventsRequest_IDFilter, + GetEventsRequest_LogLevelFilter, + GetEventsRequest_ModuleFilter, + GetEventsRequest_RequestFilter, + GetEventsRequest_TimeFilter, type LogLevel, -} from '../../protos/xyz/block/ftl/v1/console/console_pb' +} from '../../protos/xyz/block/ftl/console/v1/console_pb' -export const requestKeysFilter = (requestKeys: string[]): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const requestFilter = new EventsQuery_RequestFilter() +export const requestKeysFilter = (requestKeys: string[]): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const requestFilter = new GetEventsRequest_RequestFilter() requestFilter.requests = requestKeys filter.filter = { case: 'requests', @@ -24,9 +24,9 @@ export const requestKeysFilter = (requestKeys: string[]): EventsQuery_Filter => return filter } -export const eventTypesFilter = (eventTypes: EventType[]): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const typesFilter = new EventsQuery_EventTypeFilter() +export const eventTypesFilter = (eventTypes: EventType[]): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const typesFilter = new GetEventsRequest_EventTypeFilter() typesFilter.eventTypes = eventTypes filter.filter = { case: 'eventTypes', @@ -35,9 +35,9 @@ export const eventTypesFilter = (eventTypes: EventType[]): EventsQuery_Filter => return filter } -export const logLevelFilter = (logLevel: LogLevel): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const logFilter = new EventsQuery_LogLevelFilter() +export const logLevelFilter = (logLevel: LogLevel): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const logFilter = new GetEventsRequest_LogLevelFilter() logFilter.logLevel = logLevel filter.filter = { case: 'logLevel', @@ -46,9 +46,9 @@ export const logLevelFilter = (logLevel: LogLevel): EventsQuery_Filter => { return filter } -export const modulesFilter = (modules: string[]): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const deploymentsFilter = new EventsQuery_DeploymentFilter() +export const modulesFilter = (modules: string[]): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const deploymentsFilter = new GetEventsRequest_DeploymentFilter() deploymentsFilter.deployments = modules filter.filter = { case: 'deployments', @@ -57,9 +57,9 @@ export const modulesFilter = (modules: string[]): EventsQuery_Filter => { return filter } -export const callFilter = (destModule: string, destVerb?: string, sourceModule?: string): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const callFilter = new EventsQuery_CallFilter() +export const callFilter = (destModule: string, destVerb?: string, sourceModule?: string): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const callFilter = new GetEventsRequest_CallFilter() callFilter.destModule = destModule callFilter.destVerb = destVerb callFilter.sourceModule = sourceModule @@ -70,9 +70,9 @@ export const callFilter = (destModule: string, destVerb?: string, sourceModule?: return filter } -export const moduleFilter = (module: string, verb?: string): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const moduleFilter = new EventsQuery_ModuleFilter() +export const moduleFilter = (module: string, verb?: string): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const moduleFilter = new GetEventsRequest_ModuleFilter() moduleFilter.module = module moduleFilter.verb = verb filter.filter = { @@ -82,9 +82,9 @@ export const moduleFilter = (module: string, verb?: string): EventsQuery_Filter return filter } -export const timeFilter = (olderThan: Timestamp | undefined, newerThan: Timestamp | undefined): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const timeFilter = new EventsQuery_TimeFilter() +export const timeFilter = (olderThan: Timestamp | undefined, newerThan: Timestamp | undefined): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const timeFilter = new GetEventsRequest_TimeFilter() timeFilter.olderThan = olderThan timeFilter.newerThan = newerThan filter.filter = { @@ -100,9 +100,9 @@ export const eventIdFilter = ({ }: { lowerThan?: bigint higherThan?: bigint -}): EventsQuery_Filter => { - const filter = new EventsQuery_Filter() - const idFilter = new EventsQuery_IDFilter() +}): GetEventsRequest_Filter => { + const filter = new GetEventsRequest_Filter() + const idFilter = new GetEventsRequest_IDFilter() idFilter.lowerThan = lowerThan idFilter.higherThan = higherThan filter.filter = { diff --git a/frontend/console/src/api/timeline/use-module-trace-events.ts b/frontend/console/src/api/timeline/use-module-trace-events.ts index 1d41c71c37..9cd81e7ed7 100644 --- a/frontend/console/src/api/timeline/use-module-trace-events.ts +++ b/frontend/console/src/api/timeline/use-module-trace-events.ts @@ -1,8 +1,8 @@ -import { EventType, type EventsQuery_Filter } from '../../protos/xyz/block/ftl/v1/console/console_pb.ts' +import { EventType, type GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' import { eventTypesFilter, moduleFilter } from './timeline-filters.ts' import { useTimeline } from './use-timeline.ts' -export const useModuleTraceEvents = (module: string, verb?: string, filters: EventsQuery_Filter[] = []) => { +export const useModuleTraceEvents = (module: string, verb?: string, filters: GetEventsRequest_Filter[] = []) => { const eventTypes = [EventType.CALL, EventType.INGRESS] const allFilters = [...filters, moduleFilter(module, verb), eventTypesFilter(eventTypes)] const timelineQuery = useTimeline(true, allFilters, 500) diff --git a/frontend/console/src/api/timeline/use-request-trace-events.ts b/frontend/console/src/api/timeline/use-request-trace-events.ts index 31ebcf1b86..01c9eed39e 100644 --- a/frontend/console/src/api/timeline/use-request-trace-events.ts +++ b/frontend/console/src/api/timeline/use-request-trace-events.ts @@ -2,17 +2,17 @@ import { type AsyncExecuteEvent, type CallEvent, EventType, - type EventsQuery_Filter, + type GetEventsRequest_Filter, type IngressEvent, type PubSubConsumeEvent, type PubSubPublishEvent, -} from '../../protos/xyz/block/ftl/v1/console/console_pb.ts' +} from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' import { eventTypesFilter, requestKeysFilter } from './timeline-filters.ts' import { useTimeline } from './use-timeline.ts' export type TraceEvent = CallEvent | IngressEvent | AsyncExecuteEvent | PubSubPublishEvent | PubSubConsumeEvent -export const useRequestTraceEvents = (requestKey?: string, filters: EventsQuery_Filter[] = []) => { +export const useRequestTraceEvents = (requestKey?: string, filters: GetEventsRequest_Filter[] = []) => { const eventTypes = [EventType.CALL, EventType.ASYNC_EXECUTE, EventType.INGRESS, EventType.PUBSUB_CONSUME, EventType.PUBSUB_PUBLISH] const allFilters = [...filters, requestKeysFilter([requestKey || '']), eventTypesFilter(eventTypes)] diff --git a/frontend/console/src/api/timeline/use-timeline-calls.ts b/frontend/console/src/api/timeline/use-timeline-calls.ts index 0d005d44c2..c555929990 100644 --- a/frontend/console/src/api/timeline/use-timeline-calls.ts +++ b/frontend/console/src/api/timeline/use-timeline-calls.ts @@ -1,8 +1,8 @@ -import { EventType, type EventsQuery_Filter } from '../../protos/xyz/block/ftl/v1/console/console_pb.ts' +import { EventType, type GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' import { eventTypesFilter } from './timeline-filters.ts' import { useTimeline } from './use-timeline.ts' -export const useTimelineCalls = (isStreaming: boolean, filters: EventsQuery_Filter[], enabled = true) => { +export const useTimelineCalls = (isStreaming: boolean, filters: GetEventsRequest_Filter[], enabled = true) => { const allFilters = [...filters, eventTypesFilter([EventType.CALL])] const timelineQuery = useTimeline(isStreaming, allFilters, 1000, enabled) diff --git a/frontend/console/src/api/timeline/use-timeline.ts b/frontend/console/src/api/timeline/use-timeline.ts index 39e839f671..43f824d761 100644 --- a/frontend/console/src/api/timeline/use-timeline.ts +++ b/frontend/console/src/api/timeline/use-timeline.ts @@ -2,18 +2,18 @@ import { Code, ConnectError } from '@connectrpc/connect' import { useQuery, useQueryClient } from '@tanstack/react-query' import { useClient } from '../../hooks/use-client' import { useVisibility } from '../../hooks/use-visibility' -import { ConsoleService } from '../../protos/xyz/block/ftl/v1/console/console_connect' -import { type Event, type EventsQuery_Filter, EventsQuery_Order } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import { ConsoleService } from '../../protos/xyz/block/ftl/console/v1/console_connect' +import { type Event, type GetEventsRequest_Filter, GetEventsRequest_Order } from '../../protos/xyz/block/ftl/console/v1/console_pb' const timelineKey = 'timeline' const maxTimelineEntries = 1000 -export const useTimeline = (isStreaming: boolean, filters: EventsQuery_Filter[], updateIntervalMs = 1000, enabled = true) => { +export const useTimeline = (isStreaming: boolean, filters: GetEventsRequest_Filter[], updateIntervalMs = 1000, enabled = true) => { const client = useClient(ConsoleService) const queryClient = useQueryClient() const isVisible = useVisibility() - const order = EventsQuery_Order.DESC + const order = GetEventsRequest_Order.DESC const limit = isStreaming ? 200 : 1000 const queryKey = [timelineKey, isStreaming, filters, order, limit] diff --git a/frontend/console/src/features/deployments/DeploymentCard.tsx b/frontend/console/src/features/deployments/DeploymentCard.tsx index e4d5dae2e6..5e7d4e8ec6 100644 --- a/frontend/console/src/features/deployments/DeploymentCard.tsx +++ b/frontend/console/src/features/deployments/DeploymentCard.tsx @@ -4,7 +4,7 @@ import { useModules } from '../../api/modules/use-modules' import { Badge } from '../../components/Badge' import { Card } from '../../components/Card' import { Chip } from '../../components/Chip' -import type { Module } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Module } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { deploymentTextColor } from './deployment.utils' export const DeploymentCard = ({ deploymentKey, className }: { deploymentKey: string; className?: string }) => { diff --git a/frontend/console/src/features/graph/GraphPage.tsx b/frontend/console/src/features/graph/GraphPage.tsx index ab4ad6c1fe..b5933f27c5 100644 --- a/frontend/console/src/features/graph/GraphPage.tsx +++ b/frontend/console/src/features/graph/GraphPage.tsx @@ -3,7 +3,7 @@ import { type NavigateFunction, useNavigate } from 'react-router-dom' import { useModules } from '../../api/modules/use-modules' import { Loader } from '../../components/Loader' import { ResizablePanels } from '../../components/ResizablePanels' -import { Config, Data, Database, Enum, Module, Secret, Topic, Verb } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import { Config, Data, Database, Enum, Module, Secret, Topic, Verb } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { configPanels } from '../modules/decls/config/ConfigRightPanels' import { dataPanels } from '../modules/decls/data/DataRightPanels' import { databasePanels } from '../modules/decls/database/DatabaseRightPanels' diff --git a/frontend/console/src/features/graph/ModulePanels.tsx b/frontend/console/src/features/graph/ModulePanels.tsx index c0f2965ad6..930cc1721b 100644 --- a/frontend/console/src/features/graph/ModulePanels.tsx +++ b/frontend/console/src/features/graph/ModulePanels.tsx @@ -1,7 +1,7 @@ import { ArrowLeftRightIcon, FunctionIcon, InboxDownloadIcon, InboxUploadIcon, LinkSquare02Icon, Settings02Icon, SquareLock02Icon } from 'hugeicons-react' import type { NavigateFunction } from 'react-router-dom' import { RightPanelAttribute } from '../../components/RightPanelAttribute' -import type { Module } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Module } from '../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../graph/ExpandablePanel' import { callsIn, callsOut } from '../modules/module.utils' import { Schema } from '../modules/schema/Schema' diff --git a/frontend/console/src/features/graph/RightPanelHeader.tsx b/frontend/console/src/features/graph/RightPanelHeader.tsx index 46605a7690..403cb0f32f 100644 --- a/frontend/console/src/features/graph/RightPanelHeader.tsx +++ b/frontend/console/src/features/graph/RightPanelHeader.tsx @@ -1,5 +1,5 @@ import { CellsIcon, PackageIcon } from 'hugeicons-react' -import { Config, Data, Database, Enum, Module, Secret, Verb } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import { Config, Data, Database, Enum, Module, Secret, Verb } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { RightPanelHeader } from '../modules/decls/RightPanelHeader' import { declIcon } from '../modules/module.utils' import type { FTLNode } from './graph-utils' diff --git a/frontend/console/src/features/graph/create-layout.ts b/frontend/console/src/features/graph/create-layout.ts index 29afec4200..4758f36f8f 100644 --- a/frontend/console/src/features/graph/create-layout.ts +++ b/frontend/console/src/features/graph/create-layout.ts @@ -1,5 +1,5 @@ import type { Edge, Node } from 'reactflow' -import type { Module, Topology } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Module, Topology } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { verbCalls } from '../modules/decls/verb/verb.utils' import { declIcon } from '../modules/module.utils' import { declHeight } from './DeclNode' diff --git a/frontend/console/src/features/graph/graph-utils.ts b/frontend/console/src/features/graph/graph-utils.ts index 084bf55ff1..6f1cc7b0e6 100644 --- a/frontend/console/src/features/graph/graph-utils.ts +++ b/frontend/console/src/features/graph/graph-utils.ts @@ -1,6 +1,6 @@ import type { EdgeDefinition, ElementDefinition } from 'cytoscape' import type { StreamModulesResult } from '../../api/modules/use-stream-modules' -import type { Config, Data, Database, Enum, Module, Secret, Topic, Verb } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Config, Data, Database, Enum, Module, Secret, Topic, Verb } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { getNodeBackgroundColor } from './graph-styles' export type FTLNode = Module | Verb | Secret | Config | Data | Database | Topic | Enum diff --git a/frontend/console/src/features/modules/ModulesPanel.tsx b/frontend/console/src/features/modules/ModulesPanel.tsx index 47455bf9cf..9c0c454944 100644 --- a/frontend/console/src/features/modules/ModulesPanel.tsx +++ b/frontend/console/src/features/modules/ModulesPanel.tsx @@ -1,7 +1,7 @@ import { useModules } from '../../api/modules/use-modules' import { AttributeBadge } from '../../components' import { List } from '../../components/List' -import type { Module } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Module } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { classNames } from '../../utils' import { deploymentTextColor } from '../deployments/deployment.utils' diff --git a/frontend/console/src/features/modules/decls/DeclDefaultPanels.tsx b/frontend/console/src/features/modules/decls/DeclDefaultPanels.tsx index b1e8de7277..921921b31b 100644 --- a/frontend/console/src/features/modules/decls/DeclDefaultPanels.tsx +++ b/frontend/console/src/features/modules/decls/DeclDefaultPanels.tsx @@ -1,4 +1,4 @@ -import type { Ref } from '../../../protos/xyz/block/ftl/v1/schema/schema_pb' +import type { Ref } from '../../../protos/xyz/block/ftl/schema/v1/schema_pb' import type { ExpandablePanelProps } from '../../graph/ExpandablePanel' import { Schema } from '../schema/Schema' import { References } from './References' diff --git a/frontend/console/src/features/modules/decls/DeclPanel.tsx b/frontend/console/src/features/modules/decls/DeclPanel.tsx index 9d0f98c8f2..1f3cd34e4f 100644 --- a/frontend/console/src/features/modules/decls/DeclPanel.tsx +++ b/frontend/console/src/features/modules/decls/DeclPanel.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { useParams } from 'react-router-dom' import { useStreamModules } from '../../../api/modules/use-stream-modules' -import type { Config, Data, Database, Enum, Secret, Topic, TypeAlias } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Config, Data, Database, Enum, Secret, Topic, TypeAlias } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { declFromModules } from '../module.utils' import { declSchemaFromModules } from '../schema/schema.utils' import { ConfigPanel } from './config/ConfigPanel' diff --git a/frontend/console/src/features/modules/decls/References.tsx b/frontend/console/src/features/modules/decls/References.tsx index 811caae450..4ea7050721 100644 --- a/frontend/console/src/features/modules/decls/References.tsx +++ b/frontend/console/src/features/modules/decls/References.tsx @@ -1,4 +1,4 @@ -import type { Ref } from '../../../protos/xyz/block/ftl/v1/schema/schema_pb' +import type { Ref } from '../../../protos/xyz/block/ftl/schema/v1/schema_pb' import { DeclLink } from './DeclLink' export const References = ({ references }: { references: Ref[] }) => { diff --git a/frontend/console/src/features/modules/decls/config/ConfigPanel.tsx b/frontend/console/src/features/modules/decls/config/ConfigPanel.tsx index cfc664e773..f91611dc15 100644 --- a/frontend/console/src/features/modules/decls/config/ConfigPanel.tsx +++ b/frontend/console/src/features/modules/decls/config/ConfigPanel.tsx @@ -3,8 +3,8 @@ import { Button } from '../../../../components/Button' import { CodeEditor } from '../../../../components/CodeEditor' import { ResizablePanels } from '../../../../components/ResizablePanels' import { useClient } from '../../../../hooks/use-client' -import { ConsoleService } from '../../../../protos/xyz/block/ftl/v1/console/console_connect' -import type { Config } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import { ConsoleService } from '../../../../protos/xyz/block/ftl/console/v1/console_connect' +import type { Config } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { NotificationType, NotificationsContext } from '../../../../providers/notifications-provider' import { declIcon } from '../../module.utils' import { PanelHeader } from '../PanelHeader' diff --git a/frontend/console/src/features/modules/decls/config/ConfigRightPanels.tsx b/frontend/console/src/features/modules/decls/config/ConfigRightPanels.tsx index 2ed1f8c876..61158233ed 100644 --- a/frontend/console/src/features/modules/decls/config/ConfigRightPanels.tsx +++ b/frontend/console/src/features/modules/decls/config/ConfigRightPanels.tsx @@ -1,5 +1,5 @@ import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { Config } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Config } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { DeclDefaultPanels } from '../DeclDefaultPanels' diff --git a/frontend/console/src/features/modules/decls/data/DataPanel.tsx b/frontend/console/src/features/modules/decls/data/DataPanel.tsx index 64b554d543..af88b37a1b 100644 --- a/frontend/console/src/features/modules/decls/data/DataPanel.tsx +++ b/frontend/console/src/features/modules/decls/data/DataPanel.tsx @@ -1,5 +1,5 @@ import { ResizablePanels } from '../../../../components/ResizablePanels' -import type { Data } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Data } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { declIcon } from '../../module.utils' import { Schema } from '../../schema/Schema' import { PanelHeader } from '../PanelHeader' diff --git a/frontend/console/src/features/modules/decls/data/DataRightPanels.tsx b/frontend/console/src/features/modules/decls/data/DataRightPanels.tsx index 8281981a0a..db86e561d5 100644 --- a/frontend/console/src/features/modules/decls/data/DataRightPanels.tsx +++ b/frontend/console/src/features/modules/decls/data/DataRightPanels.tsx @@ -1,5 +1,5 @@ import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { Data } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Data } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { DeclDefaultPanels } from '../DeclDefaultPanels' diff --git a/frontend/console/src/features/modules/decls/database/DatabasePanel.tsx b/frontend/console/src/features/modules/decls/database/DatabasePanel.tsx index 6a2cf3e9de..2b2dbe0c08 100644 --- a/frontend/console/src/features/modules/decls/database/DatabasePanel.tsx +++ b/frontend/console/src/features/modules/decls/database/DatabasePanel.tsx @@ -1,5 +1,5 @@ import { ResizablePanels } from '../../../../components/ResizablePanels' -import type { Database } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Database } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { declIcon } from '../../module.utils' import { Schema } from '../../schema/Schema' import { PanelHeader } from '../PanelHeader' diff --git a/frontend/console/src/features/modules/decls/database/DatabaseRightPanels.tsx b/frontend/console/src/features/modules/decls/database/DatabaseRightPanels.tsx index 194eb872b5..70820c58ab 100644 --- a/frontend/console/src/features/modules/decls/database/DatabaseRightPanels.tsx +++ b/frontend/console/src/features/modules/decls/database/DatabaseRightPanels.tsx @@ -1,5 +1,5 @@ import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { Database } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Database } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { DeclDefaultPanels } from '../DeclDefaultPanels' diff --git a/frontend/console/src/features/modules/decls/enum/EnumPanel.tsx b/frontend/console/src/features/modules/decls/enum/EnumPanel.tsx index ea9fb03ebb..da72fd4ac5 100644 --- a/frontend/console/src/features/modules/decls/enum/EnumPanel.tsx +++ b/frontend/console/src/features/modules/decls/enum/EnumPanel.tsx @@ -1,5 +1,5 @@ import { ResizablePanels } from '../../../../components/ResizablePanels' -import type { Enum } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Enum } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { declIcon } from '../../module.utils' import { Schema } from '../../schema/Schema' import { PanelHeader } from '../PanelHeader' diff --git a/frontend/console/src/features/modules/decls/enum/EnumRightPanels.tsx b/frontend/console/src/features/modules/decls/enum/EnumRightPanels.tsx index 265eba2594..e257557a93 100644 --- a/frontend/console/src/features/modules/decls/enum/EnumRightPanels.tsx +++ b/frontend/console/src/features/modules/decls/enum/EnumRightPanels.tsx @@ -1,5 +1,5 @@ import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { Enum } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Enum } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { DeclDefaultPanels } from '../DeclDefaultPanels' diff --git a/frontend/console/src/features/modules/decls/enum/enum.utils.ts b/frontend/console/src/features/modules/decls/enum/enum.utils.ts index cda7457a73..69a5f4ac8e 100644 --- a/frontend/console/src/features/modules/decls/enum/enum.utils.ts +++ b/frontend/console/src/features/modules/decls/enum/enum.utils.ts @@ -1,4 +1,4 @@ -import type { Enum } from '../../../../protos/xyz/block/ftl/v1/schema/schema_pb' +import type { Enum } from '../../../../protos/xyz/block/ftl/schema/v1/schema_pb' export function enumType(value: Enum): string { if (!value.type) { diff --git a/frontend/console/src/features/modules/decls/secret/SecretPanel.tsx b/frontend/console/src/features/modules/decls/secret/SecretPanel.tsx index d86c710809..099aeabe40 100644 --- a/frontend/console/src/features/modules/decls/secret/SecretPanel.tsx +++ b/frontend/console/src/features/modules/decls/secret/SecretPanel.tsx @@ -3,8 +3,8 @@ import { Button } from '../../../../components/Button' import { CodeEditor } from '../../../../components/CodeEditor' import { ResizablePanels } from '../../../../components/ResizablePanels' import { useClient } from '../../../../hooks/use-client' -import { ConsoleService } from '../../../../protos/xyz/block/ftl/v1/console/console_connect' -import type { Secret } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import { ConsoleService } from '../../../../protos/xyz/block/ftl/console/v1/console_connect' +import type { Secret } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { NotificationType, NotificationsContext } from '../../../../providers/notifications-provider' import { declIcon } from '../../module.utils' import { PanelHeader } from '../PanelHeader' diff --git a/frontend/console/src/features/modules/decls/secret/SecretRightPanels.tsx b/frontend/console/src/features/modules/decls/secret/SecretRightPanels.tsx index 1eb3afe120..1186cdf8c6 100644 --- a/frontend/console/src/features/modules/decls/secret/SecretRightPanels.tsx +++ b/frontend/console/src/features/modules/decls/secret/SecretRightPanels.tsx @@ -1,5 +1,5 @@ import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { Secret } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Secret } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { DeclDefaultPanels } from '../DeclDefaultPanels' diff --git a/frontend/console/src/features/modules/decls/topic/TopicPanel.tsx b/frontend/console/src/features/modules/decls/topic/TopicPanel.tsx index c124323488..256739fae0 100644 --- a/frontend/console/src/features/modules/decls/topic/TopicPanel.tsx +++ b/frontend/console/src/features/modules/decls/topic/TopicPanel.tsx @@ -1,5 +1,5 @@ import { ResizablePanels } from '../../../../components/ResizablePanels' -import type { Topic } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Topic } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { declIcon } from '../../module.utils' import { Schema } from '../../schema/Schema' import { PanelHeader } from '../PanelHeader' diff --git a/frontend/console/src/features/modules/decls/topic/TopicRightPanels.tsx b/frontend/console/src/features/modules/decls/topic/TopicRightPanels.tsx index 4d3a753250..c5f4b44a6d 100644 --- a/frontend/console/src/features/modules/decls/topic/TopicRightPanels.tsx +++ b/frontend/console/src/features/modules/decls/topic/TopicRightPanels.tsx @@ -1,5 +1,5 @@ import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { Topic } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Topic } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { DeclDefaultPanels } from '../DeclDefaultPanels' export const topicPanels = (topic: Topic, schema?: string) => { diff --git a/frontend/console/src/features/modules/decls/typealias/TypeAliasPanel.tsx b/frontend/console/src/features/modules/decls/typealias/TypeAliasPanel.tsx index 633298eb65..e722facb4a 100644 --- a/frontend/console/src/features/modules/decls/typealias/TypeAliasPanel.tsx +++ b/frontend/console/src/features/modules/decls/typealias/TypeAliasPanel.tsx @@ -1,5 +1,5 @@ import { ResizablePanels } from '../../../../components/ResizablePanels' -import type { TypeAlias } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { TypeAlias } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { declIcon } from '../../module.utils' import { Schema } from '../../schema/Schema' import { PanelHeader } from '../PanelHeader' diff --git a/frontend/console/src/features/modules/decls/typealias/TypeAliasRightPanels.tsx b/frontend/console/src/features/modules/decls/typealias/TypeAliasRightPanels.tsx index ab155e2158..06411e1e48 100644 --- a/frontend/console/src/features/modules/decls/typealias/TypeAliasRightPanels.tsx +++ b/frontend/console/src/features/modules/decls/typealias/TypeAliasRightPanels.tsx @@ -1,5 +1,5 @@ import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { TypeAlias } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { TypeAlias } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { DeclDefaultPanels } from '../DeclDefaultPanels' export const typeAliasPanels = (typeAlias: TypeAlias, schema?: string) => { diff --git a/frontend/console/src/features/modules/decls/verb/VerbPage.tsx b/frontend/console/src/features/modules/decls/verb/VerbPage.tsx index c36c41e818..d5d6e09dfd 100644 --- a/frontend/console/src/features/modules/decls/verb/VerbPage.tsx +++ b/frontend/console/src/features/modules/decls/verb/VerbPage.tsx @@ -4,7 +4,7 @@ import { useNavigate } from 'react-router-dom' import { useModules } from '../../../../api/modules/use-modules' import { Loader } from '../../../../components/Loader' import { ResizablePanels } from '../../../../components/ResizablePanels' -import type { Module, Verb } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Module, Verb } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import { NotificationType, NotificationsContext } from '../../../../providers/notifications-provider' import { SidePanelProvider } from '../../../../providers/side-panel-provider' diff --git a/frontend/console/src/features/modules/decls/verb/VerbRequestForm.tsx b/frontend/console/src/features/modules/decls/verb/VerbRequestForm.tsx index da4550e25b..14040b694f 100644 --- a/frontend/console/src/features/modules/decls/verb/VerbRequestForm.tsx +++ b/frontend/console/src/features/modules/decls/verb/VerbRequestForm.tsx @@ -3,8 +3,8 @@ import { Button } from '../../../../components/Button' import { CodeEditor } from '../../../../components/CodeEditor' import { ResizableVerticalPanels } from '../../../../components/ResizableVerticalPanels' import { useClient } from '../../../../hooks/use-client' -import type { Module, Verb } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' -import type { Ref } from '../../../../protos/xyz/block/ftl/v1/schema/schema_pb' +import type { Module, Verb } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Ref } from '../../../../protos/xyz/block/ftl/schema/v1/schema_pb' import { VerbService } from '../../../../protos/xyz/block/ftl/v1/verb_connect' import { NotificationType, NotificationsContext } from '../../../../providers/notifications-provider' import { classNames } from '../../../../utils' diff --git a/frontend/console/src/features/modules/decls/verb/VerbRightPanel.tsx b/frontend/console/src/features/modules/decls/verb/VerbRightPanel.tsx index b71791b069..c2f3a923bb 100644 --- a/frontend/console/src/features/modules/decls/verb/VerbRightPanel.tsx +++ b/frontend/console/src/features/modules/decls/verb/VerbRightPanel.tsx @@ -1,7 +1,7 @@ import { InboxUploadIcon } from 'hugeicons-react' import { Link } from 'react-router-dom' import { RightPanelAttribute } from '../../../../components/RightPanelAttribute' -import type { Verb } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Verb } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' import type { ExpandablePanelProps } from '../../../graph/ExpandablePanel' import { Schema } from '../../schema/Schema' import { type VerbRef, httpRequestPath, ingress, isHttpIngress, verbCalls } from './verb.utils' diff --git a/frontend/console/src/features/modules/decls/verb/verb.utils.ts b/frontend/console/src/features/modules/decls/verb/verb.utils.ts index 9fe0bd88be..b40752c545 100644 --- a/frontend/console/src/features/modules/decls/verb/verb.utils.ts +++ b/frontend/console/src/features/modules/decls/verb/verb.utils.ts @@ -1,7 +1,7 @@ import { JSONSchemaFaker } from 'json-schema-faker' import type { JsonValue } from 'type-fest/source/basic' -import type { Module, Verb } from '../../../../protos/xyz/block/ftl/v1/console/console_pb' -import type { MetadataCalls, MetadataCronJob, MetadataIngress, MetadataSubscriber, Ref } from '../../../../protos/xyz/block/ftl/v1/schema/schema_pb' +import type { Module, Verb } from '../../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { MetadataCalls, MetadataCronJob, MetadataIngress, MetadataSubscriber, Ref } from '../../../../protos/xyz/block/ftl/schema/v1/schema_pb' const basePath = 'http://localhost:8891/' diff --git a/frontend/console/src/features/modules/module.utils.ts b/frontend/console/src/features/modules/module.utils.ts index e0c06e55cb..4e8ddc56f1 100644 --- a/frontend/console/src/features/modules/module.utils.ts +++ b/frontend/console/src/features/modules/module.utils.ts @@ -14,9 +14,9 @@ import { Settings02Icon, SquareLock02Icon, } from 'hugeicons-react' -import type { Module } from '../../protos/xyz/block/ftl/v1/console/console_pb' -import type { Config, Data, Database, Decl, Enum, Secret, Topic, TypeAlias, Verb } from '../../protos/xyz/block/ftl/v1/schema/schema_pb' -import type { MetadataCalls, Ref } from '../../protos/xyz/block/ftl/v1/schema/schema_pb' +import type { Module } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Config, Data, Database, Decl, Enum, Secret, Topic, TypeAlias, Verb } from '../../protos/xyz/block/ftl/schema/v1/schema_pb' +import type { MetadataCalls, Ref } from '../../protos/xyz/block/ftl/schema/v1/schema_pb' import { verbCalls } from './decls/verb/verb.utils' interface InCall { diff --git a/frontend/console/src/features/modules/schema/schema.utils.ts b/frontend/console/src/features/modules/schema/schema.utils.ts index 3328ec6e0d..5c1e21cd1a 100644 --- a/frontend/console/src/features/modules/schema/schema.utils.ts +++ b/frontend/console/src/features/modules/schema/schema.utils.ts @@ -1,4 +1,4 @@ -import type { Module } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Module } from '../../../protos/xyz/block/ftl/console/v1/console_pb' export const commentPrefix = '//' diff --git a/frontend/console/src/features/timeline/Timeline.tsx b/frontend/console/src/features/timeline/Timeline.tsx index 4db212a694..ecf2674fa4 100644 --- a/frontend/console/src/features/timeline/Timeline.tsx +++ b/frontend/console/src/features/timeline/Timeline.tsx @@ -2,7 +2,7 @@ import { useContext, useEffect, useState } from 'react' import { useSearchParams } from 'react-router-dom' import { timeFilter, useTimeline } from '../../api/timeline/index.ts' import { Loader } from '../../components/Loader.tsx' -import type { Event, EventsQuery_Filter } from '../../protos/xyz/block/ftl/v1/console/console_pb.ts' +import type { Event, GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' import { SidePanelContext } from '../../providers/side-panel-provider.tsx' import TimelineEventList from './TimelineEventList.tsx' import { TimelineAsyncExecuteDetails } from './details/TimelineAsyncExecuteDetails.tsx' @@ -17,7 +17,7 @@ import { TimelinePubSubConsumeDetails } from './details/TimelinePubSubConsumeDet import { TimelinePubSubPublishDetails } from './details/TimelinePubSubPublishDetails.tsx' import type { TimeSettings } from './filters/TimelineTimeControls.tsx' -export const Timeline = ({ timeSettings, filters }: { timeSettings: TimeSettings; filters: EventsQuery_Filter[] }) => { +export const Timeline = ({ timeSettings, filters }: { timeSettings: TimeSettings; filters: GetEventsRequest_Filter[] }) => { const [searchParams, setSearchParams] = useSearchParams() const { openPanel, closePanel, isOpen } = useContext(SidePanelContext) const [selectedEntry, setSelectedEntry] = useState(null) diff --git a/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx b/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx index a88ab9dc69..4fe922c4f6 100644 --- a/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx +++ b/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx @@ -1,4 +1,4 @@ -import type { AsyncExecuteEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { AsyncExecuteEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { refString } from '../modules/decls/verb/verb.utils' import { asyncEventTypeString } from './timeline.utils' diff --git a/frontend/console/src/features/timeline/TimelineCall.tsx b/frontend/console/src/features/timeline/TimelineCall.tsx index cd5e268f0b..b56dfe4a18 100644 --- a/frontend/console/src/features/timeline/TimelineCall.tsx +++ b/frontend/console/src/features/timeline/TimelineCall.tsx @@ -1,4 +1,4 @@ -import type { CallEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { CallEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { refString } from '../modules/decls/verb/verb.utils' export const TimelineCall = ({ call }: { call: CallEvent }) => { diff --git a/frontend/console/src/features/timeline/TimelineCronScheduled.tsx b/frontend/console/src/features/timeline/TimelineCronScheduled.tsx index 722f28c100..63c14fc135 100644 --- a/frontend/console/src/features/timeline/TimelineCronScheduled.tsx +++ b/frontend/console/src/features/timeline/TimelineCronScheduled.tsx @@ -1,4 +1,4 @@ -import type { CronScheduledEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { CronScheduledEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { formatTimestampShort } from '../../utils/date.utils.ts' import { refString } from '../modules/decls/verb/verb.utils.ts' diff --git a/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx b/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx index a3a4f879a4..36e71957bf 100644 --- a/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx +++ b/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx @@ -1,4 +1,4 @@ -import type { DeploymentCreatedEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { DeploymentCreatedEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' export const TimelineDeploymentCreated = ({ deployment }: { deployment: DeploymentCreatedEvent }) => { const title = `Created deployment ${deployment.key} for language ${deployment.language}` diff --git a/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx b/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx index 79b89b452f..07918210dc 100644 --- a/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx +++ b/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx @@ -1,4 +1,4 @@ -import type { DeploymentUpdatedEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { DeploymentUpdatedEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' export const TimelineDeploymentUpdated = ({ deployment }: { deployment: DeploymentUpdatedEvent }) => { const title = `Updated deployment ${deployment.key} min replicas to ${deployment.minReplicas} (previously ${deployment.prevMinReplicas})` diff --git a/frontend/console/src/features/timeline/TimelineEventList.tsx b/frontend/console/src/features/timeline/TimelineEventList.tsx index e8b484add6..8f17e9bec5 100644 --- a/frontend/console/src/features/timeline/TimelineEventList.tsx +++ b/frontend/console/src/features/timeline/TimelineEventList.tsx @@ -1,4 +1,4 @@ -import type { Event } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { formatTimestampShort } from '../../utils' import { deploymentTextColor } from '../deployments/deployment.utils' import { TimelineAsyncExecute } from './TimelineAsyncExecute' diff --git a/frontend/console/src/features/timeline/TimelineIcon.tsx b/frontend/console/src/features/timeline/TimelineIcon.tsx index 7da77023b2..9405e157f4 100644 --- a/frontend/console/src/features/timeline/TimelineIcon.tsx +++ b/frontend/console/src/features/timeline/TimelineIcon.tsx @@ -9,7 +9,7 @@ import { SatelliteIcon, TimeQuarterPassIcon, } from 'hugeicons-react' -import type { Event } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { LogLevelBadgeSmall } from '../logs/LogLevelBadgeSmall' import { eventTextColor } from './timeline.utils' diff --git a/frontend/console/src/features/timeline/TimelineIngress.tsx b/frontend/console/src/features/timeline/TimelineIngress.tsx index c0b43210e8..31776a8006 100644 --- a/frontend/console/src/features/timeline/TimelineIngress.tsx +++ b/frontend/console/src/features/timeline/TimelineIngress.tsx @@ -1,4 +1,4 @@ -import type { IngressEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { IngressEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { refString } from '../modules/decls/verb/verb.utils' export const TimelineIngress = ({ ingress }: { ingress: IngressEvent }) => { diff --git a/frontend/console/src/features/timeline/TimelineLog.tsx b/frontend/console/src/features/timeline/TimelineLog.tsx index 77b05b1d99..42138e98a5 100644 --- a/frontend/console/src/features/timeline/TimelineLog.tsx +++ b/frontend/console/src/features/timeline/TimelineLog.tsx @@ -1,4 +1,4 @@ -import type { LogEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { LogEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' export const TimelineLog = ({ log }: { log: LogEvent }) => { return {log.message} diff --git a/frontend/console/src/features/timeline/TimelinePage.tsx b/frontend/console/src/features/timeline/TimelinePage.tsx index da80a90109..1d0b61b7ef 100644 --- a/frontend/console/src/features/timeline/TimelinePage.tsx +++ b/frontend/console/src/features/timeline/TimelinePage.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react' import { useSearchParams } from 'react-router-dom' -import type { EventsQuery_Filter } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { SidePanelProvider } from '../../providers/side-panel-provider' import { Timeline } from './Timeline' import { TimelineFilterPanel } from './filters/TimelineFilterPanel' @@ -9,7 +9,7 @@ import { TIME_RANGES, type TimeSettings, TimelineTimeControls } from './filters/ export const TimelinePage = () => { const [searchParams] = useSearchParams() const [timeSettings, setTimeSettings] = useState({ isTailing: true, isPaused: false }) - const [filters, setFilters] = useState([]) + const [filters, setFilters] = useState([]) const [selectedTimeRange, setSelectedTimeRange] = useState(TIME_RANGES.tail) const [isTimelinePaused, setIsTimelinePaused] = useState(false) @@ -26,7 +26,7 @@ export const TimelinePage = () => { setTimeSettings(settings) } - const handleFiltersChanged = (filters: EventsQuery_Filter[]) => { + const handleFiltersChanged = (filters: GetEventsRequest_Filter[]) => { setFilters(filters) } diff --git a/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx b/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx index df2ff7c7fe..da8fb1d9d2 100644 --- a/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx +++ b/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx @@ -1,4 +1,4 @@ -import type { PubSubConsumeEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { PubSubConsumeEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' export const TimelinePubSubConsume = ({ pubSubConsume }: { pubSubConsume: PubSubConsumeEvent }) => { let title = `Topic ${pubSubConsume.topic} propagated by controller` diff --git a/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx b/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx index fa5a88d3f2..e144238004 100644 --- a/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx +++ b/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx @@ -1,4 +1,4 @@ -import type { PubSubPublishEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { PubSubPublishEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { refString } from '../modules/decls/verb/verb.utils' export const TimelinePubSubPublish = ({ pubSubPublish }: { pubSubPublish: PubSubPublishEvent }) => { diff --git a/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx b/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx index d77a6783e7..761672e228 100644 --- a/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx b/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx index 73bcba3dee..c7d053379c 100644 --- a/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx b/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx index d17e4acdbf..e7dd79daa4 100644 --- a/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { CronScheduledEvent, Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { CronScheduledEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration, formatTimestampShort } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx b/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx index 5a0aa4692e..418a2d8095 100644 --- a/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx @@ -1,5 +1,5 @@ import { AttributeBadge } from '../../../components/AttributeBadge' -import type { DeploymentCreatedEvent, Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { DeploymentCreatedEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { DeploymentCard } from '../../deployments/DeploymentCard' export const TimelineDeploymentCreatedDetails = ({ diff --git a/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx b/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx index 101dfa72b1..2fc04f8ccd 100644 --- a/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx @@ -1,5 +1,5 @@ import { AttributeBadge } from '../../../components/AttributeBadge' -import type { DeploymentUpdatedEvent, Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { DeploymentUpdatedEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { DeploymentCard } from '../../deployments/DeploymentCard' export const TimelineDeploymentUpdatedDetails = ({ diff --git a/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx b/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx index 6fc54bf1b1..5246c906e4 100644 --- a/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx @@ -1,4 +1,4 @@ -import type { Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { logLevelBgColor } from '../../logs/log.utils' import { eventBackgroundColor } from '../timeline.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx b/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx index 82c313b413..8764cc2f48 100644 --- a/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx @@ -1,7 +1,7 @@ import { useContext } from 'react' import { CloseButton } from '../../../components' import { Divider } from '../../../components/Divider' -import type { Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { SidePanelContext } from '../../../providers/side-panel-provider' import { formatTimestampShort } from '../../../utils' import { logLevelBadge, logLevelText } from '../../logs/log.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx b/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx index 976132a0ac..710e4f5817 100644 --- a/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx b/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx index 9c591479e1..b352708693 100644 --- a/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, LogEvent } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event, LogEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { textColor } from '../../../utils/style.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' diff --git a/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx b/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx index 27c6aab458..ebe9e41d46 100644 --- a/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx @@ -2,7 +2,7 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { DeploymentCard } from '../../../features/deployments/DeploymentCard' import { TraceGraph } from '../../../features/traces/TraceGraph' import { TraceGraphHeader } from '../../../features/traces/TraceGraphHeader' -import type { Event, PubSubConsumeEvent } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event, PubSubConsumeEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' export const TimelinePubSubConsumeDetails = ({ event }: { event: Event }) => { diff --git a/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx b/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx index fccc10e536..96fbcf633b 100644 --- a/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx @@ -2,7 +2,7 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { DeploymentCard } from '../../../features/deployments/DeploymentCard' import { TraceGraph } from '../../../features/traces/TraceGraph' import { TraceGraphHeader } from '../../../features/traces/TraceGraphHeader' -import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx b/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx index 6ed79b704f..fae503d51a 100644 --- a/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx +++ b/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx @@ -3,7 +3,7 @@ import type React from 'react' import { useEffect, useState } from 'react' import { useModules } from '../../../api/modules/use-modules' import { eventTypesFilter, logLevelFilter, modulesFilter } from '../../../api/timeline' -import { EventType, type EventsQuery_Filter, LogLevel } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import { EventType, type GetEventsRequest_Filter, LogLevel } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { textColor } from '../../../utils' import { LogLevelBadgeSmall } from '../../logs/LogLevelBadgeSmall' import { logLevelBgColor, logLevelColor, logLevelRingColor } from '../../logs/log.utils' @@ -46,7 +46,7 @@ const LOG_LEVELS: Record = { export const TimelineFilterPanel = ({ onFiltersChanged, }: { - onFiltersChanged: (filters: EventsQuery_Filter[]) => void + onFiltersChanged: (filters: GetEventsRequest_Filter[]) => void }) => { const modules = useModules() const [selectedEventTypes, setSelectedEventTypes] = useState(Object.keys(EVENT_TYPES)) @@ -68,7 +68,7 @@ export const TimelineFilterPanel = ({ }, [modules.data]) useEffect(() => { - const filter: EventsQuery_Filter[] = [] + const filter: GetEventsRequest_Filter[] = [] if (selectedEventTypes.length !== Object.keys(EVENT_TYPES).length) { const selectedTypes = selectedEventTypes.map((key) => EVENT_TYPES[key].type) diff --git a/frontend/console/src/features/timeline/timeline.utils.ts b/frontend/console/src/features/timeline/timeline.utils.ts index d3838e6933..2f040a7c24 100644 --- a/frontend/console/src/features/timeline/timeline.utils.ts +++ b/frontend/console/src/features/timeline/timeline.utils.ts @@ -1,5 +1,5 @@ -import { AsyncExecuteEventType } from '../../protos/xyz/block/ftl/v1/console/console_pb' -import type { Event } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import { AsyncExecuteEventType } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' const eventBackgroundColorMap: Record = { log: 'bg-gray-500', diff --git a/frontend/console/src/features/traces/TraceDetailItem.tsx b/frontend/console/src/features/traces/TraceDetailItem.tsx index e2c9132c28..15f102fad4 100644 --- a/frontend/console/src/features/traces/TraceDetailItem.tsx +++ b/frontend/console/src/features/traces/TraceDetailItem.tsx @@ -1,5 +1,5 @@ import type { TraceEvent } from '../../api/timeline/use-request-trace-events' -import { AsyncExecuteEvent, CallEvent, type Event, IngressEvent, PubSubPublishEvent } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import { AsyncExecuteEvent, CallEvent, type Event, IngressEvent, PubSubPublishEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { classNames } from '../../utils' import { TimelineIcon } from '../timeline/TimelineIcon' import { eventBackgroundColor } from '../timeline/timeline.utils' diff --git a/frontend/console/src/features/traces/TraceDetails.tsx b/frontend/console/src/features/traces/TraceDetails.tsx index 81a81b86a0..17ed1e0147 100644 --- a/frontend/console/src/features/traces/TraceDetails.tsx +++ b/frontend/console/src/features/traces/TraceDetails.tsx @@ -2,7 +2,7 @@ import type React from 'react' import { useMemo } from 'react' import { useNavigate } from 'react-router-dom' import type { TraceEvent } from '../../api/timeline/use-request-trace-events' -import type { Event } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { TraceDetailItem } from './TraceDetailItem' import { TraceRulerItem } from './TraceRulerItem' import { requestStartTime, totalDurationForRequest } from './traces.utils' diff --git a/frontend/console/src/features/traces/TraceGraph.tsx b/frontend/console/src/features/traces/TraceGraph.tsx index 8280ceefef..65ab9bc177 100644 --- a/frontend/console/src/features/traces/TraceGraph.tsx +++ b/frontend/console/src/features/traces/TraceGraph.tsx @@ -7,7 +7,7 @@ import { IngressEvent, PubSubConsumeEvent, PubSubPublishEvent, -} from '../../protos/xyz/block/ftl/v1/console/console_pb' +} from '../../protos/xyz/block/ftl/console/v1/console_pb' import { classNames, durationToMillis } from '../../utils' import { eventBackgroundColor } from '../timeline/timeline.utils' import { eventBarLeftOffsetPercentage, requestStartTime, totalDurationForRequest } from './traces.utils' diff --git a/frontend/console/src/features/traces/TraceRequestList.tsx b/frontend/console/src/features/traces/TraceRequestList.tsx index 2de351bf44..db9d1c3619 100644 --- a/frontend/console/src/features/traces/TraceRequestList.tsx +++ b/frontend/console/src/features/traces/TraceRequestList.tsx @@ -1,6 +1,6 @@ import { useContext, useMemo, useState } from 'react' import { useModuleTraceEvents } from '../../api/timeline/use-module-trace-events' -import type { Event } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { SidePanelContext } from '../../providers/side-panel-provider' import TimelineEventList from '../timeline/TimelineEventList' import { TimelineCallDetails } from '../timeline/details/TimelineCallDetails' diff --git a/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx b/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx index 6085aea2ab..bc93b80bfd 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/details/TraceDetailsCall.tsx b/frontend/console/src/features/traces/details/TraceDetailsCall.tsx index 877f995698..9a92b15341 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsCall.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsCall.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx b/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx index be05ccde84..1c53608e50 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx b/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx index 3491daa909..f8c5badf33 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/traces.utils.ts b/frontend/console/src/features/traces/traces.utils.ts index 59e3767d84..35cd6e55c7 100644 --- a/frontend/console/src/features/traces/traces.utils.ts +++ b/frontend/console/src/features/traces/traces.utils.ts @@ -1,5 +1,5 @@ import type { TraceEvent } from '../../api/timeline/use-request-trace-events' -import type { Event } from '../../protos/xyz/block/ftl/v1/console/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' import { compareTimestamps, durationToMillis } from '../../utils' export const eventBarLeftOffsetPercentage = (event: Event, requestStartTime: number, requestDurationMs: number) => { diff --git a/frontend/console/src/protos/xyz/block/ftl/v1/console/console_connect.ts b/frontend/console/src/protos/xyz/block/ftl/console/v1/console_connect.ts similarity index 59% rename from frontend/console/src/protos/xyz/block/ftl/v1/console/console_connect.ts rename to frontend/console/src/protos/xyz/block/ftl/console/v1/console_connect.ts index 914aa1fb04..3b9d727b05 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1/console/console_connect.ts +++ b/frontend/console/src/protos/xyz/block/ftl/console/v1/console_connect.ts @@ -1,22 +1,22 @@ // @generated by protoc-gen-connect-es v1.6.1 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1/console/console.proto (package xyz.block.ftl.v1.console, syntax proto3) +// @generated from file xyz/block/ftl/console/v1/console.proto (package xyz.block.ftl.console.v1, syntax proto3) /* eslint-disable */ // @ts-nocheck -import { PingRequest, PingResponse } from "../ftl_pb.js"; +import { PingRequest, PingResponse } from "../../v1/ftl_pb.js"; import { MethodIdempotency, MethodKind } from "@bufbuild/protobuf"; -import { EventsQuery, GetConfigRequest, GetConfigResponse, GetEventsResponse, GetModulesRequest, GetModulesResponse, GetSecretRequest, GetSecretResponse, SetConfigRequest, SetConfigResponse, SetSecretRequest, SetSecretResponse, StreamEventsRequest, StreamEventsResponse, StreamModulesRequest, StreamModulesResponse } from "./console_pb.js"; +import { GetConfigRequest, GetConfigResponse, GetEventsRequest, GetEventsResponse, GetModulesRequest, GetModulesResponse, GetSecretRequest, GetSecretResponse, SetConfigRequest, SetConfigResponse, SetSecretRequest, SetSecretResponse, StreamEventsRequest, StreamEventsResponse, StreamModulesRequest, StreamModulesResponse } from "./console_pb.js"; /** - * @generated from service xyz.block.ftl.v1.console.ConsoleService + * @generated from service xyz.block.ftl.console.v1.ConsoleService */ export const ConsoleService = { - typeName: "xyz.block.ftl.v1.console.ConsoleService", + typeName: "xyz.block.ftl.console.v1.ConsoleService", methods: { /** * Ping service for readiness. * - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.Ping + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.Ping */ ping: { name: "Ping", @@ -26,7 +26,7 @@ export const ConsoleService = { idempotency: MethodIdempotency.NoSideEffects, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.GetModules + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.GetModules */ getModules: { name: "GetModules", @@ -35,7 +35,7 @@ export const ConsoleService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.StreamModules + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.StreamModules */ streamModules: { name: "StreamModules", @@ -44,7 +44,7 @@ export const ConsoleService = { kind: MethodKind.ServerStreaming, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.StreamEvents + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.StreamEvents */ streamEvents: { name: "StreamEvents", @@ -53,16 +53,16 @@ export const ConsoleService = { kind: MethodKind.ServerStreaming, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.GetEvents + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.GetEvents */ getEvents: { name: "GetEvents", - I: EventsQuery, + I: GetEventsRequest, O: GetEventsResponse, kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.GetConfig + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.GetConfig */ getConfig: { name: "GetConfig", @@ -71,7 +71,7 @@ export const ConsoleService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.SetConfig + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.SetConfig */ setConfig: { name: "SetConfig", @@ -80,7 +80,7 @@ export const ConsoleService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.GetSecret + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.GetSecret */ getSecret: { name: "GetSecret", @@ -89,7 +89,7 @@ export const ConsoleService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1.console.ConsoleService.SetSecret + * @generated from rpc xyz.block.ftl.console.v1.ConsoleService.SetSecret */ setSecret: { name: "SetSecret", diff --git a/frontend/console/src/protos/xyz/block/ftl/v1/console/console_pb.ts b/frontend/console/src/protos/xyz/block/ftl/console/v1/console_pb.ts similarity index 75% rename from frontend/console/src/protos/xyz/block/ftl/v1/console/console_pb.ts rename to frontend/console/src/protos/xyz/block/ftl/console/v1/console_pb.ts index 436509ef9c..0a7900ee21 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1/console/console_pb.ts +++ b/frontend/console/src/protos/xyz/block/ftl/console/v1/console_pb.ts @@ -1,20 +1,20 @@ // @generated by protoc-gen-es v1.10.0 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1/console/console.proto (package xyz.block.ftl.v1.console, syntax proto3) +// @generated from file xyz/block/ftl/console/v1/console.proto (package xyz.block.ftl.console.v1, syntax proto3) /* eslint-disable */ // @ts-nocheck import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Duration, Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf"; -import { Config as Config$1, Data as Data$1, Database as Database$1, Enum as Enum$1, Ref, Secret as Secret$1, Topic as Topic$1, TypeAlias as TypeAlias$1, Verb as Verb$1 } from "../schema/schema_pb.js"; +import { Config as Config$1, Data as Data$1, Database as Database$1, Enum as Enum$1, Ref, Secret as Secret$1, Topic as Topic$1, TypeAlias as TypeAlias$1, Verb as Verb$1 } from "../../schema/v1/schema_pb.js"; /** - * @generated from enum xyz.block.ftl.v1.console.EventType + * @generated from enum xyz.block.ftl.console.v1.EventType */ export enum EventType { /** - * @generated from enum value: EVENT_TYPE_UNKNOWN = 0; + * @generated from enum value: EVENT_TYPE_UNSPECIFIED = 0; */ - UNKNOWN = 0, + UNSPECIFIED = 0, /** * @generated from enum value: EVENT_TYPE_LOG = 1; @@ -62,8 +62,8 @@ export enum EventType { PUBSUB_CONSUME = 9, } // Retrieve enum metadata with: proto3.getEnumType(EventType) -proto3.util.setEnumType(EventType, "xyz.block.ftl.v1.console.EventType", [ - { no: 0, name: "EVENT_TYPE_UNKNOWN" }, +proto3.util.setEnumType(EventType, "xyz.block.ftl.console.v1.EventType", [ + { no: 0, name: "EVENT_TYPE_UNSPECIFIED" }, { no: 1, name: "EVENT_TYPE_LOG" }, { no: 2, name: "EVENT_TYPE_CALL" }, { no: 3, name: "EVENT_TYPE_DEPLOYMENT_CREATED" }, @@ -76,13 +76,13 @@ proto3.util.setEnumType(EventType, "xyz.block.ftl.v1.console.EventType", [ ]); /** - * @generated from enum xyz.block.ftl.v1.console.AsyncExecuteEventType + * @generated from enum xyz.block.ftl.console.v1.AsyncExecuteEventType */ export enum AsyncExecuteEventType { /** - * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN = 0; + * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED = 0; */ - UNKNOWN = 0, + UNSPECIFIED = 0, /** * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_CRON = 1; @@ -95,20 +95,20 @@ export enum AsyncExecuteEventType { PUBSUB = 2, } // Retrieve enum metadata with: proto3.getEnumType(AsyncExecuteEventType) -proto3.util.setEnumType(AsyncExecuteEventType, "xyz.block.ftl.v1.console.AsyncExecuteEventType", [ - { no: 0, name: "ASYNC_EXECUTE_EVENT_TYPE_UNKNOWN" }, +proto3.util.setEnumType(AsyncExecuteEventType, "xyz.block.ftl.console.v1.AsyncExecuteEventType", [ + { no: 0, name: "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED" }, { no: 1, name: "ASYNC_EXECUTE_EVENT_TYPE_CRON" }, { no: 2, name: "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB" }, ]); /** - * @generated from enum xyz.block.ftl.v1.console.LogLevel + * @generated from enum xyz.block.ftl.console.v1.LogLevel */ export enum LogLevel { /** - * @generated from enum value: LOG_LEVEL_UNKNOWN = 0; + * @generated from enum value: LOG_LEVEL_UNSPECIFIED = 0; */ - UNKNOWN = 0, + UNSPECIFIED = 0, /** * @generated from enum value: LOG_LEVEL_TRACE = 1; @@ -136,8 +136,8 @@ export enum LogLevel { ERROR = 17, } // Retrieve enum metadata with: proto3.getEnumType(LogLevel) -proto3.util.setEnumType(LogLevel, "xyz.block.ftl.v1.console.LogLevel", [ - { no: 0, name: "LOG_LEVEL_UNKNOWN" }, +proto3.util.setEnumType(LogLevel, "xyz.block.ftl.console.v1.LogLevel", [ + { no: 0, name: "LOG_LEVEL_UNSPECIFIED" }, { no: 1, name: "LOG_LEVEL_TRACE" }, { no: 5, name: "LOG_LEVEL_DEBUG" }, { no: 9, name: "LOG_LEVEL_INFO" }, @@ -146,7 +146,7 @@ proto3.util.setEnumType(LogLevel, "xyz.block.ftl.v1.console.LogLevel", [ ]); /** - * @generated from message xyz.block.ftl.v1.console.LogEvent + * @generated from message xyz.block.ftl.console.v1.LogEvent */ export class LogEvent extends Message { /** @@ -195,7 +195,7 @@ export class LogEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.LogEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.LogEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -225,7 +225,7 @@ export class LogEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.CallEvent + * @generated from message xyz.block.ftl.console.v1.CallEvent */ export class CallEvent extends Message { /** @@ -244,12 +244,12 @@ export class CallEvent extends Message { timeStamp?: Timestamp; /** - * @generated from field: optional xyz.block.ftl.v1.schema.Ref source_verb_ref = 11; + * @generated from field: optional xyz.block.ftl.schema.v1.Ref source_verb_ref = 11; */ sourceVerbRef?: Ref; /** - * @generated from field: xyz.block.ftl.v1.schema.Ref destination_verb_ref = 12; + * @generated from field: xyz.block.ftl.schema.v1.Ref destination_verb_ref = 12; */ destinationVerbRef?: Ref; @@ -284,7 +284,7 @@ export class CallEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.CallEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.CallEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 2, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -316,7 +316,7 @@ export class CallEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.DeploymentCreatedEvent + * @generated from message xyz.block.ftl.console.v1.DeploymentCreatedEvent */ export class DeploymentCreatedEvent extends Message { /** @@ -350,7 +350,7 @@ export class DeploymentCreatedEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.DeploymentCreatedEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.DeploymentCreatedEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "language", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -377,7 +377,7 @@ export class DeploymentCreatedEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.DeploymentUpdatedEvent + * @generated from message xyz.block.ftl.console.v1.DeploymentUpdatedEvent */ export class DeploymentUpdatedEvent extends Message { /** @@ -401,7 +401,7 @@ export class DeploymentUpdatedEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.DeploymentUpdatedEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.DeploymentUpdatedEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "min_replicas", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, @@ -426,7 +426,7 @@ export class DeploymentUpdatedEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.IngressEvent + * @generated from message xyz.block.ftl.console.v1.IngressEvent */ export class IngressEvent extends Message { /** @@ -440,7 +440,7 @@ export class IngressEvent extends Message { requestKey?: string; /** - * @generated from field: xyz.block.ftl.v1.schema.Ref verb_ref = 3; + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; */ verbRef?: Ref; @@ -500,7 +500,7 @@ export class IngressEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.IngressEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.IngressEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -535,7 +535,7 @@ export class IngressEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.CronScheduledEvent + * @generated from message xyz.block.ftl.console.v1.CronScheduledEvent */ export class CronScheduledEvent extends Message { /** @@ -544,7 +544,7 @@ export class CronScheduledEvent extends Message { deploymentKey = ""; /** - * @generated from field: xyz.block.ftl.v1.schema.Ref verb_ref = 2; + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 2; */ verbRef?: Ref; @@ -579,7 +579,7 @@ export class CronScheduledEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.CronScheduledEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.CronScheduledEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "verb_ref", kind: "message", T: Ref }, @@ -608,7 +608,7 @@ export class CronScheduledEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.AsyncExecuteEvent + * @generated from message xyz.block.ftl.console.v1.AsyncExecuteEvent */ export class AsyncExecuteEvent extends Message { /** @@ -622,7 +622,7 @@ export class AsyncExecuteEvent extends Message { requestKey?: string; /** - * @generated from field: xyz.block.ftl.v1.schema.Ref verb_ref = 3; + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; */ verbRef?: Ref; @@ -637,9 +637,9 @@ export class AsyncExecuteEvent extends Message { duration?: Duration; /** - * @generated from field: xyz.block.ftl.v1.console.AsyncExecuteEventType async_event_type = 6; + * @generated from field: xyz.block.ftl.console.v1.AsyncExecuteEventType async_event_type = 6; */ - asyncEventType = AsyncExecuteEventType.UNKNOWN; + asyncEventType = AsyncExecuteEventType.UNSPECIFIED; /** * @generated from field: optional string error = 7; @@ -652,7 +652,7 @@ export class AsyncExecuteEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.AsyncExecuteEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.AsyncExecuteEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -681,7 +681,7 @@ export class AsyncExecuteEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.PubSubPublishEvent + * @generated from message xyz.block.ftl.console.v1.PubSubPublishEvent */ export class PubSubPublishEvent extends Message { /** @@ -695,7 +695,7 @@ export class PubSubPublishEvent extends Message { requestKey?: string; /** - * @generated from field: xyz.block.ftl.v1.schema.Ref verb_ref = 3; + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; */ verbRef?: Ref; @@ -730,7 +730,7 @@ export class PubSubPublishEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.PubSubPublishEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.PubSubPublishEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -760,7 +760,7 @@ export class PubSubPublishEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.PubSubConsumeEvent + * @generated from message xyz.block.ftl.console.v1.PubSubConsumeEvent */ export class PubSubConsumeEvent extends Message { /** @@ -809,7 +809,7 @@ export class PubSubConsumeEvent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.PubSubConsumeEvent"; + static readonly typeName = "xyz.block.ftl.console.v1.PubSubConsumeEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -839,16 +839,16 @@ export class PubSubConsumeEvent extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Config + * @generated from message xyz.block.ftl.console.v1.Config */ export class Config extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.Config config = 1; + * @generated from field: xyz.block.ftl.schema.v1.Config config = 1; */ config?: Config$1; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 2; */ references: Ref[] = []; @@ -858,7 +858,7 @@ export class Config extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Config"; + static readonly typeName = "xyz.block.ftl.console.v1.Config"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "config", kind: "message", T: Config$1 }, { no: 2, name: "references", kind: "message", T: Ref, repeated: true }, @@ -882,11 +882,11 @@ export class Config extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Data + * @generated from message xyz.block.ftl.console.v1.Data */ export class Data extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.Data data = 1; + * @generated from field: xyz.block.ftl.schema.v1.Data data = 1; */ data?: Data$1; @@ -896,7 +896,7 @@ export class Data extends Message { schema = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 3; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 3; */ references: Ref[] = []; @@ -906,7 +906,7 @@ export class Data extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Data"; + static readonly typeName = "xyz.block.ftl.console.v1.Data"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "data", kind: "message", T: Data$1 }, { no: 2, name: "schema", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -931,16 +931,16 @@ export class Data extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Database + * @generated from message xyz.block.ftl.console.v1.Database */ export class Database extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.Database database = 1; + * @generated from field: xyz.block.ftl.schema.v1.Database database = 1; */ database?: Database$1; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 2; */ references: Ref[] = []; @@ -950,7 +950,7 @@ export class Database extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Database"; + static readonly typeName = "xyz.block.ftl.console.v1.Database"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "database", kind: "message", T: Database$1 }, { no: 2, name: "references", kind: "message", T: Ref, repeated: true }, @@ -974,16 +974,16 @@ export class Database extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Enum + * @generated from message xyz.block.ftl.console.v1.Enum */ export class Enum extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.Enum enum = 1; + * @generated from field: xyz.block.ftl.schema.v1.Enum enum = 1; */ enum?: Enum$1; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 2; */ references: Ref[] = []; @@ -993,7 +993,7 @@ export class Enum extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Enum"; + static readonly typeName = "xyz.block.ftl.console.v1.Enum"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "enum", kind: "message", T: Enum$1 }, { no: 2, name: "references", kind: "message", T: Ref, repeated: true }, @@ -1017,16 +1017,16 @@ export class Enum extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Topic + * @generated from message xyz.block.ftl.console.v1.Topic */ export class Topic extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.Topic topic = 1; + * @generated from field: xyz.block.ftl.schema.v1.Topic topic = 1; */ topic?: Topic$1; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 2; */ references: Ref[] = []; @@ -1036,7 +1036,7 @@ export class Topic extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Topic"; + static readonly typeName = "xyz.block.ftl.console.v1.Topic"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "topic", kind: "message", T: Topic$1 }, { no: 2, name: "references", kind: "message", T: Ref, repeated: true }, @@ -1060,16 +1060,16 @@ export class Topic extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.TypeAlias + * @generated from message xyz.block.ftl.console.v1.TypeAlias */ export class TypeAlias extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.TypeAlias typealias = 1; + * @generated from field: xyz.block.ftl.schema.v1.TypeAlias typealias = 1; */ typealias?: TypeAlias$1; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 2; */ references: Ref[] = []; @@ -1079,7 +1079,7 @@ export class TypeAlias extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.TypeAlias"; + static readonly typeName = "xyz.block.ftl.console.v1.TypeAlias"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "typealias", kind: "message", T: TypeAlias$1 }, { no: 2, name: "references", kind: "message", T: Ref, repeated: true }, @@ -1103,16 +1103,16 @@ export class TypeAlias extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Secret + * @generated from message xyz.block.ftl.console.v1.Secret */ export class Secret extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.Secret secret = 1; + * @generated from field: xyz.block.ftl.schema.v1.Secret secret = 1; */ secret?: Secret$1; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 2; */ references: Ref[] = []; @@ -1122,7 +1122,7 @@ export class Secret extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Secret"; + static readonly typeName = "xyz.block.ftl.console.v1.Secret"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "secret", kind: "message", T: Secret$1 }, { no: 2, name: "references", kind: "message", T: Ref, repeated: true }, @@ -1146,11 +1146,11 @@ export class Secret extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Verb + * @generated from message xyz.block.ftl.console.v1.Verb */ export class Verb extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.Verb verb = 1; + * @generated from field: xyz.block.ftl.schema.v1.Verb verb = 1; */ verb?: Verb$1; @@ -1165,7 +1165,7 @@ export class Verb extends Message { jsonRequestSchema = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref references = 4; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref references = 4; */ references: Ref[] = []; @@ -1175,7 +1175,7 @@ export class Verb extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Verb"; + static readonly typeName = "xyz.block.ftl.console.v1.Verb"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "verb", kind: "message", T: Verb$1 }, { no: 2, name: "schema", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1201,7 +1201,7 @@ export class Verb extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Module + * @generated from message xyz.block.ftl.console.v1.Module */ export class Module extends Message { /** @@ -1225,42 +1225,42 @@ export class Module extends Message { schema = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.console.Verb verbs = 5; + * @generated from field: repeated xyz.block.ftl.console.v1.Verb verbs = 5; */ verbs: Verb[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.console.Data data = 6; + * @generated from field: repeated xyz.block.ftl.console.v1.Data data = 6; */ data: Data[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.console.Secret secrets = 7; + * @generated from field: repeated xyz.block.ftl.console.v1.Secret secrets = 7; */ secrets: Secret[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.console.Config configs = 8; + * @generated from field: repeated xyz.block.ftl.console.v1.Config configs = 8; */ configs: Config[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.console.Database databases = 9; + * @generated from field: repeated xyz.block.ftl.console.v1.Database databases = 9; */ databases: Database[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.console.Enum enums = 10; + * @generated from field: repeated xyz.block.ftl.console.v1.Enum enums = 10; */ enums: Enum[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.console.Topic topics = 11; + * @generated from field: repeated xyz.block.ftl.console.v1.Topic topics = 11; */ topics: Topic[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.console.TypeAlias typealiases = 12; + * @generated from field: repeated xyz.block.ftl.console.v1.TypeAlias typealiases = 12; */ typealiases: TypeAlias[] = []; @@ -1270,7 +1270,7 @@ export class Module extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Module"; + static readonly typeName = "xyz.block.ftl.console.v1.Module"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1304,7 +1304,7 @@ export class Module extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.TopologyGroup + * @generated from message xyz.block.ftl.console.v1.TopologyGroup */ export class TopologyGroup extends Message { /** @@ -1318,7 +1318,7 @@ export class TopologyGroup extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.TopologyGroup"; + static readonly typeName = "xyz.block.ftl.console.v1.TopologyGroup"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "modules", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); @@ -1341,11 +1341,11 @@ export class TopologyGroup extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.Topology + * @generated from message xyz.block.ftl.console.v1.Topology */ export class Topology extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.console.TopologyGroup levels = 1; + * @generated from field: repeated xyz.block.ftl.console.v1.TopologyGroup levels = 1; */ levels: TopologyGroup[] = []; @@ -1355,7 +1355,7 @@ export class Topology extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Topology"; + static readonly typeName = "xyz.block.ftl.console.v1.Topology"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "levels", kind: "message", T: TopologyGroup, repeated: true }, ]); @@ -1378,7 +1378,7 @@ export class Topology extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.GetModulesRequest + * @generated from message xyz.block.ftl.console.v1.GetModulesRequest */ export class GetModulesRequest extends Message { constructor(data?: PartialMessage) { @@ -1387,7 +1387,7 @@ export class GetModulesRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.GetModulesRequest"; + static readonly typeName = "xyz.block.ftl.console.v1.GetModulesRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ ]); @@ -1409,16 +1409,16 @@ export class GetModulesRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.GetModulesResponse + * @generated from message xyz.block.ftl.console.v1.GetModulesResponse */ export class GetModulesResponse extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.console.Module modules = 1; + * @generated from field: repeated xyz.block.ftl.console.v1.Module modules = 1; */ modules: Module[] = []; /** - * @generated from field: xyz.block.ftl.v1.console.Topology topology = 2; + * @generated from field: xyz.block.ftl.console.v1.Topology topology = 2; */ topology?: Topology; @@ -1428,7 +1428,7 @@ export class GetModulesResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.GetModulesResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.GetModulesResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "modules", kind: "message", T: Module, repeated: true }, { no: 2, name: "topology", kind: "message", T: Topology }, @@ -1452,7 +1452,7 @@ export class GetModulesResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.StreamModulesRequest + * @generated from message xyz.block.ftl.console.v1.StreamModulesRequest */ export class StreamModulesRequest extends Message { constructor(data?: PartialMessage) { @@ -1461,7 +1461,7 @@ export class StreamModulesRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.StreamModulesRequest"; + static readonly typeName = "xyz.block.ftl.console.v1.StreamModulesRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ ]); @@ -1483,16 +1483,16 @@ export class StreamModulesRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.StreamModulesResponse + * @generated from message xyz.block.ftl.console.v1.StreamModulesResponse */ export class StreamModulesResponse extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.console.Module modules = 1; + * @generated from field: repeated xyz.block.ftl.console.v1.Module modules = 1; */ modules: Module[] = []; /** - * @generated from field: xyz.block.ftl.v1.console.Topology topology = 2; + * @generated from field: xyz.block.ftl.console.v1.Topology topology = 2; */ topology?: Topology; @@ -1502,7 +1502,7 @@ export class StreamModulesResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.StreamModulesResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.StreamModulesResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "modules", kind: "message", T: Module, repeated: true }, { no: 2, name: "topology", kind: "message", T: Topology }, @@ -1528,13 +1528,13 @@ export class StreamModulesResponse extends Message { /** * Query for events. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest */ -export class EventsQuery extends Message { +export class GetEventsRequest extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.console.EventsQuery.Filter filters = 1; + * @generated from field: repeated xyz.block.ftl.console.v1.GetEventsRequest.Filter filters = 1; */ - filters: EventsQuery_Filter[] = []; + filters: GetEventsRequest_Filter[] = []; /** * @generated from field: int32 limit = 2; @@ -1542,252 +1542,258 @@ export class EventsQuery extends Message { limit = 0; /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.Order order = 3; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.Order order = 3; */ - order = EventsQuery_Order.ASC; + order = GetEventsRequest_Order.UNSPECIFIED; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "filters", kind: "message", T: EventsQuery_Filter, repeated: true }, + { no: 1, name: "filters", kind: "message", T: GetEventsRequest_Filter, repeated: true }, { no: 2, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - { no: 3, name: "order", kind: "enum", T: proto3.getEnumType(EventsQuery_Order) }, + { no: 3, name: "order", kind: "enum", T: proto3.getEnumType(GetEventsRequest_Order) }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery { - return new EventsQuery().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest { + return new GetEventsRequest().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery { - return new EventsQuery().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest { + return new GetEventsRequest().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery { - return new EventsQuery().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest { + return new GetEventsRequest().fromJsonString(jsonString, options); } - static equals(a: EventsQuery | PlainMessage | undefined, b: EventsQuery | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery, a, b); + static equals(a: GetEventsRequest | PlainMessage | undefined, b: GetEventsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest, a, b); } } /** - * @generated from enum xyz.block.ftl.v1.console.EventsQuery.Order + * @generated from enum xyz.block.ftl.console.v1.GetEventsRequest.Order */ -export enum EventsQuery_Order { +export enum GetEventsRequest_Order { /** - * @generated from enum value: ASC = 0; + * @generated from enum value: ORDER_UNSPECIFIED = 0; */ - ASC = 0, + UNSPECIFIED = 0, /** - * @generated from enum value: DESC = 1; + * @generated from enum value: ORDER_ASC = 1; */ - DESC = 1, + ASC = 1, + + /** + * @generated from enum value: ORDER_DESC = 2; + */ + DESC = 2, } -// Retrieve enum metadata with: proto3.getEnumType(EventsQuery_Order) -proto3.util.setEnumType(EventsQuery_Order, "xyz.block.ftl.v1.console.EventsQuery.Order", [ - { no: 0, name: "ASC" }, - { no: 1, name: "DESC" }, +// Retrieve enum metadata with: proto3.getEnumType(GetEventsRequest_Order) +proto3.util.setEnumType(GetEventsRequest_Order, "xyz.block.ftl.console.v1.GetEventsRequest.Order", [ + { no: 0, name: "ORDER_UNSPECIFIED" }, + { no: 1, name: "ORDER_ASC" }, + { no: 2, name: "ORDER_DESC" }, ]); /** * Limit the number of events returned. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery.LimitFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter */ -export class EventsQuery_LimitFilter extends Message { +export class GetEventsRequest_LimitFilter extends Message { /** * @generated from field: int32 limit = 1; */ limit = 0; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.LimitFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_LimitFilter { - return new EventsQuery_LimitFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_LimitFilter { + return new GetEventsRequest_LimitFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_LimitFilter { - return new EventsQuery_LimitFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_LimitFilter { + return new GetEventsRequest_LimitFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_LimitFilter { - return new EventsQuery_LimitFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_LimitFilter { + return new GetEventsRequest_LimitFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_LimitFilter | PlainMessage | undefined, b: EventsQuery_LimitFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_LimitFilter, a, b); + static equals(a: GetEventsRequest_LimitFilter | PlainMessage | undefined, b: GetEventsRequest_LimitFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_LimitFilter, a, b); } } /** * Filters events by log level. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery.LogLevelFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter */ -export class EventsQuery_LogLevelFilter extends Message { +export class GetEventsRequest_LogLevelFilter extends Message { /** - * @generated from field: xyz.block.ftl.v1.console.LogLevel log_level = 1; + * @generated from field: xyz.block.ftl.console.v1.LogLevel log_level = 1; */ - logLevel = LogLevel.UNKNOWN; + logLevel = LogLevel.UNSPECIFIED; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.LogLevelFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "log_level", kind: "enum", T: proto3.getEnumType(LogLevel) }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_LogLevelFilter { - return new EventsQuery_LogLevelFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_LogLevelFilter { + return new GetEventsRequest_LogLevelFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_LogLevelFilter { - return new EventsQuery_LogLevelFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_LogLevelFilter { + return new GetEventsRequest_LogLevelFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_LogLevelFilter { - return new EventsQuery_LogLevelFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_LogLevelFilter { + return new GetEventsRequest_LogLevelFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_LogLevelFilter | PlainMessage | undefined, b: EventsQuery_LogLevelFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_LogLevelFilter, a, b); + static equals(a: GetEventsRequest_LogLevelFilter | PlainMessage | undefined, b: GetEventsRequest_LogLevelFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_LogLevelFilter, a, b); } } /** * Filters events by deployment key. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery.DeploymentFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter */ -export class EventsQuery_DeploymentFilter extends Message { +export class GetEventsRequest_DeploymentFilter extends Message { /** * @generated from field: repeated string deployments = 1; */ deployments: string[] = []; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.DeploymentFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "deployments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_DeploymentFilter { - return new EventsQuery_DeploymentFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_DeploymentFilter { + return new GetEventsRequest_DeploymentFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_DeploymentFilter { - return new EventsQuery_DeploymentFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_DeploymentFilter { + return new GetEventsRequest_DeploymentFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_DeploymentFilter { - return new EventsQuery_DeploymentFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_DeploymentFilter { + return new GetEventsRequest_DeploymentFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_DeploymentFilter | PlainMessage | undefined, b: EventsQuery_DeploymentFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_DeploymentFilter, a, b); + static equals(a: GetEventsRequest_DeploymentFilter | PlainMessage | undefined, b: GetEventsRequest_DeploymentFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_DeploymentFilter, a, b); } } /** * Filters events by request key. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery.RequestFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter */ -export class EventsQuery_RequestFilter extends Message { +export class GetEventsRequest_RequestFilter extends Message { /** * @generated from field: repeated string requests = 1; */ requests: string[] = []; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.RequestFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "requests", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_RequestFilter { - return new EventsQuery_RequestFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_RequestFilter { + return new GetEventsRequest_RequestFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_RequestFilter { - return new EventsQuery_RequestFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_RequestFilter { + return new GetEventsRequest_RequestFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_RequestFilter { - return new EventsQuery_RequestFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_RequestFilter { + return new GetEventsRequest_RequestFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_RequestFilter | PlainMessage | undefined, b: EventsQuery_RequestFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_RequestFilter, a, b); + static equals(a: GetEventsRequest_RequestFilter | PlainMessage | undefined, b: GetEventsRequest_RequestFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_RequestFilter, a, b); } } /** * Filters events by event type. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery.EventTypeFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter */ -export class EventsQuery_EventTypeFilter extends Message { +export class GetEventsRequest_EventTypeFilter extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.console.EventType event_types = 1; + * @generated from field: repeated xyz.block.ftl.console.v1.EventType event_types = 1; */ eventTypes: EventType[] = []; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.EventTypeFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "event_types", kind: "enum", T: proto3.getEnumType(EventType), repeated: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_EventTypeFilter { - return new EventsQuery_EventTypeFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_EventTypeFilter { + return new GetEventsRequest_EventTypeFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_EventTypeFilter { - return new EventsQuery_EventTypeFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_EventTypeFilter { + return new GetEventsRequest_EventTypeFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_EventTypeFilter { - return new EventsQuery_EventTypeFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_EventTypeFilter { + return new GetEventsRequest_EventTypeFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_EventTypeFilter | PlainMessage | undefined, b: EventsQuery_EventTypeFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_EventTypeFilter, a, b); + static equals(a: GetEventsRequest_EventTypeFilter | PlainMessage | undefined, b: GetEventsRequest_EventTypeFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_EventTypeFilter, a, b); } } @@ -1796,9 +1802,9 @@ export class EventsQuery_EventTypeFilter extends Message { +export class GetEventsRequest_TimeFilter extends Message { /** * @generated from field: optional google.protobuf.Timestamp older_than = 1; */ @@ -1809,32 +1815,32 @@ export class EventsQuery_TimeFilter extends Message { */ newerThan?: Timestamp; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.TimeFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "older_than", kind: "message", T: Timestamp, opt: true }, { no: 2, name: "newer_than", kind: "message", T: Timestamp, opt: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_TimeFilter { - return new EventsQuery_TimeFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_TimeFilter { + return new GetEventsRequest_TimeFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_TimeFilter { - return new EventsQuery_TimeFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_TimeFilter { + return new GetEventsRequest_TimeFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_TimeFilter { - return new EventsQuery_TimeFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_TimeFilter { + return new GetEventsRequest_TimeFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_TimeFilter | PlainMessage | undefined, b: EventsQuery_TimeFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_TimeFilter, a, b); + static equals(a: GetEventsRequest_TimeFilter | PlainMessage | undefined, b: GetEventsRequest_TimeFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_TimeFilter, a, b); } } @@ -1843,9 +1849,9 @@ export class EventsQuery_TimeFilter extends Message { * * Either end of the ID range can be omitted to indicate no bound. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery.IDFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.IDFilter */ -export class EventsQuery_IDFilter extends Message { +export class GetEventsRequest_IDFilter extends Message { /** * @generated from field: optional int64 lower_than = 1; */ @@ -1856,41 +1862,41 @@ export class EventsQuery_IDFilter extends Message { */ higherThan?: bigint; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.IDFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.IDFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "lower_than", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, { no: 2, name: "higher_than", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_IDFilter { - return new EventsQuery_IDFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_IDFilter { + return new GetEventsRequest_IDFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_IDFilter { - return new EventsQuery_IDFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_IDFilter { + return new GetEventsRequest_IDFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_IDFilter { - return new EventsQuery_IDFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_IDFilter { + return new GetEventsRequest_IDFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_IDFilter | PlainMessage | undefined, b: EventsQuery_IDFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_IDFilter, a, b); + static equals(a: GetEventsRequest_IDFilter | PlainMessage | undefined, b: GetEventsRequest_IDFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_IDFilter, a, b); } } /** * Filters events by call. * - * @generated from message xyz.block.ftl.v1.console.EventsQuery.CallFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.CallFilter */ -export class EventsQuery_CallFilter extends Message { +export class GetEventsRequest_CallFilter extends Message { /** * @generated from field: string dest_module = 1; */ @@ -1906,40 +1912,40 @@ export class EventsQuery_CallFilter extends Message { */ sourceModule?: string; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.CallFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.CallFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "dest_module", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "dest_verb", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 3, name: "source_module", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_CallFilter { - return new EventsQuery_CallFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_CallFilter { + return new GetEventsRequest_CallFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_CallFilter { - return new EventsQuery_CallFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_CallFilter { + return new GetEventsRequest_CallFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_CallFilter { - return new EventsQuery_CallFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_CallFilter { + return new GetEventsRequest_CallFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_CallFilter | PlainMessage | undefined, b: EventsQuery_CallFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_CallFilter, a, b); + static equals(a: GetEventsRequest_CallFilter | PlainMessage | undefined, b: GetEventsRequest_CallFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_CallFilter, a, b); } } /** - * @generated from message xyz.block.ftl.v1.console.EventsQuery.ModuleFilter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter */ -export class EventsQuery_ModuleFilter extends Message { +export class GetEventsRequest_ModuleFilter extends Message { /** * @generated from field: string module = 1; */ @@ -1950,335 +1956,142 @@ export class EventsQuery_ModuleFilter extends Message */ verb?: string; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.ModuleFilter"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "module", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "verb", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_ModuleFilter { - return new EventsQuery_ModuleFilter().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_ModuleFilter { + return new GetEventsRequest_ModuleFilter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_ModuleFilter { - return new EventsQuery_ModuleFilter().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_ModuleFilter { + return new GetEventsRequest_ModuleFilter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_ModuleFilter { - return new EventsQuery_ModuleFilter().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_ModuleFilter { + return new GetEventsRequest_ModuleFilter().fromJsonString(jsonString, options); } - static equals(a: EventsQuery_ModuleFilter | PlainMessage | undefined, b: EventsQuery_ModuleFilter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_ModuleFilter, a, b); + static equals(a: GetEventsRequest_ModuleFilter | PlainMessage | undefined, b: GetEventsRequest_ModuleFilter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_ModuleFilter, a, b); } } /** - * @generated from message xyz.block.ftl.v1.console.EventsQuery.Filter + * @generated from message xyz.block.ftl.console.v1.GetEventsRequest.Filter */ -export class EventsQuery_Filter extends Message { +export class GetEventsRequest_Filter extends Message { /** * These map 1:1 with filters in backend/controller/internal/dal/events.go * - * @generated from oneof xyz.block.ftl.v1.console.EventsQuery.Filter.filter + * @generated from oneof xyz.block.ftl.console.v1.GetEventsRequest.Filter.filter */ filter: { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.LimitFilter limit = 1; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter limit = 1; */ - value: EventsQuery_LimitFilter; + value: GetEventsRequest_LimitFilter; case: "limit"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.LogLevelFilter log_level = 2; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter log_level = 2; */ - value: EventsQuery_LogLevelFilter; + value: GetEventsRequest_LogLevelFilter; case: "logLevel"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.DeploymentFilter deployments = 3; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter deployments = 3; */ - value: EventsQuery_DeploymentFilter; + value: GetEventsRequest_DeploymentFilter; case: "deployments"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.RequestFilter requests = 4; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter requests = 4; */ - value: EventsQuery_RequestFilter; + value: GetEventsRequest_RequestFilter; case: "requests"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.EventTypeFilter event_types = 5; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter event_types = 5; */ - value: EventsQuery_EventTypeFilter; + value: GetEventsRequest_EventTypeFilter; case: "eventTypes"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.TimeFilter time = 6; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter time = 6; */ - value: EventsQuery_TimeFilter; + value: GetEventsRequest_TimeFilter; case: "time"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.IDFilter id = 7; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.IDFilter id = 7; */ - value: EventsQuery_IDFilter; + value: GetEventsRequest_IDFilter; case: "id"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.CallFilter call = 8; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.CallFilter call = 8; */ - value: EventsQuery_CallFilter; + value: GetEventsRequest_CallFilter; case: "call"; } | { /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery.ModuleFilter module = 9; + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter module = 9; */ - value: EventsQuery_ModuleFilter; + value: GetEventsRequest_ModuleFilter; case: "module"; } | { case: undefined; value?: undefined } = { case: undefined }; - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.EventsQuery.Filter"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "limit", kind: "message", T: EventsQuery_LimitFilter, oneof: "filter" }, - { no: 2, name: "log_level", kind: "message", T: EventsQuery_LogLevelFilter, oneof: "filter" }, - { no: 3, name: "deployments", kind: "message", T: EventsQuery_DeploymentFilter, oneof: "filter" }, - { no: 4, name: "requests", kind: "message", T: EventsQuery_RequestFilter, oneof: "filter" }, - { no: 5, name: "event_types", kind: "message", T: EventsQuery_EventTypeFilter, oneof: "filter" }, - { no: 6, name: "time", kind: "message", T: EventsQuery_TimeFilter, oneof: "filter" }, - { no: 7, name: "id", kind: "message", T: EventsQuery_IDFilter, oneof: "filter" }, - { no: 8, name: "call", kind: "message", T: EventsQuery_CallFilter, oneof: "filter" }, - { no: 9, name: "module", kind: "message", T: EventsQuery_ModuleFilter, oneof: "filter" }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): EventsQuery_Filter { - return new EventsQuery_Filter().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): EventsQuery_Filter { - return new EventsQuery_Filter().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): EventsQuery_Filter { - return new EventsQuery_Filter().fromJsonString(jsonString, options); - } - - static equals(a: EventsQuery_Filter | PlainMessage | undefined, b: EventsQuery_Filter | PlainMessage | undefined): boolean { - return proto3.util.equals(EventsQuery_Filter, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.v1.console.StreamEventsRequest - */ -export class StreamEventsRequest extends Message { - /** - * @generated from field: optional google.protobuf.Duration update_interval = 1; - */ - updateInterval?: Duration; - - /** - * @generated from field: xyz.block.ftl.v1.console.EventsQuery query = 2; - */ - query?: EventsQuery; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.StreamEventsRequest"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "update_interval", kind: "message", T: Duration, opt: true }, - { no: 2, name: "query", kind: "message", T: EventsQuery }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): StreamEventsRequest { - return new StreamEventsRequest().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): StreamEventsRequest { - return new StreamEventsRequest().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): StreamEventsRequest { - return new StreamEventsRequest().fromJsonString(jsonString, options); - } - - static equals(a: StreamEventsRequest | PlainMessage | undefined, b: StreamEventsRequest | PlainMessage | undefined): boolean { - return proto3.util.equals(StreamEventsRequest, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.v1.console.StreamEventsResponse - */ -export class StreamEventsResponse extends Message { - /** - * @generated from field: repeated xyz.block.ftl.v1.console.Event events = 1; - */ - events: Event[] = []; - - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.StreamEventsResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsRequest.Filter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "events", kind: "message", T: Event, repeated: true }, + { no: 1, name: "limit", kind: "message", T: GetEventsRequest_LimitFilter, oneof: "filter" }, + { no: 2, name: "log_level", kind: "message", T: GetEventsRequest_LogLevelFilter, oneof: "filter" }, + { no: 3, name: "deployments", kind: "message", T: GetEventsRequest_DeploymentFilter, oneof: "filter" }, + { no: 4, name: "requests", kind: "message", T: GetEventsRequest_RequestFilter, oneof: "filter" }, + { no: 5, name: "event_types", kind: "message", T: GetEventsRequest_EventTypeFilter, oneof: "filter" }, + { no: 6, name: "time", kind: "message", T: GetEventsRequest_TimeFilter, oneof: "filter" }, + { no: 7, name: "id", kind: "message", T: GetEventsRequest_IDFilter, oneof: "filter" }, + { no: 8, name: "call", kind: "message", T: GetEventsRequest_CallFilter, oneof: "filter" }, + { no: 9, name: "module", kind: "message", T: GetEventsRequest_ModuleFilter, oneof: "filter" }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): StreamEventsResponse { - return new StreamEventsResponse().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetEventsRequest_Filter { + return new GetEventsRequest_Filter().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): StreamEventsResponse { - return new StreamEventsResponse().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetEventsRequest_Filter { + return new GetEventsRequest_Filter().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): StreamEventsResponse { - return new StreamEventsResponse().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetEventsRequest_Filter { + return new GetEventsRequest_Filter().fromJsonString(jsonString, options); } - static equals(a: StreamEventsResponse | PlainMessage | undefined, b: StreamEventsResponse | PlainMessage | undefined): boolean { - return proto3.util.equals(StreamEventsResponse, a, b); + static equals(a: GetEventsRequest_Filter | PlainMessage | undefined, b: GetEventsRequest_Filter | PlainMessage | undefined): boolean { + return proto3.util.equals(GetEventsRequest_Filter, a, b); } } /** - * @generated from message xyz.block.ftl.v1.console.Event - */ -export class Event extends Message { - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 1; - */ - timeStamp?: Timestamp; - - /** - * Unique ID for event. - * - * @generated from field: int64 id = 2; - */ - id = protoInt64.zero; - - /** - * @generated from oneof xyz.block.ftl.v1.console.Event.entry - */ - entry: { - /** - * @generated from field: xyz.block.ftl.v1.console.LogEvent log = 3; - */ - value: LogEvent; - case: "log"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.CallEvent call = 4; - */ - value: CallEvent; - case: "call"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.DeploymentCreatedEvent deployment_created = 5; - */ - value: DeploymentCreatedEvent; - case: "deploymentCreated"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.DeploymentUpdatedEvent deployment_updated = 6; - */ - value: DeploymentUpdatedEvent; - case: "deploymentUpdated"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.IngressEvent ingress = 7; - */ - value: IngressEvent; - case: "ingress"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.CronScheduledEvent cron_scheduled = 8; - */ - value: CronScheduledEvent; - case: "cronScheduled"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.AsyncExecuteEvent async_execute = 9; - */ - value: AsyncExecuteEvent; - case: "asyncExecute"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.PubSubPublishEvent pubsub_publish = 10; - */ - value: PubSubPublishEvent; - case: "pubsubPublish"; - } | { - /** - * @generated from field: xyz.block.ftl.v1.console.PubSubConsumeEvent pubsub_consume = 11; - */ - value: PubSubConsumeEvent; - case: "pubsubConsume"; - } | { case: undefined; value?: undefined } = { case: undefined }; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.Event"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 2, name: "id", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { no: 3, name: "log", kind: "message", T: LogEvent, oneof: "entry" }, - { no: 4, name: "call", kind: "message", T: CallEvent, oneof: "entry" }, - { no: 5, name: "deployment_created", kind: "message", T: DeploymentCreatedEvent, oneof: "entry" }, - { no: 6, name: "deployment_updated", kind: "message", T: DeploymentUpdatedEvent, oneof: "entry" }, - { no: 7, name: "ingress", kind: "message", T: IngressEvent, oneof: "entry" }, - { no: 8, name: "cron_scheduled", kind: "message", T: CronScheduledEvent, oneof: "entry" }, - { no: 9, name: "async_execute", kind: "message", T: AsyncExecuteEvent, oneof: "entry" }, - { no: 10, name: "pubsub_publish", kind: "message", T: PubSubPublishEvent, oneof: "entry" }, - { no: 11, name: "pubsub_consume", kind: "message", T: PubSubConsumeEvent, oneof: "entry" }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): Event { - return new Event().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): Event { - return new Event().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): Event { - return new Event().fromJsonString(jsonString, options); - } - - static equals(a: Event | PlainMessage | undefined, b: Event | PlainMessage | undefined): boolean { - return proto3.util.equals(Event, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.v1.console.GetEventsResponse + * @generated from message xyz.block.ftl.console.v1.GetEventsResponse */ export class GetEventsResponse extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.console.Event events = 1; + * @generated from field: repeated xyz.block.ftl.console.v1.Event events = 1; */ events: Event[] = []; @@ -2295,7 +2108,7 @@ export class GetEventsResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.GetEventsResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.GetEventsResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "events", kind: "message", T: Event, repeated: true }, { no: 2, name: "cursor", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, @@ -2319,7 +2132,7 @@ export class GetEventsResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.GetConfigRequest + * @generated from message xyz.block.ftl.console.v1.GetConfigRequest */ export class GetConfigRequest extends Message { /** @@ -2338,7 +2151,7 @@ export class GetConfigRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.GetConfigRequest"; + static readonly typeName = "xyz.block.ftl.console.v1.GetConfigRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "module", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -2362,7 +2175,7 @@ export class GetConfigRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.GetConfigResponse + * @generated from message xyz.block.ftl.console.v1.GetConfigResponse */ export class GetConfigResponse extends Message { /** @@ -2376,7 +2189,7 @@ export class GetConfigResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.GetConfigResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.GetConfigResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "value", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, ]); @@ -2399,7 +2212,7 @@ export class GetConfigResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.SetConfigRequest + * @generated from message xyz.block.ftl.console.v1.SetConfigRequest */ export class SetConfigRequest extends Message { /** @@ -2423,7 +2236,7 @@ export class SetConfigRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.SetConfigRequest"; + static readonly typeName = "xyz.block.ftl.console.v1.SetConfigRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "module", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -2448,7 +2261,7 @@ export class SetConfigRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.SetConfigResponse + * @generated from message xyz.block.ftl.console.v1.SetConfigResponse */ export class SetConfigResponse extends Message { /** @@ -2462,7 +2275,7 @@ export class SetConfigResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.SetConfigResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.SetConfigResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "value", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, ]); @@ -2485,7 +2298,7 @@ export class SetConfigResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.GetSecretRequest + * @generated from message xyz.block.ftl.console.v1.GetSecretRequest */ export class GetSecretRequest extends Message { /** @@ -2504,7 +2317,7 @@ export class GetSecretRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.GetSecretRequest"; + static readonly typeName = "xyz.block.ftl.console.v1.GetSecretRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "module", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -2528,7 +2341,7 @@ export class GetSecretRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.GetSecretResponse + * @generated from message xyz.block.ftl.console.v1.GetSecretResponse */ export class GetSecretResponse extends Message { /** @@ -2542,7 +2355,7 @@ export class GetSecretResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.GetSecretResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.GetSecretResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "value", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, ]); @@ -2565,7 +2378,7 @@ export class GetSecretResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.SetSecretRequest + * @generated from message xyz.block.ftl.console.v1.SetSecretRequest */ export class SetSecretRequest extends Message { /** @@ -2589,7 +2402,7 @@ export class SetSecretRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.SetSecretRequest"; + static readonly typeName = "xyz.block.ftl.console.v1.SetSecretRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "module", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -2614,7 +2427,7 @@ export class SetSecretRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1.console.SetSecretResponse + * @generated from message xyz.block.ftl.console.v1.SetSecretResponse */ export class SetSecretResponse extends Message { /** @@ -2628,7 +2441,7 @@ export class SetSecretResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.console.SetSecretResponse"; + static readonly typeName = "xyz.block.ftl.console.v1.SetSecretResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "value", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, ]); @@ -2650,3 +2463,196 @@ export class SetSecretResponse extends Message { } } +/** + * @generated from message xyz.block.ftl.console.v1.StreamEventsRequest + */ +export class StreamEventsRequest extends Message { + /** + * @generated from field: optional google.protobuf.Duration update_interval = 1; + */ + updateInterval?: Duration; + + /** + * @generated from field: xyz.block.ftl.console.v1.GetEventsRequest query = 2; + */ + query?: GetEventsRequest; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.console.v1.StreamEventsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "update_interval", kind: "message", T: Duration, opt: true }, + { no: 2, name: "query", kind: "message", T: GetEventsRequest }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): StreamEventsRequest { + return new StreamEventsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): StreamEventsRequest { + return new StreamEventsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): StreamEventsRequest { + return new StreamEventsRequest().fromJsonString(jsonString, options); + } + + static equals(a: StreamEventsRequest | PlainMessage | undefined, b: StreamEventsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(StreamEventsRequest, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.console.v1.StreamEventsResponse + */ +export class StreamEventsResponse extends Message { + /** + * @generated from field: repeated xyz.block.ftl.console.v1.Event events = 1; + */ + events: Event[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.console.v1.StreamEventsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "events", kind: "message", T: Event, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): StreamEventsResponse { + return new StreamEventsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): StreamEventsResponse { + return new StreamEventsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): StreamEventsResponse { + return new StreamEventsResponse().fromJsonString(jsonString, options); + } + + static equals(a: StreamEventsResponse | PlainMessage | undefined, b: StreamEventsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(StreamEventsResponse, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.console.v1.Event + */ +export class Event extends Message { + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 1; + */ + timeStamp?: Timestamp; + + /** + * Unique ID for event. + * + * @generated from field: int64 id = 2; + */ + id = protoInt64.zero; + + /** + * @generated from oneof xyz.block.ftl.console.v1.Event.entry + */ + entry: { + /** + * @generated from field: xyz.block.ftl.console.v1.LogEvent log = 3; + */ + value: LogEvent; + case: "log"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.CallEvent call = 4; + */ + value: CallEvent; + case: "call"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.DeploymentCreatedEvent deployment_created = 5; + */ + value: DeploymentCreatedEvent; + case: "deploymentCreated"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.DeploymentUpdatedEvent deployment_updated = 6; + */ + value: DeploymentUpdatedEvent; + case: "deploymentUpdated"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.IngressEvent ingress = 7; + */ + value: IngressEvent; + case: "ingress"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.CronScheduledEvent cron_scheduled = 8; + */ + value: CronScheduledEvent; + case: "cronScheduled"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.AsyncExecuteEvent async_execute = 9; + */ + value: AsyncExecuteEvent; + case: "asyncExecute"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.PubSubPublishEvent pubsub_publish = 10; + */ + value: PubSubPublishEvent; + case: "pubsubPublish"; + } | { + /** + * @generated from field: xyz.block.ftl.console.v1.PubSubConsumeEvent pubsub_consume = 11; + */ + value: PubSubConsumeEvent; + case: "pubsubConsume"; + } | { case: undefined; value?: undefined } = { case: undefined }; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.console.v1.Event"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 2, name: "id", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 3, name: "log", kind: "message", T: LogEvent, oneof: "entry" }, + { no: 4, name: "call", kind: "message", T: CallEvent, oneof: "entry" }, + { no: 5, name: "deployment_created", kind: "message", T: DeploymentCreatedEvent, oneof: "entry" }, + { no: 6, name: "deployment_updated", kind: "message", T: DeploymentUpdatedEvent, oneof: "entry" }, + { no: 7, name: "ingress", kind: "message", T: IngressEvent, oneof: "entry" }, + { no: 8, name: "cron_scheduled", kind: "message", T: CronScheduledEvent, oneof: "entry" }, + { no: 9, name: "async_execute", kind: "message", T: AsyncExecuteEvent, oneof: "entry" }, + { no: 10, name: "pubsub_publish", kind: "message", T: PubSubPublishEvent, oneof: "entry" }, + { no: 11, name: "pubsub_consume", kind: "message", T: PubSubConsumeEvent, oneof: "entry" }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): Event { + return new Event().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): Event { + return new Event().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): Event { + return new Event().fromJsonString(jsonString, options); + } + + static equals(a: Event | PlainMessage | undefined, b: Event | PlainMessage | undefined): boolean { + return proto3.util.equals(Event, a, b); + } +} + diff --git a/frontend/console/src/protos/xyz/block/ftl/v1/language/language_connect.ts b/frontend/console/src/protos/xyz/block/ftl/language/v1/language_connect.ts similarity index 76% rename from frontend/console/src/protos/xyz/block/ftl/v1/language/language_connect.ts rename to frontend/console/src/protos/xyz/block/ftl/language/v1/language_connect.ts index f30a31deba..c8920e7670 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1/language/language_connect.ts +++ b/frontend/console/src/protos/xyz/block/ftl/language/v1/language_connect.ts @@ -1,24 +1,24 @@ // @generated by protoc-gen-connect-es v1.6.1 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1/language/language.proto (package xyz.block.ftl.v1.language, syntax proto3) +// @generated from file xyz/block/ftl/language/v1/language.proto (package xyz.block.ftl.language.v1, syntax proto3) /* eslint-disable */ // @ts-nocheck -import { PingRequest, PingResponse } from "../ftl_pb.js"; +import { PingRequest, PingResponse } from "../../v1/ftl_pb.js"; import { MethodIdempotency, MethodKind } from "@bufbuild/protobuf"; -import { BuildContextUpdatedRequest, BuildContextUpdatedResponse, BuildEvent, BuildRequest, CreateModuleRequest, CreateModuleResponse, DependenciesRequest, DependenciesResponse, GenerateStubsRequest, GenerateStubsResponse, GetCreateModuleFlagsRequest, GetCreateModuleFlagsResponse, ModuleConfigDefaultsRequest, ModuleConfigDefaultsResponse, SyncStubReferencesRequest, SyncStubReferencesResponse } from "./language_pb.js"; +import { BuildContextUpdatedRequest, BuildContextUpdatedResponse, BuildRequest, BuildResponse, CreateModuleRequest, CreateModuleResponse, GenerateStubsRequest, GenerateStubsResponse, GetCreateModuleFlagsRequest, GetCreateModuleFlagsResponse, GetDependenciesRequest, GetDependenciesResponse, ModuleConfigDefaultsRequest, ModuleConfigDefaultsResponse, SyncStubReferencesRequest, SyncStubReferencesResponse } from "./language_pb.js"; /** * LanguageService allows a plugin to add support for a programming language. * - * @generated from service xyz.block.ftl.v1.language.LanguageService + * @generated from service xyz.block.ftl.language.v1.LanguageService */ export const LanguageService = { - typeName: "xyz.block.ftl.v1.language.LanguageService", + typeName: "xyz.block.ftl.language.v1.LanguageService", methods: { /** * Ping service for readiness. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.Ping + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.Ping */ ping: { name: "Ping", @@ -30,7 +30,7 @@ export const LanguageService = { /** * Get language specific flags that can be used to create a new module. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.GetCreateModuleFlags + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.GetCreateModuleFlags */ getCreateModuleFlags: { name: "GetCreateModuleFlags", @@ -41,7 +41,7 @@ export const LanguageService = { /** * Generates files for a new module with the requested name * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.CreateModule + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.CreateModule */ createModule: { name: "CreateModule", @@ -52,7 +52,7 @@ export const LanguageService = { /** * Provide default values for ModuleConfig for values that are not configured in the ftl.toml file. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.ModuleConfigDefaults + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.ModuleConfigDefaults */ moduleConfigDefaults: { name: "ModuleConfigDefaults", @@ -64,12 +64,12 @@ export const LanguageService = { * Extract dependencies for a module * FTL will ensure that these dependencies are built before requesting a build for this module. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.GetDependencies + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.GetDependencies */ getDependencies: { name: "GetDependencies", - I: DependenciesRequest, - O: DependenciesResponse, + I: GetDependenciesRequest, + O: GetDependenciesResponse, kind: MethodKind.Unary, }, /** @@ -83,12 +83,12 @@ export const LanguageService = { * rebuild must include the latest build context id provided by the request or subsequent BuildContextUpdated * calls. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.Build + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.Build */ build: { name: "Build", I: BuildRequest, - O: BuildEvent, + O: BuildResponse, kind: MethodKind.ServerStreaming, }, /** @@ -101,7 +101,7 @@ export const LanguageService = { * If the plugin will not be able to return a BuildSuccess or BuildFailure, such as when there is no active * build stream, it must fail the BuildContextUpdated call. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.BuildContextUpdated + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.BuildContextUpdated */ buildContextUpdated: { name: "BuildContextUpdated", @@ -118,7 +118,7 @@ export const LanguageService = { * This call is not tied to the module that this plugin is responsible for. A plugin of each language will * be chosen to generate stubs for each module. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.GenerateStubs + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.GenerateStubs */ generateStubs: { name: "GenerateStubs", @@ -135,7 +135,7 @@ export const LanguageService = { * * It is optional to do anything with this call. * - * @generated from rpc xyz.block.ftl.v1.language.LanguageService.SyncStubReferences + * @generated from rpc xyz.block.ftl.language.v1.LanguageService.SyncStubReferences */ syncStubReferences: { name: "SyncStubReferences", diff --git a/frontend/console/src/protos/xyz/block/ftl/v1/language/language_pb.ts b/frontend/console/src/protos/xyz/block/ftl/language/v1/language_pb.ts similarity index 85% rename from frontend/console/src/protos/xyz/block/ftl/v1/language/language_pb.ts rename to frontend/console/src/protos/xyz/block/ftl/language/v1/language_pb.ts index 257346ba3f..c1a105f8a5 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1/language/language_pb.ts +++ b/frontend/console/src/protos/xyz/block/ftl/language/v1/language_pb.ts @@ -1,16 +1,16 @@ // @generated by protoc-gen-es v1.10.0 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1/language/language.proto (package xyz.block.ftl.v1.language, syntax proto3) +// @generated from file xyz/block/ftl/language/v1/language.proto (package xyz.block.ftl.language.v1, syntax proto3) /* eslint-disable */ // @ts-nocheck import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, protoInt64, Struct } from "@bufbuild/protobuf"; -import { Module, Schema } from "../schema/schema_pb.js"; +import { Module, Schema } from "../../schema/v1/schema_pb.js"; /** * ModuleConfig contains the configuration for a module, found in the module's ftl.toml file. * - * @generated from message xyz.block.ftl.v1.language.ModuleConfig + * @generated from message xyz.block.ftl.language.v1.ModuleConfig */ export class ModuleConfig extends Message { /** @@ -97,7 +97,7 @@ export class ModuleConfig extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.ModuleConfig"; + static readonly typeName = "xyz.block.ftl.language.v1.ModuleConfig"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "dir", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -132,7 +132,7 @@ export class ModuleConfig extends Message { /** * ProjectConfig contains the configuration for a project, found in the ftl-project.toml file. * - * @generated from message xyz.block.ftl.v1.language.ProjectConfig + * @generated from message xyz.block.ftl.language.v1.ProjectConfig */ export class ProjectConfig extends Message { /** @@ -161,7 +161,7 @@ export class ProjectConfig extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.ProjectConfig"; + static readonly typeName = "xyz.block.ftl.language.v1.ProjectConfig"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "dir", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -187,7 +187,7 @@ export class ProjectConfig extends Message { } /** - * @generated from message xyz.block.ftl.v1.language.GetCreateModuleFlagsRequest + * @generated from message xyz.block.ftl.language.v1.GetCreateModuleFlagsRequest */ export class GetCreateModuleFlagsRequest extends Message { /** @@ -201,7 +201,7 @@ export class GetCreateModuleFlagsRequest extends Message [ { no: 1, name: "language", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); @@ -224,11 +224,11 @@ export class GetCreateModuleFlagsRequest extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.language.GetCreateModuleFlagsResponse.Flag flags = 1; + * @generated from field: repeated xyz.block.ftl.language.v1.GetCreateModuleFlagsResponse.Flag flags = 1; */ flags: GetCreateModuleFlagsResponse_Flag[] = []; @@ -238,7 +238,7 @@ export class GetCreateModuleFlagsResponse extends Message [ { no: 1, name: "flags", kind: "message", T: GetCreateModuleFlagsResponse_Flag, repeated: true }, ]); @@ -261,7 +261,7 @@ export class GetCreateModuleFlagsResponse extends Message { /** @@ -302,7 +302,7 @@ export class GetCreateModuleFlagsResponse_Flag extends Message [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "help", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -332,7 +332,7 @@ export class GetCreateModuleFlagsResponse_Flag extends Message { /** @@ -351,7 +351,7 @@ export class CreateModuleRequest extends Message { /** * The project configuration * - * @generated from field: xyz.block.ftl.v1.language.ProjectConfig project_config = 3; + * @generated from field: xyz.block.ftl.language.v1.ProjectConfig project_config = 3; */ projectConfig?: ProjectConfig; @@ -368,7 +368,7 @@ export class CreateModuleRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.CreateModuleRequest"; + static readonly typeName = "xyz.block.ftl.language.v1.CreateModuleRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "dir", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -396,7 +396,7 @@ export class CreateModuleRequest extends Message { /** * Response to a create module request. * - * @generated from message xyz.block.ftl.v1.language.CreateModuleResponse + * @generated from message xyz.block.ftl.language.v1.CreateModuleResponse */ export class CreateModuleResponse extends Message { constructor(data?: PartialMessage) { @@ -405,7 +405,7 @@ export class CreateModuleResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.CreateModuleResponse"; + static readonly typeName = "xyz.block.ftl.language.v1.CreateModuleResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ ]); @@ -427,7 +427,7 @@ export class CreateModuleResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1.language.ModuleConfigDefaultsRequest + * @generated from message xyz.block.ftl.language.v1.ModuleConfigDefaultsRequest */ export class ModuleConfigDefaultsRequest extends Message { /** @@ -441,7 +441,7 @@ export class ModuleConfigDefaultsRequest extends Message [ { no: 1, name: "dir", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); @@ -472,7 +472,7 @@ export class ModuleConfigDefaultsRequest extends Message { /** @@ -538,7 +538,7 @@ export class ModuleConfigDefaultsResponse extends Message [ { no: 1, name: "deploy_dir", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "build", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, @@ -568,76 +568,76 @@ export class ModuleConfigDefaultsResponse extends Message { +export class GetDependenciesRequest extends Message { /** - * @generated from field: xyz.block.ftl.v1.language.ModuleConfig module_config = 1; + * @generated from field: xyz.block.ftl.language.v1.ModuleConfig module_config = 1; */ moduleConfig?: ModuleConfig; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.DependenciesRequest"; + static readonly typeName = "xyz.block.ftl.language.v1.GetDependenciesRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "module_config", kind: "message", T: ModuleConfig }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): DependenciesRequest { - return new DependenciesRequest().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetDependenciesRequest { + return new GetDependenciesRequest().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): DependenciesRequest { - return new DependenciesRequest().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetDependenciesRequest { + return new GetDependenciesRequest().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): DependenciesRequest { - return new DependenciesRequest().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetDependenciesRequest { + return new GetDependenciesRequest().fromJsonString(jsonString, options); } - static equals(a: DependenciesRequest | PlainMessage | undefined, b: DependenciesRequest | PlainMessage | undefined): boolean { - return proto3.util.equals(DependenciesRequest, a, b); + static equals(a: GetDependenciesRequest | PlainMessage | undefined, b: GetDependenciesRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetDependenciesRequest, a, b); } } /** - * @generated from message xyz.block.ftl.v1.language.DependenciesResponse + * @generated from message xyz.block.ftl.language.v1.GetDependenciesResponse */ -export class DependenciesResponse extends Message { +export class GetDependenciesResponse extends Message { /** * @generated from field: repeated string modules = 1; */ modules: string[] = []; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.DependenciesResponse"; + static readonly typeName = "xyz.block.ftl.language.v1.GetDependenciesResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "modules", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): DependenciesResponse { - return new DependenciesResponse().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): GetDependenciesResponse { + return new GetDependenciesResponse().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): DependenciesResponse { - return new DependenciesResponse().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): GetDependenciesResponse { + return new GetDependenciesResponse().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): DependenciesResponse { - return new DependenciesResponse().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): GetDependenciesResponse { + return new GetDependenciesResponse().fromJsonString(jsonString, options); } - static equals(a: DependenciesResponse | PlainMessage | undefined, b: DependenciesResponse | PlainMessage | undefined): boolean { - return proto3.util.equals(DependenciesResponse, a, b); + static equals(a: GetDependenciesResponse | PlainMessage | undefined, b: GetDependenciesResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetDependenciesResponse, a, b); } } @@ -647,7 +647,7 @@ export class DependenciesResponse extends Message { * Plugins must include the build context's id when a build succeeds or fails. * For automatic rebuilds, plugins must use the most recent build context they have received. * - * @generated from message xyz.block.ftl.v1.language.BuildContext + * @generated from message xyz.block.ftl.language.v1.BuildContext */ export class BuildContext extends Message { /** @@ -658,14 +658,14 @@ export class BuildContext extends Message { /** * The configuration for the module * - * @generated from field: xyz.block.ftl.v1.language.ModuleConfig module_config = 2; + * @generated from field: xyz.block.ftl.language.v1.ModuleConfig module_config = 2; */ moduleConfig?: ModuleConfig; /** * The FTL schema including all dependencies * - * @generated from field: xyz.block.ftl.v1.schema.Schema schema = 3; + * @generated from field: xyz.block.ftl.schema.v1.Schema schema = 3; */ schema?: Schema; @@ -689,7 +689,7 @@ export class BuildContext extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.BuildContext"; + static readonly typeName = "xyz.block.ftl.language.v1.BuildContext"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "module_config", kind: "message", T: ModuleConfig }, @@ -716,11 +716,11 @@ export class BuildContext extends Message { } /** - * @generated from message xyz.block.ftl.v1.language.BuildContextUpdatedRequest + * @generated from message xyz.block.ftl.language.v1.BuildContextUpdatedRequest */ export class BuildContextUpdatedRequest extends Message { /** - * @generated from field: xyz.block.ftl.v1.language.BuildContext build_context = 1; + * @generated from field: xyz.block.ftl.language.v1.BuildContext build_context = 1; */ buildContext?: BuildContext; @@ -730,7 +730,7 @@ export class BuildContextUpdatedRequest extends Message [ { no: 1, name: "build_context", kind: "message", T: BuildContext }, ]); @@ -753,7 +753,7 @@ export class BuildContextUpdatedRequest extends Message { constructor(data?: PartialMessage) { @@ -762,7 +762,7 @@ export class BuildContextUpdatedResponse extends Message [ ]); @@ -787,7 +787,7 @@ export class BuildContextUpdatedResponse extends Message { /** @@ -796,19 +796,19 @@ export class Error extends Message { msg = ""; /** - * @generated from field: xyz.block.ftl.v1.language.Error.ErrorLevel level = 4; + * @generated from field: xyz.block.ftl.language.v1.Error.ErrorLevel level = 4; */ - level = Error_ErrorLevel.INFO; + level = Error_ErrorLevel.UNSPECIFIED; /** - * @generated from field: optional xyz.block.ftl.v1.language.Position pos = 5; + * @generated from field: optional xyz.block.ftl.language.v1.Position pos = 5; */ pos?: Position; /** - * @generated from field: xyz.block.ftl.v1.language.Error.ErrorType type = 6; + * @generated from field: xyz.block.ftl.language.v1.Error.ErrorType type = 6; */ - type = Error_ErrorType.FTL; + type = Error_ErrorType.UNSPECIFIED; constructor(data?: PartialMessage) { super(); @@ -816,7 +816,7 @@ export class Error extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.Error"; + static readonly typeName = "xyz.block.ftl.language.v1.Error"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "msg", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 4, name: "level", kind: "enum", T: proto3.getEnumType(Error_ErrorLevel) }, @@ -842,57 +842,69 @@ export class Error extends Message { } /** - * @generated from enum xyz.block.ftl.v1.language.Error.ErrorLevel + * @generated from enum xyz.block.ftl.language.v1.Error.ErrorLevel */ export enum Error_ErrorLevel { /** - * @generated from enum value: INFO = 0; + * @generated from enum value: ERROR_LEVEL_UNSPECIFIED = 0; */ - INFO = 0, + UNSPECIFIED = 0, /** - * @generated from enum value: WARN = 1; + * @generated from enum value: ERROR_LEVEL_INFO = 1; */ - WARN = 1, + INFO = 1, /** - * @generated from enum value: ERROR = 2; + * @generated from enum value: ERROR_LEVEL_WARN = 2; */ - ERROR = 2, + WARN = 2, + + /** + * @generated from enum value: ERROR_LEVEL_ERROR = 3; + */ + ERROR = 3, } // Retrieve enum metadata with: proto3.getEnumType(Error_ErrorLevel) -proto3.util.setEnumType(Error_ErrorLevel, "xyz.block.ftl.v1.language.Error.ErrorLevel", [ - { no: 0, name: "INFO" }, - { no: 1, name: "WARN" }, - { no: 2, name: "ERROR" }, +proto3.util.setEnumType(Error_ErrorLevel, "xyz.block.ftl.language.v1.Error.ErrorLevel", [ + { no: 0, name: "ERROR_LEVEL_UNSPECIFIED" }, + { no: 1, name: "ERROR_LEVEL_INFO" }, + { no: 2, name: "ERROR_LEVEL_WARN" }, + { no: 3, name: "ERROR_LEVEL_ERROR" }, ]); /** - * @generated from enum xyz.block.ftl.v1.language.Error.ErrorType + * @generated from enum xyz.block.ftl.language.v1.Error.ErrorType */ export enum Error_ErrorType { /** - * @generated from enum value: FTL = 0; + * @generated from enum value: ERROR_TYPE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: ERROR_TYPE_FTL = 1; */ - FTL = 0, + FTL = 1, /** * Compiler errors are errors that are from the compiler. This is useful to avoid duplicate errors * being shown to the user when combining errors from multiple sources (eg: an IDE showing compiler * errors and FTL errors via LSP). * - * @generated from enum value: COMPILER = 1; + * @generated from enum value: ERROR_TYPE_COMPILER = 2; */ - COMPILER = 1, + COMPILER = 2, } // Retrieve enum metadata with: proto3.getEnumType(Error_ErrorType) -proto3.util.setEnumType(Error_ErrorType, "xyz.block.ftl.v1.language.Error.ErrorType", [ - { no: 0, name: "FTL" }, - { no: 1, name: "COMPILER" }, +proto3.util.setEnumType(Error_ErrorType, "xyz.block.ftl.language.v1.Error.ErrorType", [ + { no: 0, name: "ERROR_TYPE_UNSPECIFIED" }, + { no: 1, name: "ERROR_TYPE_FTL" }, + { no: 2, name: "ERROR_TYPE_COMPILER" }, ]); /** - * @generated from message xyz.block.ftl.v1.language.Position + * @generated from message xyz.block.ftl.language.v1.Position */ export class Position extends Message { /** @@ -921,7 +933,7 @@ export class Position extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.Position"; + static readonly typeName = "xyz.block.ftl.language.v1.Position"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "filename", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "line", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, @@ -947,11 +959,11 @@ export class Position extends Message { } /** - * @generated from message xyz.block.ftl.v1.language.ErrorList + * @generated from message xyz.block.ftl.language.v1.ErrorList */ export class ErrorList extends Message { /** - * @generated from field: repeated xyz.block.ftl.v1.language.Error errors = 1; + * @generated from field: repeated xyz.block.ftl.language.v1.Error errors = 1; */ errors: Error[] = []; @@ -961,7 +973,7 @@ export class ErrorList extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.ErrorList"; + static readonly typeName = "xyz.block.ftl.language.v1.ErrorList"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "errors", kind: "message", T: Error, repeated: true }, ]); @@ -986,7 +998,7 @@ export class ErrorList extends Message { /** * Request to build a module. * - * @generated from message xyz.block.ftl.v1.language.BuildRequest + * @generated from message xyz.block.ftl.language.v1.BuildRequest */ export class BuildRequest extends Message { /** @@ -1011,7 +1023,7 @@ export class BuildRequest extends Message { rebuildAutomatically = false; /** - * @generated from field: xyz.block.ftl.v1.language.BuildContext build_context = 4; + * @generated from field: xyz.block.ftl.language.v1.BuildContext build_context = 4; */ buildContext?: BuildContext; @@ -1021,7 +1033,7 @@ export class BuildRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.BuildRequest"; + static readonly typeName = "xyz.block.ftl.language.v1.BuildRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "project_root", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "stubs_root", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1054,7 +1066,7 @@ export class BuildRequest extends Message { * If the plugin decides to cancel the build because another build started, no failure or cancellation event needs * to be sent. * - * @generated from message xyz.block.ftl.v1.language.AutoRebuildStarted + * @generated from message xyz.block.ftl.language.v1.AutoRebuildStarted */ export class AutoRebuildStarted extends Message { /** @@ -1068,7 +1080,7 @@ export class AutoRebuildStarted extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.AutoRebuildStarted"; + static readonly typeName = "xyz.block.ftl.language.v1.AutoRebuildStarted"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "context_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); @@ -1095,7 +1107,7 @@ export class AutoRebuildStarted extends Message { * * FTL may ignore this event if it does not match FTL's current build context and state. * - * @generated from message xyz.block.ftl.v1.language.BuildSuccess + * @generated from message xyz.block.ftl.language.v1.BuildSuccess */ export class BuildSuccess extends Message { /** @@ -1115,7 +1127,7 @@ export class BuildSuccess extends Message { /** * Module schema for the built module * - * @generated from field: xyz.block.ftl.v1.schema.Module module = 3; + * @generated from field: xyz.block.ftl.schema.v1.Module module = 3; */ module?: Module; @@ -1138,7 +1150,7 @@ export class BuildSuccess extends Message { * No errors can have a level of ERROR, instead a BuildFailure should be sent * Instead this is useful for INFO and WARN level errors. * - * @generated from field: xyz.block.ftl.v1.language.ErrorList errors = 6; + * @generated from field: xyz.block.ftl.language.v1.ErrorList errors = 6; */ errors?: ErrorList; @@ -1163,7 +1175,7 @@ export class BuildSuccess extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.BuildSuccess"; + static readonly typeName = "xyz.block.ftl.language.v1.BuildSuccess"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "context_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "is_automatic_rebuild", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, @@ -1197,7 +1209,7 @@ export class BuildSuccess extends Message { * * FTL may ignore this event if it does not match FTL's current build context and state. * - * @generated from message xyz.block.ftl.v1.language.BuildFailure + * @generated from message xyz.block.ftl.language.v1.BuildFailure */ export class BuildFailure extends Message { /** @@ -1217,7 +1229,7 @@ export class BuildFailure extends Message { /** * Errors contains any errors that occurred during the build * - * @generated from field: xyz.block.ftl.v1.language.ErrorList errors = 3; + * @generated from field: xyz.block.ftl.language.v1.ErrorList errors = 3; */ errors?: ErrorList; @@ -1236,7 +1248,7 @@ export class BuildFailure extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.BuildFailure"; + static readonly typeName = "xyz.block.ftl.language.v1.BuildFailure"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "context_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "is_automatic_rebuild", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, @@ -1264,64 +1276,64 @@ export class BuildFailure extends Message { /** * Every type of message that can be streamed from the language plugin for a build. * - * @generated from message xyz.block.ftl.v1.language.BuildEvent + * @generated from message xyz.block.ftl.language.v1.BuildResponse */ -export class BuildEvent extends Message { +export class BuildResponse extends Message { /** - * @generated from oneof xyz.block.ftl.v1.language.BuildEvent.event + * @generated from oneof xyz.block.ftl.language.v1.BuildResponse.event */ event: { /** - * @generated from field: xyz.block.ftl.v1.language.AutoRebuildStarted auto_rebuild_started = 2; + * @generated from field: xyz.block.ftl.language.v1.AutoRebuildStarted auto_rebuild_started = 2; */ value: AutoRebuildStarted; case: "autoRebuildStarted"; } | { /** - * @generated from field: xyz.block.ftl.v1.language.BuildSuccess build_success = 3; + * @generated from field: xyz.block.ftl.language.v1.BuildSuccess build_success = 3; */ value: BuildSuccess; case: "buildSuccess"; } | { /** - * @generated from field: xyz.block.ftl.v1.language.BuildFailure build_failure = 4; + * @generated from field: xyz.block.ftl.language.v1.BuildFailure build_failure = 4; */ value: BuildFailure; case: "buildFailure"; } | { case: undefined; value?: undefined } = { case: undefined }; - constructor(data?: PartialMessage) { + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.BuildEvent"; + static readonly typeName = "xyz.block.ftl.language.v1.BuildResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 2, name: "auto_rebuild_started", kind: "message", T: AutoRebuildStarted, oneof: "event" }, { no: 3, name: "build_success", kind: "message", T: BuildSuccess, oneof: "event" }, { no: 4, name: "build_failure", kind: "message", T: BuildFailure, oneof: "event" }, ]); - static fromBinary(bytes: Uint8Array, options?: Partial): BuildEvent { - return new BuildEvent().fromBinary(bytes, options); + static fromBinary(bytes: Uint8Array, options?: Partial): BuildResponse { + return new BuildResponse().fromBinary(bytes, options); } - static fromJson(jsonValue: JsonValue, options?: Partial): BuildEvent { - return new BuildEvent().fromJson(jsonValue, options); + static fromJson(jsonValue: JsonValue, options?: Partial): BuildResponse { + return new BuildResponse().fromJson(jsonValue, options); } - static fromJsonString(jsonString: string, options?: Partial): BuildEvent { - return new BuildEvent().fromJsonString(jsonString, options); + static fromJsonString(jsonString: string, options?: Partial): BuildResponse { + return new BuildResponse().fromJsonString(jsonString, options); } - static equals(a: BuildEvent | PlainMessage | undefined, b: BuildEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(BuildEvent, a, b); + static equals(a: BuildResponse | PlainMessage | undefined, b: BuildResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(BuildResponse, a, b); } } /** - * @generated from message xyz.block.ftl.v1.language.GenerateStubsRequest + * @generated from message xyz.block.ftl.language.v1.GenerateStubsRequest */ export class GenerateStubsRequest extends Message { /** @@ -1334,14 +1346,14 @@ export class GenerateStubsRequest extends Message { /** * The schema of the module to generate stubs for * - * @generated from field: xyz.block.ftl.v1.schema.Module module = 2; + * @generated from field: xyz.block.ftl.schema.v1.Module module = 2; */ module?: Module; /** * The module's configuration to generate stubs for * - * @generated from field: xyz.block.ftl.v1.language.ModuleConfig module_config = 3; + * @generated from field: xyz.block.ftl.language.v1.ModuleConfig module_config = 3; */ moduleConfig?: ModuleConfig; @@ -1350,7 +1362,7 @@ export class GenerateStubsRequest extends Message { * the main moduleConfig provided is of a different language. It is provided as a mechanism to derive * language specific information. For example, the language version. * - * @generated from field: optional xyz.block.ftl.v1.language.ModuleConfig native_module_config = 4; + * @generated from field: optional xyz.block.ftl.language.v1.ModuleConfig native_module_config = 4; */ nativeModuleConfig?: ModuleConfig; @@ -1360,7 +1372,7 @@ export class GenerateStubsRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.GenerateStubsRequest"; + static readonly typeName = "xyz.block.ftl.language.v1.GenerateStubsRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "dir", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "module", kind: "message", T: Module }, @@ -1386,7 +1398,7 @@ export class GenerateStubsRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1.language.GenerateStubsResponse + * @generated from message xyz.block.ftl.language.v1.GenerateStubsResponse */ export class GenerateStubsResponse extends Message { constructor(data?: PartialMessage) { @@ -1395,7 +1407,7 @@ export class GenerateStubsResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.language.GenerateStubsResponse"; + static readonly typeName = "xyz.block.ftl.language.v1.GenerateStubsResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ ]); @@ -1417,11 +1429,11 @@ export class GenerateStubsResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1.language.SyncStubReferencesRequest + * @generated from message xyz.block.ftl.language.v1.SyncStubReferencesRequest */ export class SyncStubReferencesRequest extends Message { /** - * @generated from field: xyz.block.ftl.v1.language.ModuleConfig module_config = 1; + * @generated from field: xyz.block.ftl.language.v1.ModuleConfig module_config = 1; */ moduleConfig?: ModuleConfig; @@ -1445,7 +1457,7 @@ export class SyncStubReferencesRequest extends Message [ { no: 1, name: "module_config", kind: "message", T: ModuleConfig }, { no: 2, name: "stubs_root", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1470,7 +1482,7 @@ export class SyncStubReferencesRequest extends Message { constructor(data?: PartialMessage) { @@ -1479,7 +1491,7 @@ export class SyncStubReferencesResponse extends Message [ ]); diff --git a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/plugin_connect.ts b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/plugin_connect.ts similarity index 68% rename from frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/plugin_connect.ts rename to frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/plugin_connect.ts index 0475c4093c..4d63dc4c8d 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/plugin_connect.ts +++ b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/plugin_connect.ts @@ -1,5 +1,5 @@ // @generated by protoc-gen-connect-es v1.6.1 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1beta1/provisioner/plugin.proto (package xyz.block.ftl.v1beta1.provisioner, syntax proto3) +// @generated from file xyz/block/ftl/provisioner/v1beta1/plugin.proto (package xyz.block.ftl.provisioner.v1beta1, syntax proto3) /* eslint-disable */ // @ts-nocheck @@ -8,13 +8,13 @@ import { MethodKind } from "@bufbuild/protobuf"; import { PlanRequest, PlanResponse, ProvisionRequest, ProvisionResponse, StatusRequest, StatusResponse } from "./plugin_pb.js"; /** - * @generated from service xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService + * @generated from service xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService */ export const ProvisionerPluginService = { - typeName: "xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService", + typeName: "xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService", methods: { /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Ping + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Ping */ ping: { name: "Ping", @@ -23,7 +23,7 @@ export const ProvisionerPluginService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Provision + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Provision */ provision: { name: "Provision", @@ -32,7 +32,7 @@ export const ProvisionerPluginService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Plan + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Plan */ plan: { name: "Plan", @@ -41,7 +41,7 @@ export const ProvisionerPluginService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerPluginService.Status + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerPluginService.Status */ status: { name: "Status", diff --git a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/plugin_pb.ts b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/plugin_pb.ts similarity index 84% rename from frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/plugin_pb.ts rename to frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/plugin_pb.ts index 2572903d15..154fef5bef 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/plugin_pb.ts +++ b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/plugin_pb.ts @@ -1,5 +1,5 @@ // @generated by protoc-gen-es v1.10.0 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1beta1/provisioner/plugin.proto (package xyz.block.ftl.v1beta1.provisioner, syntax proto3) +// @generated from file xyz/block/ftl/provisioner/v1beta1/plugin.proto (package xyz.block.ftl.provisioner.v1beta1, syntax proto3) /* eslint-disable */ // @ts-nocheck @@ -12,16 +12,16 @@ import { Resource } from "./resource_pb.js"; * This includes the direct dependencies of the new resource, that can impact * the resource creation. * - * @generated from message xyz.block.ftl.v1beta1.provisioner.ResourceContext + * @generated from message xyz.block.ftl.provisioner.v1beta1.ResourceContext */ export class ResourceContext extends Message { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.Resource resource = 1; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.Resource resource = 1; */ resource?: Resource; /** - * @generated from field: repeated xyz.block.ftl.v1beta1.provisioner.Resource dependencies = 2; + * @generated from field: repeated xyz.block.ftl.provisioner.v1beta1.Resource dependencies = 2; */ dependencies: Resource[] = []; @@ -31,7 +31,7 @@ export class ResourceContext extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.ResourceContext"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.ResourceContext"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "resource", kind: "message", T: Resource }, { no: 2, name: "dependencies", kind: "message", T: Resource, repeated: true }, @@ -55,7 +55,7 @@ export class ResourceContext extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.ProvisionRequest + * @generated from message xyz.block.ftl.provisioner.v1beta1.ProvisionRequest */ export class ProvisionRequest extends Message { /** @@ -71,7 +71,7 @@ export class ProvisionRequest extends Message { /** * The resource FTL thinks exists currently * - * @generated from field: repeated xyz.block.ftl.v1beta1.provisioner.Resource existing_resources = 3; + * @generated from field: repeated xyz.block.ftl.provisioner.v1beta1.Resource existing_resources = 3; */ existingResources: Resource[] = []; @@ -79,7 +79,7 @@ export class ProvisionRequest extends Message { * The resource FTL would like to exist after this provisioning run. * This includes all new, existing, and changes resources in this change. * - * @generated from field: repeated xyz.block.ftl.v1beta1.provisioner.ResourceContext desired_resources = 4; + * @generated from field: repeated xyz.block.ftl.provisioner.v1beta1.ResourceContext desired_resources = 4; */ desiredResources: ResourceContext[] = []; @@ -89,7 +89,7 @@ export class ProvisionRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.ProvisionRequest"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.ProvisionRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "ftl_cluster_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "module", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -115,7 +115,7 @@ export class ProvisionRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.ProvisionResponse + * @generated from message xyz.block.ftl.provisioner.v1beta1.ProvisionResponse */ export class ProvisionResponse extends Message { /** @@ -124,9 +124,9 @@ export class ProvisionResponse extends Message { provisioningToken = ""; /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.ProvisionResponse.ProvisionResponseStatus status = 2; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.ProvisionResponse.ProvisionResponseStatus status = 2; */ - status = ProvisionResponse_ProvisionResponseStatus.UNKNOWN; + status = ProvisionResponse_ProvisionResponseStatus.UNSPECIFIED; constructor(data?: PartialMessage) { super(); @@ -134,7 +134,7 @@ export class ProvisionResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.ProvisionResponse"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.ProvisionResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "provisioning_token", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "status", kind: "enum", T: proto3.getEnumType(ProvisionResponse_ProvisionResponseStatus) }, @@ -158,27 +158,27 @@ export class ProvisionResponse extends Message { } /** - * @generated from enum xyz.block.ftl.v1beta1.provisioner.ProvisionResponse.ProvisionResponseStatus + * @generated from enum xyz.block.ftl.provisioner.v1beta1.ProvisionResponse.ProvisionResponseStatus */ export enum ProvisionResponse_ProvisionResponseStatus { /** - * @generated from enum value: UNKNOWN = 0; + * @generated from enum value: PROVISION_RESPONSE_STATUS_UNSPECIFIED = 0; */ - UNKNOWN = 0, + UNSPECIFIED = 0, /** - * @generated from enum value: SUBMITTED = 1; + * @generated from enum value: PROVISION_RESPONSE_STATUS_SUBMITTED = 1; */ SUBMITTED = 1, } // Retrieve enum metadata with: proto3.getEnumType(ProvisionResponse_ProvisionResponseStatus) -proto3.util.setEnumType(ProvisionResponse_ProvisionResponseStatus, "xyz.block.ftl.v1beta1.provisioner.ProvisionResponse.ProvisionResponseStatus", [ - { no: 0, name: "UNKNOWN" }, - { no: 1, name: "SUBMITTED" }, +proto3.util.setEnumType(ProvisionResponse_ProvisionResponseStatus, "xyz.block.ftl.provisioner.v1beta1.ProvisionResponse.ProvisionResponseStatus", [ + { no: 0, name: "PROVISION_RESPONSE_STATUS_UNSPECIFIED" }, + { no: 1, name: "PROVISION_RESPONSE_STATUS_SUBMITTED" }, ]); /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.StatusRequest + * @generated from message xyz.block.ftl.provisioner.v1beta1.StatusRequest */ export class StatusRequest extends Message { /** @@ -191,7 +191,7 @@ export class StatusRequest extends Message { * We need this as input here, so we can populate any resource fields in them * when the provisioning finishes * - * @generated from field: repeated xyz.block.ftl.v1beta1.provisioner.Resource desired_resources = 2; + * @generated from field: repeated xyz.block.ftl.provisioner.v1beta1.Resource desired_resources = 2; */ desiredResources: Resource[] = []; @@ -201,7 +201,7 @@ export class StatusRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.StatusRequest"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.StatusRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "provisioning_token", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "desired_resources", kind: "message", T: Resource, repeated: true }, @@ -225,21 +225,21 @@ export class StatusRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.StatusResponse + * @generated from message xyz.block.ftl.provisioner.v1beta1.StatusResponse */ export class StatusResponse extends Message { /** - * @generated from oneof xyz.block.ftl.v1beta1.provisioner.StatusResponse.status + * @generated from oneof xyz.block.ftl.provisioner.v1beta1.StatusResponse.status */ status: { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningRunning running = 1; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningRunning running = 1; */ value: StatusResponse_ProvisioningRunning; case: "running"; } | { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningSuccess success = 2; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningSuccess success = 2; */ value: StatusResponse_ProvisioningSuccess; case: "success"; @@ -251,7 +251,7 @@ export class StatusResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.StatusResponse"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.StatusResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "running", kind: "message", T: StatusResponse_ProvisioningRunning, oneof: "status" }, { no: 2, name: "success", kind: "message", T: StatusResponse_ProvisioningSuccess, oneof: "status" }, @@ -275,7 +275,7 @@ export class StatusResponse extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.StatusResponse.ProvisioningRunning + * @generated from message xyz.block.ftl.provisioner.v1beta1.StatusResponse.ProvisioningRunning */ export class StatusResponse_ProvisioningRunning extends Message { constructor(data?: PartialMessage) { @@ -284,7 +284,7 @@ export class StatusResponse_ProvisioningRunning extends Message [ ]); @@ -306,7 +306,7 @@ export class StatusResponse_ProvisioningRunning extends Message { /** @@ -320,7 +320,7 @@ export class StatusResponse_ProvisioningFailed extends Message [ { no: 1, name: "error_message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); @@ -343,14 +343,14 @@ export class StatusResponse_ProvisioningFailed extends Message { /** * Some fields in the resources might have been populated * during the provisioning. The new state is returned here * - * @generated from field: repeated xyz.block.ftl.v1beta1.provisioner.Resource updated_resources = 1; + * @generated from field: repeated xyz.block.ftl.provisioner.v1beta1.Resource updated_resources = 1; */ updatedResources: Resource[] = []; @@ -360,7 +360,7 @@ export class StatusResponse_ProvisioningSuccess extends Message [ { no: 1, name: "updated_resources", kind: "message", T: Resource, repeated: true }, ]); @@ -383,11 +383,11 @@ export class StatusResponse_ProvisioningSuccess extends Message { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.ProvisionRequest provisioning = 1; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.ProvisionRequest provisioning = 1; */ provisioning?: ProvisionRequest; @@ -397,7 +397,7 @@ export class PlanRequest extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.PlanRequest"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.PlanRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "provisioning", kind: "message", T: ProvisionRequest }, ]); @@ -420,7 +420,7 @@ export class PlanRequest extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.PlanResponse + * @generated from message xyz.block.ftl.provisioner.v1beta1.PlanResponse */ export class PlanResponse extends Message { /** @@ -436,7 +436,7 @@ export class PlanResponse extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.PlanResponse"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.PlanResponse"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "plan", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); diff --git a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/resource_pb.ts b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/resource_pb.ts similarity index 74% rename from frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/resource_pb.ts rename to frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/resource_pb.ts index a400341f17..d9318688bf 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/resource_pb.ts +++ b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/resource_pb.ts @@ -1,17 +1,17 @@ // @generated by protoc-gen-es v1.10.0 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1beta1/provisioner/resource.proto (package xyz.block.ftl.v1beta1.provisioner, syntax proto3) +// @generated from file xyz/block/ftl/provisioner/v1beta1/resource.proto (package xyz.block.ftl.provisioner.v1beta1, syntax proto3) /* eslint-disable */ // @ts-nocheck import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; -import { Message, proto3, Struct } from "@bufbuild/protobuf"; -import { DatabaseRuntime, Module, Ref } from "../../v1/schema/schema_pb.js"; +import { Message, proto3 } from "@bufbuild/protobuf"; +import { DatabaseRuntime, Module, Ref } from "../../schema/v1/schema_pb.js"; import { DeploymentArtefact } from "../../v1/controller_pb.js"; /** * Resource is an abstract resource extracted from FTL Schema. * - * @generated from message xyz.block.ftl.v1beta1.provisioner.Resource + * @generated from message xyz.block.ftl.provisioner.v1beta1.Resource */ export class Resource extends Message { /** @@ -22,44 +22,50 @@ export class Resource extends Message { resourceId = ""; /** - * @generated from oneof xyz.block.ftl.v1beta1.provisioner.Resource.resource + * @generated from oneof xyz.block.ftl.provisioner.v1beta1.Resource.resource */ resource: { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.PostgresResource postgres = 102; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.PostgresResource postgres = 102; */ value: PostgresResource; case: "postgres"; } | { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.MysqlResource mysql = 103; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.MysqlResource mysql = 103; */ value: MysqlResource; case: "mysql"; } | { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.ModuleResource module = 104; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.ModuleResource module = 104; */ value: ModuleResource; case: "module"; } | { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource sql_migration = 105; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource sql_migration = 105; */ value: SqlMigrationResource; case: "sqlMigration"; } | { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.TopicResource topic = 106; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.TopicResource topic = 106; */ value: TopicResource; case: "topic"; } | { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.SubscriptionResource subscription = 107; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.SubscriptionResource subscription = 107; */ value: SubscriptionResource; case: "subscription"; + } | { + /** + * @generated from field: xyz.block.ftl.provisioner.v1beta1.RunnerResource runner = 108; + */ + value: RunnerResource; + case: "runner"; } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { @@ -68,7 +74,7 @@ export class Resource extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.Resource"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.Resource"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "resource_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 102, name: "postgres", kind: "message", T: PostgresResource, oneof: "resource" }, @@ -77,6 +83,7 @@ export class Resource extends Message { { no: 105, name: "sql_migration", kind: "message", T: SqlMigrationResource, oneof: "resource" }, { no: 106, name: "topic", kind: "message", T: TopicResource, oneof: "resource" }, { no: 107, name: "subscription", kind: "message", T: SubscriptionResource, oneof: "resource" }, + { no: 108, name: "runner", kind: "message", T: RunnerResource, oneof: "resource" }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): Resource { @@ -97,11 +104,11 @@ export class Resource extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.PostgresResource + * @generated from message xyz.block.ftl.provisioner.v1beta1.PostgresResource */ export class PostgresResource extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.DatabaseRuntime output = 1; + * @generated from field: xyz.block.ftl.schema.v1.DatabaseRuntime output = 1; */ output?: DatabaseRuntime; @@ -111,7 +118,7 @@ export class PostgresResource extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.PostgresResource"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.PostgresResource"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "output", kind: "message", T: DatabaseRuntime }, ]); @@ -134,11 +141,11 @@ export class PostgresResource extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.MysqlResource + * @generated from message xyz.block.ftl.provisioner.v1beta1.MysqlResource */ export class MysqlResource extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.DatabaseRuntime output = 1; + * @generated from field: xyz.block.ftl.schema.v1.DatabaseRuntime output = 1; */ output?: DatabaseRuntime; @@ -148,7 +155,7 @@ export class MysqlResource extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.MysqlResource"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.MysqlResource"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "output", kind: "message", T: DatabaseRuntime }, ]); @@ -171,11 +178,11 @@ export class MysqlResource extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource + * @generated from message xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource */ export class SqlMigrationResource extends Message { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource.SqlMigrationResourceOutput output = 1; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource.SqlMigrationResourceOutput output = 1; */ output?: SqlMigrationResource_SqlMigrationResourceOutput; @@ -190,7 +197,7 @@ export class SqlMigrationResource extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "output", kind: "message", T: SqlMigrationResource_SqlMigrationResourceOutput }, { no: 2, name: "digest", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -214,7 +221,7 @@ export class SqlMigrationResource extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.SqlMigrationResource.SqlMigrationResourceOutput + * @generated from message xyz.block.ftl.provisioner.v1beta1.SqlMigrationResource.SqlMigrationResourceOutput */ export class SqlMigrationResource_SqlMigrationResourceOutput extends Message { constructor(data?: PartialMessage) { @@ -223,7 +230,7 @@ export class SqlMigrationResource_SqlMigrationResourceOutput extends Message [ ]); @@ -245,16 +252,16 @@ export class SqlMigrationResource_SqlMigrationResourceOutput extends Message { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.ModuleResource.ModuleResourceOutput output = 1; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.ModuleResource.ModuleResourceOutput output = 1; */ output?: ModuleResource_ModuleResourceOutput; /** - * @generated from field: xyz.block.ftl.v1.schema.Module schema = 2; + * @generated from field: xyz.block.ftl.schema.v1.Module schema = 2; */ schema?: Module; @@ -263,25 +270,17 @@ export class ModuleResource extends Message { */ artefacts: DeploymentArtefact[] = []; - /** - * Runner labels required to run this deployment. - * - * @generated from field: optional google.protobuf.Struct labels = 4; - */ - labels?: Struct; - constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.ModuleResource"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.ModuleResource"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "output", kind: "message", T: ModuleResource_ModuleResourceOutput }, { no: 2, name: "schema", kind: "message", T: Module }, { no: 3, name: "artefacts", kind: "message", T: DeploymentArtefact, repeated: true }, - { no: 4, name: "labels", kind: "message", T: Struct, opt: true }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): ModuleResource { @@ -302,7 +301,7 @@ export class ModuleResource extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.ModuleResource.ModuleResourceOutput + * @generated from message xyz.block.ftl.provisioner.v1beta1.ModuleResource.ModuleResourceOutput */ export class ModuleResource_ModuleResourceOutput extends Message { /** @@ -316,7 +315,7 @@ export class ModuleResource_ModuleResourceOutput extends Message [ { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); @@ -339,11 +338,91 @@ export class ModuleResource_ModuleResourceOutput extends Message { + /** + * @generated from field: xyz.block.ftl.provisioner.v1beta1.RunnerResource.RunnerResourceOutput output = 1; + */ + output?: RunnerResource_RunnerResourceOutput; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.RunnerResource"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "output", kind: "message", T: RunnerResource_RunnerResourceOutput }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): RunnerResource { + return new RunnerResource().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): RunnerResource { + return new RunnerResource().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): RunnerResource { + return new RunnerResource().fromJsonString(jsonString, options); + } + + static equals(a: RunnerResource | PlainMessage | undefined, b: RunnerResource | PlainMessage | undefined): boolean { + return proto3.util.equals(RunnerResource, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.provisioner.v1beta1.RunnerResource.RunnerResourceOutput + */ +export class RunnerResource_RunnerResourceOutput extends Message { + /** + * @generated from field: string runner_uri = 1; + */ + runnerUri = ""; + + /** + * @generated from field: string deployment_key = 2; + */ + deploymentKey = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.RunnerResource.RunnerResourceOutput"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "runner_uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): RunnerResource_RunnerResourceOutput { + return new RunnerResource_RunnerResourceOutput().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): RunnerResource_RunnerResourceOutput { + return new RunnerResource_RunnerResourceOutput().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): RunnerResource_RunnerResourceOutput { + return new RunnerResource_RunnerResourceOutput().fromJsonString(jsonString, options); + } + + static equals(a: RunnerResource_RunnerResourceOutput | PlainMessage | undefined, b: RunnerResource_RunnerResourceOutput | PlainMessage | undefined): boolean { + return proto3.util.equals(RunnerResource_RunnerResourceOutput, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.provisioner.v1beta1.TopicResource */ export class TopicResource extends Message { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.TopicResource.TopicResourceOutput output = 1; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.TopicResource.TopicResourceOutput output = 1; */ output?: TopicResource_TopicResourceOutput; @@ -353,7 +432,7 @@ export class TopicResource extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.TopicResource"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.TopicResource"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "output", kind: "message", T: TopicResource_TopicResourceOutput }, ]); @@ -376,7 +455,7 @@ export class TopicResource extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.TopicResource.TopicResourceOutput + * @generated from message xyz.block.ftl.provisioner.v1beta1.TopicResource.TopicResourceOutput */ export class TopicResource_TopicResourceOutput extends Message { /** @@ -395,7 +474,7 @@ export class TopicResource_TopicResourceOutput extends Message [ { no: 1, name: "kafka_brokers", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, { no: 2, name: "topic_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -419,16 +498,16 @@ export class TopicResource_TopicResourceOutput extends Message { /** - * @generated from field: xyz.block.ftl.v1beta1.provisioner.SubscriptionResource.SubscriptionResourceOutput output = 1; + * @generated from field: xyz.block.ftl.provisioner.v1beta1.SubscriptionResource.SubscriptionResourceOutput output = 1; */ output?: SubscriptionResource_SubscriptionResourceOutput; /** - * @generated from field: xyz.block.ftl.v1.schema.Ref topic = 2; + * @generated from field: xyz.block.ftl.schema.v1.Ref topic = 2; */ topic?: Ref; @@ -438,7 +517,7 @@ export class SubscriptionResource extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1beta1.provisioner.SubscriptionResource"; + static readonly typeName = "xyz.block.ftl.provisioner.v1beta1.SubscriptionResource"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "output", kind: "message", T: SubscriptionResource_SubscriptionResourceOutput }, { no: 2, name: "topic", kind: "message", T: Ref }, @@ -462,7 +541,7 @@ export class SubscriptionResource extends Message { } /** - * @generated from message xyz.block.ftl.v1beta1.provisioner.SubscriptionResource.SubscriptionResourceOutput + * @generated from message xyz.block.ftl.provisioner.v1beta1.SubscriptionResource.SubscriptionResourceOutput */ export class SubscriptionResource_SubscriptionResourceOutput extends Message { /** @@ -486,7 +565,7 @@ export class SubscriptionResource_SubscriptionResourceOutput extends Message [ { no: 1, name: "kafka_brokers", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, { no: 2, name: "topic_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, diff --git a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/service_connect.ts b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/service_connect.ts similarity index 74% rename from frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/service_connect.ts rename to frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/service_connect.ts index 3dc2e50cec..11d72bf5a2 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1beta1/provisioner/service_connect.ts +++ b/frontend/console/src/protos/xyz/block/ftl/provisioner/v1beta1/service_connect.ts @@ -1,5 +1,5 @@ // @generated by protoc-gen-connect-es v1.6.1 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1beta1/provisioner/service.proto (package xyz.block.ftl.v1beta1.provisioner, syntax proto3) +// @generated from file xyz/block/ftl/provisioner/v1beta1/service.proto (package xyz.block.ftl.provisioner.v1beta1, syntax proto3) /* eslint-disable */ // @ts-nocheck @@ -8,13 +8,13 @@ import { MethodIdempotency, MethodKind } from "@bufbuild/protobuf"; import { CreateDeploymentRequest, CreateDeploymentResponse, GetArtefactDiffsRequest, GetArtefactDiffsResponse, ReplaceDeployRequest, ReplaceDeployResponse, StatusRequest, StatusResponse, UpdateDeployRequest, UpdateDeployResponse, UploadArtefactRequest, UploadArtefactResponse } from "../../v1/controller_pb.js"; /** - * @generated from service xyz.block.ftl.v1beta1.provisioner.ProvisionerService + * @generated from service xyz.block.ftl.provisioner.v1beta1.ProvisionerService */ export const ProvisionerService = { - typeName: "xyz.block.ftl.v1beta1.provisioner.ProvisionerService", + typeName: "xyz.block.ftl.provisioner.v1beta1.ProvisionerService", methods: { /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Ping + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Ping */ ping: { name: "Ping", @@ -24,7 +24,7 @@ export const ProvisionerService = { idempotency: MethodIdempotency.NoSideEffects, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerService.Status + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerService.Status */ status: { name: "Status", @@ -33,7 +33,7 @@ export const ProvisionerService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerService.GetArtefactDiffs + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerService.GetArtefactDiffs */ getArtefactDiffs: { name: "GetArtefactDiffs", @@ -42,7 +42,7 @@ export const ProvisionerService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UploadArtefact + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UploadArtefact */ uploadArtefact: { name: "UploadArtefact", @@ -51,7 +51,7 @@ export const ProvisionerService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerService.CreateDeployment + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerService.CreateDeployment */ createDeployment: { name: "CreateDeployment", @@ -60,7 +60,7 @@ export const ProvisionerService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerService.UpdateDeploy + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerService.UpdateDeploy */ updateDeploy: { name: "UpdateDeploy", @@ -69,7 +69,7 @@ export const ProvisionerService = { kind: MethodKind.Unary, }, /** - * @generated from rpc xyz.block.ftl.v1beta1.provisioner.ProvisionerService.ReplaceDeploy + * @generated from rpc xyz.block.ftl.provisioner.v1beta1.ProvisionerService.ReplaceDeploy */ replaceDeploy: { name: "ReplaceDeploy", diff --git a/frontend/console/src/protos/xyz/block/ftl/v1/schema/schema_pb.ts b/frontend/console/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts similarity index 83% rename from frontend/console/src/protos/xyz/block/ftl/v1/schema/schema_pb.ts rename to frontend/console/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts index 7be5b89775..d935da1bc7 100644 --- a/frontend/console/src/protos/xyz/block/ftl/v1/schema/schema_pb.ts +++ b/frontend/console/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts @@ -1,7 +1,7 @@ // THIS FILE IS GENERATED; DO NOT MODIFY // @generated by protoc-gen-es v1.10.0 with parameter "target=ts" -// @generated from file xyz/block/ftl/v1/schema/schema.proto (package xyz.block.ftl.v1.schema, syntax proto3) +// @generated from file xyz/block/ftl/schema/v1/schema.proto (package xyz.block.ftl.schema.v1, syntax proto3) /* eslint-disable */ // @ts-nocheck @@ -9,45 +9,57 @@ import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialM import { Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf"; /** - * @generated from enum xyz.block.ftl.v1.schema.AliasKind + * @generated from enum xyz.block.ftl.schema.v1.AliasKind */ export enum AliasKind { /** - * @generated from enum value: ALIAS_KIND_JSON = 0; + * @generated from enum value: ALIAS_KIND_UNSPECIFIED = 0; */ - JSON = 0, + UNSPECIFIED = 0, + + /** + * @generated from enum value: ALIAS_KIND_JSON = 1; + */ + JSON = 1, } // Retrieve enum metadata with: proto3.getEnumType(AliasKind) -proto3.util.setEnumType(AliasKind, "xyz.block.ftl.v1.schema.AliasKind", [ - { no: 0, name: "ALIAS_KIND_JSON" }, +proto3.util.setEnumType(AliasKind, "xyz.block.ftl.schema.v1.AliasKind", [ + { no: 0, name: "ALIAS_KIND_UNSPECIFIED" }, + { no: 1, name: "ALIAS_KIND_JSON" }, ]); /** - * @generated from enum xyz.block.ftl.v1.schema.FromOffset + * @generated from enum xyz.block.ftl.schema.v1.FromOffset */ export enum FromOffset { /** - * @generated from enum value: FROM_OFFSET_BEGINNING = 0; + * @generated from enum value: FROM_OFFSET_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: FROM_OFFSET_BEGINNING = 1; */ - BEGINNING = 0, + BEGINNING = 1, /** - * @generated from enum value: FROM_OFFSET_LATEST = 1; + * @generated from enum value: FROM_OFFSET_LATEST = 2; */ - LATEST = 1, + LATEST = 2, } // Retrieve enum metadata with: proto3.getEnumType(FromOffset) -proto3.util.setEnumType(FromOffset, "xyz.block.ftl.v1.schema.FromOffset", [ - { no: 0, name: "FROM_OFFSET_BEGINNING" }, - { no: 1, name: "FROM_OFFSET_LATEST" }, +proto3.util.setEnumType(FromOffset, "xyz.block.ftl.schema.v1.FromOffset", [ + { no: 0, name: "FROM_OFFSET_UNSPECIFIED" }, + { no: 1, name: "FROM_OFFSET_BEGINNING" }, + { no: 2, name: "FROM_OFFSET_LATEST" }, ]); /** - * @generated from message xyz.block.ftl.v1.schema.AWSIAMAuthDatabaseConnector + * @generated from message xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector */ export class AWSIAMAuthDatabaseConnector extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -72,7 +84,7 @@ export class AWSIAMAuthDatabaseConnector extends Message [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "username", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -98,11 +110,11 @@ export class AWSIAMAuthDatabaseConnector extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -112,7 +124,7 @@ export class Any extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Any"; + static readonly typeName = "xyz.block.ftl.schema.v1.Any"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, ]); @@ -135,16 +147,16 @@ export class Any extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Array + * @generated from message xyz.block.ftl.schema.v1.Array */ export class Array extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: xyz.block.ftl.v1.schema.Type element = 2; + * @generated from field: xyz.block.ftl.schema.v1.Type element = 2; */ element?: Type; @@ -154,7 +166,7 @@ export class Array extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Array"; + static readonly typeName = "xyz.block.ftl.schema.v1.Array"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "element", kind: "message", T: Type }, @@ -178,11 +190,11 @@ export class Array extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Bool + * @generated from message xyz.block.ftl.schema.v1.Bool */ export class Bool extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -192,7 +204,7 @@ export class Bool extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Bool"; + static readonly typeName = "xyz.block.ftl.schema.v1.Bool"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, ]); @@ -215,11 +227,11 @@ export class Bool extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Bytes + * @generated from message xyz.block.ftl.schema.v1.Bytes */ export class Bytes extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -229,7 +241,7 @@ export class Bytes extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Bytes"; + static readonly typeName = "xyz.block.ftl.schema.v1.Bytes"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, ]); @@ -252,11 +264,11 @@ export class Bytes extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Config + * @generated from message xyz.block.ftl.schema.v1.Config */ export class Config extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -271,7 +283,7 @@ export class Config extends Message { name = ""; /** - * @generated from field: xyz.block.ftl.v1.schema.Type type = 4; + * @generated from field: xyz.block.ftl.schema.v1.Type type = 4; */ type?: Type; @@ -281,7 +293,7 @@ export class Config extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Config"; + static readonly typeName = "xyz.block.ftl.schema.v1.Config"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, @@ -307,11 +319,11 @@ export class Config extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.DSNDatabaseConnector + * @generated from message xyz.block.ftl.schema.v1.DSNDatabaseConnector */ export class DSNDatabaseConnector extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -326,7 +338,7 @@ export class DSNDatabaseConnector extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.DSNDatabaseConnector"; + static readonly typeName = "xyz.block.ftl.schema.v1.DSNDatabaseConnector"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "dsn", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -350,11 +362,11 @@ export class DSNDatabaseConnector extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Data + * @generated from message xyz.block.ftl.schema.v1.Data */ export class Data extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -374,17 +386,17 @@ export class Data extends Message { name = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.TypeParameter type_parameters = 5; + * @generated from field: repeated xyz.block.ftl.schema.v1.TypeParameter type_parameters = 5; */ typeParameters: TypeParameter[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Field fields = 6; + * @generated from field: repeated xyz.block.ftl.schema.v1.Field fields = 6; */ fields: Field[] = []; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Metadata metadata = 7; + * @generated from field: repeated xyz.block.ftl.schema.v1.Metadata metadata = 7; */ metadata: Metadata[] = []; @@ -394,7 +406,7 @@ export class Data extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Data"; + static readonly typeName = "xyz.block.ftl.schema.v1.Data"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, @@ -423,16 +435,16 @@ export class Data extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Database + * @generated from message xyz.block.ftl.schema.v1.Database */ export class Database extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: optional xyz.block.ftl.v1.schema.DatabaseRuntime runtime = 31634; + * @generated from field: optional xyz.block.ftl.schema.v1.DatabaseRuntime runtime = 31634; */ runtime?: DatabaseRuntime; @@ -452,7 +464,7 @@ export class Database extends Message { name = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Metadata metadata = 5; + * @generated from field: repeated xyz.block.ftl.schema.v1.Metadata metadata = 5; */ metadata: Metadata[] = []; @@ -462,7 +474,7 @@ export class Database extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Database"; + static readonly typeName = "xyz.block.ftl.schema.v1.Database"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 31634, name: "runtime", kind: "message", T: DatabaseRuntime, opt: true }, @@ -490,21 +502,21 @@ export class Database extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.DatabaseConnector + * @generated from message xyz.block.ftl.schema.v1.DatabaseConnector */ export class DatabaseConnector extends Message { /** - * @generated from oneof xyz.block.ftl.v1.schema.DatabaseConnector.value + * @generated from oneof xyz.block.ftl.schema.v1.DatabaseConnector.value */ value: { /** - * @generated from field: xyz.block.ftl.v1.schema.AWSIAMAuthDatabaseConnector awsiam_auth_database_connector = 2; + * @generated from field: xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector awsiam_auth_database_connector = 2; */ value: AWSIAMAuthDatabaseConnector; case: "awsiamAuthDatabaseConnector"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.DSNDatabaseConnector dsn_database_connector = 1; + * @generated from field: xyz.block.ftl.schema.v1.DSNDatabaseConnector dsn_database_connector = 1; */ value: DSNDatabaseConnector; case: "dsnDatabaseConnector"; @@ -516,7 +528,7 @@ export class DatabaseConnector extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.DatabaseConnector"; + static readonly typeName = "xyz.block.ftl.schema.v1.DatabaseConnector"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 2, name: "awsiam_auth_database_connector", kind: "message", T: AWSIAMAuthDatabaseConnector, oneof: "value" }, { no: 1, name: "dsn_database_connector", kind: "message", T: DSNDatabaseConnector, oneof: "value" }, @@ -540,16 +552,16 @@ export class DatabaseConnector extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.DatabaseRuntime + * @generated from message xyz.block.ftl.schema.v1.DatabaseRuntime */ export class DatabaseRuntime extends Message { /** - * @generated from field: xyz.block.ftl.v1.schema.DatabaseConnector read_connector = 1; + * @generated from field: xyz.block.ftl.schema.v1.DatabaseConnector read_connector = 1; */ readConnector?: DatabaseConnector; /** - * @generated from field: xyz.block.ftl.v1.schema.DatabaseConnector write_connector = 2; + * @generated from field: xyz.block.ftl.schema.v1.DatabaseConnector write_connector = 2; */ writeConnector?: DatabaseConnector; @@ -559,7 +571,7 @@ export class DatabaseRuntime extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.DatabaseRuntime"; + static readonly typeName = "xyz.block.ftl.schema.v1.DatabaseRuntime"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "read_connector", kind: "message", T: DatabaseConnector }, { no: 2, name: "write_connector", kind: "message", T: DatabaseConnector }, @@ -583,57 +595,57 @@ export class DatabaseRuntime extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Decl + * @generated from message xyz.block.ftl.schema.v1.Decl */ export class Decl extends Message { /** - * @generated from oneof xyz.block.ftl.v1.schema.Decl.value + * @generated from oneof xyz.block.ftl.schema.v1.Decl.value */ value: { /** - * @generated from field: xyz.block.ftl.v1.schema.Config config = 6; + * @generated from field: xyz.block.ftl.schema.v1.Config config = 6; */ value: Config; case: "config"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.Data data = 1; + * @generated from field: xyz.block.ftl.schema.v1.Data data = 1; */ value: Data; case: "data"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.Database database = 3; + * @generated from field: xyz.block.ftl.schema.v1.Database database = 3; */ value: Database; case: "database"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.Enum enum = 4; + * @generated from field: xyz.block.ftl.schema.v1.Enum enum = 4; */ value: Enum; case: "enum"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.Secret secret = 7; + * @generated from field: xyz.block.ftl.schema.v1.Secret secret = 7; */ value: Secret; case: "secret"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.Topic topic = 9; + * @generated from field: xyz.block.ftl.schema.v1.Topic topic = 9; */ value: Topic; case: "topic"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.TypeAlias type_alias = 5; + * @generated from field: xyz.block.ftl.schema.v1.TypeAlias type_alias = 5; */ value: TypeAlias; case: "typeAlias"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.Verb verb = 2; + * @generated from field: xyz.block.ftl.schema.v1.Verb verb = 2; */ value: Verb; case: "verb"; @@ -645,7 +657,7 @@ export class Decl extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Decl"; + static readonly typeName = "xyz.block.ftl.schema.v1.Decl"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 6, name: "config", kind: "message", T: Config, oneof: "value" }, { no: 1, name: "data", kind: "message", T: Data, oneof: "value" }, @@ -675,11 +687,11 @@ export class Decl extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Enum + * @generated from message xyz.block.ftl.schema.v1.Enum */ export class Enum extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -699,12 +711,12 @@ export class Enum extends Message { name = ""; /** - * @generated from field: optional xyz.block.ftl.v1.schema.Type type = 5; + * @generated from field: optional xyz.block.ftl.schema.v1.Type type = 5; */ type?: Type; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.EnumVariant variants = 6; + * @generated from field: repeated xyz.block.ftl.schema.v1.EnumVariant variants = 6; */ variants: EnumVariant[] = []; @@ -714,7 +726,7 @@ export class Enum extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Enum"; + static readonly typeName = "xyz.block.ftl.schema.v1.Enum"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, @@ -742,11 +754,11 @@ export class Enum extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.EnumVariant + * @generated from message xyz.block.ftl.schema.v1.EnumVariant */ export class EnumVariant extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -761,7 +773,7 @@ export class EnumVariant extends Message { name = ""; /** - * @generated from field: xyz.block.ftl.v1.schema.Value value = 4; + * @generated from field: xyz.block.ftl.schema.v1.Value value = 4; */ value?: Value; @@ -771,7 +783,7 @@ export class EnumVariant extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.EnumVariant"; + static readonly typeName = "xyz.block.ftl.schema.v1.EnumVariant"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, @@ -797,11 +809,11 @@ export class EnumVariant extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Field + * @generated from message xyz.block.ftl.schema.v1.Field */ export class Field extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -816,12 +828,12 @@ export class Field extends Message { name = ""; /** - * @generated from field: xyz.block.ftl.v1.schema.Type type = 4; + * @generated from field: xyz.block.ftl.schema.v1.Type type = 4; */ type?: Type; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Metadata metadata = 5; + * @generated from field: repeated xyz.block.ftl.schema.v1.Metadata metadata = 5; */ metadata: Metadata[] = []; @@ -831,7 +843,7 @@ export class Field extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Field"; + static readonly typeName = "xyz.block.ftl.schema.v1.Field"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 3, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, @@ -858,11 +870,11 @@ export class Field extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Float + * @generated from message xyz.block.ftl.schema.v1.Float */ export class Float extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -872,7 +884,7 @@ export class Float extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Float"; + static readonly typeName = "xyz.block.ftl.schema.v1.Float"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, ]); @@ -895,21 +907,21 @@ export class Float extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.IngressPathComponent + * @generated from message xyz.block.ftl.schema.v1.IngressPathComponent */ export class IngressPathComponent extends Message { /** - * @generated from oneof xyz.block.ftl.v1.schema.IngressPathComponent.value + * @generated from oneof xyz.block.ftl.schema.v1.IngressPathComponent.value */ value: { /** - * @generated from field: xyz.block.ftl.v1.schema.IngressPathLiteral ingress_path_literal = 1; + * @generated from field: xyz.block.ftl.schema.v1.IngressPathLiteral ingress_path_literal = 1; */ value: IngressPathLiteral; case: "ingressPathLiteral"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.IngressPathParameter ingress_path_parameter = 2; + * @generated from field: xyz.block.ftl.schema.v1.IngressPathParameter ingress_path_parameter = 2; */ value: IngressPathParameter; case: "ingressPathParameter"; @@ -921,7 +933,7 @@ export class IngressPathComponent extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.IngressPathComponent"; + static readonly typeName = "xyz.block.ftl.schema.v1.IngressPathComponent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "ingress_path_literal", kind: "message", T: IngressPathLiteral, oneof: "value" }, { no: 2, name: "ingress_path_parameter", kind: "message", T: IngressPathParameter, oneof: "value" }, @@ -945,11 +957,11 @@ export class IngressPathComponent extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.IngressPathLiteral + * @generated from message xyz.block.ftl.schema.v1.IngressPathLiteral */ export class IngressPathLiteral extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -964,7 +976,7 @@ export class IngressPathLiteral extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.IngressPathLiteral"; + static readonly typeName = "xyz.block.ftl.schema.v1.IngressPathLiteral"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "text", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -988,11 +1000,11 @@ export class IngressPathLiteral extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.IngressPathParameter + * @generated from message xyz.block.ftl.schema.v1.IngressPathParameter */ export class IngressPathParameter extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1007,7 +1019,7 @@ export class IngressPathParameter extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.IngressPathParameter"; + static readonly typeName = "xyz.block.ftl.schema.v1.IngressPathParameter"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1031,11 +1043,11 @@ export class IngressPathParameter extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Int + * @generated from message xyz.block.ftl.schema.v1.Int */ export class Int extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1045,7 +1057,7 @@ export class Int extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Int"; + static readonly typeName = "xyz.block.ftl.schema.v1.Int"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, ]); @@ -1068,11 +1080,11 @@ export class Int extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.IntValue + * @generated from message xyz.block.ftl.schema.v1.IntValue */ export class IntValue extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1087,7 +1099,7 @@ export class IntValue extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.IntValue"; + static readonly typeName = "xyz.block.ftl.schema.v1.IntValue"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "value", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, @@ -1111,21 +1123,21 @@ export class IntValue extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Map + * @generated from message xyz.block.ftl.schema.v1.Map */ export class Map extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: xyz.block.ftl.v1.schema.Type key = 2; + * @generated from field: xyz.block.ftl.schema.v1.Type key = 2; */ key?: Type; /** - * @generated from field: xyz.block.ftl.v1.schema.Type value = 3; + * @generated from field: xyz.block.ftl.schema.v1.Type value = 3; */ value?: Type; @@ -1135,7 +1147,7 @@ export class Map extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Map"; + static readonly typeName = "xyz.block.ftl.schema.v1.Map"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "key", kind: "message", T: Type }, @@ -1160,87 +1172,87 @@ export class Map extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Metadata + * @generated from message xyz.block.ftl.schema.v1.Metadata */ export class Metadata extends Message { /** - * @generated from oneof xyz.block.ftl.v1.schema.Metadata.value + * @generated from oneof xyz.block.ftl.schema.v1.Metadata.value */ value: { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataAlias alias = 5; + * @generated from field: xyz.block.ftl.schema.v1.MetadataAlias alias = 5; */ value: MetadataAlias; case: "alias"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataCalls calls = 1; + * @generated from field: xyz.block.ftl.schema.v1.MetadataCalls calls = 1; */ value: MetadataCalls; case: "calls"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataConfig config = 10; + * @generated from field: xyz.block.ftl.schema.v1.MetadataConfig config = 10; */ value: MetadataConfig; case: "config"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataCronJob cron_job = 3; + * @generated from field: xyz.block.ftl.schema.v1.MetadataCronJob cron_job = 3; */ value: MetadataCronJob; case: "cronJob"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataDatabases databases = 4; + * @generated from field: xyz.block.ftl.schema.v1.MetadataDatabases databases = 4; */ value: MetadataDatabases; case: "databases"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataEncoding encoding = 9; + * @generated from field: xyz.block.ftl.schema.v1.MetadataEncoding encoding = 9; */ value: MetadataEncoding; case: "encoding"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataIngress ingress = 2; + * @generated from field: xyz.block.ftl.schema.v1.MetadataIngress ingress = 2; */ value: MetadataIngress; case: "ingress"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataPublisher publisher = 12; + * @generated from field: xyz.block.ftl.schema.v1.MetadataPublisher publisher = 12; */ value: MetadataPublisher; case: "publisher"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataRetry retry = 6; + * @generated from field: xyz.block.ftl.schema.v1.MetadataRetry retry = 6; */ value: MetadataRetry; case: "retry"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataSQLMigration sql_migration = 13; + * @generated from field: xyz.block.ftl.schema.v1.MetadataSQLMigration sql_migration = 13; */ value: MetadataSQLMigration; case: "sqlMigration"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataSecrets secrets = 11; + * @generated from field: xyz.block.ftl.schema.v1.MetadataSecrets secrets = 11; */ value: MetadataSecrets; case: "secrets"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataSubscriber subscriber = 7; + * @generated from field: xyz.block.ftl.schema.v1.MetadataSubscriber subscriber = 7; */ value: MetadataSubscriber; case: "subscriber"; } | { /** - * @generated from field: xyz.block.ftl.v1.schema.MetadataTypeMap type_map = 8; + * @generated from field: xyz.block.ftl.schema.v1.MetadataTypeMap type_map = 8; */ value: MetadataTypeMap; case: "typeMap"; @@ -1252,7 +1264,7 @@ export class Metadata extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Metadata"; + static readonly typeName = "xyz.block.ftl.schema.v1.Metadata"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 5, name: "alias", kind: "message", T: MetadataAlias, oneof: "value" }, { no: 1, name: "calls", kind: "message", T: MetadataCalls, oneof: "value" }, @@ -1287,18 +1299,18 @@ export class Metadata extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataAlias + * @generated from message xyz.block.ftl.schema.v1.MetadataAlias */ export class MetadataAlias extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: xyz.block.ftl.v1.schema.AliasKind kind = 2; + * @generated from field: xyz.block.ftl.schema.v1.AliasKind kind = 2; */ - kind = AliasKind.JSON; + kind = AliasKind.UNSPECIFIED; /** * @generated from field: string alias = 3; @@ -1311,7 +1323,7 @@ export class MetadataAlias extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataAlias"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataAlias"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "kind", kind: "enum", T: proto3.getEnumType(AliasKind) }, @@ -1336,16 +1348,16 @@ export class MetadataAlias extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataCalls + * @generated from message xyz.block.ftl.schema.v1.MetadataCalls */ export class MetadataCalls extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref calls = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref calls = 2; */ calls: Ref[] = []; @@ -1355,7 +1367,7 @@ export class MetadataCalls extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataCalls"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataCalls"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "calls", kind: "message", T: Ref, repeated: true }, @@ -1379,16 +1391,16 @@ export class MetadataCalls extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataConfig + * @generated from message xyz.block.ftl.schema.v1.MetadataConfig */ export class MetadataConfig extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref config = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref config = 2; */ config: Ref[] = []; @@ -1398,7 +1410,7 @@ export class MetadataConfig extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataConfig"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataConfig"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "config", kind: "message", T: Ref, repeated: true }, @@ -1422,11 +1434,11 @@ export class MetadataConfig extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataCronJob + * @generated from message xyz.block.ftl.schema.v1.MetadataCronJob */ export class MetadataCronJob extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1441,7 +1453,7 @@ export class MetadataCronJob extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataCronJob"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataCronJob"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "cron", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1465,16 +1477,16 @@ export class MetadataCronJob extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataDatabases + * @generated from message xyz.block.ftl.schema.v1.MetadataDatabases */ export class MetadataDatabases extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref calls = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref calls = 2; */ calls: Ref[] = []; @@ -1484,7 +1496,7 @@ export class MetadataDatabases extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataDatabases"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataDatabases"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "calls", kind: "message", T: Ref, repeated: true }, @@ -1508,11 +1520,11 @@ export class MetadataDatabases extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataEncoding + * @generated from message xyz.block.ftl.schema.v1.MetadataEncoding */ export class MetadataEncoding extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1532,7 +1544,7 @@ export class MetadataEncoding extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataEncoding"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataEncoding"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "type", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1557,11 +1569,11 @@ export class MetadataEncoding extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataIngress + * @generated from message xyz.block.ftl.schema.v1.MetadataIngress */ export class MetadataIngress extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1576,7 +1588,7 @@ export class MetadataIngress extends Message { method = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.IngressPathComponent path = 4; + * @generated from field: repeated xyz.block.ftl.schema.v1.IngressPathComponent path = 4; */ path: IngressPathComponent[] = []; @@ -1586,7 +1598,7 @@ export class MetadataIngress extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataIngress"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataIngress"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "type", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1612,16 +1624,16 @@ export class MetadataIngress extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataPublisher + * @generated from message xyz.block.ftl.schema.v1.MetadataPublisher */ export class MetadataPublisher extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref topics = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref topics = 2; */ topics: Ref[] = []; @@ -1631,7 +1643,7 @@ export class MetadataPublisher extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataPublisher"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataPublisher"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "topics", kind: "message", T: Ref, repeated: true }, @@ -1655,11 +1667,11 @@ export class MetadataPublisher extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataRetry + * @generated from message xyz.block.ftl.schema.v1.MetadataRetry */ export class MetadataRetry extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1679,7 +1691,7 @@ export class MetadataRetry extends Message { maxBackoff = ""; /** - * @generated from field: optional xyz.block.ftl.v1.schema.Ref catch = 5; + * @generated from field: optional xyz.block.ftl.schema.v1.Ref catch = 5; */ catch?: Ref; @@ -1689,7 +1701,7 @@ export class MetadataRetry extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataRetry"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataRetry"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "count", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, @@ -1716,11 +1728,11 @@ export class MetadataRetry extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataSQLMigration + * @generated from message xyz.block.ftl.schema.v1.MetadataSQLMigration */ export class MetadataSQLMigration extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1735,7 +1747,7 @@ export class MetadataSQLMigration extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataSQLMigration"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataSQLMigration"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "digest", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1759,16 +1771,16 @@ export class MetadataSQLMigration extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataSecrets + * @generated from message xyz.block.ftl.schema.v1.MetadataSecrets */ export class MetadataSecrets extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Ref secrets = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Ref secrets = 2; */ secrets: Ref[] = []; @@ -1778,7 +1790,7 @@ export class MetadataSecrets extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataSecrets"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataSecrets"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "secrets", kind: "message", T: Ref, repeated: true }, @@ -1802,23 +1814,23 @@ export class MetadataSecrets extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataSubscriber + * @generated from message xyz.block.ftl.schema.v1.MetadataSubscriber */ export class MetadataSubscriber extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: xyz.block.ftl.v1.schema.Ref topic = 2; + * @generated from field: xyz.block.ftl.schema.v1.Ref topic = 2; */ topic?: Ref; /** - * @generated from field: xyz.block.ftl.v1.schema.FromOffset from_offset = 3; + * @generated from field: xyz.block.ftl.schema.v1.FromOffset from_offset = 3; */ - fromOffset = FromOffset.BEGINNING; + fromOffset = FromOffset.UNSPECIFIED; /** * @generated from field: bool dead_letter = 4; @@ -1831,7 +1843,7 @@ export class MetadataSubscriber extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataSubscriber"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataSubscriber"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "topic", kind: "message", T: Ref }, @@ -1857,11 +1869,11 @@ export class MetadataSubscriber extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.MetadataTypeMap + * @generated from message xyz.block.ftl.schema.v1.MetadataTypeMap */ export class MetadataTypeMap extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1881,7 +1893,7 @@ export class MetadataTypeMap extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.MetadataTypeMap"; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataTypeMap"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "runtime", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -1906,11 +1918,11 @@ export class MetadataTypeMap extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Module + * @generated from message xyz.block.ftl.schema.v1.Module */ export class Module extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -1930,12 +1942,12 @@ export class Module extends Message { name = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Decl decls = 5; + * @generated from field: repeated xyz.block.ftl.schema.v1.Decl decls = 5; */ decls: Decl[] = []; /** - * @generated from field: optional xyz.block.ftl.v1.schema.ModuleRuntime runtime = 31634; + * @generated from field: optional xyz.block.ftl.schema.v1.ModuleRuntime runtime = 31634; */ runtime?: ModuleRuntime; @@ -1945,7 +1957,7 @@ export class Module extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Module"; + static readonly typeName = "xyz.block.ftl.schema.v1.Module"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, @@ -1973,7 +1985,7 @@ export class Module extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.ModuleRuntime + * @generated from message xyz.block.ftl.schema.v1.ModuleRuntime */ export class ModuleRuntime extends Message { /** @@ -2012,7 +2024,7 @@ export class ModuleRuntime extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.ModuleRuntime"; + static readonly typeName = "xyz.block.ftl.schema.v1.ModuleRuntime"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "create_time", kind: "message", T: Timestamp }, { no: 2, name: "language", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -2040,16 +2052,16 @@ export class ModuleRuntime extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Optional + * @generated from message xyz.block.ftl.schema.v1.Optional */ export class Optional extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: optional xyz.block.ftl.v1.schema.Type type = 2; + * @generated from field: optional xyz.block.ftl.schema.v1.Type type = 2; */ type?: Type; @@ -2059,7 +2071,7 @@ export class Optional extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Optional"; + static readonly typeName = "xyz.block.ftl.schema.v1.Optional"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "type", kind: "message", T: Type, opt: true }, @@ -2083,7 +2095,7 @@ export class Optional extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Position + * @generated from message xyz.block.ftl.schema.v1.Position */ export class Position extends Message { /** @@ -2107,7 +2119,7 @@ export class Position extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Position"; + static readonly typeName = "xyz.block.ftl.schema.v1.Position"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "filename", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "line", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, @@ -2132,11 +2144,11 @@ export class Position extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Ref + * @generated from message xyz.block.ftl.schema.v1.Ref */ export class Ref extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -2151,7 +2163,7 @@ export class Ref extends Message { name = ""; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Type type_parameters = 4; + * @generated from field: repeated xyz.block.ftl.schema.v1.Type type_parameters = 4; */ typeParameters: Type[] = []; @@ -2161,7 +2173,7 @@ export class Ref extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Ref"; + static readonly typeName = "xyz.block.ftl.schema.v1.Ref"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 3, name: "module", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -2187,16 +2199,16 @@ export class Ref extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Schema + * @generated from message xyz.block.ftl.schema.v1.Schema */ export class Schema extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; /** - * @generated from field: repeated xyz.block.ftl.v1.schema.Module modules = 2; + * @generated from field: repeated xyz.block.ftl.schema.v1.Module modules = 2; */ modules: Module[] = []; @@ -2206,7 +2218,7 @@ export class Schema extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Schema"; + static readonly typeName = "xyz.block.ftl.schema.v1.Schema"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "modules", kind: "message", T: Module, repeated: true }, @@ -2230,11 +2242,11 @@ export class Schema extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Secret + * @generated from message xyz.block.ftl.schema.v1.Secret */ export class Secret extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -2249,7 +2261,7 @@ export class Secret extends Message { name = ""; /** - * @generated from field: xyz.block.ftl.v1.schema.Type type = 4; + * @generated from field: xyz.block.ftl.schema.v1.Type type = 4; */ type?: Type; @@ -2259,7 +2271,7 @@ export class Secret extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.Secret"; + static readonly typeName = "xyz.block.ftl.schema.v1.Secret"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, @@ -2285,11 +2297,11 @@ export class Secret extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.String + * @generated from message xyz.block.ftl.schema.v1.String */ export class String extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -2299,7 +2311,7 @@ export class String extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.String"; + static readonly typeName = "xyz.block.ftl.schema.v1.String"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, ]); @@ -2322,11 +2334,11 @@ export class String extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.StringValue + * @generated from message xyz.block.ftl.schema.v1.StringValue */ export class StringValue extends Message { /** - * @generated from field: optional xyz.block.ftl.v1.schema.Position pos = 1; + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; */ pos?: Position; @@ -2341,7 +2353,7 @@ export class StringValue extends Message { } static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.v1.schema.StringValue"; + static readonly typeName = "xyz.block.ftl.schema.v1.StringValue"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "pos", kind: "message", T: Position, opt: true }, { no: 2, name: "value", kind: "scalar", T: 9 /* ScalarType.STRING */ }, @@ -2365,11 +2377,11 @@ export class StringValue extends Message { } /** - * @generated from message xyz.block.ftl.v1.schema.Time + * @generated from message xyz.block.ftl.schema.v1.Time */ export class Time extends Message